diff --git a/core/composer.lock b/core/composer.lock
index 536389885055c7fbe744f614f3c197376db55b31..83f7e0365f5cab883de831e5e2c6d0124aeace0a 100644
--- a/core/composer.lock
+++ b/core/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "61a2b6dec8252d78e904d37fbf1637d7",
+    "hash": "9e0763598519826fa345ed30454ca14b",
     "packages": [
         {
             "name": "behat/mink",
@@ -570,22 +570,27 @@
         },
         {
             "name": "doctrine/lexer",
-            "version": "v1.0",
+            "version": "v1.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/lexer.git",
-                "reference": "v1.0"
+                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb",
-                "reference": "v1.0",
+                "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
+                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
                     "Doctrine\\Common\\Lexer\\": "lib/"
@@ -596,20 +601,17 @@
                 "MIT"
             ],
             "authors": [
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com",
-                    "homepage": "http://www.instaclick.com"
-                },
                 {
                     "name": "Roman Borschel",
                     "email": "roman@code-factory.org"
                 },
                 {
-                    "name": "Johannes M. Schmitt",
-                    "email": "schmittjoh@gmail.com",
-                    "homepage": "https://github.com/schmittjoh",
-                    "role": "Developer of wrapped JMSSerializerBundle"
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco@gmail.com"
+                },
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh@gmail.com"
                 }
             ],
             "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
@@ -618,7 +620,7 @@
                 "lexer",
                 "parser"
             ],
-            "time": "2013-01-12 18:59:04"
+            "time": "2014-09-09 13:34:57"
         },
         {
             "name": "easyrdf/easyrdf",
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index 457c12ec125a9f142f93766cb8020f795b621d0d..9be9d41037efd2ddb908bb8db96fd1fe7d759ca1 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -1,58 +1,4 @@
 [
-    {
-        "name": "doctrine/lexer",
-        "version": "v1.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/lexer.git",
-            "reference": "v1.0"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb",
-            "reference": "v1.0",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2"
-        },
-        "time": "2013-01-12 18:59:04",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\Lexer\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com",
-                "homepage": "http://www.instaclick.com"
-            },
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Johannes M. Schmitt",
-                "email": "schmittjoh@gmail.com",
-                "homepage": "https://github.com/schmittjoh",
-                "role": "Developer of wrapped JMSSerializerBundle"
-            }
-        ],
-        "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "lexer",
-            "parser"
-        ]
-    },
     {
         "name": "doctrine/inflector",
         "version": "v1.0",
@@ -3397,5 +3343,61 @@
         ],
         "description": "Symfony BrowserKit Component",
         "homepage": "https://symfony.com"
+    },
+    {
+        "name": "doctrine/lexer",
+        "version": "v1.0.1",
+        "version_normalized": "1.0.1.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/doctrine/lexer.git",
+            "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
+            "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.2"
+        },
+        "time": "2014-09-09 13:34:57",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.0.x-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Doctrine\\Common\\Lexer\\": "lib/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Roman Borschel",
+                "email": "roman@code-factory.org"
+            },
+            {
+                "name": "Guilherme Blanco",
+                "email": "guilhermeblanco@gmail.com"
+            },
+            {
+                "name": "Johannes Schmitt",
+                "email": "schmittjoh@gmail.com"
+            }
+        ],
+        "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
+        "homepage": "http://www.doctrine-project.org",
+        "keywords": [
+            "lexer",
+            "parser"
+        ]
     }
 ]
diff --git a/core/vendor/doctrine/lexer/LICENSE b/core/vendor/doctrine/lexer/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..5e781fce4bb504715ba0ec0188715b18a198ca6b
--- /dev/null
+++ b/core/vendor/doctrine/lexer/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2006-2013 Doctrine Project
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/core/vendor/doctrine/lexer/composer.json b/core/vendor/doctrine/lexer/composer.json
index 5e6e83a1ac9c11b4c9fa9d020830e57351efe151..8cd694c6525462fb0189392c3862c1f0d22a8cdf 100644
--- a/core/vendor/doctrine/lexer/composer.json
+++ b/core/vendor/doctrine/lexer/composer.json
@@ -15,5 +15,10 @@
     },
     "autoload": {
         "psr-0": { "Doctrine\\Common\\Lexer\\": "lib/" }
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.0.x-dev"
+        }
     }
 }
