package expr_test import ( "bytes" "testing" "github.com/z7zmey/php-parser/node/scalar" "github.com/z7zmey/php-parser/node/expr" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" ) func TestArray(t *testing.T) { src := `1, &$b,);` expected := &stmt.StmtList{ Stmts: []node.Node{ &stmt.Expression{ Expr: &expr.Array{ Items: []node.Node{ &expr.ArrayItem{ ByRef: false, Key: &scalar.Lnumber{Value: "1"}, Val: &scalar.Lnumber{Value: "1"}, }, &expr.ArrayItem{ ByRef: true, Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, }, }, }, }, }, } php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") php7parser.Parse() actual := php7parser.GetRootNode() assertEqual(t, expected, actual) php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") php5parser.Parse() actual = php5parser.GetRootNode() assertEqual(t, expected, actual) }