mirror of
https://github.com/danog/PHP-Parser.git
synced 2025-01-08 14:08:20 +01:00
e4b837e0c4
The list was getting unweildly. Also improve error message when parsing fails in pretty printer test and extend some tests.
156 lines
1.7 KiB
Plaintext
156 lines
1.7 KiB
Plaintext
Literals
|
|
-----
|
|
<?php
|
|
|
|
// magic constants
|
|
__LINE__;
|
|
__FILE__;
|
|
__DIR__;
|
|
__FUNCTION__;
|
|
__CLASS__;
|
|
__TRAIT__;
|
|
__METHOD__;
|
|
__NAMESPACE__;
|
|
|
|
// not actually literals, but close
|
|
null;
|
|
true;
|
|
false;
|
|
NULL;
|
|
TRUE;
|
|
FALSE;
|
|
|
|
// integers (normalized to decimal)
|
|
0;
|
|
11;
|
|
011;
|
|
0x11;
|
|
0b11;
|
|
|
|
// floats (normalized to ... something)
|
|
0.;
|
|
.0;
|
|
0.0;
|
|
0e1000;
|
|
1.0;
|
|
1e100;
|
|
1e1000;
|
|
1E-100;
|
|
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000;
|
|
378282246310005.0;
|
|
10000000000000002.0;
|
|
|
|
// strings (normalized to single quoted)
|
|
'a';
|
|
'a
|
|
b';
|
|
"a";
|
|
"a\nb";
|
|
'a\'b';
|
|
"a'b";
|
|
"a\b";
|
|
<<<'STR'
|
|
a\nb$a
|
|
{$b}
|
|
STR;
|
|
|
|
// strings (normalized to double quoted)
|
|
"$a";
|
|
"a$b";
|
|
"$a$b";
|
|
"$a $b";
|
|
"a${b}c";
|
|
"a{$b}c";
|
|
"a$a[b]c";
|
|
"\{$A}";
|
|
"\{ $A }";
|
|
"\\{$A}";
|
|
"\\{ $A }";
|
|
"{$$A}[B]";
|
|
"$$A[B]";
|
|
<<<STR
|
|
a\nb$a\n{$b}
|
|
STR;
|
|
|
|
// make sure indentation doesn't mess anything up
|
|
function foo()
|
|
{
|
|
"a\nb";
|
|
'a
|
|
b';
|
|
'a
|
|
b';
|
|
}
|
|
-----
|
|
// magic constants
|
|
__LINE__;
|
|
__FILE__;
|
|
__DIR__;
|
|
__FUNCTION__;
|
|
__CLASS__;
|
|
__TRAIT__;
|
|
__METHOD__;
|
|
__NAMESPACE__;
|
|
// not actually literals, but close
|
|
null;
|
|
true;
|
|
false;
|
|
NULL;
|
|
TRUE;
|
|
FALSE;
|
|
// integers (normalized to decimal)
|
|
0;
|
|
11;
|
|
9;
|
|
17;
|
|
3;
|
|
// floats (normalized to ... something)
|
|
0.0;
|
|
0.0;
|
|
0.0;
|
|
0.0;
|
|
1.0;
|
|
1.0E+100;
|
|
INF;
|
|
1.0E-100;
|
|
1.0E+84;
|
|
378282246310005.0;
|
|
10000000000000002.0;
|
|
// strings (normalized to single quoted)
|
|
'a';
|
|
'a
|
|
b';
|
|
'a';
|
|
'a
|
|
b';
|
|
'a\'b';
|
|
'a\'b';
|
|
'a\\b';
|
|
'a\\nb$a
|
|
{$b}';
|
|
// strings (normalized to double quoted)
|
|
"{$a}";
|
|
"a{$b}";
|
|
"{$a}{$b}";
|
|
"{$a} {$b}";
|
|
"a{$b}c";
|
|
"a{$b}c";
|
|
"a{$a['b']}c";
|
|
"\\{{$A}}";
|
|
"\\{ {$A} }";
|
|
"\\{$A}";
|
|
"\\{ {$A} }";
|
|
"{${$A}}[B]";
|
|
"\${$A['B']}";
|
|
"a\nb{$a}\n{$b}";
|
|
// make sure indentation doesn't mess anything up
|
|
function foo()
|
|
{
|
|
'a
|
|
b';
|
|
'a
|
|
b';
|
|
'a
|
|
b';
|
|
}
|