diff --git a/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
index eb6cf7c022ebf9b35c9b70f7bfdf6e6a1afb874b..399a55230b0871e19fea7c5d2a6466a08d6fcd43 100644
--- a/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
+++ b/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
@@ -22,35 +22,58 @@
 /**
  * Base class for writing simple lexers, i.e. for creating small DSLs.
  *
- * @since   2.0
- * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author  Jonathan Wage <jonwage@gmail.com>
- * @author  Roman Borschel <roman@code-factory.org>
+ * @since  2.0
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
+ * @author Jonathan Wage <jonwage@gmail.com>
+ * @author Roman Borschel <roman@code-factory.org>
  */
 abstract class AbstractLexer
 {
     /**
-     * @var array Array of scanned tokens
+     * Lexer original input string.
+     *
+     * @var string
+     */
+    private $input;
+
+    /**
+     * Array of scanned tokens.
+     *
+     * Each token is an associative array containing three items:
+     *  - 'value'    : the string value of the token in the input string
+     *  - 'type'     : the type of the token (identifier, numeric, string, input
+     *                 parameter, none)
+     *  - 'position' : the position of the token in the input string
+     *
+     * @var array
      */
     private $tokens = array();
 
     /**
-     * @var integer Current lexer position in input string
+     * Current lexer position in input string.
+     *
+     * @var integer
      */
     private $position = 0;
 
     /**
-     * @var integer Current peek of current lexer position
+     * Current peek of current lexer position.
+     *
+     * @var integer
      */
     private $peek = 0;
 
     /**
-     * @var array The next token in the input.
+     * The next token in the input.
+     *
+     * @var array
      */
     public $lookahead;
 
     /**
-     * @var array The last matched/seen token.
+     * The last matched/seen token.
+     *
+     * @var array
      */
     public $token;
 
@@ -61,16 +84,22 @@ abstract class AbstractLexer
      * Any unprocessed tokens from any previous input are lost.
      *
      * @param string $input The input to be tokenized.
+     *
+     * @return void
      */
     public function setInput($input)
     {
+        $this->input  = $input;
         $this->tokens = array();
+
         $this->reset();
         $this->scan($input);
     }
 
     /**
      * Resets the lexer.
+     *
+     * @return void
      */
     public function reset()
     {
@@ -82,6 +111,8 @@ public function reset()
 
     /**
      * Resets the peek pointer to 0.
+     *
+     * @return void
      */
     public function resetPeek()
     {
@@ -91,17 +122,32 @@ public function resetPeek()
     /**
      * Resets the lexer position on the input to the given position.
      *
-     * @param integer $position Position to place the lexical scanner
+     * @param integer $position Position to place the lexical scanner.
+     *
+     * @return void
      */
     public function resetPosition($position = 0)
     {
         $this->position = $position;
     }
 
+    /**
+     * Retrieve the original lexer's input until a given position. 
+     *
+     * @param integer $position
+     *
+     * @return string
+     */
+    public function getInputUntilPosition($position)
+    {
+        return substr($this->input, 0, $position);
+    }
+
     /**
      * Checks whether a given token matches the current lookahead.
      *
      * @param integer|string $token
+     *
      * @return boolean
      */
     public function isNextToken($token)
@@ -110,9 +156,10 @@ public function isNextToken($token)
     }
 
     /**
-     * Checks whether any of the given tokens matches the current lookahead
+     * Checks whether any of the given tokens matches the current lookahead.
      *
      * @param array $tokens
+     *
      * @return boolean
      */
     public function isNextTokenAny(array $tokens)
@@ -123,13 +170,7 @@ public function isNextTokenAny(array $tokens)
     /**
      * Moves to the next token in the input string.
      *
-     * A token is an associative array containing three items:
-     *  - 'value'    : the string value of the token in the input string
-     *  - 'type'     : the type of the token (identifier, numeric, string, input
-     *                 parameter, none)
-     *  - 'position' : the position of the token in the input string
-     *
-     * @return array|null the next token; null if there is no more tokens left
+     * @return boolean
      */
     public function moveNext()
     {
@@ -145,6 +186,8 @@ public function moveNext()
      * Tells the lexer to skip input tokens until it sees a token with the given value.
      *
      * @param string $type The token type to skip until.
+     *
+     * @return void
      */
     public function skipUntil($type)
     {
@@ -154,10 +197,11 @@ public function skipUntil($type)
     }
 
     /**
-     * Checks if given value is identical to the given token
+     * Checks if given value is identical to the given token.
      *
-     * @param mixed $value
+     * @param mixed   $value
      * @param integer $token
+     *
      * @return boolean
      */
     public function isA($value, $token)
@@ -168,7 +212,7 @@ public function isA($value, $token)
     /**
      * Moves the lookahead token forward.
      *
-     * @return array | null The next token or NULL if there are no more tokens ahead.
+     * @return array|null The next token or NULL if there are no more tokens ahead.
      */
     public function peek()
     {
@@ -194,15 +238,21 @@ public function glimpse()
     /**
      * Scans the input string for tokens.
      *
-     * @param string $input a query string
+     * @param string $input A query string.
+     *
+     * @return void
      */
     protected function scan($input)
     {
         static $regex;
 
         if ( ! isset($regex)) {
-            $regex = '/(' . implode(')|(', $this->getCatchablePatterns()) . ')|'
-                   . implode('|', $this->getNonCatchablePatterns()) . '/i';
+            $regex = sprintf(
+                '/(%s)|%s/%s',
+                implode(')|(', $this->getCatchablePatterns()),
+                implode('|', $this->getNonCatchablePatterns()),
+                $this->getModifiers()
+            );
         }
 
         $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;
@@ -224,6 +274,7 @@ protected function scan($input)
      * Gets the literal for a given token.
      *
      * @param integer $token
+     *
      * @return string
      */
     public function getLiteral($token)
@@ -241,6 +292,16 @@ public function getLiteral($token)
         return $token;
     }
 
+    /**
+     * Regex modifiers
+     *
+     * @return string
+     */
+    protected function getModifiers()
+    {
+        return 'i';
+    }
+
     /**
      * Lexical catchable patterns.
      *
@@ -259,6 +320,7 @@ abstract protected function getNonCatchablePatterns();
      * Retrieve token type. Also processes the token value if necessary.
      *
      * @param string $value
+     *
      * @return integer
      */
     abstract protected function getType(&$value);