package expr_test import ( "bytes" "testing" "github.com/z7zmey/php-parser/node/expr" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/scalar" "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" ) func TestYield(t *testing.T) { src := ` $b;` expected := &stmt.StmtList{ Stmts: []node.Node{ &stmt.Expression{ Expr: &expr.Yield{ Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Value: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, }, }, }, } actual, _, _, _ := php7.Parse(bytes.NewBufferString(src), "test.php") assertEqual(t, expected, actual) actual, _, _, _ = php5.Parse(bytes.NewBufferString(src), "test.php") assertEqual(t, expected, actual) } func TestYieldExpr(t *testing.T) { src := ` 1;` expected := &stmt.StmtList{ Stmts: []node.Node{ &stmt.Expression{ Expr: &expr.Yield{ Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Value: &scalar.Lnumber{Value: "1"}, }, }, }, } actual, _, _, _ := php7.Parse(bytes.NewBufferString(src), "test.php") assertEqual(t, expected, actual) actual, _, _, _ = php5.Parse(bytes.NewBufferString(src), "test.php") assertEqual(t, expected, actual) } func TestYieldFrom(t *testing.T) { src := `