diff --git a/node/expr/t_yield_test.go b/node/expr/t_yield_test.go new file mode 100644 index 0000000..897cb4e --- /dev/null +++ b/node/expr/t_yield_test.go @@ -0,0 +1,89 @@ +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/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 TestYieldFrom(t *testing.T) { + src := `