=========================================================== .___ __ __ _________________ __ __ __| _/|__|/ |_ / ___\_` __ \__ \ | | \/ __ | | \\_ __\ / /_/ > | \// __ \| | / /_/ | | || | \___ /|__| (____ /____/\____ | |__||__| /_____/ \/ \/ grep rough audit - static analysis tool v2.8 written by @Wireghoul =================================[justanotherhacker.com]=== php-parser-4.10.2/CHANGELOG.md-108-* [PHP 8.0] Added support for constructor promotion. The parameter visibility is stored in php-parser-4.10.2/CHANGELOG.md:109: `Node\Param::$flags`. php-parser-4.10.2/CHANGELOG.md-110- ############################################## php-parser-4.10.2/CHANGELOG.md-126-* [PHP 8.0] Added support for catching without capturing the exception. This means that php-parser-4.10.2/CHANGELOG.md:127: `Catch_::$var` may now be null. php-parser-4.10.2/CHANGELOG.md-128- ############################################## php-parser-4.10.2/CHANGELOG.md-144-* Allowed arbitrary expressions in `isset()` and `list()`, rather than just variables. php-parser-4.10.2/CHANGELOG.md:145: In particular, this allows `isset(($x))`, which is legal PHP code. php-parser-4.10.2/CHANGELOG.md-146-* [PHP 8.0] Add support for [variable syntax tweaks RFC](https://wiki.php.net/rfc/variable_syntax_tweaks). ############################################## php-parser-4.10.2/CHANGELOG.md-295-* Support error recovery for parameters without variable (`function (Type ) {}`). php-parser-4.10.2/CHANGELOG.md:296:* Support error recovery for functions without body (`function ($foo)`). php-parser-4.10.2/CHANGELOG.md-297- ############################################## php-parser-4.10.2/CHANGELOG.md-437- php-parser-4.10.2/CHANGELOG.md:438:* Fixed pretty printing of `-(-$x)` and `+(+$x)`. (#459) php-parser-4.10.2/CHANGELOG.md-439- ############################################## php-parser-4.10.2/CHANGELOG.md-484- php-parser-4.10.2/CHANGELOG.md:485:* `Name::$parts` is no longer deprecated. php-parser-4.10.2/CHANGELOG.md-486- ############################################## php-parser-4.10.2/CHANGELOG.md-535- php-parser-4.10.2/CHANGELOG.md:536:* In `"$foo[0]"` the `0` is now parsed as an `LNumber` rather than `String`. (#325) php-parser-4.10.2/CHANGELOG.md-537-* Ensure integers and floats are always pretty printed preserving semantics, even if the particular ############################################## php-parser-4.10.2/CHANGELOG.md-543- php-parser-4.10.2/CHANGELOG.md:544:* [PHP 7.1] Added support for negative interpolated offsets: `"$foo[-1]"` php-parser-4.10.2/CHANGELOG.md-545-* Added `preserveOriginalNames` option to `NameResolver`. If this option is enabled, an ############################################## php-parser-4.10.2/CHANGELOG.md-617-* Removed support for node cloning in the `NodeTraverser`. php-parser-4.10.2/CHANGELOG.md:618:* Removed `$separator` argument from `Name::toString()`. php-parser-4.10.2/CHANGELOG.md-619-* Removed `throw_on_error` parser option and `Parser::getErrors()` method. Use the `ErrorHandler` ############################################## php-parser-4.10.2/CHANGELOG.md-632- preceding closing tag contained a newline. The pretty printer honors this attribute. php-parser-4.10.2/CHANGELOG.md:633:* Partial parsing of `$obj->` (with missing property name) is now supported in error recovery mode. php-parser-4.10.2/CHANGELOG.md-634-* The error recovery mode is now exposed in the `php-parse` script through the `--with-recovery` ############################################## php-parser-4.10.2/CHANGELOG.md-638- php-parser-4.10.2/CHANGELOG.md:639:* The PHP 7 parser will now generate a parse error for `$var =& new Obj` assignments. php-parser-4.10.2/CHANGELOG.md-640-* Comments on free-standing code blocks will now be retained as comments on the first statement in ############################################## php-parser-4.10.2/CHANGELOG.md-704- be handled more gracefully. php-parser-4.10.2/CHANGELOG.md:705:* The PHP 7 parser will now generate a parse error for `$var =& new Obj` assignments. php-parser-4.10.2/CHANGELOG.md-706-* Comments on free-standing code blocks will no be retained as comments on the first statement in ############################################## php-parser-4.10.2/README.md-132- php-parser-4.10.2/README.md:133:This gives us an AST where the `Function_::$stmts` are empty: php-parser-4.10.2/README.md-134- ############################################## php-parser-4.10.2/UPGRADE-3.0.md-80-The PHP 7 parser is a superset of the PHP 5 parser, with the exceptions that `=& new` and php-parser-4.10.2/UPGRADE-3.0.md:81:`global $$foo->bar` are not supported (other differences are in representation only). The PHP 7 php-parser-4.10.2/UPGRADE-3.0.md-82-parser will be able to recover from the error in both cases. For this reason, this change will ############################################## php-parser-4.10.2/UPGRADE-3.0.md-139- * `Parser::getErrors()`. Use `ErrorHandler\Collecting` instead. php-parser-4.10.2/UPGRADE-3.0.md:140: * `$separator` argument of `Name::toString()`. Use `strtr()` instead, if you really need it. php-parser-4.10.2/UPGRADE-3.0.md:141: * `$cloneNodes` argument of `NodeTraverser::__construct()`. Explicitly clone nodes in the visitor php-parser-4.10.2/UPGRADE-3.0.md-142- instead. ############################################## php-parser-4.10.2/UPGRADE-4.0.md-13-* Many subnodes that previously held simple strings now store `Identifier` nodes instead (or php-parser-4.10.2/UPGRADE-4.0.md:14: `VarLikeIdentifier` nodes if they have form `$ident`). The constructors of the affected nodes will php-parser-4.10.2/UPGRADE-4.0.md-15- automatically convert strings to `Identifier`s and `Identifier`s implement `__toString()`. As such ############################################## php-parser-4.10.2/UPGRADE-4.0.md-19- php-parser-4.10.2/UPGRADE-4.0.md:20: * `Const_::$name` php-parser-4.10.2/UPGRADE-4.0.md:21: * `NullableType::$type` (for simple types) php-parser-4.10.2/UPGRADE-4.0.md:22: * `Param::$type` (for simple types) php-parser-4.10.2/UPGRADE-4.0.md:23: * `Expr\ClassConstFetch::$name` php-parser-4.10.2/UPGRADE-4.0.md:24: * `Expr\Closure::$returnType` (for simple types) php-parser-4.10.2/UPGRADE-4.0.md:25: * `Expr\MethodCall::$name` php-parser-4.10.2/UPGRADE-4.0.md:26: * `Expr\PropertyFetch::$name` php-parser-4.10.2/UPGRADE-4.0.md:27: * `Expr\StaticCall::$name` php-parser-4.10.2/UPGRADE-4.0.md:28: * `Expr\StaticPropertyFetch::$name` (uses `VarLikeIdentifier`) php-parser-4.10.2/UPGRADE-4.0.md:29: * `Stmt\Class_::$name` php-parser-4.10.2/UPGRADE-4.0.md:30: * `Stmt\ClassMethod::$name` php-parser-4.10.2/UPGRADE-4.0.md:31: * `Stmt\ClassMethod::$returnType` (for simple types) php-parser-4.10.2/UPGRADE-4.0.md:32: * `Stmt\Function_::$name` php-parser-4.10.2/UPGRADE-4.0.md:33: * `Stmt\Function_::$returnType` (for simple types) php-parser-4.10.2/UPGRADE-4.0.md:34: * `Stmt\Goto_::$name` php-parser-4.10.2/UPGRADE-4.0.md:35: * `Stmt\Interface_::$name` php-parser-4.10.2/UPGRADE-4.0.md:36: * `Stmt\Label::$name` php-parser-4.10.2/UPGRADE-4.0.md:37: * `Stmt\PropertyProperty::$name` (uses `VarLikeIdentifier`) php-parser-4.10.2/UPGRADE-4.0.md:38: * `Stmt\TraitUseAdaptation\Alias::$method` php-parser-4.10.2/UPGRADE-4.0.md:39: * `Stmt\TraitUseAdaptation\Alias::$newName` php-parser-4.10.2/UPGRADE-4.0.md:40: * `Stmt\TraitUseAdaptation\Precedence::$method` php-parser-4.10.2/UPGRADE-4.0.md:41: * `Stmt\Trait_::$name` php-parser-4.10.2/UPGRADE-4.0.md:42: * `Stmt\UseUse::$alias` php-parser-4.10.2/UPGRADE-4.0.md-43- ############################################## php-parser-4.10.2/UPGRADE-4.0.md-60- `pNoindent()`. Now no-indent is the default and newlines that require indentation should use php-parser-4.10.2/UPGRADE-4.0.md:61: `$this->nl`. php-parser-4.10.2/UPGRADE-4.0.md-62- ############################################## php-parser-4.10.2/doc/0_Introduction.markdown-16-a file. On the other hand the token stream is much harder to deal with for more complex analysis. php-parser-4.10.2/doc/0_Introduction.markdown:17:For example, an AST abstracts away the fact that, in PHP, variables can be written as `$foo`, but also php-parser-4.10.2/doc/0_Introduction.markdown:18:as `$$bar`, `${'foobar'}` or even `${!${''}=barfoo()}`. You don't have to worry about recognizing php-parser-4.10.2/doc/0_Introduction.markdown-19-all the different syntaxes from a stream of tokens. ############################################## php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-158- php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:159:Looking at the node dump above, you can see that `$stmts` for this example code is an array of two php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-160-nodes, a `Stmt_Function` and a `Stmt_Expression`. The corresponding class names are: ############################################## php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-175- * `PhpParser\Node\Expr`s are expression nodes, i.e. language constructs that return a value php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:176: and thus can occur in other expressions. Examples of expressions are `$var` php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-177- (`PhpParser\Node\Expr\Variable`) and `func()` (`PhpParser\Node\Expr\FuncCall`). ############################################## php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-189-Every node has a (possibly zero) number of subnodes. You can access subnodes by writing php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:190:`$node->subNodeName`. The `Stmt\Echo_` node has only one subnode `exprs`. So in order to access it php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:191:in the above example you would write `$stmts[0]->exprs`. If you wanted to access the name of the function php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:192:call, you would write `$stmts[0]->exprs[1]->name`. php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-193- ############################################## php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-452-possible, so we don't need to do that. We only need to create a string with the name parts separated php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:453:by underscores instead of backslashes. This is what `str_replace('\\', '_', $node->toString())` does. (If you want to php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown:454:create a name with backslashes either write `$node->toString()` or `(string) $node`.) Then we create php-parser-4.10.2/doc/2_Usage_of_basic_components.markdown-455-a new name from the string and return it. Returning a new node replaces the old node. ############################################## php-parser-4.10.2/doc/component/AST_builders.markdown-117- php-parser-4.10.2/doc/component/AST_builders.markdown:118: * `val($value)`: Creates an AST node for a literal value like `42` or `[1, 2, 3]`. php-parser-4.10.2/doc/component/AST_builders.markdown:119: * `var($name)`: Creates variable node. php-parser-4.10.2/doc/component/AST_builders.markdown:120: * `args(array $args)`: Creates an array of function/method arguments, including the required `Arg` php-parser-4.10.2/doc/component/AST_builders.markdown-121- wrappers. Also converts literals to AST nodes. php-parser-4.10.2/doc/component/AST_builders.markdown:122: * `funcCall($name, array $args = [])`: Create a function call node. Converts `$name` to a `Name` php-parser-4.10.2/doc/component/AST_builders.markdown-123- node and normalizes arguments. php-parser-4.10.2/doc/component/AST_builders.markdown:124: * `methodCall(Expr $var, $name, array $args = [])`: Create a method call node. Converts `$name` to php-parser-4.10.2/doc/component/AST_builders.markdown-125- an `Identifier` node and normalizes arguments. php-parser-4.10.2/doc/component/AST_builders.markdown:126: * `staticCall($class, $name, array $args = [])`: Create a static method call node. Converts php-parser-4.10.2/doc/component/AST_builders.markdown:127: `$class` to a `Name` node, `$name` to an `Identifier` node and normalizes arguments. php-parser-4.10.2/doc/component/AST_builders.markdown:128: * `new($class, array $args = [])`: Create a "new" (object creation) node. Converts `$class` to a php-parser-4.10.2/doc/component/AST_builders.markdown-129- `Name` node. php-parser-4.10.2/doc/component/AST_builders.markdown:130: * `constFetch($name)`: Create a constant fetch node. Converts `$name` to a `Name` node. php-parser-4.10.2/doc/component/AST_builders.markdown:131: * `classConstFetch($class, $name)`: Create a class constant fetch node. Converts `$class` to a php-parser-4.10.2/doc/component/AST_builders.markdown:132: `Name` node and `$name` to an `Identifier` node. php-parser-4.10.2/doc/component/AST_builders.markdown:133: * `propertyFetch($var, $name)`: Creates a property fetch node. Converts `$name` to an `Identifier` php-parser-4.10.2/doc/component/AST_builders.markdown-134- node. php-parser-4.10.2/doc/component/AST_builders.markdown:135: * `concat(...$exprs)`: Create a tree of `BinaryOp\Concat` nodes for the given expressions. php-parser-4.10.2/doc/component/AST_builders.markdown-136- ############################################## php-parser-4.10.2/doc/component/Error_handling.markdown-29- php-parser-4.10.2/doc/component/Error_handling.markdown:30:Before using column information, its availability needs to be checked with `$e->hasColumnInfo()`, as the precise php-parser-4.10.2/doc/component/Error_handling.markdown-31-location of an error cannot always be determined. The methods for retrieving column information also have to be passed ############################################## php-parser-4.10.2/doc/component/FAQ.markdown-26- php-parser-4.10.2/doc/component/FAQ.markdown:27:After running this visitor, the parent node can be obtained through `$node->getAttribute('parent')`. php-parser-4.10.2/doc/component/FAQ.markdown-28- ############################################## php-parser-4.10.2/doc/component/FAQ.markdown-49- php-parser-4.10.2/doc/component/FAQ.markdown:50:After running this visitor, the parent node can be obtained through `$node->getAttribute('parent')`, php-parser-4.10.2/doc/component/FAQ.markdown:51:the previous node can be obtained through `$node->getAttribute('previous')`, and the next node can be php-parser-4.10.2/doc/component/FAQ.markdown:52:obtained through `$node->getAttribute('next')`. php-parser-4.10.2/doc/component/FAQ.markdown-53- ############################################## php-parser-4.10.2/doc/component/Lexer.markdown-12- php-parser-4.10.2/doc/component/Lexer.markdown:13:The two default lexers accept an `$options` array in the constructor. Currently only the `'usedAttributes'` option is php-parser-4.10.2/doc/component/Lexer.markdown-14-supported, which allows you to specify which attributes will be added to the AST nodes. The attributes can then be php-parser-4.10.2/doc/component/Lexer.markdown:15:accessed using `$node->getAttribute()`, `$node->setAttribute()`, `$node->hasAttribute()` and `$node->getAttributes()` php-parser-4.10.2/doc/component/Lexer.markdown-16-methods. A sample options array: ############################################## php-parser-4.10.2/doc/component/Lexer.markdown-29- between the previous non-discarded token and the current one. Use of this attribute is required for the php-parser-4.10.2/doc/component/Lexer.markdown:30: `$node->getComments()` and `$node->getDocComment()` methods to work. The attribute is also needed if you wish the pretty php-parser-4.10.2/doc/component/Lexer.markdown-31- printer to retain comments present in the original code. php-parser-4.10.2/doc/component/Lexer.markdown:32: * `startLine`: Line in which the node starts. This attribute is required for the `$node->getLine()` to work. It is also php-parser-4.10.2/doc/component/Lexer.markdown-33- required if syntax errors should contain line number information. php-parser-4.10.2/doc/component/Lexer.markdown:34: * `endLine`: Line in which the node ends. Required for `$node->getEndLine()`. php-parser-4.10.2/doc/component/Lexer.markdown:35: * `startTokenPos`: Offset into the token array of the first token in the node. Required for `$node->getStartTokenPos()`. php-parser-4.10.2/doc/component/Lexer.markdown:36: * `endTokenPos`: Offset into the token array of the last token in the node. Required for `$node->getEndTokenPos()`. php-parser-4.10.2/doc/component/Lexer.markdown:37: * `startFilePos`: Offset into the code string of the first character that is part of the node. Required for `$node->getStartFilePos()`. php-parser-4.10.2/doc/component/Lexer.markdown:38: * `endFilePos`: Offset into the code string of the last character that is part of the node. Required for `$node->getEndFilePos()`. php-parser-4.10.2/doc/component/Lexer.markdown-39- ############################################## php-parser-4.10.2/doc/component/Lexer.markdown-42-> **Note:** The example in this section is outdated in that this information is directly available in the AST: While php-parser-4.10.2/doc/component/Lexer.markdown:43:> `$property->isPublic()` does not distinguish between `public` and `var`, directly checking `$property->flags` for php-parser-4.10.2/doc/component/Lexer.markdown:44:> the `$property->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0` allows making this distinction without resorting to php-parser-4.10.2/doc/component/Lexer.markdown-45-> tokens. However the general idea behind the example still applies in other cases. ############################################## php-parser-4.10.2/doc/component/Lexer.markdown-121-tokens are available it must return `0`, which is the ID of the `EOF` token. Furthermore the string content of the php-parser-4.10.2/doc/component/Lexer.markdown:122:token should be written into the by-reference `$value` parameter (which will then be available as `$n` in the parser). php-parser-4.10.2/doc/component/Lexer.markdown-123- ############################################## php-parser-4.10.2/doc/component/Lexer.markdown-125- php-parser-4.10.2/doc/component/Lexer.markdown:126:The other two by-ref variables `$startAttributes` and `$endAttributes` define which attributes will eventually be php-parser-4.10.2/doc/component/Lexer.markdown:127:assigned to the generated nodes: The parser will take the `$startAttributes` from the first token which is part of the php-parser-4.10.2/doc/component/Lexer.markdown:128:node and the `$endAttributes` from the last token that is part of the node. php-parser-4.10.2/doc/component/Lexer.markdown-129- php-parser-4.10.2/doc/component/Lexer.markdown:130:E.g. if the tokens `T_FUNCTION T_STRING ... '{' ... '}'` constitute a node, then the `$startAttributes` from the php-parser-4.10.2/doc/component/Lexer.markdown:131:`T_FUNCTION` token will be taken and the `$endAttributes` from the `'}'` token. php-parser-4.10.2/doc/component/Lexer.markdown-132- ############################################## php-parser-4.10.2/doc/component/Name_resolution.markdown-77- php-parser-4.10.2/doc/component/Name_resolution.markdown:78:The `$type` parameters accept on of the `Stmt\Use_::TYPE_*` constants, which represent the three php-parser-4.10.2/doc/component/Name_resolution.markdown-79-basic symbol types in PHP (functions, constants and everything else). ############################################## php-parser-4.10.2/doc/component/Name_resolution.markdown-85-as class names inside doc comments. A visitor running in parallel with the name resolver can access php-parser-4.10.2/doc/component/Name_resolution.markdown:86:the name context using `$nameResolver->getNameContext()`. Alternatively a visitor can use an php-parser-4.10.2/doc/component/Name_resolution.markdown-87-independent context and explicitly feed `Namespace` and `Use` nodes to it. ############################################## php-parser-4.10.2/doc/component/Walking_the_AST.markdown-127- php-parser-4.10.2/doc/component/Walking_the_AST.markdown:128:Now `$a && $b` will be replaced by `!($a && $b)`. Then the traverser will go into the first (and php-parser-4.10.2/doc/component/Walking_the_AST.markdown:129:only) child of `!($a && $b)`, which is `$a && $b`. The transformation applies again and we end up php-parser-4.10.2/doc/component/Walking_the_AST.markdown:130:with `!!($a && $b)`. This will continue until PHP hits the memory limit. php-parser-4.10.2/doc/component/Walking_the_AST.markdown-131- ############################################## php-parser-4.10.2/doc/component/Walking_the_AST.markdown-147- php-parser-4.10.2/doc/component/Walking_the_AST.markdown:148:On the other hand, removing a `Node\Expr` does not make sense: If you have `$a * $b`, there is no php-parser-4.10.2/doc/component/Walking_the_AST.markdown:149:meaningful way in which the `$a` part could be removed. If you want to remove an expression, you php-parser-4.10.2/doc/component/Walking_the_AST.markdown-150-generally want to remove it together with a surrounding expression statement: ############################################## php-parser-4.10.2/doc/component/Walking_the_AST.markdown-164-This example will remove all calls to `var_dump()` which occur as expression statements. This means php-parser-4.10.2/doc/component/Walking_the_AST.markdown:165:that `var_dump($a);` will be removed, but `if (var_dump($a))` will not be removed (and there is no php-parser-4.10.2/doc/component/Walking_the_AST.markdown-166-obvious way in which it can be removed). ############################################## php-parser-4.10.2/grammar/rebuildParsers.php-232-function execCmd($cmd) { php-parser-4.10.2/grammar/rebuildParsers.php:233: $output = trim(shell_exec("$cmd 2>&1")); php-parser-4.10.2/grammar/rebuildParsers.php-234- if ($output !== "") { ############################################## php-parser-4.10.2/lib/PhpParser/Parser/Php5.php-2066- 374 => function ($stackPos) { php-parser-4.10.2/lib/PhpParser/Parser/Php5.php:2067: $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); php-parser-4.10.2/lib/PhpParser/Parser/Php5.php-2068- }, ############################################## php-parser-4.10.2/lib/PhpParser/Parser/Php7.php-2288- 429 => function ($stackPos) { php-parser-4.10.2/lib/PhpParser/Parser/Php7.php:2289: $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); php-parser-4.10.2/lib/PhpParser/Parser/Php7.php-2290- }, ############################################## php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php-532- php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php:533: protected function pExpr_Eval(Expr\Eval_ $node) { php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php:534: return 'eval(' . $this->p($node->expr) . ')'; php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php-535- } php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php-536- php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php:537: protected function pExpr_Include(Expr\Include_ $node) { php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php-538- static $map = [ ############################################## php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php-607- php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php:608: protected function pExpr_ShellExec(Expr\ShellExec $node) { php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php:609: return '`' . $this->pEncapsList($node->parts, '`') . '`'; php-parser-4.10.2/lib/PhpParser/PrettyPrinter/Standard.php-610- } ############################################## php-parser-4.10.2/test/PhpParser/Builder/InterfaceTest.php-95- php-parser-4.10.2/test/PhpParser/Builder/InterfaceTest.php:96: eval($this->dump($contract)); php-parser-4.10.2/test/PhpParser/Builder/InterfaceTest.php-97- ############################################## php-parser-4.10.2/test/PhpParser/CodeTestParser.php-13- function($matches) { php-parser-4.10.2/test/PhpParser/CodeTestParser.php:14: return eval('return ' . $matches[1] . ';'); php-parser-4.10.2/test/PhpParser/CodeTestParser.php-15- }, ############################################## php-parser-4.10.2/test/code/parser/expr/shellExec.test-5-`test`; php-parser-4.10.2/test/code/parser/expr/shellExec.test:6:`test $A`; php-parser-4.10.2/test/code/parser/expr/shellExec.test-7-`test \``; ############################################## php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test-81-`foo`; php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test:82:`foo$a`; php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test:83:`foo{$a}bar`; php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test-84-`\`\'\"`; ############################################## php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test-155-`foo`; php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test:156:`foo{$a}`; php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test:157:`foo{$a}bar`; php-parser-4.10.2/test/code/prettyPrinter/expr/literals.test-158-`\`\\'\\"`;