/** * @param string $tplName * @param string $source * @return string target codes */ public function compile($tplName, $source) { $lexer = new Lexer(); $tokenStream = $lexer->lex($source, $tplName); $parser = new Parser\Parser(); $nodeTree = $parser->parse($tokenStream); return $nodeTree->compile(); }
/** * Parses the given regular expression and returns its structure * * @param string $regex The regular expression to parse * * @return Pattern\Regex * * @static */ public static function parse($regex) { $parser = new Parser\Parser($regex); return $parser->parse(); }
while ($i < $count && $tokens[$i - 1][0] == T_NS_SEPARATOR) { $context .= '\\' . $tokens[$i][1]; $i += 2; } continue; } if (($tokens[$i - 2][0] == T_CLASS || $tokens[$i - 2][0] == T_INTERFACE) && $tokens[$i - 1][0] == T_WHITESPACE && $tokens[$i][0] == T_STRING) { $class_name = $tokens[$i][1]; $classArray[$context . '\\' . $class_name] = $relativeToOutput; } } } $info = new Program\createAutoloadFileProgramInfo(); $parser = new Parser\Parser($info); $usage = new Parser\UsageFormat(); $result = $parser->parse($_SERVER['argv'], 1); if (!$result()) { if ($result->displayHelp()) { echo $info->usage($usage); exit(0); } foreach ($result->getMessages() as $m) { echo ' - ' . $m . "\n"; } $usage->format = Parser\UsageFormat::SHORT_TEXT; echo $info->usage($usage); exit(1); } if ($result->displayHelp()) { echo $info->usage($usage); exit(0);