Example #1
0
 /**
  * @param string $config
  * @return TokenIterator tokens
  * @throws ConfigException
  */
 public function lex($config)
 {
     $normalized = Strings::normalize($config);
     // remove meaningless leading spacing to simplify T_KEYWORD
     $simplified = Strings::replace($normalized, '~^\\s+~m', '');
     try {
         $tokens = $this->getTokenizer()->tokenize($simplified);
         return new TokenIterator($tokens);
     } catch (TokenizerException $e) {
         throw ConfigException::createFromLexerException($e);
     }
 }
Example #2
0
 /**
  * @param string|array $expected
  * @param string $type
  * @throws ConfigException
  */
 private function assertState($expected, $type)
 {
     if (!is_array($expected)) {
         $expected = [$expected];
     }
     if (!in_array($type, $expected, TRUE)) {
         $expectedFmt = implode(', ', $expected);
         throw ConfigException::createFromParser("Expected state {$expectedFmt} but is {$type}");
     }
 }