php-parser/test/code/scalar/docString.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

67 lines
995 B
Plaintext

Nowdoc and heredoc strings
-----
<?php
// empty strings
<<<'EOS'
EOS;
<<<EOS
EOS;
// constant encapsed strings
<<<'EOS'
Test '" $a \n
EOS;
<<<EOS
Test '" \$a \n
EOS;
// encapsed strings
<<<EOS
Test $a
EOS;
<<<EOS
Test $a and $b->c test
EOS;
// comment to force line break before EOF
-----
array(
0: Scalar_String(
value:
)
1: Scalar_String(
value:
)
2: Scalar_String(
value: Test '" $a \n
)
3: Scalar_String(
value: Test '" $a
)
4: Scalar_Encapsed(
parts: array(
0: Test
1: Expr_Variable(
name: a
)
)
)
5: Scalar_Encapsed(
parts: array(
0: Test
1: Expr_Variable(
name: a
)
2: and
3: Expr_PropertyFetch(
var: Expr_Variable(
name: b
)
name: c
)
4: test
)
)
)