create Root node

This commit is contained in:
z7zmey
2018-05-02 12:14:24 +03:00
parent d1b0cebf9a
commit 2abe1dfb84
82 changed files with 363 additions and 309 deletions

View File

@@ -32,7 +32,7 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) {
func TestReference(t *testing.T) {
src := `<? $a =& $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Reference{
@@ -57,7 +57,7 @@ func TestReference(t *testing.T) {
func TestReferenceNew(t *testing.T) {
src := `<? $a =& new Foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Reference{
@@ -88,7 +88,7 @@ func TestReferenceNew(t *testing.T) {
func TestReferenceArgs(t *testing.T) {
src := `<? $a =& new Foo($b);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Reference{
@@ -128,7 +128,7 @@ func TestReferenceArgs(t *testing.T) {
func TestAssign(t *testing.T) {
src := `<? $a = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{
@@ -153,7 +153,7 @@ func TestAssign(t *testing.T) {
func TestBitwiseAnd(t *testing.T) {
src := `<? $a &= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.BitwiseAnd{
@@ -178,7 +178,7 @@ func TestBitwiseAnd(t *testing.T) {
func TestBitwiseOr(t *testing.T) {
src := `<? $a |= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.BitwiseOr{
@@ -203,7 +203,7 @@ func TestBitwiseOr(t *testing.T) {
func TestBitwiseXor(t *testing.T) {
src := `<? $a ^= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.BitwiseXor{
@@ -228,7 +228,7 @@ func TestBitwiseXor(t *testing.T) {
func TestConcat(t *testing.T) {
src := `<? $a .= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Concat{
@@ -253,7 +253,7 @@ func TestConcat(t *testing.T) {
func TestDiv(t *testing.T) {
src := `<? $a /= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Div{
@@ -278,7 +278,7 @@ func TestDiv(t *testing.T) {
func TestMinus(t *testing.T) {
src := `<? $a -= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Minus{
@@ -303,7 +303,7 @@ func TestMinus(t *testing.T) {
func TestMod(t *testing.T) {
src := `<? $a %= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Mod{
@@ -328,7 +328,7 @@ func TestMod(t *testing.T) {
func TestMul(t *testing.T) {
src := `<? $a *= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Mul{
@@ -353,7 +353,7 @@ func TestMul(t *testing.T) {
func TestPlus(t *testing.T) {
src := `<? $a += $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Plus{
@@ -378,7 +378,7 @@ func TestPlus(t *testing.T) {
func TestPow(t *testing.T) {
src := `<? $a **= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Pow{
@@ -403,7 +403,7 @@ func TestPow(t *testing.T) {
func TestShiftLeft(t *testing.T) {
src := `<? $a <<= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.ShiftLeft{
@@ -428,7 +428,7 @@ func TestShiftLeft(t *testing.T) {
func TestShiftRight(t *testing.T) {
src := `<? $a >>= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.ShiftRight{

View File

@@ -30,7 +30,7 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) {
func TestBitwiseAnd(t *testing.T) {
src := `<? $a & $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.BitwiseAnd{
@@ -55,7 +55,7 @@ func TestBitwiseAnd(t *testing.T) {
func TestBitwiseOr(t *testing.T) {
src := `<? $a | $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.BitwiseOr{
@@ -80,7 +80,7 @@ func TestBitwiseOr(t *testing.T) {
func TestBitwiseXor(t *testing.T) {
src := `<? $a ^ $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.BitwiseXor{
@@ -105,7 +105,7 @@ func TestBitwiseXor(t *testing.T) {
func TestBooleanAnd(t *testing.T) {
src := `<? $a && $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.BooleanAnd{
@@ -130,7 +130,7 @@ func TestBooleanAnd(t *testing.T) {
func TestBooleanOr(t *testing.T) {
src := `<? $a || $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.BooleanOr{
@@ -155,7 +155,7 @@ func TestBooleanOr(t *testing.T) {
func TestCoalesce(t *testing.T) {
src := `<? $a ?? $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Coalesce{
@@ -175,7 +175,7 @@ func TestCoalesce(t *testing.T) {
func TestConcat(t *testing.T) {
src := `<? $a . $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Concat{
@@ -200,7 +200,7 @@ func TestConcat(t *testing.T) {
func TestDiv(t *testing.T) {
src := `<? $a / $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Div{
@@ -225,7 +225,7 @@ func TestDiv(t *testing.T) {
func TestEqual(t *testing.T) {
src := `<? $a == $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Equal{
@@ -250,7 +250,7 @@ func TestEqual(t *testing.T) {
func TestGreaterOrEqual(t *testing.T) {
src := `<? $a >= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.GreaterOrEqual{
@@ -275,7 +275,7 @@ func TestGreaterOrEqual(t *testing.T) {
func TestGreater(t *testing.T) {
src := `<? $a > $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Greater{
@@ -300,7 +300,7 @@ func TestGreater(t *testing.T) {
func TestIdentical(t *testing.T) {
src := `<? $a === $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Identical{
@@ -325,7 +325,7 @@ func TestIdentical(t *testing.T) {
func TestLogicalAnd(t *testing.T) {
src := `<? $a and $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.LogicalAnd{
@@ -350,7 +350,7 @@ func TestLogicalAnd(t *testing.T) {
func TestLogicalOr(t *testing.T) {
src := `<? $a or $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.LogicalOr{
@@ -375,7 +375,7 @@ func TestLogicalOr(t *testing.T) {
func TestLogicalXor(t *testing.T) {
src := `<? $a xor $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.LogicalXor{
@@ -400,7 +400,7 @@ func TestLogicalXor(t *testing.T) {
func TestMinus(t *testing.T) {
src := `<? $a - $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Minus{
@@ -425,7 +425,7 @@ func TestMinus(t *testing.T) {
func TestMod(t *testing.T) {
src := `<? $a % $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Mod{
@@ -450,7 +450,7 @@ func TestMod(t *testing.T) {
func TestMul(t *testing.T) {
src := `<? $a * $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Mul{
@@ -475,7 +475,7 @@ func TestMul(t *testing.T) {
func TestNotEqual(t *testing.T) {
src := `<? $a != $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.NotEqual{
@@ -500,7 +500,7 @@ func TestNotEqual(t *testing.T) {
func TestNotIdentical(t *testing.T) {
src := `<? $a !== $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.NotIdentical{
@@ -525,7 +525,7 @@ func TestNotIdentical(t *testing.T) {
func TestPlus(t *testing.T) {
src := `<? $a + $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Plus{
@@ -550,7 +550,7 @@ func TestPlus(t *testing.T) {
func TestPow(t *testing.T) {
src := `<? $a ** $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Pow{
@@ -575,7 +575,7 @@ func TestPow(t *testing.T) {
func TestShiftLeft(t *testing.T) {
src := `<? $a << $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.ShiftLeft{
@@ -600,7 +600,7 @@ func TestShiftLeft(t *testing.T) {
func TestShiftRight(t *testing.T) {
src := `<? $a >> $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.ShiftRight{
@@ -625,7 +625,7 @@ func TestShiftRight(t *testing.T) {
func TestSmallerOrEqual(t *testing.T) {
src := `<? $a <= $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.SmallerOrEqual{
@@ -650,7 +650,7 @@ func TestSmallerOrEqual(t *testing.T) {
func TestSmaller(t *testing.T) {
src := `<? $a < $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Smaller{
@@ -675,7 +675,7 @@ func TestSmaller(t *testing.T) {
func TestSpaceship(t *testing.T) {
src := `<? $a <=> $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &binary.Spaceship{

View File

@@ -30,7 +30,7 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) {
func TestArray(t *testing.T) {
src := `<? (array)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Array{
@@ -54,7 +54,7 @@ func TestArray(t *testing.T) {
func TestBool(t *testing.T) {
src := `<? (boolean)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Bool{
@@ -78,7 +78,7 @@ func TestBool(t *testing.T) {
func TestBoolShort(t *testing.T) {
src := `<? (bool)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Bool{
@@ -102,7 +102,7 @@ func TestBoolShort(t *testing.T) {
func TestDouble(t *testing.T) {
src := `<? (double)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Double{
@@ -126,7 +126,7 @@ func TestDouble(t *testing.T) {
func TestCastFloat(t *testing.T) {
src := `<? (float)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Double{
@@ -150,7 +150,7 @@ func TestCastFloat(t *testing.T) {
func TestInt(t *testing.T) {
src := `<? (integer)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Int{
@@ -174,7 +174,7 @@ func TestInt(t *testing.T) {
func TestIntShort(t *testing.T) {
src := `<? (int)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Int{
@@ -198,7 +198,7 @@ func TestIntShort(t *testing.T) {
func TestObject(t *testing.T) {
src := `<? (object)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Object{
@@ -222,7 +222,7 @@ func TestObject(t *testing.T) {
func TestString(t *testing.T) {
src := `<? (string)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.String{
@@ -246,7 +246,7 @@ func TestString(t *testing.T) {
func TestUnset(t *testing.T) {
src := `<? (unset)$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &cast.Unset{

View File

@@ -31,7 +31,7 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) {
func TestArrayDimFetch(t *testing.T) {
src := `<? $a[1];`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ArrayDimFetch{
@@ -56,7 +56,7 @@ func TestArrayDimFetch(t *testing.T) {
func TestArrayDimFetchNested(t *testing.T) {
src := `<? $a[1][2];`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ArrayDimFetch{

View File

@@ -17,7 +17,7 @@ import (
func TestArray(t *testing.T) {
src := `<? array();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Array{
@@ -41,7 +41,7 @@ func TestArray(t *testing.T) {
func TestArrayItem(t *testing.T) {
src := `<? array(1);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Array{
@@ -70,7 +70,7 @@ func TestArrayItem(t *testing.T) {
func TestArrayItems(t *testing.T) {
src := `<? array(1=>1, &$b,);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Array{

View File

@@ -15,7 +15,7 @@ import (
func TestBitwiseNot(t *testing.T) {
src := `<? ~$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.BitwiseNot{

View File

@@ -15,7 +15,7 @@ import (
func TestBooleanNot(t *testing.T) {
src := `<? !$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.BooleanNot{

View File

@@ -17,7 +17,7 @@ import (
func TestClassConstFetch(t *testing.T) {
src := `<? Foo::Bar;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ClassConstFetch{
@@ -46,7 +46,7 @@ func TestClassConstFetch(t *testing.T) {
func TestStaticClassConstFetch(t *testing.T) {
src := `<? static::bar;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ClassConstFetch{

View File

@@ -15,7 +15,7 @@ import (
func TestCloneBrackets(t *testing.T) {
src := `<? clone($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Clone{
@@ -39,7 +39,7 @@ func TestCloneBrackets(t *testing.T) {
func TestClone(t *testing.T) {
src := `<? clone $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Clone{

View File

@@ -17,7 +17,7 @@ import (
func TestClosure(t *testing.T) {
src := `<? function(){};`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Closure{
@@ -45,7 +45,7 @@ func TestClosure(t *testing.T) {
func TestClosureUse(t *testing.T) {
src := `<? function($a, $b) use ($c, &$d) {};`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Closure{
@@ -94,7 +94,7 @@ func TestClosureUse(t *testing.T) {
func TestClosureUse2(t *testing.T) {
src := `<? function($a, $b) use (&$c, $d) {};`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Closure{
@@ -143,7 +143,7 @@ func TestClosureUse2(t *testing.T) {
func TestClosureReturnType(t *testing.T) {
src := `<? function(): void {};`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Closure{

View File

@@ -17,7 +17,7 @@ import (
func TestConstFetch(t *testing.T) {
src := `<? foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ConstFetch{
@@ -41,7 +41,7 @@ func TestConstFetch(t *testing.T) {
func TestConstFetchRelative(t *testing.T) {
src := `<? namespace\foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ConstFetch{
@@ -65,7 +65,7 @@ func TestConstFetchRelative(t *testing.T) {
func TestConstFetchFullyQualified(t *testing.T) {
src := `<? \foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ConstFetch{

View File

@@ -15,7 +15,7 @@ import (
func TestEmpty(t *testing.T) {
src := `<? empty($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Empty{

View File

@@ -15,7 +15,7 @@ import (
func TestErrorSuppress(t *testing.T) {
src := `<? @$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ErrorSuppress{

View File

@@ -15,7 +15,7 @@ import (
func TestEval(t *testing.T) {
src := `<? eval($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Eval{

View File

@@ -15,7 +15,7 @@ import (
func TestExit(t *testing.T) {
src := `<? exit;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Exit{},
@@ -37,7 +37,7 @@ func TestExit(t *testing.T) {
func TestExitExpr(t *testing.T) {
src := `<? exit($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Exit{
@@ -61,7 +61,7 @@ func TestExitExpr(t *testing.T) {
func TestDie(t *testing.T) {
src := `<? die;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Die{},
@@ -83,7 +83,7 @@ func TestDie(t *testing.T) {
func TestDieExpr(t *testing.T) {
src := `<? die($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Die{

View File

@@ -20,7 +20,7 @@ import (
func TestFunctionCall(t *testing.T) {
src := `<? foo();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.FunctionCall{
@@ -49,7 +49,7 @@ func TestFunctionCall(t *testing.T) {
func TestFunctionCallRelative(t *testing.T) {
src := `<? namespace\foo();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.FunctionCall{
@@ -78,7 +78,7 @@ func TestFunctionCallRelative(t *testing.T) {
func TestFunctionFullyQualified(t *testing.T) {
src := `<? \foo([]);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.FunctionCall{
@@ -117,7 +117,7 @@ func TestFunctionFullyQualified(t *testing.T) {
func TestFunctionCallVar(t *testing.T) {
src := `<? $foo(yield $a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.FunctionCall{
@@ -152,7 +152,7 @@ func TestFunctionCallVar(t *testing.T) {
func TestFunctionCallExprArg(t *testing.T) {
src := `<? ceil($foo/3);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.FunctionCall{

View File

@@ -15,7 +15,7 @@ import (
func TestPostDec(t *testing.T) {
src := `<? $a--;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.PostDec{
@@ -39,7 +39,7 @@ func TestPostDec(t *testing.T) {
func TestPostInc(t *testing.T) {
src := `<? $a++;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.PostInc{
@@ -63,7 +63,7 @@ func TestPostInc(t *testing.T) {
func TestPreDec(t *testing.T) {
src := `<? --$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.PreDec{
@@ -87,7 +87,7 @@ func TestPreDec(t *testing.T) {
func TestPreInc(t *testing.T) {
src := `<? ++$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.PreInc{

View File

@@ -15,7 +15,7 @@ import (
func TestInclude(t *testing.T) {
src := `<? include $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Include{
@@ -39,7 +39,7 @@ func TestInclude(t *testing.T) {
func TestIncludeOnce(t *testing.T) {
src := `<? include_once $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.IncludeOnce{
@@ -63,7 +63,7 @@ func TestIncludeOnce(t *testing.T) {
func TestRequire(t *testing.T) {
src := `<? require $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Require{
@@ -87,7 +87,7 @@ func TestRequire(t *testing.T) {
func TestRequireOnce(t *testing.T) {
src := `<? require_once $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.RequireOnce{

View File

@@ -17,7 +17,7 @@ import (
func TestInstanceOf(t *testing.T) {
src := `<? $a instanceof Foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.InstanceOf{
@@ -46,7 +46,7 @@ func TestInstanceOf(t *testing.T) {
func TestInstanceOfRelative(t *testing.T) {
src := `<? $a instanceof namespace\Foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.InstanceOf{
@@ -75,7 +75,7 @@ func TestInstanceOfRelative(t *testing.T) {
func TestInstanceOfFullyQualified(t *testing.T) {
src := `<? $a instanceof \Foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.InstanceOf{

View File

@@ -15,7 +15,7 @@ import (
func TestIsset(t *testing.T) {
src := `<? isset($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Isset{
@@ -41,7 +41,7 @@ func TestIsset(t *testing.T) {
func TestIssetVariables(t *testing.T) {
src := `<? isset($a, $b);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Isset{

View File

@@ -17,7 +17,7 @@ import (
func TestEmptyList(t *testing.T) {
src := `<? list() = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{
@@ -44,7 +44,7 @@ func TestEmptyList(t *testing.T) {
func TestList(t *testing.T) {
src := `<? list($a) = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{
@@ -76,7 +76,7 @@ func TestList(t *testing.T) {
func TestListArrayIndex(t *testing.T) {
src := `<? list($a[]) = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{
@@ -110,7 +110,7 @@ func TestListArrayIndex(t *testing.T) {
func TestListList(t *testing.T) {
src := `<? list(list($a)) = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{

View File

@@ -15,7 +15,7 @@ import (
func TestMethodCall(t *testing.T) {
src := `<? $a->foo();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.MethodCall{

View File

@@ -17,7 +17,7 @@ import (
func TestNew(t *testing.T) {
src := `<? new Foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.New{
@@ -45,7 +45,7 @@ func TestNew(t *testing.T) {
func TestNewRelative(t *testing.T) {
src := `<? new namespace\Foo();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.New{
@@ -74,7 +74,7 @@ func TestNewRelative(t *testing.T) {
func TestNewFullyQualified(t *testing.T) {
src := `<? new \Foo();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.New{
@@ -103,7 +103,7 @@ func TestNewFullyQualified(t *testing.T) {
func TestNewAnonymous(t *testing.T) {
src := `<? new class ($a, ...$b) {};`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.New{

View File

@@ -15,7 +15,7 @@ import (
func TestPrint(t *testing.T) {
src := `<? print($a);`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Print{

View File

@@ -15,7 +15,7 @@ import (
func TestPropertyFetch(t *testing.T) {
src := `<? $a->foo;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.PropertyFetch{

View File

@@ -17,7 +17,7 @@ import (
func TestShellExec(t *testing.T) {
src := "<? `cmd $a`;"
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ShellExec{

View File

@@ -17,7 +17,7 @@ import (
func TestShortArray(t *testing.T) {
src := `<? [];`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ShortArray{
@@ -41,7 +41,7 @@ func TestShortArray(t *testing.T) {
func TestShortArrayItem(t *testing.T) {
src := `<? [1];`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ShortArray{
@@ -70,7 +70,7 @@ func TestShortArrayItem(t *testing.T) {
func TestShortArrayItems(t *testing.T) {
src := `<? [1=>1, &$b,];`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.ShortArray{

View File

@@ -16,7 +16,7 @@ import (
func TestShortList(t *testing.T) {
src := `<? [$a] = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{
@@ -43,7 +43,7 @@ func TestShortList(t *testing.T) {
func TestShortListArrayIndex(t *testing.T) {
src := `<? [$a[]] = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{
@@ -72,7 +72,7 @@ func TestShortListArrayIndex(t *testing.T) {
func TestShortListList(t *testing.T) {
src := `<? [list($a)] = $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &assign.Assign{

View File

@@ -17,7 +17,7 @@ import (
func TestStaticCall(t *testing.T) {
src := `<? Foo::bar();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticCall{
@@ -47,7 +47,7 @@ func TestStaticCall(t *testing.T) {
func TestStaticCallRelative(t *testing.T) {
src := `<? namespace\Foo::bar();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticCall{
@@ -77,7 +77,7 @@ func TestStaticCallRelative(t *testing.T) {
func TestStaticCallFullyQualified(t *testing.T) {
src := `<? \Foo::bar();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticCall{
@@ -107,7 +107,7 @@ func TestStaticCallFullyQualified(t *testing.T) {
func TestStaticCallVar(t *testing.T) {
src := `<? Foo::$bar();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticCall{
@@ -137,7 +137,7 @@ func TestStaticCallVar(t *testing.T) {
func TestStaticCallVarVar(t *testing.T) {
src := `<? $foo::$bar();`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticCall{

View File

@@ -16,7 +16,7 @@ import (
func TestStaticPropertyFetch(t *testing.T) {
src := `<? Foo::$bar;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticPropertyFetch{
@@ -45,7 +45,7 @@ func TestStaticPropertyFetch(t *testing.T) {
func TestStaticPropertyFetchRelative(t *testing.T) {
src := `<? namespace\Foo::$bar;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticPropertyFetch{
@@ -74,7 +74,7 @@ func TestStaticPropertyFetchRelative(t *testing.T) {
func TestStaticPropertyFetchFullyQualified(t *testing.T) {
src := `<? \Foo::$bar;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.StaticPropertyFetch{

View File

@@ -15,7 +15,7 @@ import (
func TestTernary(t *testing.T) {
src := `<? $a ? $b : $c;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Ternary{
@@ -41,7 +41,7 @@ func TestTernary(t *testing.T) {
func TestTernarySimple(t *testing.T) {
src := `<? $a ? : $c;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Ternary{
@@ -66,7 +66,7 @@ func TestTernarySimple(t *testing.T) {
func TestTernaryNestedTrue(t *testing.T) {
src := `<? $a ? $b ? $c : $d : $e;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Ternary{
@@ -96,7 +96,7 @@ func TestTernaryNestedTrue(t *testing.T) {
func TestTernaryNestedCond(t *testing.T) {
src := `<? $a ? $b : $c ? $d : $e;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Ternary{

View File

@@ -15,7 +15,7 @@ import (
func TestUnaryMinus(t *testing.T) {
src := `<? -$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.UnaryMinus{
@@ -39,7 +39,7 @@ func TestUnaryMinus(t *testing.T) {
func TestUnaryPlus(t *testing.T) {
src := `<? +$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.UnaryPlus{

View File

@@ -15,7 +15,7 @@ import (
func TestVariable(t *testing.T) {
src := `<? $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
@@ -37,7 +37,7 @@ func TestVariable(t *testing.T) {
func TestVariableVariable(t *testing.T) {
src := `<? $$a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "a"}}},

View File

@@ -16,7 +16,7 @@ import (
func TestYield(t *testing.T) {
src := `<? yield;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Yield{},
@@ -38,7 +38,7 @@ func TestYield(t *testing.T) {
func TestYieldVal(t *testing.T) {
src := `<? yield $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Yield{
@@ -62,7 +62,7 @@ func TestYieldVal(t *testing.T) {
func TestYieldKeyVal(t *testing.T) {
src := `<? yield $a => $b;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Yield{
@@ -87,7 +87,7 @@ func TestYieldKeyVal(t *testing.T) {
func TestYieldExpr(t *testing.T) {
src := `<? yield 1;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Yield{
@@ -111,7 +111,7 @@ func TestYieldExpr(t *testing.T) {
func TestYieldKeyExpr(t *testing.T) {
src := `<? yield $a => 1;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.Yield{
@@ -136,7 +136,7 @@ func TestYieldKeyExpr(t *testing.T) {
func TestYieldFrom(t *testing.T) {
src := `<? yield from $a;`
expected := &stmt.StmtList{
expected := &node.Root{
Stmts: []node.Node{
&stmt.Expression{
Expr: &expr.YieldFrom{