From 1e356ee7e4da390da69dda4095f767e1c0db64bd Mon Sep 17 00:00:00 2001 From: z7zmey Date: Sat, 10 Feb 2018 15:08:54 +0200 Subject: [PATCH] Yield YieldFrom tests --- node/expr/t_yield_test.go | 89 ++++++++ php5/php5.go | 448 ++++++++++++++++++++------------------ php5/php5.y | 24 +- 3 files changed, 341 insertions(+), 220 deletions(-) create mode 100644 node/expr/t_yield_test.go 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 := `