1
0
mirror of https://github.com/danog/PHP-Parser.git synced 2024-11-27 04:14:44 +01:00
PHP-Parser/test/code/stmt/if.test
nikic db3181aff1 More test coverage and doc string parsing fixes
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.)
2011-12-04 16:52:43 +01:00

95 lines
1.7 KiB
Plaintext

If/Elseif/Else
-----
<?php
if ($a) {}
elseif ($b) {}
elseif ($c) {}
else {}
if ($a) {} // without else
if ($a):
elseif ($b):
elseif ($c):
else :
endif;
if ($a): endif; // without else
-----
array(
0: Stmt_If(
stmts: array(
)
elseifs: array(
0: Stmt_ElseIf(
cond: Expr_Variable(
name: b
)
stmts: array(
)
)
1: Stmt_ElseIf(
cond: Expr_Variable(
name: c
)
stmts: array(
)
)
)
else: Stmt_Else(
stmts: array(
)
)
cond: Expr_Variable(
name: a
)
)
1: Stmt_If(
stmts: array(
)
elseifs: array(
)
else: null
cond: Expr_Variable(
name: a
)
)
2: Stmt_If(
stmts: array(
)
elseifs: array(
0: Stmt_ElseIf(
cond: Expr_Variable(
name: b
)
stmts: array(
)
)
1: Stmt_ElseIf(
cond: Expr_Variable(
name: c
)
stmts: array(
)
)
)
else: Stmt_Else(
stmts: array(
)
)
cond: Expr_Variable(
name: a
)
)
3: Stmt_If(
stmts: array(
)
elseifs: array(
)
else: null
cond: Expr_Variable(
name: a
)
)
)