mirror of
https://github.com/danog/PHP-Parser.git
synced 2024-11-27 12:24:39 +01:00
a6846e3b71
The parser will now always generate Identifier nodes (for non-namespaced identifiers). This obsoletes the useIdentifierNodes parser option. Node constructors still accepts strings and will implicitly create an Identifier wrapper. Identifier implement __toString(), so that outside of strict-mode many things continue to work without changes.
130 lines
2.5 KiB
Plaintext
130 lines
2.5 KiB
Plaintext
Blockless statements for if/for/etc
|
|
-----
|
|
<?php
|
|
|
|
if ($a) $A;
|
|
elseif ($b) $B;
|
|
else $C;
|
|
|
|
for (;;) $foo;
|
|
|
|
foreach ($a as $b) $AB;
|
|
|
|
while ($a) $A;
|
|
|
|
do $A; while ($a);
|
|
|
|
declare (a='b') $C;
|
|
-----
|
|
array(
|
|
0: Stmt_If(
|
|
cond: Expr_Variable(
|
|
name: a
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: A
|
|
)
|
|
)
|
|
)
|
|
elseifs: array(
|
|
0: Stmt_ElseIf(
|
|
cond: Expr_Variable(
|
|
name: b
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: B
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
else: Stmt_Else(
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: C
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
1: Stmt_For(
|
|
init: array(
|
|
)
|
|
cond: array(
|
|
)
|
|
loop: array(
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: foo
|
|
)
|
|
)
|
|
)
|
|
)
|
|
2: Stmt_Foreach(
|
|
expr: Expr_Variable(
|
|
name: a
|
|
)
|
|
keyVar: null
|
|
byRef: false
|
|
valueVar: Expr_Variable(
|
|
name: b
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: AB
|
|
)
|
|
)
|
|
)
|
|
)
|
|
3: Stmt_While(
|
|
cond: Expr_Variable(
|
|
name: a
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: A
|
|
)
|
|
)
|
|
)
|
|
)
|
|
4: Stmt_Do(
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: A
|
|
)
|
|
)
|
|
)
|
|
cond: Expr_Variable(
|
|
name: a
|
|
)
|
|
)
|
|
5: Stmt_Declare(
|
|
declares: array(
|
|
0: Stmt_DeclareDeclare(
|
|
key: Identifier(
|
|
name: a
|
|
)
|
|
value: Scalar_String(
|
|
value: b
|
|
)
|
|
)
|
|
)
|
|
stmts: array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Variable(
|
|
name: C
|
|
)
|
|
)
|
|
)
|
|
)
|
|
) |