mirror of
https://github.com/danog/PHP-Parser.git
synced 2024-12-14 18:36:59 +01:00
db3181aff1
The parser didn't account for the additional newline after the content of doc strings, which is left there by the tokenizer for some reason. Additoinally esacape sequences were parsed in nowdoc strings. Additionally this contains some minor changes to the grammar: Some _list nonterminals were refactored to have the possible single elements in a reparate rule and only assemble those single elements. (This reduces duplication and gives better assignment of line number context.)
50 lines
1.2 KiB
Plaintext
50 lines
1.2 KiB
Plaintext
Special function variables
|
|
-----
|
|
<?php
|
|
|
|
function a() {
|
|
global $a, ${'b'}, $$c;
|
|
static $c, $d = 'e';
|
|
}
|
|
-----
|
|
array(
|
|
0: Stmt_Function(
|
|
byRef: false
|
|
params: array(
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Global(
|
|
vars: array(
|
|
0: Expr_Variable(
|
|
name: a
|
|
)
|
|
1: Expr_Variable(
|
|
name: Scalar_String(
|
|
value: b
|
|
)
|
|
)
|
|
2: Expr_Variable(
|
|
name: Expr_Variable(
|
|
name: c
|
|
)
|
|
)
|
|
)
|
|
)
|
|
1: Stmt_Static(
|
|
vars: array(
|
|
0: Stmt_StaticVar(
|
|
name: c
|
|
default: null
|
|
)
|
|
1: Stmt_StaticVar(
|
|
name: d
|
|
default: Scalar_String(
|
|
value: e
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
name: a
|
|
)
|
|
) |