static function getParser($file) { $parser = new Patchwork_PHP_Parser_Dumper(); $parser = new Patchwork_PHP_Parser_ShortOpenEcho($parser); $parser = new Patchwork_PHP_Parser_Normalizer($parser); new Patchwork_PHP_Parser_BracketWatcher($parser); new Patchwork_PHP_Parser_CurlyDollarNormalizer($parser); new Patchwork_PHP_Parser_ShortArray($parser); $parser = new Patchwork_PHP_Parser_BinaryNumber($parser); $parser = new Patchwork_PHP_Parser_Backport54Tokens($parser); new Patchwork_PHP_Parser_Backport53Tokens($parser); new Patchwork_PHP_Parser_StringInfo($parser); new Patchwork_PHP_Parser_NamespaceInfo($parser); new Patchwork_PHP_Parser_ScopeInfo($parser); new Patchwork_PHP_Parser_ClassInfo($parser); new Patchwork_PHP_Parser_ConstantInliner($parser, realpath($file)); new Patchwork_PHP_Parser_Scream($parser); return $parser; } } $parser = Preprocessor::getParser($file); $code = file_get_contents($file); $code = $parser->parse($code); echo "\nResulting code\n==============\n"; echo $code, "\n"; if ($errors = $parser->getErrors()) { echo "Reported errors\n===============\n"; foreach ($errors as $e) { echo "Line {$e['line']}: {$e['message']}\n"; } }