diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index b210323..6d72de0 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -8,6 +8,8 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/position" ) @@ -62,6 +64,7 @@ func TestIdentifier(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -845,6 +848,7 @@ func TestPhp5ArgumentNode(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1658,6 +1662,7 @@ func TestPhp5ParameterNode(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1680,6 +1685,7 @@ func TestCommentEndFile(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1758,6 +1764,7 @@ func TestName(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1834,6 +1841,7 @@ func TestFullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1910,6 +1918,7 @@ func TestRelative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1989,6 +1998,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2066,6 +2076,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2154,6 +2165,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2252,6 +2264,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2361,6 +2374,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2438,6 +2452,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2536,6 +2551,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2644,6 +2660,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2736,6 +2753,7 @@ LBL; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2828,6 +2846,7 @@ LBL; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2888,6 +2907,7 @@ LBL; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2934,6 +2954,7 @@ CAD; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2994,6 +3015,7 @@ CAD; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3039,6 +3061,7 @@ func TestScalarMagicConstant(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3083,6 +3106,7 @@ func TestScalarNumber_LNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3127,6 +3151,7 @@ func TestScalarNumber_DNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3171,6 +3196,7 @@ func TestScalarNumber_Float(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3215,6 +3241,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3259,6 +3286,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3303,6 +3331,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3347,6 +3376,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3391,6 +3421,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3435,6 +3466,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3481,6 +3513,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3525,6 +3558,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3571,6 +3605,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3641,6 +3676,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3754,6 +3790,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3844,6 +3881,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4022,6 +4060,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4144,6 +4183,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4223,6 +4263,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4372,6 +4413,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4475,6 +4517,7 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4590,6 +4633,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4635,6 +4679,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4693,6 +4738,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4784,6 +4830,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4877,6 +4924,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4993,6 +5041,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5092,6 +5141,7 @@ func TestStmtConstList(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5158,6 +5208,7 @@ func TestStmtContinue_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5235,6 +5286,7 @@ func TestStmtContinue_Light(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5312,6 +5364,7 @@ func TestStmtContinue(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5389,6 +5442,7 @@ func TestStmtDeclare(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5499,6 +5553,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5578,6 +5633,7 @@ func TestStmtDeclare_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5633,6 +5689,7 @@ func TestStmtDo(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5700,6 +5757,7 @@ func TestStmtEcho(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5756,6 +5814,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5800,6 +5859,7 @@ func TestStmtExpression(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5996,6 +6056,7 @@ func TestStmtFor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6117,6 +6178,7 @@ func TestStmtFor_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6203,6 +6265,7 @@ func TestStmtForeach(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6279,6 +6342,7 @@ func TestStmtForeach_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6365,6 +6429,7 @@ func TestStmtForeach_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6472,6 +6537,7 @@ func TestStmtForeach_WithKey(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6569,6 +6635,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6686,6 +6753,7 @@ func TestStmtForeach_WithRef(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6815,6 +6883,7 @@ func TestStmtForeach_WithList(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6861,6 +6930,7 @@ func TestStmtFunction(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6918,6 +6988,7 @@ func TestStmtFunction_Return(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7082,6 +7153,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7150,6 +7222,7 @@ func TestStmtFunction_Ref(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7206,6 +7279,7 @@ func TestStmtGlobal(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7367,6 +7441,7 @@ func TestStmtGlobal_Vars(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7432,6 +7507,7 @@ func TestStmtGotoLabel(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7465,6 +7541,7 @@ func TestStmtHaltCompiler(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7530,6 +7607,7 @@ func TestStmtIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7639,6 +7717,7 @@ func TestStmtIf_ElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7725,6 +7804,7 @@ func TestStmtIf_Else(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7897,6 +7977,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8079,6 +8160,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8123,6 +8205,7 @@ func TestStmtInlineHtml(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8168,6 +8251,7 @@ func TestStmtInterface(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8248,6 +8332,7 @@ func TestStmtInterface_Extend(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8351,6 +8436,7 @@ func TestStmtInterface_Extends(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8407,6 +8493,7 @@ func TestStmtNamespace(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8464,6 +8551,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8498,6 +8586,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8600,6 +8689,7 @@ func TestStmtProperty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8755,6 +8845,7 @@ func TestStmtProperty_Properties(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8910,6 +9001,7 @@ func TestStmtProperty_Properties2(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8976,6 +9068,7 @@ func TestStmtStaticVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9084,6 +9177,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9192,6 +9286,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9319,6 +9414,7 @@ func TestStmtSwitch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9446,6 +9542,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9563,6 +9660,7 @@ func TestStmtSwitch_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9668,6 +9766,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9722,6 +9821,7 @@ func TestStmtThrow(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9767,6 +9867,7 @@ func TestStmtTrait(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9858,6 +9959,7 @@ func TestStmtTraitUse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9972,6 +10074,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10086,6 +10189,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10244,6 +10348,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10413,6 +10518,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10696,6 +10802,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10733,6 +10840,7 @@ func TestStmtTry_Try(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10828,6 +10936,7 @@ func TestStmtTry_TryCatch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10980,6 +11089,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11086,6 +11196,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11293,6 +11404,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11349,6 +11461,7 @@ func TestStmtUnset(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11426,6 +11539,7 @@ func TestStmtUnset_Vars(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11504,6 +11618,7 @@ func TestStmtUse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11534,7 +11649,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -11544,7 +11659,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -11582,6 +11697,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11612,7 +11728,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -11622,7 +11738,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -11671,6 +11787,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11782,6 +11899,7 @@ func TestStmtUse_List(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11904,6 +12022,7 @@ func TestStmtUse_ListAlias(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11997,7 +12116,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 25, }, }, @@ -12036,6 +12155,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12140,7 +12260,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 39, }, }, @@ -12190,6 +12310,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12284,7 +12405,7 @@ func TestStmtUse_ListConstType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 22, }, }, @@ -12323,6 +12444,7 @@ func TestStmtUse_ListConstType(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12427,7 +12549,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 36, }, }, @@ -12477,6 +12599,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12543,6 +12666,7 @@ func TestStmtBreak_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12620,6 +12744,7 @@ func TestStmtBreak_Light(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12697,6 +12822,7 @@ func TestStmtBreak(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12774,6 +12900,7 @@ func TestExprArrayDimFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12870,6 +12997,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12914,6 +13042,7 @@ func TestExprArray(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12980,6 +13109,7 @@ func TestExprArray_Item(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13099,6 +13229,7 @@ func TestExprArray_Items(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13163,6 +13294,7 @@ func TestExprBitwiseNot(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13227,6 +13359,7 @@ func TestExprBooleanNot(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13304,6 +13437,7 @@ func TestExprClassConstFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13369,6 +13503,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13433,6 +13568,7 @@ func TestExprClone_Brackets(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13497,6 +13633,7 @@ func TestExprClone(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13543,6 +13680,7 @@ func TestExprClosure(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13717,6 +13855,7 @@ func TestExprClosure_Use(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13891,6 +14030,7 @@ func TestExprClosure_Use2(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13957,6 +14097,7 @@ func TestExprConstFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14023,6 +14164,7 @@ func TestExprConstFetch_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14089,6 +14231,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14153,6 +14296,7 @@ func TestExprEmpty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14217,6 +14361,7 @@ func TestExprErrorSuppress(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14281,6 +14426,7 @@ func TestExprEval(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14325,6 +14471,7 @@ func TestExprExit(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14369,6 +14516,7 @@ func TestExprExit_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14434,6 +14582,7 @@ func TestExprExit_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14478,6 +14627,7 @@ func TestExprDie(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14522,6 +14672,7 @@ func TestExprDie_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14587,6 +14738,7 @@ func TestExprDie_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14663,6 +14815,7 @@ func TestExprFunctionCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14739,6 +14892,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14840,6 +14994,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14959,6 +15114,7 @@ func TestExprFunctionCall_Var(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15091,6 +15247,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15155,6 +15312,7 @@ func TestExprPostDec(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15219,6 +15377,7 @@ func TestExprPostInc(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15283,6 +15442,7 @@ func TestExprPreDec(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15347,6 +15507,7 @@ func TestExprPreInc(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15411,6 +15572,7 @@ func TestExprInclude(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15475,6 +15637,7 @@ func TestExprInclude_Once(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15539,6 +15702,7 @@ func TestExprRequire(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15603,6 +15767,7 @@ func TestExprRequire_Once(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15690,6 +15855,7 @@ func TestExprInstanceOf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15777,6 +15943,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15864,6 +16031,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15930,6 +16098,7 @@ func TestExprIsset(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16017,6 +16186,7 @@ func TestExprIsset_Variables(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16092,6 +16262,7 @@ func TestExprList_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16199,6 +16370,7 @@ func TestExprList(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16316,6 +16488,7 @@ func TestExprList_ArrayIndex(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16445,6 +16618,7 @@ func TestExprList_List(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16553,6 +16727,7 @@ func TestExprList_EmptyItem(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16663,6 +16838,7 @@ func TestExprList_EmptyItems(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16748,6 +16924,7 @@ func TestExprMethodCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16814,6 +16991,7 @@ func TestExprNew(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16890,6 +17068,7 @@ func TestExprNew_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16966,6 +17145,7 @@ func TestExprNew_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17030,6 +17210,7 @@ func TestExprPrint(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17105,6 +17286,7 @@ func TestExprPropertyFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17223,6 +17405,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17300,6 +17483,7 @@ func TestExprShellExec(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17344,6 +17528,7 @@ func TestExprShortArray(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17410,6 +17595,7 @@ func TestExprShortArray_Item(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17529,6 +17715,7 @@ func TestExprShortArray_Items(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17616,6 +17803,7 @@ func TestExprStaticCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17703,6 +17891,7 @@ func TestExprStaticCall_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17790,6 +17979,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17887,6 +18077,7 @@ func TestExprStaticCall_Var(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17982,6 +18173,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18069,6 +18261,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18156,6 +18349,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18243,6 +18437,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18349,6 +18544,7 @@ func TestExprTernary(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18434,6 +18630,7 @@ func TestExprTernary_Simple(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18592,6 +18789,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18750,6 +18948,7 @@ func TestExprTernary_NestedCond(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18814,6 +19013,7 @@ func TestExprUnaryMinus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18878,6 +19078,7 @@ func TestExprUnaryPlus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18932,6 +19133,7 @@ func TestExprVariable(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18996,6 +19198,7 @@ func TestExprVariable_Variable(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19039,6 +19242,7 @@ func TestExprYield(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19103,6 +19307,7 @@ func TestExprYield_Val(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19188,6 +19393,7 @@ func TestExprYield_KeyVal(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19242,6 +19448,7 @@ func TestExprYield_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19317,6 +19524,7 @@ func TestExprYield_KeyExpr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19404,6 +19612,7 @@ func TestExprAssign_Assign(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19489,6 +19698,7 @@ func TestExprAssign_Reference(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19586,6 +19796,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19728,6 +19939,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19813,6 +20025,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19898,6 +20111,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19983,6 +20197,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20068,6 +20283,7 @@ func TestExprAssign_Concat(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20153,6 +20369,7 @@ func TestExprAssign_Div(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20238,6 +20455,7 @@ func TestExprAssign_Minus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20323,6 +20541,7 @@ func TestExprAssign_Mod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20408,6 +20627,7 @@ func TestExprAssign_Mul(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20493,6 +20713,7 @@ func TestExprAssign_Plus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20578,6 +20799,7 @@ func TestExprAssign_Pow(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20663,6 +20885,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20748,6 +20971,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20835,6 +21059,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20920,6 +21145,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21005,6 +21231,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21090,6 +21317,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21175,6 +21403,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21260,6 +21489,7 @@ func TestExprBinary_Concat(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21345,6 +21575,7 @@ func TestExprBinary_Div(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21430,6 +21661,7 @@ func TestExprBinary_Equal(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21515,6 +21747,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21600,6 +21833,7 @@ func TestExprBinary_Greater(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21685,6 +21919,7 @@ func TestExprBinary_Identical(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21770,6 +22005,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21855,6 +22091,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21940,6 +22177,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22025,6 +22263,7 @@ func TestExprBinary_Minus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22110,6 +22349,7 @@ func TestExprBinary_Mod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22195,6 +22435,7 @@ func TestExprBinary_Mul(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22280,6 +22521,7 @@ func TestExprBinary_NotEqual(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22365,6 +22607,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22450,6 +22693,7 @@ func TestExprBinary_Plus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22535,6 +22779,7 @@ func TestExprBinary_Pow(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22620,6 +22865,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22705,6 +22951,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22790,6 +23037,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22875,6 +23123,7 @@ func TestExprBinary_Smaller(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22941,6 +23190,7 @@ func TestExprCast_Array(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23005,6 +23255,7 @@ func TestExprCast_Bool(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23069,6 +23320,7 @@ func TestExprCast_BoolShort(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23133,6 +23385,7 @@ func TestExprCast_Double(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23197,6 +23450,7 @@ func TestExprCast_CastFloat(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23261,6 +23515,7 @@ func TestExprCast_Int(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23325,6 +23580,7 @@ func TestExprCast_IntShort(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23389,6 +23645,7 @@ func TestExprCast_Object(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23453,6 +23710,7 @@ func TestExprCast_String(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23517,6 +23775,7 @@ func TestExprCast_BinaryString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23581,5 +23840,6 @@ func TestExprCast_Unset(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 397fb9d..b8faaea 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7103 +// line internal/php5/php5.y:7127 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2593,58 +2593,66 @@ yydefault: { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:542 + // line internal/php5/php5.y:544 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:556 + // line internal/php5/php5.y:560 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:577 + // line internal/php5/php5.y:585 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2655,7 +2663,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:586 + // line internal/php5/php5.y:594 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2663,7 +2671,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:595 + // line internal/php5/php5.y:603 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2676,62 +2684,70 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:606 + // line internal/php5/php5.y:614 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:623 + // line internal/php5/php5.y:633 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:637 + // line internal/php5/php5.y:649 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:658 + // line internal/php5/php5.y:674 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2742,7 +2758,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:667 + // line internal/php5/php5.y:683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2750,7 +2766,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:676 + // line internal/php5/php5.y:692 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2763,62 +2779,70 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:687 + // line internal/php5/php5.y:703 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:704 + // line internal/php5/php5.y:722 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:718 + // line internal/php5/php5.y:738 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:739 + // line internal/php5/php5.y:763 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2841,7 +2865,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:760 + // line internal/php5/php5.y:784 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2862,7 +2886,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:782 + // line internal/php5/php5.y:806 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2877,7 +2901,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:795 + // line internal/php5/php5.y:819 { yyVAL.list = []ast.Vertex{} @@ -2885,7 +2909,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:805 + // line internal/php5/php5.y:829 { // error yyVAL.node = nil @@ -2894,7 +2918,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 + // line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node @@ -2902,7 +2926,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:818 + // line internal/php5/php5.y:842 { yyVAL.node = yyDollar[1].node @@ -2910,7 +2934,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:824 + // line internal/php5/php5.y:848 { yyVAL.node = yyDollar[1].node @@ -2918,7 +2942,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:830 + // line internal/php5/php5.y:854 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2933,7 +2957,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:847 + // line internal/php5/php5.y:871 { yyVAL.node = yyDollar[1].node @@ -2941,7 +2965,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:853 + // line internal/php5/php5.y:877 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2958,7 +2982,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:871 + // line internal/php5/php5.y:895 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2973,7 +2997,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:884 + // line internal/php5/php5.y:908 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3001,7 +3025,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:908 + // line internal/php5/php5.y:932 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} @@ -3029,7 +3053,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:932 + // line internal/php5/php5.y:956 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3058,7 +3082,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:957 + // line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3083,7 +3107,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:978 + // line internal/php5/php5.y:1002 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3112,7 +3136,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1005 + // line internal/php5/php5.y:1029 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3143,7 +3167,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1032 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3159,7 +3183,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1046 + // line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3175,7 +3199,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1060 + // line internal/php5/php5.y:1084 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3191,7 +3215,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1074 + // line internal/php5/php5.y:1098 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3207,7 +3231,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1088 + // line internal/php5/php5.y:1112 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3223,7 +3247,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1102 + // line internal/php5/php5.y:1126 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3239,7 +3263,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1116 + // line internal/php5/php5.y:1140 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3255,7 +3279,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1130 + // line internal/php5/php5.y:1154 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3271,7 +3295,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1144 + // line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3287,7 +3311,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1158 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3303,7 +3327,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1172 + // line internal/php5/php5.y:1196 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3320,7 +3344,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1187 + // line internal/php5/php5.y:1211 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3334,7 +3358,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1199 + // line internal/php5/php5.y:1223 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3350,7 +3374,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1237 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3368,7 +3392,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1229 + // line internal/php5/php5.y:1253 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3411,7 +3435,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1269 + // line internal/php5/php5.y:1293 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3454,7 +3478,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1309 + // line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3471,7 +3495,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1324 + // line internal/php5/php5.y:1348 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3486,7 +3510,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1337 + // line internal/php5/php5.y:1361 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3506,7 +3530,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1379 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3522,7 +3546,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1393 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3541,7 +3565,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1389 + // line internal/php5/php5.y:1413 { yyVAL.list = []ast.Vertex{} @@ -3549,7 +3573,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1395 + // line internal/php5/php5.y:1419 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3573,7 +3597,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1420 + // line internal/php5/php5.y:1444 { yyVAL.node = nil @@ -3581,7 +3605,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1426 + // line internal/php5/php5.y:1450 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3597,7 +3621,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1443 + // line internal/php5/php5.y:1467 { yyVAL.list = yyDollar[1].list @@ -3605,7 +3629,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1449 + // line internal/php5/php5.y:1473 { yyVAL.list = []ast.Vertex{} @@ -3613,7 +3637,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1458 + // line internal/php5/php5.y:1482 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3621,7 +3645,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1464 + // line internal/php5/php5.y:1488 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3629,7 +3653,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1497 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3652,7 +3676,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1521 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3660,7 +3684,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1503 + // line internal/php5/php5.y:1527 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3671,7 +3695,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1515 + // line internal/php5/php5.y:1539 { yyVAL.node = yyDollar[1].node @@ -3679,7 +3703,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1524 + // line internal/php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3687,7 +3711,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1533 + // line internal/php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3695,31 +3719,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1542 + // line internal/php5/php5.y:1566 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1570 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1553 + // line internal/php5/php5.y:1577 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1581 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1588 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3745,7 +3769,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1591 + // line internal/php5/php5.y:1615 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3775,7 +3799,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1619 + // line internal/php5/php5.y:1643 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3794,7 +3818,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1640 + // line internal/php5/php5.y:1664 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3808,7 +3832,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1652 + // line internal/php5/php5.y:1676 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3825,7 +3849,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1667 + // line internal/php5/php5.y:1691 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3839,7 +3863,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1703 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3856,7 +3880,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1697 + // line internal/php5/php5.y:1721 { yyVAL.ClassExtends = nil @@ -3864,7 +3888,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1703 + // line internal/php5/php5.y:1727 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3878,13 +3902,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1718 + // line internal/php5/php5.y:1742 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1725 + // line internal/php5/php5.y:1749 { yyVAL.InterfaceExtends = nil @@ -3892,7 +3916,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1755 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3906,7 +3930,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1746 + // line internal/php5/php5.y:1770 { yyVAL.ClassImplements = nil @@ -3914,7 +3938,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1776 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3928,7 +3952,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1767 + // line internal/php5/php5.y:1791 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3936,7 +3960,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1797 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3947,7 +3971,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1785 + // line internal/php5/php5.y:1809 { yyVAL.node = nil @@ -3955,7 +3979,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1815 { yyVAL.node = yyDollar[2].node @@ -3966,7 +3990,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1803 + // line internal/php5/php5.y:1827 { yyVAL.node = yyDollar[1].node @@ -3974,7 +3998,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1833 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3988,7 +4012,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1821 + // line internal/php5/php5.y:1845 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4004,7 +4028,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1838 + // line internal/php5/php5.y:1862 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4015,7 +4039,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1871 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4034,7 +4058,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1867 + // line internal/php5/php5.y:1891 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4045,7 +4069,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1876 + // line internal/php5/php5.y:1900 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4064,7 +4088,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1897 + // line internal/php5/php5.y:1921 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4075,7 +4099,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1930 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4094,7 +4118,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1927 + // line internal/php5/php5.y:1951 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4112,7 +4136,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1943 + // line internal/php5/php5.y:1967 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4131,7 +4155,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1964 + // line internal/php5/php5.y:1988 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4148,7 +4172,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1979 + // line internal/php5/php5.y:2003 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4166,7 +4190,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1995 + // line internal/php5/php5.y:2019 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4185,7 +4209,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2012 + // line internal/php5/php5.y:2036 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4206,7 +4230,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2035 + // line internal/php5/php5.y:2059 { yyVAL.list = []ast.Vertex{} @@ -4214,7 +4238,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2041 + // line internal/php5/php5.y:2065 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4231,7 +4255,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2056 + // line internal/php5/php5.y:2080 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4248,19 +4272,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2075 + // line internal/php5/php5.y:2099 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2079 + // line internal/php5/php5.y:2103 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2087 + // line internal/php5/php5.y:2111 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4271,7 +4295,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2096 + // line internal/php5/php5.y:2120 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4290,7 +4314,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2118 + // line internal/php5/php5.y:2142 { yyVAL.list = nil @@ -4298,7 +4322,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2148 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4321,7 +4345,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2147 + // line internal/php5/php5.y:2171 { yyVAL.list = nil @@ -4329,7 +4353,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2153 + // line internal/php5/php5.y:2177 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4355,7 +4379,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2179 + // line internal/php5/php5.y:2203 { yyVAL.node = nil @@ -4363,7 +4387,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2185 + // line internal/php5/php5.y:2209 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4377,7 +4401,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2225 { yyVAL.node = nil @@ -4385,7 +4409,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2231 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4402,7 +4426,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2226 + // line internal/php5/php5.y:2250 { yyVAL.list = yyDollar[1].list @@ -4410,7 +4434,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2232 + // line internal/php5/php5.y:2256 { yyVAL.list = nil @@ -4418,7 +4442,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2241 + // line internal/php5/php5.y:2265 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4426,7 +4450,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2271 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4437,7 +4461,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2259 + // line internal/php5/php5.y:2283 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4475,7 +4499,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2295 + // line internal/php5/php5.y:2319 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4514,7 +4538,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2336 + // line internal/php5/php5.y:2360 { yyVAL.node = nil @@ -4522,7 +4546,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2342 + // line internal/php5/php5.y:2366 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4536,7 +4560,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2354 + // line internal/php5/php5.y:2378 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4550,7 +4574,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2366 + // line internal/php5/php5.y:2390 { yyVAL.node = yyDollar[1].node @@ -4558,7 +4582,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2376 + // line internal/php5/php5.y:2400 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4573,7 +4597,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2389 + // line internal/php5/php5.y:2413 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4588,7 +4612,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2402 + // line internal/php5/php5.y:2426 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4605,7 +4629,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2421 + // line internal/php5/php5.y:2445 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4613,7 +4637,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2427 + // line internal/php5/php5.y:2451 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4624,7 +4648,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2439 + // line internal/php5/php5.y:2463 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4638,7 +4662,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2451 + // line internal/php5/php5.y:2475 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4652,7 +4676,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2487 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4666,7 +4690,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2475 + // line internal/php5/php5.y:2499 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4680,7 +4704,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2490 + // line internal/php5/php5.y:2514 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4691,7 +4715,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4699,7 +4723,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2509 + // line internal/php5/php5.y:2533 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4715,7 +4739,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2523 + // line internal/php5/php5.y:2547 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4729,7 +4753,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2535 + // line internal/php5/php5.y:2559 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4745,7 +4769,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2553 + // line internal/php5/php5.y:2577 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4765,7 +4789,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2571 + // line internal/php5/php5.y:2595 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4786,7 +4810,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2614 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4805,7 +4829,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2607 + // line internal/php5/php5.y:2631 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4825,7 +4849,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2653 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4833,7 +4857,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2659 { yyVAL.list = []ast.Vertex{} @@ -4841,7 +4865,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2645 + // line internal/php5/php5.y:2669 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4857,7 +4881,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2659 + // line internal/php5/php5.y:2683 { yyVAL.node = yyDollar[1].node @@ -4872,7 +4896,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2672 + // line internal/php5/php5.y:2696 { yyVAL.node = yyDollar[1].node @@ -4880,7 +4904,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2702 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4913,7 +4937,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2736 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4927,7 +4951,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2751 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4935,7 +4959,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2757 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4946,7 +4970,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2745 + // line internal/php5/php5.y:2769 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4960,7 +4984,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2781 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4974,7 +4998,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2772 + // line internal/php5/php5.y:2796 { yyVAL.list = nil @@ -4982,7 +5006,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2802 { yyVAL.list = yyDollar[1].list @@ -4990,7 +5014,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2787 + // line internal/php5/php5.y:2811 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4998,7 +5022,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2793 + // line internal/php5/php5.y:2817 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5006,7 +5030,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2802 + // line internal/php5/php5.y:2826 { yyVAL.node = yyDollar[1].node @@ -5018,7 +5042,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2812 + // line internal/php5/php5.y:2836 { yyVAL.node = yyDollar[1].node @@ -5030,7 +5054,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2825 + // line internal/php5/php5.y:2849 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5045,7 +5069,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2841 + // line internal/php5/php5.y:2865 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5053,7 +5077,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2871 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5064,7 +5088,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2859 + // line internal/php5/php5.y:2883 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5080,7 +5104,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2873 + // line internal/php5/php5.y:2897 { yyVAL.node = yyDollar[1].node @@ -5088,7 +5112,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2882 + // line internal/php5/php5.y:2906 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5106,7 +5130,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2901 + // line internal/php5/php5.y:2925 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5124,7 +5148,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2917 + // line internal/php5/php5.y:2941 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5139,7 +5163,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2933 + // line internal/php5/php5.y:2957 { yyVAL.node = nil @@ -5147,7 +5171,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2939 + // line internal/php5/php5.y:2963 { yyVAL.node = yyDollar[1].node @@ -5155,7 +5179,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2948 + // line internal/php5/php5.y:2972 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5170,7 +5194,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2961 + // line internal/php5/php5.y:2985 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5185,7 +5209,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2977 + // line internal/php5/php5.y:3001 { yyVAL.list = yyDollar[1].list @@ -5193,7 +5217,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2983 + // line internal/php5/php5.y:3007 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5208,7 +5232,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2999 + // line internal/php5/php5.y:3023 { yyVAL.list = nil @@ -5216,7 +5240,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3005 + // line internal/php5/php5.y:3029 { yyVAL.list = yyDollar[1].list @@ -5224,7 +5248,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3014 + // line internal/php5/php5.y:3038 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5232,41 +5256,13 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3020 + // line internal/php5/php5.y:3044 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3029 - { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 205: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3041 - { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 206: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3053 { @@ -5280,7 +5276,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 207: + case 205: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3065 { @@ -5294,7 +5290,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 208: + case 206: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3077 { @@ -5308,7 +5304,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 209: + case 207: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3089 { @@ -5320,11 +5316,39 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 208: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php5/php5.y:3101 + { + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + + // save position + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 209: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php5/php5.y:3113 + { + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + + // save position + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3128 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5344,7 +5368,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3122 + // line internal/php5/php5.y:3146 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5365,7 +5389,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3165 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5384,7 +5408,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3158 + // line internal/php5/php5.y:3182 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5404,7 +5428,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3179 + // line internal/php5/php5.y:3203 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5427,7 +5451,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3200 + // line internal/php5/php5.y:3224 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5447,7 +5471,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3221 + // line internal/php5/php5.y:3245 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5458,7 +5482,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3230 + // line internal/php5/php5.y:3254 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5466,7 +5490,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3264 { yyVAL.list = nil @@ -5474,7 +5498,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3246 + // line internal/php5/php5.y:3270 { yyVAL.list = yyDollar[1].list @@ -5482,7 +5506,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3255 + // line internal/php5/php5.y:3279 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5493,7 +5517,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3264 + // line internal/php5/php5.y:3288 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5501,7 +5525,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3297 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5509,7 +5533,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3279 + // line internal/php5/php5.y:3303 { yyVAL.list = yyDollar[1].list @@ -5517,7 +5541,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3288 + // line internal/php5/php5.y:3312 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5533,7 +5557,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3302 + // line internal/php5/php5.y:3326 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5549,7 +5573,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3343 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5557,7 +5581,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3349 { yyVAL.list = yyDollar[1].list @@ -5565,7 +5589,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3355 { yyVAL.list = yyDollar[1].list @@ -5573,7 +5597,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3340 + // line internal/php5/php5.y:3364 { yyVAL.list = nil @@ -5581,7 +5605,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3346 + // line internal/php5/php5.y:3370 { yyVAL.list = yyDollar[1].list @@ -5589,7 +5613,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3355 + // line internal/php5/php5.y:3379 { if yyDollar[3].node != nil { @@ -5607,7 +5631,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3398 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5626,7 +5650,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5665,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3404 + // line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5657,7 +5681,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3418 + // line internal/php5/php5.y:3442 { var _new *ast.ExprNew @@ -5686,7 +5710,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5700,7 +5724,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3457 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5738,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3469 + // line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5729,7 +5753,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3482 + // line internal/php5/php5.y:3506 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5768,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3495 + // line internal/php5/php5.y:3519 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5759,7 +5783,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3508 + // line internal/php5/php5.y:3532 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5774,7 +5798,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3521 + // line internal/php5/php5.y:3545 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5789,7 +5813,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3534 + // line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5804,7 +5828,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3547 + // line internal/php5/php5.y:3571 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5843,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3560 + // line internal/php5/php5.y:3584 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5858,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3573 + // line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5873,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3586 + // line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5864,7 +5888,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3599 + // line internal/php5/php5.y:3623 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5879,7 +5903,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3612 + // line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5894,7 +5918,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3625 + // line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5908,7 +5932,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3637 + // line internal/php5/php5.y:3661 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5923,7 +5947,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3650 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5937,7 +5961,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3662 + // line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5952,7 +5976,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3675 + // line internal/php5/php5.y:3699 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5967,7 +5991,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3688 + // line internal/php5/php5.y:3712 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5982,7 +6006,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3701 + // line internal/php5/php5.y:3725 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5997,7 +6021,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3714 + // line internal/php5/php5.y:3738 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6012,7 +6036,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3751 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6027,7 +6051,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3740 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6042,7 +6066,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3777 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6057,7 +6081,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3766 + // line internal/php5/php5.y:3790 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6072,7 +6096,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3779 + // line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6087,7 +6111,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3792 + // line internal/php5/php5.y:3816 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6102,7 +6126,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3805 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6117,7 +6141,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3818 + // line internal/php5/php5.y:3842 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6132,7 +6156,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3855 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6147,7 +6171,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3844 + // line internal/php5/php5.y:3868 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6162,7 +6186,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3857 + // line internal/php5/php5.y:3881 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6177,7 +6201,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3870 + // line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6192,7 +6216,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3907 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6230,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3895 + // line internal/php5/php5.y:3919 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6244,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3907 + // line internal/php5/php5.y:3931 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6234,7 +6258,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3919 + // line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6248,7 +6272,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3931 + // line internal/php5/php5.y:3955 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6263,7 +6287,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3944 + // line internal/php5/php5.y:3968 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6278,7 +6302,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3957 + // line internal/php5/php5.y:3981 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6293,7 +6317,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3994 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6309,7 +6333,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3984 + // line internal/php5/php5.y:4008 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6324,7 +6348,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3997 + // line internal/php5/php5.y:4021 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6339,7 +6363,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4010 + // line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6354,7 +6378,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4023 + // line internal/php5/php5.y:4047 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6369,7 +6393,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4036 + // line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6384,7 +6408,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4049 + // line internal/php5/php5.y:4073 { yyVAL.node = yyDollar[1].node @@ -6397,7 +6421,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4058 + // line internal/php5/php5.y:4082 { yyVAL.node = yyDollar[1].node @@ -6405,7 +6429,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4064 + // line internal/php5/php5.y:4088 { yyVAL.node = yyDollar[2].node @@ -6439,7 +6463,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4096 + // line internal/php5/php5.y:4120 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6455,7 +6479,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4110 + // line internal/php5/php5.y:4134 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6471,7 +6495,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4124 + // line internal/php5/php5.y:4148 { yyVAL.node = yyDollar[1].node @@ -6479,7 +6503,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4130 + // line internal/php5/php5.y:4154 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6494,7 +6518,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4143 + // line internal/php5/php5.y:4167 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6509,7 +6533,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4156 + // line internal/php5/php5.y:4180 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6524,7 +6548,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4169 + // line internal/php5/php5.y:4193 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6539,7 +6563,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4182 + // line internal/php5/php5.y:4206 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6554,7 +6578,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4219 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6569,7 +6593,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4232 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6584,7 +6608,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4221 + // line internal/php5/php5.y:4245 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6607,7 +6631,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4266 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6621,7 +6645,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4254 + // line internal/php5/php5.y:4278 { yyVAL.node = yyDollar[1].node @@ -6629,7 +6653,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4284 { yyVAL.node = yyDollar[1].node @@ -6637,7 +6661,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4290 { yyVAL.node = yyDollar[1].node @@ -6645,7 +6669,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4272 + // line internal/php5/php5.y:4296 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6659,7 +6683,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4308 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6673,7 +6697,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6687,7 +6711,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4308 + // line internal/php5/php5.y:4332 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6716,7 +6740,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4334 + // line internal/php5/php5.y:4358 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6746,7 +6770,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4364 + // line internal/php5/php5.y:4388 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6760,7 +6784,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4376 + // line internal/php5/php5.y:4400 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6774,7 +6798,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4388 + // line internal/php5/php5.y:4412 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6789,7 +6813,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4401 + // line internal/php5/php5.y:4425 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6804,7 +6828,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4417 + // line internal/php5/php5.y:4441 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6819,7 +6843,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4430 + // line internal/php5/php5.y:4454 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6834,7 +6858,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4467 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6852,7 +6876,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4459 + // line internal/php5/php5.y:4483 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6867,7 +6891,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4499 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6883,7 +6907,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4489 + // line internal/php5/php5.y:4513 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6898,13 +6922,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4505 + // line internal/php5/php5.y:4529 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4512 + // line internal/php5/php5.y:4536 { yyVAL.ClosureUse = nil @@ -6912,7 +6936,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4518 + // line internal/php5/php5.y:4542 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6928,7 +6952,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4535 + // line internal/php5/php5.y:4559 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6946,7 +6970,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4551 + // line internal/php5/php5.y:4575 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6967,7 +6991,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4570 + // line internal/php5/php5.y:4594 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6984,7 +7008,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4585 + // line internal/php5/php5.y:4609 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7004,7 +7028,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4606 + // line internal/php5/php5.y:4630 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7017,7 +7041,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4617 + // line internal/php5/php5.y:4641 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7034,7 +7058,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4632 + // line internal/php5/php5.y:4656 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7050,7 +7074,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4670 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7065,7 +7089,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4659 + // line internal/php5/php5.y:4683 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7080,7 +7104,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4672 + // line internal/php5/php5.y:4696 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7095,7 +7119,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4685 + // line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7110,7 +7134,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7124,7 +7148,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4737 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7138,7 +7162,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4725 + // line internal/php5/php5.y:4749 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7149,7 +7173,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4734 + // line internal/php5/php5.y:4758 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7164,7 +7188,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4747 + // line internal/php5/php5.y:4771 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7178,7 +7202,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4762 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7189,7 +7213,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4771 + // line internal/php5/php5.y:4795 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7204,7 +7228,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4784 + // line internal/php5/php5.y:4808 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7218,7 +7242,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4799 + // line internal/php5/php5.y:4823 { yyVAL.node = yyDollar[1].node @@ -7226,7 +7250,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4805 + // line internal/php5/php5.y:4829 { yyVAL.node = yyDollar[1].node @@ -7234,7 +7258,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4814 + // line internal/php5/php5.y:4838 { yyVAL.node = yyDollar[1].node @@ -7277,7 +7301,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4855 + // line internal/php5/php5.y:4879 { yyVAL.node = yyDollar[1].node @@ -7285,7 +7309,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4865 + // line internal/php5/php5.y:4889 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7293,7 +7317,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4895 { yyVAL.list = []ast.Vertex{} @@ -7301,7 +7325,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4881 + // line internal/php5/php5.y:4905 { yyVAL.list = yyDollar[2].list @@ -7312,7 +7336,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4893 + // line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7320,7 +7344,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7335,7 +7359,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4912 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7356,7 +7380,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4956 { yyVAL.list = []ast.Vertex{} @@ -7364,7 +7388,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4962 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7376,7 +7400,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4948 + // line internal/php5/php5.y:4972 { yyVAL.list = yyDollar[1].list @@ -7384,7 +7408,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4957 + // line internal/php5/php5.y:4981 { yyVAL.node = nil @@ -7392,7 +7416,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4987 { yyVAL.node = yyDollar[1].node @@ -7400,7 +7424,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4972 + // line internal/php5/php5.y:4996 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7414,7 +7438,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4984 + // line internal/php5/php5.y:5008 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7428,7 +7452,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5020 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7442,7 +7466,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5032 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7456,7 +7480,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5044 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7470,7 +7494,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7484,7 +7508,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5068 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7498,7 +7522,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7512,7 +7536,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5068 + // line internal/php5/php5.y:5092 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7526,7 +7550,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5104 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7540,7 +7564,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5116 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7556,7 +7580,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5130 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7570,7 +7594,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5121 + // line internal/php5/php5.y:5145 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7588,7 +7612,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5164 { yyVAL.node = yyDollar[1].node @@ -7596,7 +7620,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5149 + // line internal/php5/php5.y:5173 { yyVAL.node = yyDollar[1].node @@ -7604,7 +7628,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5179 { yyVAL.node = yyDollar[1].node @@ -7612,7 +7636,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5161 + // line internal/php5/php5.y:5185 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7625,7 +7649,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5172 + // line internal/php5/php5.y:5196 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7642,7 +7666,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5187 + // line internal/php5/php5.y:5211 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7658,7 +7682,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5201 + // line internal/php5/php5.y:5225 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7674,7 +7698,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5215 + // line internal/php5/php5.y:5239 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7689,7 +7713,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5228 + // line internal/php5/php5.y:5252 { yyVAL.node = yyDollar[1].node @@ -7697,7 +7721,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5234 + // line internal/php5/php5.y:5258 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7711,7 +7735,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5246 + // line internal/php5/php5.y:5270 { yyVAL.node = yyDollar[1].node @@ -7719,7 +7743,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5279 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7734,7 +7758,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5292 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7749,7 +7773,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5281 + // line internal/php5/php5.y:5305 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7764,7 +7788,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5294 + // line internal/php5/php5.y:5318 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7779,7 +7803,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5331 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7794,7 +7818,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7809,7 +7833,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7824,7 +7848,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7838,7 +7862,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7852,7 +7876,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5394 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7867,7 +7891,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5383 + // line internal/php5/php5.y:5407 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7882,7 +7906,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5396 + // line internal/php5/php5.y:5420 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7897,7 +7921,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7912,7 +7936,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5422 + // line internal/php5/php5.y:5446 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7927,7 +7951,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5459 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7942,7 +7966,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5472 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7957,7 +7981,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5485 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7972,7 +7996,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5474 + // line internal/php5/php5.y:5498 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7987,7 +8011,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5487 + // line internal/php5/php5.y:5511 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8002,7 +8026,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5524 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8017,7 +8041,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5513 + // line internal/php5/php5.y:5537 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8032,7 +8056,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8047,7 +8071,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5539 + // line internal/php5/php5.y:5563 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8062,7 +8086,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5552 + // line internal/php5/php5.y:5576 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8078,7 +8102,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5566 + // line internal/php5/php5.y:5590 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8093,7 +8117,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5579 + // line internal/php5/php5.y:5603 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8108,7 +8132,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5616 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8123,7 +8147,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8138,7 +8162,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5642 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8154,7 +8178,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5632 + // line internal/php5/php5.y:5656 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8170,7 +8194,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5646 + // line internal/php5/php5.y:5670 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8184,7 +8208,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5658 + // line internal/php5/php5.y:5682 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8198,7 +8222,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5670 + // line internal/php5/php5.y:5694 { yyVAL.node = yyDollar[2].node @@ -8210,7 +8234,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5683 + // line internal/php5/php5.y:5707 { yyVAL.node = yyDollar[1].node @@ -8218,7 +8242,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5689 + // line internal/php5/php5.y:5713 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8231,7 +8255,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5700 + // line internal/php5/php5.y:5724 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8248,7 +8272,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5715 + // line internal/php5/php5.y:5739 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8264,7 +8288,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5732 + // line internal/php5/php5.y:5756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8280,7 +8304,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5746 + // line internal/php5/php5.y:5770 { yyVAL.node = yyDollar[1].node @@ -8288,7 +8312,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5752 + // line internal/php5/php5.y:5776 { yyVAL.node = yyDollar[1].node @@ -8296,7 +8320,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5782 { yyVAL.node = yyDollar[1].node @@ -8304,7 +8328,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5788 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8318,7 +8342,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5776 + // line internal/php5/php5.y:5800 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8332,7 +8356,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5812 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8346,7 +8370,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5803 + // line internal/php5/php5.y:5827 { yyVAL.list = nil @@ -8354,7 +8378,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5833 { yyVAL.list = yyDollar[1].list @@ -8367,19 +8391,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5823 + // line internal/php5/php5.y:5847 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5851 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5834 + // line internal/php5/php5.y:5858 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8396,7 +8420,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5849 + // line internal/php5/php5.y:5873 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8412,7 +8436,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5863 + // line internal/php5/php5.y:5887 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8428,7 +8452,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5877 + // line internal/php5/php5.y:5901 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8443,7 +8467,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5893 + // line internal/php5/php5.y:5917 { yyVAL.node = yyDollar[1].node @@ -8451,7 +8475,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5923 { yyVAL.node = yyDollar[1].node @@ -8459,7 +8483,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5908 + // line internal/php5/php5.y:5932 { yyVAL.node = yyDollar[2].node @@ -8477,7 +8501,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5924 + // line internal/php5/php5.y:5948 { yyVAL.node = yyDollar[2].node @@ -8495,7 +8519,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5944 + // line internal/php5/php5.y:5968 { yyVAL.node = yyDollar[1].node @@ -8503,7 +8527,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5954 + // line internal/php5/php5.y:5978 { yyVAL.node = yyDollar[1].node @@ -8511,7 +8535,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5963 + // line internal/php5/php5.y:5987 { yyVAL.node = yyDollar[1].node @@ -8519,7 +8543,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5996 { yyVAL.node = yyDollar[1].node @@ -8579,7 +8603,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6030 + // line internal/php5/php5.y:6054 { yyVAL.node = yyDollar[1].node @@ -8587,7 +8611,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6039 + // line internal/php5/php5.y:6063 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8595,7 +8619,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6045 + // line internal/php5/php5.y:6069 { yyVAL.list = []ast.Vertex{} @@ -8603,7 +8627,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6055 + // line internal/php5/php5.y:6079 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8619,7 +8643,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6072 + // line internal/php5/php5.y:6096 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8635,7 +8659,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6110 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8651,7 +8675,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6103 + // line internal/php5/php5.y:6127 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8662,7 +8686,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6115 + // line internal/php5/php5.y:6139 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8670,7 +8694,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6121 + // line internal/php5/php5.y:6145 { yyVAL.list = yyDollar[1].list @@ -8678,7 +8702,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6151 { yyVAL.list = nil @@ -8686,7 +8710,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6136 + // line internal/php5/php5.y:6160 { yyVAL.node = yyDollar[1].node @@ -8694,7 +8718,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6142 + // line internal/php5/php5.y:6166 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8708,7 +8732,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6157 + // line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8723,7 +8747,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6170 + // line internal/php5/php5.y:6194 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8738,7 +8762,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6186 + // line internal/php5/php5.y:6210 { yyVAL.node = yyDollar[1].node @@ -8746,7 +8770,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6195 + // line internal/php5/php5.y:6219 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8761,7 +8785,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6208 + // line internal/php5/php5.y:6232 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8776,7 +8800,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6224 + // line internal/php5/php5.y:6248 { yyVAL.node = yyDollar[1].node @@ -8784,7 +8808,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6230 + // line internal/php5/php5.y:6254 { yyVAL.node = yyDollar[1].node @@ -8792,7 +8816,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6236 + // line internal/php5/php5.y:6260 { yyVAL.node = yyDollar[1].node @@ -8800,7 +8824,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6246 + // line internal/php5/php5.y:6270 { yyVAL.node = yyDollar[1].node @@ -8808,7 +8832,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6252 + // line internal/php5/php5.y:6276 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8822,7 +8846,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6264 + // line internal/php5/php5.y:6288 { yyVAL.node = yyDollar[1].node @@ -8830,7 +8854,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6273 + // line internal/php5/php5.y:6297 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8845,7 +8869,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6286 + // line internal/php5/php5.y:6310 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8860,7 +8884,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6299 + // line internal/php5/php5.y:6323 { yyVAL.node = yyDollar[1].node @@ -8868,7 +8892,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6309 + // line internal/php5/php5.y:6333 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8884,7 +8908,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6323 + // line internal/php5/php5.y:6347 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8900,7 +8924,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6340 + // line internal/php5/php5.y:6364 { yyVAL.node = nil @@ -8908,7 +8932,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6346 + // line internal/php5/php5.y:6370 { yyVAL.node = yyDollar[1].node @@ -8916,7 +8940,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6356 + // line internal/php5/php5.y:6380 { yyVAL.list = yyDollar[1].list @@ -8924,7 +8948,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6362 + // line internal/php5/php5.y:6386 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8936,7 +8960,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6375 + // line internal/php5/php5.y:6399 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8952,7 +8976,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6389 + // line internal/php5/php5.y:6413 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8968,7 +8992,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6403 + // line internal/php5/php5.y:6427 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8980,7 +9004,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6416 + // line internal/php5/php5.y:6440 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8994,7 +9018,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6428 + // line internal/php5/php5.y:6452 { yyVAL.node = yyDollar[2].node @@ -9009,7 +9033,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6444 + // line internal/php5/php5.y:6468 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9024,7 +9048,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6457 + // line internal/php5/php5.y:6481 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9043,7 +9067,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6477 + // line internal/php5/php5.y:6501 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9058,7 +9082,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6490 + // line internal/php5/php5.y:6514 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9070,7 +9094,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6504 + // line internal/php5/php5.y:6528 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9084,7 +9108,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6516 + // line internal/php5/php5.y:6540 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9102,7 +9126,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6532 + // line internal/php5/php5.y:6556 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9110,7 +9134,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6542 + // line internal/php5/php5.y:6566 { yyVAL.list = []ast.Vertex{} @@ -9118,7 +9142,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6548 + // line internal/php5/php5.y:6572 { yyVAL.list = yyDollar[1].list @@ -9135,7 +9159,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6566 + // line internal/php5/php5.y:6590 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9152,7 +9176,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6581 + // line internal/php5/php5.y:6605 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9168,7 +9192,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6595 + // line internal/php5/php5.y:6619 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9184,7 +9208,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6609 + // line internal/php5/php5.y:6633 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9199,7 +9223,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6622 + // line internal/php5/php5.y:6646 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9219,7 +9243,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6640 + // line internal/php5/php5.y:6664 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9237,7 +9261,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6656 + // line internal/php5/php5.y:6680 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9256,7 +9280,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6673 + // line internal/php5/php5.y:6697 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9273,7 +9297,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6691 + // line internal/php5/php5.y:6715 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9281,7 +9305,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6697 + // line internal/php5/php5.y:6721 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9296,7 +9320,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6710 + // line internal/php5/php5.y:6734 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9304,7 +9328,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6716 + // line internal/php5/php5.y:6740 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9319,7 +9343,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6732 + // line internal/php5/php5.y:6756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9335,7 +9359,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6746 + // line internal/php5/php5.y:6770 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9354,7 +9378,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6763 + // line internal/php5/php5.y:6787 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9375,7 +9399,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6782 + // line internal/php5/php5.y:6806 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9392,7 +9416,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6797 + // line internal/php5/php5.y:6821 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9411,7 +9435,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6814 + // line internal/php5/php5.y:6838 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9432,7 +9456,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6833 + // line internal/php5/php5.y:6857 { yyVAL.node = yyDollar[2].node @@ -9444,7 +9468,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6846 + // line internal/php5/php5.y:6870 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9458,7 +9482,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6858 + // line internal/php5/php5.y:6882 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9477,7 +9501,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6875 + // line internal/php5/php5.y:6899 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9493,7 +9517,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6892 + // line internal/php5/php5.y:6916 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9509,7 +9533,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6906 + // line internal/php5/php5.y:6930 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9525,7 +9549,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6920 + // line internal/php5/php5.y:6944 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9541,7 +9565,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6934 + // line internal/php5/php5.y:6958 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9555,7 +9579,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6946 + // line internal/php5/php5.y:6970 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9569,7 +9593,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6958 + // line internal/php5/php5.y:6982 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9585,7 +9609,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6972 + // line internal/php5/php5.y:6996 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9599,7 +9623,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6984 + // line internal/php5/php5.y:7008 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9613,7 +9637,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6999 + // line internal/php5/php5.y:7023 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9621,7 +9645,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7005 + // line internal/php5/php5.y:7029 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9632,7 +9656,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7017 + // line internal/php5/php5.y:7041 { yyVAL.node = yyDollar[1].node @@ -9640,7 +9664,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7023 + // line internal/php5/php5.y:7047 { yyVAL.node = yyDollar[1].node @@ -9648,7 +9672,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7032 + // line internal/php5/php5.y:7056 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9666,7 +9690,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7048 + // line internal/php5/php5.y:7072 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9684,7 +9708,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7067 + // line internal/php5/php5.y:7091 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9702,7 +9726,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7086 + // line internal/php5/php5.y:7110 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 44430ec..5aa8b9e 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -525,15 +525,17 @@ use_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -541,14 +543,16 @@ use_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewNodeListPosition($2) + useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) + $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -556,16 +560,20 @@ use_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) alias.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) + asAlias.GetNode().Position = position.NewTokensPosition($3, $4) + useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -606,15 +614,17 @@ use_function_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -622,14 +632,16 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewNodeListPosition($2) + useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) + $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -637,16 +649,20 @@ use_function_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) alias.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) + asAlias.GetNode().Position = position.NewTokensPosition($3, $4) + useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -687,15 +703,17 @@ use_const_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -703,14 +721,16 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewNodeListPosition($2) + useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) + $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -718,16 +738,20 @@ use_const_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) alias.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) + asAlias.GetNode().Position = position.NewTokensPosition($3, $4) + useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 7c4c4c6..07cbd58 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -9,6 +9,8 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" ) @@ -8594,7 +8596,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3295, + StartPos: 3294, EndPos: 3298, }, }, @@ -8604,7 +8606,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3295, + StartPos: 3294, EndPos: 3298, }, }, @@ -8649,7 +8651,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3305, + StartPos: 3304, EndPos: 3315, }, }, @@ -8659,7 +8661,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3305, + StartPos: 3304, EndPos: 3315, }, }, @@ -8965,7 +8967,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3371, + StartPos: 3370, EndPos: 3374, }, }, @@ -9085,7 +9087,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3402, + StartPos: 3401, EndPos: 3412, }, }, @@ -9205,7 +9207,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3430, + StartPos: 3429, EndPos: 3433, }, }, @@ -9325,7 +9327,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3458, + StartPos: 3457, EndPos: 3468, }, }, @@ -22214,6 +22216,7 @@ func TestPhp5(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22352,6 +22355,7 @@ func TestPhp5Strings(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22579,6 +22583,7 @@ CAD; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 22f0676..99ac89f 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -8,6 +8,8 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/position" ) @@ -62,6 +64,7 @@ func TestIdentifier(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -956,6 +959,7 @@ func TestPhp7ArgumentNode(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1809,6 +1813,7 @@ func TestPhp7ParameterNode(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1831,6 +1836,7 @@ func TestCommentEndFile(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1909,6 +1915,7 @@ func TestName(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1985,6 +1992,7 @@ func TestFullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2061,6 +2069,7 @@ func TestRelative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2140,6 +2149,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2217,6 +2227,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2305,6 +2316,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2403,6 +2415,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2512,6 +2525,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2589,6 +2603,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2687,6 +2702,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2795,6 +2811,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2887,6 +2904,7 @@ LBL; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2979,6 +2997,7 @@ LBL; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3039,6 +3058,7 @@ LBL; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3085,6 +3105,7 @@ CAD; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3145,6 +3166,7 @@ CAD; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3190,6 +3212,7 @@ func TestScalarMagicConstant(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3234,6 +3257,7 @@ func TestScalarNumber_LNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3278,6 +3302,7 @@ func TestScalarNumber_DNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3322,6 +3347,7 @@ func TestScalarNumber_Float(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3366,6 +3392,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3410,6 +3437,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3454,6 +3482,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3498,6 +3527,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3542,6 +3572,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3586,6 +3617,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3632,6 +3664,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3676,6 +3709,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3722,6 +3756,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3792,6 +3827,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3905,6 +3941,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3995,6 +4032,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4173,6 +4211,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4308,6 +4347,7 @@ func TestStmtClassConstList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4430,6 +4470,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4509,6 +4550,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4658,6 +4700,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4784,6 +4827,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4899,6 +4943,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5026,6 +5071,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5071,6 +5117,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5129,6 +5176,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5220,6 +5268,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5313,6 +5362,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5429,6 +5479,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5584,6 +5635,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5683,6 +5735,7 @@ func TestStmtConstList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5749,6 +5802,7 @@ func TestStmtContinue_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5826,6 +5880,7 @@ func TestStmtContinue_Light(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5903,6 +5958,7 @@ func TestStmtContinue(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5980,6 +6036,7 @@ func TestStmtDeclare(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6090,6 +6147,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6169,6 +6227,7 @@ func TestStmtDeclare_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6224,6 +6283,7 @@ func TestStmtDo(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6291,6 +6351,7 @@ func TestStmtEcho(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6347,6 +6408,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6391,6 +6453,7 @@ func TestStmtExpression(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6587,6 +6650,7 @@ func TestStmtFor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6708,6 +6772,7 @@ func TestStmtFor_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6794,6 +6859,7 @@ func TestStmtForeach(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6870,6 +6936,7 @@ func TestStmtForeach_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6956,6 +7023,7 @@ func TestStmtForeach_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7063,6 +7131,7 @@ func TestStmtForeach_WithKey(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7160,6 +7229,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7277,6 +7347,7 @@ func TestStmtForeach_WithRef(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7406,6 +7477,7 @@ func TestStmtForeach_WithList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7452,6 +7524,7 @@ func TestStmtFunction(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7509,6 +7582,7 @@ func TestStmtFunction_Return(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7673,6 +7747,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7741,6 +7816,7 @@ func TestStmtFunction_Ref(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7810,6 +7886,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7866,6 +7943,7 @@ func TestStmtGlobal(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8027,6 +8105,7 @@ func TestStmtGlobal_Vars(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8092,6 +8171,7 @@ func TestStmtGotoLabel(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8125,6 +8205,7 @@ func TestStmtHaltCompiler(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8190,6 +8271,7 @@ func TestStmtIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8299,6 +8381,7 @@ func TestStmtIf_ElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8385,6 +8468,7 @@ func TestStmtIf_Else(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8557,6 +8641,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8739,6 +8824,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8783,6 +8869,7 @@ func TestStmtInlineHtml(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8828,6 +8915,7 @@ func TestStmtInterface(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8908,6 +8996,7 @@ func TestStmtInterface_Extend(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9011,6 +9100,7 @@ func TestStmtInterface_Extends(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9067,6 +9157,7 @@ func TestStmtNamespace(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9124,6 +9215,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9158,6 +9250,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9260,6 +9353,7 @@ func TestStmtProperty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9415,6 +9509,7 @@ func TestStmtProperty_Properties(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9570,6 +9665,7 @@ func TestStmtProperty_Properties2(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9695,6 +9791,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9761,6 +9858,7 @@ func TestStmtStaticVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9869,6 +9967,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9977,6 +10076,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10104,6 +10204,7 @@ func TestStmtSwitch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10231,6 +10332,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10348,6 +10450,7 @@ func TestStmtSwitch_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10453,6 +10556,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10507,6 +10611,7 @@ func TestStmtThrow(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10552,6 +10657,7 @@ func TestStmtTrait(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10643,6 +10749,7 @@ func TestStmtTraitUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10757,6 +10864,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10871,6 +10979,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11029,6 +11138,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11198,6 +11308,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11481,6 +11592,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11518,6 +11630,7 @@ func TestStmtTry_Try(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11613,6 +11726,7 @@ func TestStmtTry_TryCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11731,6 +11845,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11883,6 +11998,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11989,6 +12105,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12196,6 +12313,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12252,6 +12370,7 @@ func TestStmtUnset(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12329,6 +12448,7 @@ func TestStmtUnset_Vars(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12406,6 +12526,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12484,6 +12605,7 @@ func TestStmtUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12514,7 +12636,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -12524,7 +12646,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -12562,6 +12684,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12592,7 +12715,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -12602,7 +12725,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -12651,6 +12774,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12762,6 +12886,7 @@ func TestStmtUse_List(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12884,6 +13009,7 @@ func TestStmtUse_ListAlias(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12977,7 +13103,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 25, }, }, @@ -13016,6 +13142,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13120,7 +13247,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 39, }, }, @@ -13170,6 +13297,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13264,7 +13392,7 @@ func TestStmtUse_ListConstType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 22, }, }, @@ -13303,6 +13431,7 @@ func TestStmtUse_ListConstType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13407,7 +13536,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 36, }, }, @@ -13457,6 +13586,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13601,6 +13731,7 @@ func TestStmtUse_GroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13756,6 +13887,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13921,6 +14053,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14086,6 +14219,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14272,6 +14406,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14338,6 +14473,7 @@ func TestStmtBreak_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14415,6 +14551,7 @@ func TestStmtBreak_Light(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14492,6 +14629,7 @@ func TestStmtBreak(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14569,6 +14707,7 @@ func TestExprArrayDimFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14665,6 +14804,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14709,6 +14849,7 @@ func TestExprArray(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14775,6 +14916,7 @@ func TestExprArray_Item(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14894,6 +15036,7 @@ func TestExprArray_Items(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14971,6 +15114,7 @@ func TestExprArray_ItemUnpack(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15037,6 +15181,7 @@ func TestExprArrowFunction(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15126,6 +15271,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15190,6 +15336,7 @@ func TestExprBitwiseNot(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15254,6 +15401,7 @@ func TestExprBooleanNot(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15331,6 +15479,7 @@ func TestExprClassConstFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15396,6 +15545,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15460,6 +15610,7 @@ func TestExprClone_Brackets(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15524,6 +15675,7 @@ func TestExprClone(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15570,6 +15722,7 @@ func TestExprClosure(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15744,6 +15897,7 @@ func TestExprClosure_Use(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15918,6 +16072,7 @@ func TestExprClosure_Use2(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15987,6 +16142,7 @@ func TestExprClosure_ReturnType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16053,6 +16209,7 @@ func TestExprConstFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16119,6 +16276,7 @@ func TestExprConstFetch_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16185,6 +16343,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16249,6 +16408,7 @@ func TestExprEmpty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16313,6 +16473,7 @@ func TestExprErrorSuppress(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16377,6 +16538,7 @@ func TestExprEval(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16421,6 +16583,7 @@ func TestExprExit(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16465,6 +16628,7 @@ func TestExprExit_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16530,6 +16694,7 @@ func TestExprExit_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16574,6 +16739,7 @@ func TestExprDie(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16618,6 +16784,7 @@ func TestExprDie_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16683,6 +16850,7 @@ func TestExprDie_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16759,6 +16927,7 @@ func TestExprFunctionCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16835,6 +17004,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16936,6 +17106,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17055,6 +17226,7 @@ func TestExprFunctionCall_Var(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17187,6 +17359,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17251,6 +17424,7 @@ func TestExprPostDec(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17315,6 +17489,7 @@ func TestExprPostInc(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17379,6 +17554,7 @@ func TestExprPreDec(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17443,6 +17619,7 @@ func TestExprPreInc(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17507,6 +17684,7 @@ func TestExprInclude(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17571,6 +17749,7 @@ func TestExprInclude_Once(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17635,6 +17814,7 @@ func TestExprRequire(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17699,6 +17879,7 @@ func TestExprRequire_Once(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17786,6 +17967,7 @@ func TestExprInstanceOf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17873,6 +18055,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17960,6 +18143,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18026,6 +18210,7 @@ func TestExprIsset(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18113,6 +18298,7 @@ func TestExprIsset_Variables(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18188,6 +18374,7 @@ func TestExprList_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18295,6 +18482,7 @@ func TestExprList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18412,6 +18600,7 @@ func TestExprList_ArrayIndex(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18541,6 +18730,7 @@ func TestExprList_List(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18649,6 +18839,7 @@ func TestExprList_EmptyItem(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18759,6 +18950,7 @@ func TestExprList_EmptyItems(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18844,6 +19036,7 @@ func TestExprMethodCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18910,6 +19103,7 @@ func TestExprNew(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18986,6 +19180,7 @@ func TestExprNew_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19062,6 +19257,7 @@ func TestExprNew_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19194,6 +19390,7 @@ func TestExprNew_Anonymous(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19258,6 +19455,7 @@ func TestExprPrint(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19333,6 +19531,7 @@ func TestExprPropertyFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19451,6 +19650,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19528,6 +19728,7 @@ func TestExprShellExec(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19572,6 +19773,7 @@ func TestExprShortArray(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19638,6 +19840,7 @@ func TestExprShortArray_Item(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19757,6 +19960,7 @@ func TestExprShortArray_Items(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19864,6 +20068,7 @@ func TestExprShortList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19981,6 +20186,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20110,6 +20316,7 @@ func TestExprShortList_List(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20197,6 +20404,7 @@ func TestExprStaticCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20284,6 +20492,7 @@ func TestExprStaticCall_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20371,6 +20580,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20468,6 +20678,7 @@ func TestExprStaticCall_Var(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20563,6 +20774,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20650,6 +20862,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20737,6 +20950,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20824,6 +21038,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20930,6 +21145,7 @@ func TestExprTernary(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21015,6 +21231,7 @@ func TestExprTernary_Simple(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21173,6 +21390,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21331,6 +21549,7 @@ func TestExprTernary_NestedCond(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21395,6 +21614,7 @@ func TestExprUnaryMinus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21459,6 +21679,7 @@ func TestExprUnaryPlus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21513,6 +21734,7 @@ func TestExprVariable(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21577,6 +21799,7 @@ func TestExprVariable_Variable(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21620,6 +21843,7 @@ func TestExprYield(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21684,6 +21908,7 @@ func TestExprYield_Val(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21769,6 +21994,7 @@ func TestExprYield_KeyVal(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21823,6 +22049,7 @@ func TestExprYield_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21898,6 +22125,7 @@ func TestExprYield_KeyExpr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21962,6 +22190,7 @@ func TestExprYieldFrom(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22049,6 +22278,7 @@ func TestExprAssign_Assign(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22134,6 +22364,7 @@ func TestExprAssign_Reference(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22231,6 +22462,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22373,6 +22605,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22458,6 +22691,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22543,6 +22777,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22628,6 +22863,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22713,6 +22949,7 @@ func TestExprAssign_Concat(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22798,6 +23035,7 @@ func TestExprAssign_Div(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22883,6 +23121,7 @@ func TestExprAssign_Minus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22968,6 +23207,7 @@ func TestExprAssign_Mod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23053,6 +23293,7 @@ func TestExprAssign_Mul(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23138,6 +23379,7 @@ func TestExprAssign_Plus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23223,6 +23465,7 @@ func TestExprAssign_Pow(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23308,6 +23551,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23393,6 +23637,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23478,6 +23723,7 @@ func TestExprAssign_Coalesce(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23565,6 +23811,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23650,6 +23897,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23735,6 +23983,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23820,6 +24069,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23905,6 +24155,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23990,6 +24241,7 @@ func TestExprBinary_Coalesce(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24075,6 +24327,7 @@ func TestExprBinary_Concat(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24160,6 +24413,7 @@ func TestExprBinary_Div(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24245,6 +24499,7 @@ func TestExprBinary_Equal(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24330,6 +24585,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24415,6 +24671,7 @@ func TestExprBinary_Greater(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24500,6 +24757,7 @@ func TestExprBinary_Identical(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24585,6 +24843,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24670,6 +24929,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24755,6 +25015,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24840,6 +25101,7 @@ func TestExprBinary_Minus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24925,6 +25187,7 @@ func TestExprBinary_Mod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25010,6 +25273,7 @@ func TestExprBinary_Mul(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25095,6 +25359,7 @@ func TestExprBinary_NotEqual(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25180,6 +25445,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25265,6 +25531,7 @@ func TestExprBinary_Plus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25350,6 +25617,7 @@ func TestExprBinary_Pow(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25435,6 +25703,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25520,6 +25789,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25605,6 +25875,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25690,6 +25961,7 @@ func TestExprBinary_Smaller(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25775,6 +26047,7 @@ func TestExprBinary_Spaceship(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25841,6 +26114,7 @@ func TestExprCast_Array(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25905,6 +26179,7 @@ func TestExprCast_Bool(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25969,6 +26244,7 @@ func TestExprCast_BoolShort(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26033,6 +26309,7 @@ func TestExprCast_Double(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26097,6 +26374,7 @@ func TestExprCast_CastFloat(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26161,6 +26439,7 @@ func TestExprCast_Int(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26225,6 +26504,7 @@ func TestExprCast_IntShort(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26289,6 +26569,7 @@ func TestExprCast_Object(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26353,6 +26634,7 @@ func TestExprCast_String(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26417,6 +26699,7 @@ func TestExprCast_BinaryString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26481,5 +26764,6 @@ func TestExprCast_Unset(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e8f3682..d650f60 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5597 +// line internal/php7/php7.y:5623 // line yacctab:1 var yyExca = [...]int{ @@ -2916,109 +2916,129 @@ yydefault: { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:649 + // line internal/php7/php7.y:653 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[7].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[7].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) } - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:674 + // line internal/php7/php7.y:684 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:695 + // line internal/php7/php7.y:709 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[7].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[7].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) } - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:720 + // line internal/php7/php7.y:740 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:724 + // line internal/php7/php7.y:744 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:731 + // line internal/php7/php7.y:751 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3029,7 +3049,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:740 + // line internal/php7/php7.y:760 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3037,7 +3057,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:749 + // line internal/php7/php7.y:769 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3048,7 +3068,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:758 + // line internal/php7/php7.y:778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3056,7 +3076,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:767 + // line internal/php7/php7.y:787 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3067,7 +3087,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:776 + // line internal/php7/php7.y:796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3075,7 +3095,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:785 + // line internal/php7/php7.y:805 { yyVAL.node = yyDollar[1].node @@ -3083,7 +3103,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:791 + // line internal/php7/php7.y:811 { yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} @@ -3094,7 +3114,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:803 + // line internal/php7/php7.y:823 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -3107,26 +3127,28 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:814 + // line internal/php7/php7.y:834 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:834 + // line internal/php7/php7.y:856 { yyVAL.node = yyDollar[1].node @@ -3134,18 +3156,22 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:840 + // line internal/php7/php7.y:862 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, yyDollar[2].node} + + // save position + yyDollar[2].node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:852 + // line internal/php7/php7.y:878 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3156,7 +3182,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:861 + // line internal/php7/php7.y:887 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3164,7 +3190,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:896 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3179,7 +3205,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:883 + // line internal/php7/php7.y:909 { yyVAL.list = []ast.Vertex{} @@ -3187,7 +3213,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:892 + // line internal/php7/php7.y:918 { // error yyVAL.node = nil @@ -3196,7 +3222,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:899 + // line internal/php7/php7.y:925 { yyVAL.node = yyDollar[1].node @@ -3204,7 +3230,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:905 + // line internal/php7/php7.y:931 { yyVAL.node = yyDollar[1].node @@ -3212,7 +3238,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:911 + // line internal/php7/php7.y:937 { yyVAL.node = yyDollar[1].node @@ -3220,7 +3246,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:917 + // line internal/php7/php7.y:943 { yyVAL.node = yyDollar[1].node @@ -3228,7 +3254,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:923 + // line internal/php7/php7.y:949 { yyVAL.node = yyDollar[1].node @@ -3236,7 +3262,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:929 + // line internal/php7/php7.y:955 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3251,7 +3277,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:944 + // line internal/php7/php7.y:970 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3266,7 +3292,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:957 + // line internal/php7/php7.y:983 { yyVAL.node = yyDollar[1].node @@ -3274,7 +3300,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:963 + // line internal/php7/php7.y:989 { yyVAL.node = yyDollar[1].node @@ -3282,7 +3308,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:969 + // line internal/php7/php7.y:995 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3305,7 +3331,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:990 + // line internal/php7/php7.y:1016 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3324,7 +3350,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1007 + // line internal/php7/php7.y:1033 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3353,7 +3379,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1034 + // line internal/php7/php7.y:1060 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3378,7 +3404,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1083 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3394,7 +3420,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1071 + // line internal/php7/php7.y:1097 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3410,7 +3436,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1111 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3426,7 +3452,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1099 + // line internal/php7/php7.y:1125 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3442,7 +3468,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1113 + // line internal/php7/php7.y:1139 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3458,7 +3484,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1127 + // line internal/php7/php7.y:1153 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3475,7 +3501,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1142 + // line internal/php7/php7.y:1168 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3489,7 +3515,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1154 + // line internal/php7/php7.y:1180 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3505,7 +3531,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1194 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3527,7 +3553,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1188 + // line internal/php7/php7.y:1214 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3553,7 +3579,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1213 + // line internal/php7/php7.y:1239 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3582,7 +3608,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1240 + // line internal/php7/php7.y:1266 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3599,7 +3625,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1281 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3614,7 +3640,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1268 + // line internal/php7/php7.y:1294 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3633,7 +3659,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1311 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3649,7 +3675,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1299 + // line internal/php7/php7.y:1325 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3668,7 +3694,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1342 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3685,7 +3711,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1359 { yyVAL.list = []ast.Vertex{} @@ -3693,7 +3719,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1339 + // line internal/php7/php7.y:1365 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3717,7 +3743,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1363 + // line internal/php7/php7.y:1389 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3725,7 +3751,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1369 + // line internal/php7/php7.y:1395 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3736,7 +3762,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1407 { yyVAL.node = nil @@ -3744,7 +3770,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1387 + // line internal/php7/php7.y:1413 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3760,7 +3786,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1404 + // line internal/php7/php7.y:1430 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3768,7 +3794,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1410 + // line internal/php7/php7.y:1436 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3779,7 +3805,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1422 + // line internal/php7/php7.y:1448 { yyVAL.node = yyDollar[1].node @@ -3787,7 +3813,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1431 + // line internal/php7/php7.y:1457 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3819,31 +3845,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1490 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1494 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1475 + // line internal/php7/php7.y:1501 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1505 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1486 + // line internal/php7/php7.y:1512 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3863,7 +3889,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1504 + // line internal/php7/php7.y:1530 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3882,7 +3908,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1524 + // line internal/php7/php7.y:1550 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3890,7 +3916,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1530 + // line internal/php7/php7.y:1556 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3898,7 +3924,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1565 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3912,7 +3938,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1577 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3926,7 +3952,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1566 + // line internal/php7/php7.y:1592 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3945,7 +3971,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1586 + // line internal/php7/php7.y:1612 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3964,7 +3990,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1606 + // line internal/php7/php7.y:1632 { yyVAL.ClassExtends = nil @@ -3972,7 +3998,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1612 + // line internal/php7/php7.y:1638 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3986,7 +4012,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1627 + // line internal/php7/php7.y:1653 { yyVAL.InterfaceExtends = nil @@ -3994,7 +4020,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1633 + // line internal/php7/php7.y:1659 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4008,7 +4034,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1648 + // line internal/php7/php7.y:1674 { yyVAL.ClassImplements = nil @@ -4016,7 +4042,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1680 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4030,7 +4056,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1669 + // line internal/php7/php7.y:1695 { yyVAL.node = yyDollar[1].node @@ -4038,7 +4064,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1701 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4052,7 +4078,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1713 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4068,7 +4094,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1701 + // line internal/php7/php7.y:1727 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4083,7 +4109,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1717 + // line internal/php7/php7.y:1743 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4094,7 +4120,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1726 + // line internal/php7/php7.y:1752 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4113,7 +4139,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1746 + // line internal/php7/php7.y:1772 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4124,7 +4150,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1755 + // line internal/php7/php7.y:1781 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4143,7 +4169,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1801 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4154,7 +4180,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1784 + // line internal/php7/php7.y:1810 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4173,7 +4199,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1830 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4190,7 +4216,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1819 + // line internal/php7/php7.y:1845 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4208,7 +4234,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1835 + // line internal/php7/php7.y:1861 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4227,7 +4253,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1852 + // line internal/php7/php7.y:1878 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4248,7 +4274,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1874 + // line internal/php7/php7.y:1900 { yyVAL.list = []ast.Vertex{} @@ -4256,7 +4282,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1880 + // line internal/php7/php7.y:1906 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4273,7 +4299,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1895 + // line internal/php7/php7.y:1921 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4290,19 +4316,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1913 + // line internal/php7/php7.y:1939 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1917 + // line internal/php7/php7.y:1943 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1924 + // line internal/php7/php7.y:1950 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4313,7 +4339,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1933 + // line internal/php7/php7.y:1959 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4332,7 +4358,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1979 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4348,7 +4374,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1993 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4368,7 +4394,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1988 + // line internal/php7/php7.y:2014 { yyVAL.node = yyDollar[1].node @@ -4376,7 +4402,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1994 + // line internal/php7/php7.y:2020 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4394,7 +4420,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2013 + // line internal/php7/php7.y:2039 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4413,7 +4439,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2056 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4435,7 +4461,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2079 { yyVAL.node = yyDollar[1].node @@ -4451,7 +4477,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2067 + // line internal/php7/php7.y:2093 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4475,7 +4501,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2092 + // line internal/php7/php7.y:2118 { yyVAL.list = yyDollar[1].list @@ -4483,7 +4509,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2124 { yyVAL.list = nil @@ -4491,7 +4517,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2133 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4499,7 +4525,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2139 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4510,7 +4536,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2125 + // line internal/php7/php7.y:2151 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4548,7 +4574,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2161 + // line internal/php7/php7.y:2187 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4587,7 +4613,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2201 + // line internal/php7/php7.y:2227 { yyVAL.node = nil @@ -4595,7 +4621,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2233 { yyVAL.node = yyDollar[1].node @@ -4603,7 +4629,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2242 { yyVAL.node = yyDollar[1].node @@ -4611,7 +4637,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2248 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4625,7 +4651,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2263 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4639,7 +4665,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2249 + // line internal/php7/php7.y:2275 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4653,7 +4679,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2287 { yyVAL.node = yyDollar[1].node @@ -4661,7 +4687,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2296 { yyVAL.node = nil @@ -4669,7 +4695,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2276 + // line internal/php7/php7.y:2302 { yyVAL.node = yyDollar[2].node @@ -4680,7 +4706,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2314 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4695,7 +4721,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2301 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4714,7 +4740,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2321 + // line internal/php7/php7.y:2347 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4722,7 +4748,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2353 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4733,7 +4759,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2339 + // line internal/php7/php7.y:2365 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4747,7 +4773,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2351 + // line internal/php7/php7.y:2377 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4761,7 +4787,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2392 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4772,7 +4798,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2401 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4780,7 +4806,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2410 { yyVAL.node = yyDollar[1].node @@ -4788,7 +4814,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2419 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4799,7 +4825,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2428 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4807,7 +4833,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2437 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4825,7 +4851,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2453 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4844,7 +4870,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2473 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4852,7 +4878,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2453 + // line internal/php7/php7.y:2479 { yyVAL.list = []ast.Vertex{} @@ -4860,7 +4886,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2488 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4876,7 +4902,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2502 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4897,7 +4923,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2495 + // line internal/php7/php7.y:2521 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4911,7 +4937,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2507 + // line internal/php7/php7.y:2533 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4944,7 +4970,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2567 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4952,7 +4978,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2547 + // line internal/php7/php7.y:2573 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4963,7 +4989,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2559 + // line internal/php7/php7.y:2585 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4977,7 +5003,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2598 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4991,7 +5017,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5005,7 +5031,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2599 + // line internal/php7/php7.y:2625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5013,7 +5039,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2631 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5021,7 +5047,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2614 + // line internal/php7/php7.y:2640 { yyVAL.node = yyDollar[1].node @@ -5033,7 +5059,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2650 { yyVAL.node = yyDollar[1].node @@ -5045,7 +5071,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2637 + // line internal/php7/php7.y:2663 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5060,7 +5086,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2679 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5078,7 +5104,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2695 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5096,7 +5122,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2685 + // line internal/php7/php7.y:2711 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5114,7 +5140,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2701 + // line internal/php7/php7.y:2727 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5129,7 +5155,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2717 + // line internal/php7/php7.y:2743 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5145,7 +5171,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2757 { yyVAL.node = yyDollar[1].node @@ -5153,7 +5179,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2766 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5171,7 +5197,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2759 + // line internal/php7/php7.y:2785 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5186,7 +5212,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2772 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5201,7 +5227,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2814 { yyVAL.list = yyDollar[1].list @@ -5209,7 +5235,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2794 + // line internal/php7/php7.y:2820 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5224,7 +5250,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2836 { yyVAL.list = nil @@ -5232,7 +5258,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2816 + // line internal/php7/php7.y:2842 { yyVAL.list = yyDollar[1].list @@ -5240,7 +5266,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2851 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5248,7 +5274,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2831 + // line internal/php7/php7.y:2857 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5256,7 +5282,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2840 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5270,7 +5296,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5284,7 +5310,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2890 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5298,7 +5324,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2902 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5312,7 +5338,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2888 + // line internal/php7/php7.y:2914 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5326,7 +5352,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2926 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5340,7 +5366,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2941 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5351,7 +5377,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2924 + // line internal/php7/php7.y:2950 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5359,7 +5385,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2959 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5377,7 +5403,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2949 + // line internal/php7/php7.y:2975 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5396,7 +5422,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2995 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5407,7 +5433,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2978 + // line internal/php7/php7.y:3004 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5415,7 +5441,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2987 + // line internal/php7/php7.y:3013 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5432,7 +5458,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3005 + // line internal/php7/php7.y:3031 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5449,7 +5475,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3049 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5460,7 +5486,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3032 + // line internal/php7/php7.y:3058 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5468,7 +5494,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3067 { yyVAL.node = yyDollar[1].node @@ -5476,7 +5502,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3076 { yyVAL.list = nil @@ -5484,7 +5510,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3056 + // line internal/php7/php7.y:3082 { yyVAL.list = yyDollar[1].list @@ -5492,7 +5518,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3065 + // line internal/php7/php7.y:3091 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5503,7 +5529,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3100 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5511,7 +5537,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3109 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5531,7 +5557,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3130 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5548,7 +5574,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3119 + // line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5562,7 +5588,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3160 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5581,7 +5607,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3151 + // line internal/php7/php7.y:3177 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5599,7 +5625,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3167 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5640,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3180 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5630,7 +5656,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3194 + // line internal/php7/php7.y:3220 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5644,7 +5670,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3232 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5685,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5674,7 +5700,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3232 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5715,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5730,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5745,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5760,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5775,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5790,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5805,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5820,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5835,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5850,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5865,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5854,7 +5880,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5868,7 +5894,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3400 + // line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5883,7 +5909,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3439 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5897,7 +5923,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3425 + // line internal/php7/php7.y:3451 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5912,7 +5938,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3438 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5927,7 +5953,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5942,7 +5968,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5957,7 +5983,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5972,7 +5998,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,7 +6013,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6002,7 +6028,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6017,7 +6043,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6032,7 +6058,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6047,7 +6073,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6062,7 +6088,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6077,7 +6103,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6092,7 +6118,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6107,7 +6133,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6122,7 +6148,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6137,7 +6163,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6152,7 +6178,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6166,7 +6192,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3658 + // line internal/php7/php7.y:3684 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6180,7 +6206,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3670 + // line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6194,7 +6220,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3708 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6208,7 +6234,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3720 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6223,7 +6249,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3707 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6238,7 +6264,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6253,7 +6279,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6269,7 +6295,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3747 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6284,7 +6310,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3760 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6299,7 +6325,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6314,7 +6340,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6329,7 +6355,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6344,7 +6370,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6359,7 +6385,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3851 { yyVAL.node = yyDollar[2].node @@ -6371,7 +6397,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3835 + // line internal/php7/php7.y:3861 { yyVAL.node = yyDollar[1].node @@ -6379,7 +6405,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3867 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6395,7 +6421,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3855 + // line internal/php7/php7.y:3881 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6411,7 +6437,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3869 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6426,7 +6452,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3908 { yyVAL.node = yyDollar[1].node @@ -6434,7 +6460,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3914 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6449,7 +6475,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6464,7 +6490,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3914 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6479,7 +6505,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6494,7 +6520,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6509,7 +6535,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6524,7 +6550,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6539,7 +6565,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:4005 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6568,7 +6594,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4032 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6582,7 +6608,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4044 { yyVAL.node = yyDollar[1].node @@ -6590,7 +6616,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4050 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6604,7 +6630,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4062 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6618,7 +6644,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4074 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6632,7 +6658,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4060 + // line internal/php7/php7.y:4086 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6646,7 +6672,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4098 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6661,7 +6687,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4085 + // line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6675,7 +6701,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4123 { yyVAL.node = yyDollar[1].node @@ -6683,7 +6709,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4103 + // line internal/php7/php7.y:4129 { yyVAL.node = yyDollar[2].node @@ -6706,7 +6732,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4126 + // line internal/php7/php7.y:4152 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6739,7 +6765,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4181 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6767,19 +6793,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4213 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4191 + // line internal/php7/php7.y:4217 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4198 + // line internal/php7/php7.y:4224 { yyVAL.ClosureUse = nil @@ -6787,7 +6813,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4204 + // line internal/php7/php7.y:4230 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6803,7 +6829,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4247 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6814,7 +6840,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4256 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6822,7 +6848,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4265 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6838,7 +6864,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4253 + // line internal/php7/php7.y:4279 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6857,7 +6883,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4273 + // line internal/php7/php7.y:4299 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6871,7 +6897,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6886,7 +6912,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6901,7 +6927,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4311 + // line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6915,7 +6941,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4326 + // line internal/php7/php7.y:4352 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6929,7 +6955,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4338 + // line internal/php7/php7.y:4364 { yyVAL.node = yyDollar[1].node @@ -6937,7 +6963,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4347 + // line internal/php7/php7.y:4373 { yyVAL.node = yyDollar[1].node @@ -6945,7 +6971,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4379 { yyVAL.node = yyDollar[1].node @@ -6953,7 +6979,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4388 { yyVAL.node = nil @@ -6961,7 +6987,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4394 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6976,7 +7002,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4384 + // line internal/php7/php7.y:4410 { yyVAL.list = []ast.Vertex{} @@ -6984,7 +7010,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4416 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6996,7 +7022,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4426 { yyVAL.list = yyDollar[1].list @@ -7004,7 +7030,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4409 + // line internal/php7/php7.y:4435 { yyVAL.node = nil @@ -7012,7 +7038,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4441 { yyVAL.node = yyDollar[1].node @@ -7020,7 +7046,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4450 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7036,7 +7062,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4438 + // line internal/php7/php7.y:4464 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7051,7 +7077,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7065,7 +7091,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4466 + // line internal/php7/php7.y:4492 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7079,7 +7105,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4478 + // line internal/php7/php7.y:4504 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7093,7 +7119,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4516 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7107,7 +7133,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4528 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7121,7 +7147,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4514 + // line internal/php7/php7.y:4540 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7135,7 +7161,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4526 + // line internal/php7/php7.y:4552 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7149,7 +7175,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4564 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7163,7 +7189,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4550 + // line internal/php7/php7.y:4576 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7177,7 +7203,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4562 + // line internal/php7/php7.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7191,7 +7217,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4600 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7205,7 +7231,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4586 + // line internal/php7/php7.y:4612 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7221,7 +7247,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4626 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7235,7 +7261,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4612 + // line internal/php7/php7.y:4638 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7249,7 +7275,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4624 + // line internal/php7/php7.y:4650 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7263,7 +7289,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4636 + // line internal/php7/php7.y:4662 { yyVAL.node = yyDollar[1].node @@ -7271,7 +7297,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4642 + // line internal/php7/php7.y:4668 { yyVAL.node = yyDollar[1].node @@ -7279,7 +7305,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4677 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7293,7 +7319,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4689 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7311,7 +7337,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4679 + // line internal/php7/php7.y:4705 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7329,7 +7355,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4724 { yyVAL.node = yyDollar[1].node @@ -7337,7 +7363,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4704 + // line internal/php7/php7.y:4730 { yyVAL.node = yyDollar[1].node @@ -7345,7 +7371,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4713 + // line internal/php7/php7.y:4739 { yyVAL.node = nil @@ -7353,7 +7379,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4719 + // line internal/php7/php7.y:4745 { yyVAL.node = yyDollar[1].node @@ -7361,7 +7387,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4728 + // line internal/php7/php7.y:4754 { yyVAL.node = yyDollar[1].node @@ -7369,7 +7395,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4737 + // line internal/php7/php7.y:4763 { yyVAL.node = yyDollar[1].node @@ -7377,7 +7403,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4769 { yyVAL.node = yyDollar[2].node @@ -7389,7 +7415,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4753 + // line internal/php7/php7.y:4779 { yyVAL.node = yyDollar[1].node @@ -7397,7 +7423,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4762 + // line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[1].node @@ -7405,7 +7431,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4768 + // line internal/php7/php7.y:4794 { yyVAL.node = yyDollar[2].node @@ -7417,7 +7443,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4778 + // line internal/php7/php7.y:4804 { yyVAL.node = yyDollar[1].node @@ -7425,43 +7451,13 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4787 + // line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4793 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 434: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4806 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4819 { @@ -7476,9 +7472,39 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 436: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4832 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 435: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4845 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4858 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7493,7 +7519,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4845 + // line internal/php7/php7.y:4871 { yyVAL.node = yyDollar[1].node @@ -7501,7 +7527,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4854 + // line internal/php7/php7.y:4880 { yyVAL.node = yyDollar[1].node @@ -7509,7 +7535,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4860 + // line internal/php7/php7.y:4886 { yyVAL.node = yyDollar[1].node @@ -7517,7 +7543,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4866 + // line internal/php7/php7.y:4892 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7532,7 +7558,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4882 + // line internal/php7/php7.y:4908 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7548,7 +7574,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4896 + // line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7564,7 +7590,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4910 + // line internal/php7/php7.y:4936 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7578,7 +7604,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4925 + // line internal/php7/php7.y:4951 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7593,7 +7619,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4938 + // line internal/php7/php7.y:4964 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7608,7 +7634,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4954 + // line internal/php7/php7.y:4980 { yyVAL.node = yyDollar[1].node @@ -7616,7 +7642,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4986 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7631,7 +7657,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4973 + // line internal/php7/php7.y:4999 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7646,7 +7672,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4986 + // line internal/php7/php7.y:5012 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7661,7 +7687,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4999 + // line internal/php7/php7.y:5025 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7676,7 +7702,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5012 + // line internal/php7/php7.y:5038 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7691,7 +7717,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5028 + // line internal/php7/php7.y:5054 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7705,7 +7731,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5040 + // line internal/php7/php7.y:5066 { yyVAL.node = yyDollar[2].node @@ -7717,7 +7743,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5050 + // line internal/php7/php7.y:5076 { yyVAL.node = yyDollar[1].node @@ -7725,7 +7751,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5059 + // line internal/php7/php7.y:5085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7739,7 +7765,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5071 + // line internal/php7/php7.y:5097 { yyVAL.node = yyDollar[2].node @@ -7751,7 +7777,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5081 + // line internal/php7/php7.y:5107 { yyVAL.node = yyDollar[1].node @@ -7759,7 +7785,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5090 + // line internal/php7/php7.y:5116 { yyVAL.list = yyDollar[1].list @@ -7767,7 +7793,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5099 + // line internal/php7/php7.y:5125 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7775,7 +7801,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5105 + // line internal/php7/php7.y:5131 { yyVAL.node = yyDollar[1].node @@ -7783,7 +7809,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5114 + // line internal/php7/php7.y:5140 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7798,7 +7824,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5127 + // line internal/php7/php7.y:5153 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7810,7 +7836,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5140 + // line internal/php7/php7.y:5166 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7825,7 +7851,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5153 + // line internal/php7/php7.y:5179 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7839,7 +7865,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5165 + // line internal/php7/php7.y:5191 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7857,7 +7883,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5181 + // line internal/php7/php7.y:5207 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7873,7 +7899,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5195 + // line internal/php7/php7.y:5221 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7887,7 +7913,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5207 + // line internal/php7/php7.y:5233 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7908,7 +7934,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5226 + // line internal/php7/php7.y:5252 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7927,7 +7953,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5246 + // line internal/php7/php7.y:5272 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7935,7 +7961,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5252 + // line internal/php7/php7.y:5278 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7950,7 +7976,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5265 + // line internal/php7/php7.y:5291 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7958,7 +7984,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5271 + // line internal/php7/php7.y:5297 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7973,7 +7999,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5287 + // line internal/php7/php7.y:5313 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7989,7 +8015,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5301 + // line internal/php7/php7.y:5327 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8008,7 +8034,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5318 + // line internal/php7/php7.y:5344 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8029,7 +8055,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5337 + // line internal/php7/php7.y:5363 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8046,7 +8072,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5352 + // line internal/php7/php7.y:5378 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8065,7 +8091,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5369 + // line internal/php7/php7.y:5395 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8086,7 +8112,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5388 + // line internal/php7/php7.y:5414 { yyVAL.node = yyDollar[2].node @@ -8098,7 +8124,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5401 + // line internal/php7/php7.y:5427 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8112,7 +8138,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5413 + // line internal/php7/php7.y:5439 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8131,7 +8157,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5430 + // line internal/php7/php7.y:5456 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8159,7 +8185,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5456 + // line internal/php7/php7.y:5482 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8175,7 +8201,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5473 + // line internal/php7/php7.y:5499 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8195,7 +8221,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5491 + // line internal/php7/php7.y:5517 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8211,7 +8237,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5505 + // line internal/php7/php7.y:5531 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8225,7 +8251,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5517 + // line internal/php7/php7.y:5543 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8239,7 +8265,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5529 + // line internal/php7/php7.y:5555 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8255,7 +8281,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5543 + // line internal/php7/php7.y:5569 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8269,7 +8295,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5555 + // line internal/php7/php7.y:5581 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8283,7 +8309,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5570 + // line internal/php7/php7.y:5596 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8291,7 +8317,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5576 + // line internal/php7/php7.y:5602 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8302,7 +8328,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5588 + // line internal/php7/php7.y:5614 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index c17bf65..5193903 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -628,42 +628,52 @@ group_use_declaration: { name := &ast.NameName{ast.Node{}, $1} useList := &ast.StmtUseList{ast.Node{}, $4} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($1) useList.GetNode().Position = position.NewNodeListPosition($4) + useListBrackets.GetNode().Position = position.NewTokensPosition($3, $6) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($2, $6) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($2.Tokens, $3.Tokens...)) if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($5.Tokens, $6.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $2} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, $5} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($2) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition($1, name) useList.GetNode().Position = position.NewNodeListPosition($5) + useListBrackets.GetNode().Position = position.NewTokensPosition($4, $7) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($3, $7) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($3.Tokens, $4.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($6.Tokens, $7.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) } - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -674,42 +684,52 @@ mixed_group_use_declaration: { name := &ast.NameName{ast.Node{}, $1} useList := &ast.StmtUseList{ast.Node{}, $4} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($1) useList.GetNode().Position = position.NewNodeListPosition($4) + useListBrackets.GetNode().Position = position.NewTokensPosition($3, $6) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($2, $6) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($2.Tokens, $3.Tokens...)) if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($5.Tokens, $6.Tokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $2} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, $5} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($2) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition($1, name) useList.GetNode().Position = position.NewNodeListPosition($5) + useListBrackets.GetNode().Position = position.NewTokensPosition($4, $7) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($3, $7) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($3.Tokens, $4.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($6.Tokens, $7.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) } - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -814,15 +834,17 @@ unprefixed_use_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -838,10 +860,14 @@ use_declaration: } | T_NS_SEPARATOR unprefixed_use_declaration { - $$ = $2; + $$ = &ast.ParserNsSeparator{ast.Node{}, $2} + + // save position + $2.GetNode().Position = position.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 27e217a..49f450b 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -9,6 +9,8 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" ) @@ -9082,7 +9084,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3376, + StartPos: 3375, EndPos: 3379, }, }, @@ -9092,7 +9094,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3376, + StartPos: 3375, EndPos: 3379, }, }, @@ -9137,7 +9139,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3386, + StartPos: 3385, EndPos: 3396, }, }, @@ -9147,7 +9149,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3386, + StartPos: 3385, EndPos: 3396, }, }, @@ -9453,7 +9455,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3452, + StartPos: 3451, EndPos: 3455, }, }, @@ -9573,7 +9575,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3483, + StartPos: 3482, EndPos: 3493, }, }, @@ -9693,7 +9695,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3511, + StartPos: 3510, EndPos: 3514, }, }, @@ -9813,7 +9815,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3539, + StartPos: 3538, EndPos: 3549, }, }, @@ -19597,6 +19599,7 @@ func TestPhp7(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19735,6 +19738,7 @@ func TestPhp5Strings(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19962,6 +19966,7 @@ CAD; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 4513b11..4259f92 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -198,4 +198,8 @@ type NodeVisitor interface { NameFullyQualified(n *NameFullyQualified) NameRelative(n *NameRelative) NameNamePart(n *NameNamePart) + + ParserAs(n *ParserAs) + ParserNsSeparator(n *ParserNsSeparator) + ParserBrackets(n *ParserBrackets) } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index b609578..81f6ef4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1876,3 +1876,30 @@ type NameNamePart struct { func (n *NameNamePart) Accept(v NodeVisitor) { v.NameNamePart(n) } + +type ParserAs struct { + Node + Child Vertex +} + +func (n *ParserAs) Accept(v NodeVisitor) { + v.ParserAs(n) +} + +type ParserNsSeparator struct { + Node + Child Vertex +} + +func (n *ParserNsSeparator) Accept(v NodeVisitor) { + v.ParserNsSeparator(n) +} + +type ParserBrackets struct { + Node + Child Vertex +} + +func (n *ParserBrackets) Accept(v NodeVisitor) { + v.ParserBrackets(n) +} diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index a71c83b..03ebbad 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -2783,6 +2783,42 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } + case *ast.ParserAs: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Child != nil { + t.visitor.Enter("Child", true) + t.Traverse(nn.Child) + t.visitor.Leave("Child", true) + } + case *ast.ParserNsSeparator: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Child != nil { + t.visitor.Enter("Child", true) + t.Traverse(nn.Child) + t.visitor.Leave("Child", true) + } + case *ast.ParserBrackets: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Child != nil { + t.visitor.Enter("Child", true) + t.Traverse(nn.Child) + t.visitor.Leave("Child", true) + } default: panic("unexpected type of node") } diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index fd9e253..312b888 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -1288,3 +1288,21 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) } + +func (v *Dump) ParserAs(n *ast.ParserAs) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ParserAs{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) ParserNsSeparator(n *ast.ParserNsSeparator) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ParserNsSeparator{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ParserBrackets{\n") + v.printNode(n.GetNode()) +} diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go new file mode 100644 index 0000000..c8eaabf --- /dev/null +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -0,0 +1,42 @@ +package visitor + +import ( + "github.com/z7zmey/php-parser/pkg/ast" +) + +type FilterParserNodes struct { + Null +} + +func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { + n.Accept(v) + return true +} + +func (v *FilterParserNodes) StmtGroupUseList(n *ast.StmtGroupUseList) { + if nn, ok := n.Prefix.(*ast.ParserNsSeparator); ok { + n.Prefix = nn.Child + } + + if nn, ok := n.UseList.(*ast.ParserNsSeparator); ok { + n.UseList = nn.Child + } + + if nn, ok := n.UseList.(*ast.ParserBrackets); ok { + n.UseList = nn.Child + } +} + +func (v *FilterParserNodes) StmtUseList(n *ast.StmtUseList) { + for k, v := range n.UseDeclarations { + if nn, ok := v.(*ast.ParserNsSeparator); ok { + n.UseDeclarations[k] = nn.Child + } + } +} + +func (v *FilterParserNodes) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + if nn, ok := n.Alias.(*ast.ParserAs); ok { + n.Alias = nn.Child + } +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index e291500..033a77f 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -713,3 +713,15 @@ func (v *Null) NameRelative(_ *ast.NameRelative) { func (v *Null) NameNamePart(_ *ast.NameNamePart) { // do nothing } + +func (v *Null) ParserAs(_ *ast.ParserAs) { + // do nothing +} + +func (v *Null) ParserNsSeparator(_ *ast.ParserNsSeparator) { + // do nothing +} + +func (v *Null) ParserBrackets(_ *ast.ParserBrackets) { + // do nothing +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4475a12..a5c5db5 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -19,10 +19,9 @@ type Printer struct { w io.Writer s printerState bufStart string - bufEnd string } -// NewPrinter - Constructor for Printer +// NewPrinter - Constructor for Printer func NewPrinter(w io.Writer) *Printer { return &Printer{ w: w, @@ -449,6 +448,12 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtUseType(n) case *ast.StmtWhile: p.printStmtWhile(n) + case *ast.ParserAs: + p.printParserAs(n) + case *ast.ParserNsSeparator: + p.printParserNsSeparator(n) + case *ast.ParserBrackets: + p.printParserBrackets(n) } } @@ -556,8 +561,7 @@ func (p *Printer) printNameName(n ast.Vertex) { p.joinPrint("\\", nn.Parts) - p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) - p.bufEnd = "" + p.printFreeFloating(nn, token.End) } func (p *Printer) printNameFullyQualified(n ast.Vertex) { @@ -568,8 +572,7 @@ func (p *Printer) printNameFullyQualified(n ast.Vertex) { io.WriteString(p.w, "\\") p.joinPrint("\\", nn.Parts) - p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) - p.bufEnd = "" + p.printFreeFloating(nn, token.End) } func (p *Printer) printNameRelative(n ast.Vertex) { @@ -585,8 +588,7 @@ func (p *Printer) printNameRelative(n ast.Vertex) { p.Print(part) } - p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) - p.bufEnd = "" + p.printFreeFloating(nn, token.End) } // scalar @@ -3203,43 +3205,38 @@ func (p *Printer) printStmtGroupUseList(n ast.Vertex) { p.Print(nn.Prefix) - p.bufStart = "\\{" - p.bufEnd = "}" + if _, ok := nn.UseList.(*ast.ParserNsSeparator); !ok { + io.WriteString(p.w, "\\{") + } + p.Print(nn.UseList) + if _, ok := nn.UseList.(*ast.ParserNsSeparator); !ok { + io.WriteString(p.w, "}") + } + p.printFreeFloating(nn, token.End) } func (p *Printer) printStmtUseList(n ast.Vertex) { nn := n.(*ast.StmtUseList) - - bufEnd := p.bufEnd - p.bufEnd = "" - - if p.bufStart == "\\{" { - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - } else { - p.printFreeFloating(nn, token.Start) - } + p.printFreeFloating(nn, token.Start) p.joinPrint(",", nn.UseDeclarations) - p.printFreeFloatingOrDefault(nn, token.End, bufEnd) + p.printFreeFloating(nn, token.End) } func (p *Printer) printStmtUseDeclaration(n ast.Vertex) { nn := n.(*ast.StmtUseDeclaration) p.printFreeFloating(nn, token.Start) - if nn.Alias != nil { - p.bufEnd = " " - } - p.Print(nn.Use) if nn.Alias != nil { - io.WriteString(p.w, "as") + if _, ok := nn.Alias.(*ast.ParserAs); !ok { + io.WriteString(p.w, " as") + } p.bufStart = " " p.Print(nn.Alias) @@ -3275,3 +3272,32 @@ func (p *Printer) printStmtWhile(n ast.Vertex) { p.printFreeFloating(nn, token.End) } + +func (p *Printer) printParserAs(n ast.Vertex) { + nn := n.(*ast.ParserAs) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "as") + p.Print(nn.Child) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printParserNsSeparator(n ast.Vertex) { + nn := n.(*ast.ParserNsSeparator) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "\\") + p.Print(nn.Child) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printParserBrackets(n ast.Vertex) { + nn := n.(*ast.ParserBrackets) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Child) + + p.printFreeFloating(nn, token.End) +}