From e98607f5d08bd7b0b89c18da1cd5c38093f19ffe Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 17 May 2020 23:50:23 +0300 Subject: [PATCH] [refactoring] use position.Position to store token position --- internal/php5/parser.go | 10 +- internal/php5/php5.go | 1040 ++++++++--------- internal/php7/parser.go | 10 +- internal/positionbuilder/position_builder.go | 44 +- .../positionbuilder/position_builder_test.go | 156 +-- internal/scanner/lexer.go | 8 +- internal/scanner/token.go | 12 +- 7 files changed, 646 insertions(+), 634 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index d4ec16d..e3b2dc9 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -8,7 +8,6 @@ import ( "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" ) @@ -45,14 +44,9 @@ func (l *Parser) Lex(lval *yySymType) int { } func (l *Parser) Error(msg string) { - pos := &position.Position{ - StartLine: l.currentToken.StartLine, - EndLine: l.currentToken.EndLine, - StartPos: l.currentToken.StartPos, - EndPos: l.currentToken.EndPos, - } + var pos = l.currentToken.Position - l.Lexer.AddError(errors.NewError(msg, pos)) + l.Lexer.AddError(errors.NewError(msg, &pos)) } func (l *Parser) WithTokens() { diff --git a/internal/php5/php5.go b/internal/php5/php5.go index b63ef14..c822f38 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:276 + // line internal/php5/php5.y:276 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) @@ -2326,7 +2326,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:288 + // line internal/php5/php5.y:288 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2341,7 +2341,7 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:301 + // line internal/php5/php5.y:301 { yyVAL.list = []ast.Vertex{} @@ -2349,7 +2349,7 @@ yydefault: } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:310 + // line internal/php5/php5.y:310 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2364,7 +2364,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:323 + // line internal/php5/php5.y:323 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2380,7 +2380,7 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:340 + // line internal/php5/php5.y:340 { // error yyVAL.node = nil @@ -2389,7 +2389,7 @@ yydefault: } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:347 + // line internal/php5/php5.y:347 { yyVAL.node = yyDollar[1].node @@ -2397,7 +2397,7 @@ yydefault: } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:353 + // line internal/php5/php5.y:353 { yyVAL.node = yyDollar[1].node @@ -2405,7 +2405,7 @@ yydefault: } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:359 + // line internal/php5/php5.y:359 { yyVAL.node = yyDollar[1].node @@ -2413,7 +2413,7 @@ yydefault: } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:365 + // line internal/php5/php5.y:365 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2431,7 +2431,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:381 + // line internal/php5/php5.y:381 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2450,7 +2450,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:398 + // line internal/php5/php5.y:398 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2469,7 +2469,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2485,7 +2485,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:429 + // line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} @@ -2501,7 +2501,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:443 + // line internal/php5/php5.y:443 { useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} @@ -2520,7 +2520,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:460 { useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} @@ -2539,7 +2539,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:477 + // line internal/php5/php5.y:477 { yyVAL.node = yyDollar[1].node @@ -2554,7 +2554,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:493 + // line internal/php5/php5.y:493 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2565,7 +2565,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:502 + // line internal/php5/php5.y:502 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2573,7 +2573,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:511 + // line internal/php5/php5.y:511 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2589,7 +2589,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:525 + // line internal/php5/php5.y:525 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2609,7 +2609,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:543 + // line internal/php5/php5.y:543 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2627,7 +2627,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:559 + // line internal/php5/php5.y:559 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2649,7 +2649,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:582 + // line internal/php5/php5.y:582 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2660,7 +2660,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:591 + // line internal/php5/php5.y:591 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2668,7 +2668,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:600 + // line internal/php5/php5.y:600 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2684,7 +2684,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:614 + // line internal/php5/php5.y:614 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2704,7 +2704,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:632 + // line internal/php5/php5.y:632 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2722,7 +2722,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:648 + // line internal/php5/php5.y:648 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2744,7 +2744,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:671 + // line internal/php5/php5.y:671 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2755,7 +2755,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:680 + // line internal/php5/php5.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2763,7 +2763,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:689 + // line internal/php5/php5.y:689 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2779,7 +2779,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:703 + // line internal/php5/php5.y:703 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2799,7 +2799,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:721 + // line internal/php5/php5.y:721 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2817,7 +2817,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:737 + // line internal/php5/php5.y:737 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2839,7 +2839,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:760 + // line internal/php5/php5.y:760 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2862,7 +2862,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:781 + // line internal/php5/php5.y:781 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2883,7 +2883,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:803 + // line internal/php5/php5.y:803 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2898,7 +2898,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.list = []ast.Vertex{} @@ -2906,7 +2906,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:826 + // line internal/php5/php5.y:826 { // error yyVAL.node = nil @@ -2915,7 +2915,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:833 + // line internal/php5/php5.y:833 { yyVAL.node = yyDollar[1].node @@ -2923,7 +2923,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:839 + // line internal/php5/php5.y:839 { yyVAL.node = yyDollar[1].node @@ -2931,7 +2931,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:845 + // line internal/php5/php5.y:845 { yyVAL.node = yyDollar[1].node @@ -2939,7 +2939,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:851 + // line internal/php5/php5.y:851 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2957,7 +2957,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:871 + // line internal/php5/php5.y:871 { yyVAL.node = yyDollar[1].node @@ -2965,7 +2965,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:877 + // line internal/php5/php5.y:877 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2982,7 +2982,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:895 + // line internal/php5/php5.y:895 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2997,7 +2997,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:908 + // line internal/php5/php5.y:908 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3025,7 +3025,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:932 + // 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} @@ -3053,7 +3053,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:956 + // line internal/php5/php5.y:956 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3082,7 +3082,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:981 + // line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3107,7 +3107,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1002 + // line internal/php5/php5.y:1002 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3136,7 +3136,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1029 + // line internal/php5/php5.y:1029 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3167,7 +3167,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1056 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3183,7 +3183,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1070 + // line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3199,7 +3199,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1084 + // line internal/php5/php5.y:1084 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3215,7 +3215,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1098 + // line internal/php5/php5.y:1098 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3231,7 +3231,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1112 + // line internal/php5/php5.y:1112 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3247,7 +3247,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1126 + // line internal/php5/php5.y:1126 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3263,7 +3263,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1140 + // line internal/php5/php5.y:1140 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3279,7 +3279,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1154 + // line internal/php5/php5.y:1154 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3295,7 +3295,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3311,7 +3311,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3327,7 +3327,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1196 + // line internal/php5/php5.y:1196 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3344,7 +3344,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1211 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3358,7 +3358,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1223 + // line internal/php5/php5.y:1223 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3374,7 +3374,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1237 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3392,7 +3392,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1253 + // line internal/php5/php5.y:1253 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3435,7 +3435,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1293 + // line internal/php5/php5.y:1293 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3478,7 +3478,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3495,7 +3495,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1348 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3510,7 +3510,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1361 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3530,7 +3530,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1379 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3546,7 +3546,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1393 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3565,7 +3565,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1413 + // line internal/php5/php5.y:1413 { yyVAL.list = []ast.Vertex{} @@ -3573,7 +3573,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1419 + // line internal/php5/php5.y:1419 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3598,7 +3598,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1445 + // line internal/php5/php5.y:1445 { yyVAL.node = nil @@ -3606,7 +3606,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1451 + // line internal/php5/php5.y:1451 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3622,7 +3622,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1468 + // line internal/php5/php5.y:1468 { yyVAL.list = yyDollar[1].list @@ -3630,7 +3630,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1474 { yyVAL.list = []ast.Vertex{} @@ -3638,7 +3638,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1483 + // line internal/php5/php5.y:1483 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3646,7 +3646,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1489 + // line internal/php5/php5.y:1489 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3654,7 +3654,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1498 + // line internal/php5/php5.y:1498 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3678,7 +3678,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3686,7 +3686,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1529 + // line internal/php5/php5.y:1529 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3697,7 +3697,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1541 { yyVAL.node = yyDollar[1].node @@ -3705,7 +3705,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1550 { yyVAL.node = yyDollar[1].node @@ -3713,7 +3713,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1559 { yyVAL.node = yyDollar[1].node @@ -3721,31 +3721,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1568 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1572 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1579 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1583 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1590 { 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} @@ -3771,7 +3771,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1617 + // line internal/php5/php5.y:1617 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3801,7 +3801,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1645 + // line internal/php5/php5.y:1645 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3820,7 +3820,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1666 + // line internal/php5/php5.y:1666 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3834,7 +3834,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1678 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3851,7 +3851,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1693 + // line internal/php5/php5.y:1693 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3865,7 +3865,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1705 + // line internal/php5/php5.y:1705 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3882,7 +3882,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1723 + // line internal/php5/php5.y:1723 { yyVAL.ClassExtends = nil @@ -3890,7 +3890,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1729 + // line internal/php5/php5.y:1729 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3904,13 +3904,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1744 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1751 + // line internal/php5/php5.y:1751 { yyVAL.InterfaceExtends = nil @@ -3918,7 +3918,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1757 + // line internal/php5/php5.y:1757 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3932,7 +3932,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1772 + // line internal/php5/php5.y:1772 { yyVAL.ClassImplements = nil @@ -3940,7 +3940,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1778 + // line internal/php5/php5.y:1778 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3954,7 +3954,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1793 + // line internal/php5/php5.y:1793 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3962,7 +3962,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1799 + // line internal/php5/php5.y:1799 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3973,7 +3973,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1811 { yyVAL.node = nil @@ -3981,7 +3981,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1817 { yyVAL.node = yyDollar[2].node @@ -3992,7 +3992,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1829 + // line internal/php5/php5.y:1829 { yyVAL.node = yyDollar[1].node @@ -4000,7 +4000,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1835 + // line internal/php5/php5.y:1835 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4014,7 +4014,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1847 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4030,7 +4030,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1864 + // line internal/php5/php5.y:1864 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4041,7 +4041,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1873 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4060,7 +4060,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1893 + // line internal/php5/php5.y:1893 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4071,7 +4071,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1902 + // line internal/php5/php5.y:1902 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4090,7 +4090,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1923 + // line internal/php5/php5.y:1923 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4101,7 +4101,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1932 + // line internal/php5/php5.y:1932 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4120,7 +4120,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1953 + // line internal/php5/php5.y:1953 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4138,7 +4138,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1969 + // line internal/php5/php5.y:1969 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4157,7 +4157,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1990 + // line internal/php5/php5.y:1990 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4174,7 +4174,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2005 + // line internal/php5/php5.y:2005 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4192,7 +4192,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2021 + // line internal/php5/php5.y:2021 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4211,7 +4211,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2038 + // line internal/php5/php5.y:2038 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4232,7 +4232,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2061 + // line internal/php5/php5.y:2061 { yyVAL.list = []ast.Vertex{} @@ -4240,7 +4240,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2067 + // line internal/php5/php5.y:2067 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4257,7 +4257,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2082 + // line internal/php5/php5.y:2082 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4274,19 +4274,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2101 + // line internal/php5/php5.y:2101 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2105 + // line internal/php5/php5.y:2105 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2113 + // line internal/php5/php5.y:2113 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4297,7 +4297,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2122 + // line internal/php5/php5.y:2122 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4316,7 +4316,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2144 { yyVAL.list = nil @@ -4324,7 +4324,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2150 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4347,7 +4347,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2173 + // line internal/php5/php5.y:2173 { yyVAL.list = nil @@ -4355,7 +4355,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2179 + // line internal/php5/php5.y:2179 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4381,7 +4381,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2205 + // line internal/php5/php5.y:2205 { yyVAL.node = nil @@ -4389,7 +4389,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2211 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4403,7 +4403,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2227 { yyVAL.node = nil @@ -4411,7 +4411,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2233 + // line internal/php5/php5.y:2233 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4428,7 +4428,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2252 + // line internal/php5/php5.y:2252 { yyVAL.list = yyDollar[1].list @@ -4436,7 +4436,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2258 + // line internal/php5/php5.y:2258 { yyVAL.list = nil @@ -4444,7 +4444,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2267 + // line internal/php5/php5.y:2267 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4452,7 +4452,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2273 + // line internal/php5/php5.y:2273 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4463,7 +4463,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2285 + // line internal/php5/php5.y:2285 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4513,7 +4513,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2330 + // line internal/php5/php5.y:2330 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4564,7 +4564,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2380 + // line internal/php5/php5.y:2380 { yyVAL.node = nil @@ -4572,7 +4572,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2386 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4586,7 +4586,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2398 + // line internal/php5/php5.y:2398 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4600,7 +4600,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2410 + // line internal/php5/php5.y:2410 { yyVAL.node = yyDollar[1].node @@ -4608,7 +4608,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2420 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4623,7 +4623,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2433 + // line internal/php5/php5.y:2433 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4638,7 +4638,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2446 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4655,7 +4655,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2465 + // line internal/php5/php5.y:2465 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4663,7 +4663,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2471 + // line internal/php5/php5.y:2471 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4674,7 +4674,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2483 + // line internal/php5/php5.y:2483 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4688,7 +4688,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2495 + // line internal/php5/php5.y:2495 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4702,7 +4702,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2507 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4716,7 +4716,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2519 + // line internal/php5/php5.y:2519 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4730,7 +4730,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2534 + // line internal/php5/php5.y:2534 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4741,7 +4741,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2543 + // line internal/php5/php5.y:2543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4749,7 +4749,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2553 + // line internal/php5/php5.y:2553 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4766,7 +4766,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2568 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4781,7 +4781,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2581 + // line internal/php5/php5.y:2581 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4798,7 +4798,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2600 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4819,7 +4819,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2619 + // line internal/php5/php5.y:2619 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4841,7 +4841,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2639 + // line internal/php5/php5.y:2639 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4861,7 +4861,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2657 + // line internal/php5/php5.y:2657 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4882,7 +4882,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2680 + // line internal/php5/php5.y:2680 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4890,7 +4890,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2686 { yyVAL.list = []ast.Vertex{} @@ -4898,7 +4898,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2696 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4914,7 +4914,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2710 + // line internal/php5/php5.y:2710 { yyVAL.node = yyDollar[1].node @@ -4929,7 +4929,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2723 + // line internal/php5/php5.y:2723 { yyVAL.node = yyDollar[1].node @@ -4937,7 +4937,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2729 + // line internal/php5/php5.y:2729 { 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} @@ -4970,7 +4970,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2763 + // line internal/php5/php5.y:2763 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4984,7 +4984,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4992,7 +4992,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2784 + // line internal/php5/php5.y:2784 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5003,7 +5003,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2796 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5017,7 +5017,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2808 + // line internal/php5/php5.y:2808 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5031,7 +5031,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2823 + // line internal/php5/php5.y:2823 { yyVAL.list = nil @@ -5039,7 +5039,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2829 { yyVAL.list = yyDollar[1].list @@ -5047,7 +5047,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2838 + // line internal/php5/php5.y:2838 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5055,7 +5055,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2844 + // line internal/php5/php5.y:2844 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5063,7 +5063,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2853 + // line internal/php5/php5.y:2853 { yyVAL.node = yyDollar[1].node @@ -5075,7 +5075,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2863 + // line internal/php5/php5.y:2863 { yyVAL.node = yyDollar[1].node @@ -5087,7 +5087,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2876 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5102,7 +5102,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2892 + // line internal/php5/php5.y:2892 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5110,7 +5110,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2898 + // line internal/php5/php5.y:2898 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5121,7 +5121,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2910 + // line internal/php5/php5.y:2910 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5137,7 +5137,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2924 + // line internal/php5/php5.y:2924 { yyVAL.node = yyDollar[1].node @@ -5145,7 +5145,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2933 + // line internal/php5/php5.y:2933 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5163,7 +5163,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2952 + // line internal/php5/php5.y:2952 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5181,7 +5181,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2968 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5196,7 +5196,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2984 + // line internal/php5/php5.y:2984 { yyVAL.node = nil @@ -5204,7 +5204,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2990 + // line internal/php5/php5.y:2990 { yyVAL.node = yyDollar[1].node @@ -5212,7 +5212,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2999 + // line internal/php5/php5.y:2999 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5227,7 +5227,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3012 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5242,7 +5242,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3028 { yyVAL.list = yyDollar[1].list @@ -5250,7 +5250,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3034 + // line internal/php5/php5.y:3034 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5265,7 +5265,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3050 + // line internal/php5/php5.y:3050 { yyVAL.list = nil @@ -5273,7 +5273,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3056 + // line internal/php5/php5.y:3056 { yyVAL.list = yyDollar[1].list @@ -5281,7 +5281,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3065 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5289,7 +5289,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3071 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5297,7 +5297,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5311,7 +5311,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3092 + // line internal/php5/php5.y:3092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5325,7 +5325,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3104 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5339,7 +5339,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3116 + // line internal/php5/php5.y:3116 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5353,7 +5353,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3128 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5367,7 +5367,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3140 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5381,7 +5381,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3155 + // line internal/php5/php5.y:3155 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5402,7 +5402,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3174 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5424,7 +5424,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3194 + // line internal/php5/php5.y:3194 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5444,7 +5444,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3212 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5465,7 +5465,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3234 + // line internal/php5/php5.y:3234 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5488,7 +5488,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3255 + // line internal/php5/php5.y:3255 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5508,7 +5508,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3276 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5519,7 +5519,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3285 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5527,7 +5527,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3295 { yyVAL.list = nil @@ -5535,7 +5535,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3301 + // line internal/php5/php5.y:3301 { yyVAL.list = yyDollar[1].list @@ -5543,7 +5543,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3310 + // line internal/php5/php5.y:3310 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5554,7 +5554,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3319 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5562,7 +5562,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3328 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5570,7 +5570,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3334 + // line internal/php5/php5.y:3334 { yyVAL.list = yyDollar[1].list @@ -5578,7 +5578,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3343 + // line internal/php5/php5.y:3343 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5594,7 +5594,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3357 + // line internal/php5/php5.y:3357 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5610,7 +5610,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3374 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5618,7 +5618,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3380 { yyVAL.list = yyDollar[1].list @@ -5626,7 +5626,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3386 { yyVAL.list = yyDollar[1].list @@ -5634,7 +5634,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3395 + // line internal/php5/php5.y:3395 { yyVAL.list = nil @@ -5642,7 +5642,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3401 { yyVAL.list = yyDollar[1].list @@ -5650,7 +5650,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3410 { if yyDollar[3].node != nil { @@ -5668,7 +5668,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3429 + // line internal/php5/php5.y:3429 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5687,7 +5687,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5702,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3459 + // line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5718,7 +5718,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3473 + // line internal/php5/php5.y:3473 { var _new *ast.ExprNew @@ -5747,7 +5747,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5761,7 +5761,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3512 + // line internal/php5/php5.y:3512 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5775,7 +5775,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3524 + // line internal/php5/php5.y:3524 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5790,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5805,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3550 + // line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5820,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5835,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5850,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3589 + // line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5865,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3602 + // line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5880,7 +5880,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3615 + // line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5895,7 +5895,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3628 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5910,7 +5910,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5925,7 +5925,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3654 + // line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5940,7 +5940,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3667 + // line internal/php5/php5.y:3667 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5955,7 +5955,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3680 + // line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5969,7 +5969,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5984,7 +5984,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3705 + // line internal/php5/php5.y:3705 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5998,7 +5998,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3717 + // line internal/php5/php5.y:3717 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6013,7 +6013,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3730 + // line internal/php5/php5.y:3730 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6028,7 +6028,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3743 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6043,7 +6043,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3756 + // line internal/php5/php5.y:3756 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6058,7 +6058,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3769 + // line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6073,7 +6073,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3782 + // line internal/php5/php5.y:3782 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6088,7 +6088,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3795 + // line internal/php5/php5.y:3795 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6103,7 +6103,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3808 + // line internal/php5/php5.y:3808 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6118,7 +6118,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3821 + // line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6133,7 +6133,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3834 + // line internal/php5/php5.y:3834 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6148,7 +6148,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3847 + // line internal/php5/php5.y:3847 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6163,7 +6163,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3860 + // line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6178,7 +6178,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6193,7 +6193,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3886 + // line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6208,7 +6208,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3899 + // line internal/php5/php5.y:3899 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6223,7 +6223,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3912 + // line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6238,7 +6238,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6253,7 +6253,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3938 + // line internal/php5/php5.y:3938 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6267,7 +6267,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3950 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6281,7 +6281,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3962 + // line internal/php5/php5.y:3962 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6295,7 +6295,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3974 + // line internal/php5/php5.y:3974 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6309,7 +6309,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3986 + // line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6324,7 +6324,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3999 + // line internal/php5/php5.y:3999 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6339,7 +6339,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4012 + // line internal/php5/php5.y:4012 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6354,7 +6354,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4025 + // line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6370,7 +6370,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6385,7 +6385,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4052 + // line internal/php5/php5.y:4052 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6400,7 +6400,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4065 + // line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6415,7 +6415,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4078 + // line internal/php5/php5.y:4078 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6430,7 +6430,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4091 + // line internal/php5/php5.y:4091 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6445,7 +6445,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4104 { yyVAL.node = yyDollar[1].node @@ -6458,7 +6458,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4113 { yyVAL.node = yyDollar[1].node @@ -6466,7 +6466,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4119 + // line internal/php5/php5.y:4119 { yyVAL.node = yyDollar[2].node @@ -6500,7 +6500,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6516,7 +6516,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4165 + // line internal/php5/php5.y:4165 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6532,7 +6532,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4179 { yyVAL.node = yyDollar[1].node @@ -6540,7 +6540,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4185 + // line internal/php5/php5.y:4185 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6555,7 +6555,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4198 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6570,7 +6570,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4211 + // line internal/php5/php5.y:4211 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6585,7 +6585,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4224 + // line internal/php5/php5.y:4224 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6600,7 +6600,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4237 + // line internal/php5/php5.y:4237 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6615,7 +6615,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4250 + // line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6630,7 +6630,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4263 + // line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6645,7 +6645,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4276 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6668,7 +6668,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4297 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6682,7 +6682,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4309 + // line internal/php5/php5.y:4309 { yyVAL.node = yyDollar[1].node @@ -6690,7 +6690,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4315 + // line internal/php5/php5.y:4315 { yyVAL.node = yyDollar[1].node @@ -6698,7 +6698,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4321 { yyVAL.node = yyDollar[1].node @@ -6706,7 +6706,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4327 + // line internal/php5/php5.y:4327 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6720,7 +6720,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6734,7 +6734,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 + // line internal/php5/php5.y:4351 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6748,7 +6748,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:4363 + // line internal/php5/php5.y:4363 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6777,7 +6777,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4389 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6807,7 +6807,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6821,7 +6821,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4431 + // line internal/php5/php5.y:4431 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6835,7 +6835,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4443 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6850,7 +6850,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4456 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6865,7 +6865,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4472 + // line internal/php5/php5.y:4472 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6881,7 +6881,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4486 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6897,7 +6897,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4500 + // line internal/php5/php5.y:4500 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6915,7 +6915,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4516 + // line internal/php5/php5.y:4516 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6931,7 +6931,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4533 + // line internal/php5/php5.y:4533 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6947,7 +6947,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4547 + // line internal/php5/php5.y:4547 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6962,13 +6962,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 + // line internal/php5/php5.y:4563 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4570 + // line internal/php5/php5.y:4570 { yyVAL.ClosureUse = nil @@ -6976,7 +6976,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4576 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6992,7 +6992,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4593 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7011,7 +7011,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4610 + // line internal/php5/php5.y:4610 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7033,7 +7033,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4630 + // line internal/php5/php5.y:4630 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7051,7 +7051,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4646 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7072,7 +7072,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4668 + // line internal/php5/php5.y:4668 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7088,7 +7088,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4682 + // line internal/php5/php5.y:4682 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7105,7 +7105,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4697 + // line internal/php5/php5.y:4697 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7121,7 +7121,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4711 + // line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7136,7 +7136,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7151,7 +7151,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7166,7 +7166,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7181,7 +7181,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4763 + // line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7195,7 +7195,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4778 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7209,7 +7209,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7223,7 +7223,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4802 + // line internal/php5/php5.y:4802 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7238,7 +7238,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4815 + // line internal/php5/php5.y:4815 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7252,7 +7252,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4830 + // line internal/php5/php5.y:4830 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7266,7 +7266,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4842 + // line internal/php5/php5.y:4842 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7281,7 +7281,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4855 + // line internal/php5/php5.y:4855 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7295,7 +7295,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4870 { yyVAL.node = yyDollar[1].node @@ -7303,7 +7303,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4876 + // line internal/php5/php5.y:4876 { yyVAL.node = yyDollar[1].node @@ -7311,7 +7311,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4885 + // line internal/php5/php5.y:4885 { yyVAL.node = yyDollar[1].node @@ -7354,7 +7354,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4926 { yyVAL.node = yyDollar[1].node @@ -7362,7 +7362,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4936 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7370,7 +7370,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4942 { yyVAL.list = []ast.Vertex{} @@ -7378,7 +7378,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4952 { yyVAL.list = yyDollar[2].list @@ -7389,7 +7389,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4964 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7397,7 +7397,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4970 + // line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7412,7 +7412,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4983 + // line internal/php5/php5.y:4983 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7433,7 +7433,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5003 + // line internal/php5/php5.y:5003 { yyVAL.list = []ast.Vertex{} @@ -7441,7 +7441,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5009 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7453,7 +7453,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5019 { yyVAL.list = yyDollar[1].list @@ -7461,7 +7461,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5028 + // line internal/php5/php5.y:5028 { yyVAL.node = nil @@ -7469,7 +7469,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5034 + // line internal/php5/php5.y:5034 { yyVAL.node = yyDollar[1].node @@ -7477,7 +7477,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5043 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7491,7 +7491,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5055 + // line internal/php5/php5.y:5055 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7505,7 +7505,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5067 + // line internal/php5/php5.y:5067 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7519,7 +7519,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5079 + // line internal/php5/php5.y:5079 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7533,7 +7533,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5091 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7547,7 +7547,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5103 + // line internal/php5/php5.y:5103 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7561,7 +7561,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5115 + // line internal/php5/php5.y:5115 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7575,7 +7575,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5127 + // line internal/php5/php5.y:5127 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7589,7 +7589,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5139 + // line internal/php5/php5.y:5139 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7603,7 +7603,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5151 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7617,7 +7617,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5163 + // line internal/php5/php5.y:5163 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7633,7 +7633,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5177 + // line internal/php5/php5.y:5177 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7647,7 +7647,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5192 + // line internal/php5/php5.y:5192 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7665,7 +7665,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5211 { yyVAL.node = yyDollar[1].node @@ -7673,7 +7673,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5220 + // line internal/php5/php5.y:5220 { yyVAL.node = yyDollar[1].node @@ -7681,7 +7681,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5226 + // line internal/php5/php5.y:5226 { yyVAL.node = yyDollar[1].node @@ -7689,7 +7689,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5232 + // line internal/php5/php5.y:5232 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7705,7 +7705,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5246 + // line internal/php5/php5.y:5246 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7722,7 +7722,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5261 + // line internal/php5/php5.y:5261 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7738,7 +7738,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5275 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7754,7 +7754,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5289 + // line internal/php5/php5.y:5289 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7769,7 +7769,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5302 { yyVAL.node = yyDollar[1].node @@ -7777,7 +7777,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5308 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7791,7 +7791,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5320 { yyVAL.node = yyDollar[1].node @@ -7799,7 +7799,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5329 + // line internal/php5/php5.y:5329 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7815,7 +7815,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5343 + // line internal/php5/php5.y:5343 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7830,7 +7830,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5356 + // line internal/php5/php5.y:5356 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7845,7 +7845,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5369 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7860,7 +7860,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7875,7 +7875,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5395 + // line internal/php5/php5.y:5395 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7890,7 +7890,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5408 + // line internal/php5/php5.y:5408 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7905,7 +7905,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5421 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7919,7 +7919,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7933,7 +7933,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5445 + // line internal/php5/php5.y:5445 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7948,7 +7948,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5458 + // line internal/php5/php5.y:5458 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7963,7 +7963,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5471 + // line internal/php5/php5.y:5471 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7978,7 +7978,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5484 + // line internal/php5/php5.y:5484 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7993,7 +7993,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5497 + // line internal/php5/php5.y:5497 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8008,7 +8008,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5510 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8023,7 +8023,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5523 + // line internal/php5/php5.y:5523 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8038,7 +8038,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5536 + // line internal/php5/php5.y:5536 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8053,7 +8053,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5549 + // line internal/php5/php5.y:5549 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8068,7 +8068,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5562 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8083,7 +8083,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5575 + // line internal/php5/php5.y:5575 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8098,7 +8098,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5588 + // line internal/php5/php5.y:5588 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8113,7 +8113,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5601 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8128,7 +8128,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5614 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8143,7 +8143,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5627 + // line internal/php5/php5.y:5627 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8159,7 +8159,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5641 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8174,7 +8174,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5654 + // line internal/php5/php5.y:5654 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8189,7 +8189,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5667 + // line internal/php5/php5.y:5667 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8204,7 +8204,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5680 + // line internal/php5/php5.y:5680 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8219,7 +8219,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5693 + // line internal/php5/php5.y:5693 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8235,7 +8235,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5707 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8251,7 +8251,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5721 + // line internal/php5/php5.y:5721 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8265,7 +8265,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5733 + // line internal/php5/php5.y:5733 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8279,7 +8279,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5745 + // line internal/php5/php5.y:5745 { yyVAL.node = yyDollar[2].node @@ -8291,7 +8291,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5758 { yyVAL.node = yyDollar[1].node @@ -8299,7 +8299,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5764 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8315,7 +8315,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5778 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8332,7 +8332,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5793 + // line internal/php5/php5.y:5793 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8348,7 +8348,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5810 + // line internal/php5/php5.y:5810 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8364,7 +8364,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5824 { yyVAL.node = yyDollar[1].node @@ -8372,7 +8372,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5830 + // line internal/php5/php5.y:5830 { yyVAL.node = yyDollar[1].node @@ -8380,7 +8380,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5836 { yyVAL.node = yyDollar[1].node @@ -8388,7 +8388,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5842 + // line internal/php5/php5.y:5842 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8402,7 +8402,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5854 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8416,7 +8416,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5866 + // line internal/php5/php5.y:5866 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8430,7 +8430,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5881 + // line internal/php5/php5.y:5881 { yyVAL.list = nil @@ -8438,7 +8438,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5887 + // line internal/php5/php5.y:5887 { yyVAL.list = yyDollar[1].list @@ -8451,19 +8451,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5901 + // line internal/php5/php5.y:5901 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5905 + // line internal/php5/php5.y:5905 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5912 + // line internal/php5/php5.y:5912 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8480,7 +8480,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5927 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8496,7 +8496,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5941 + // line internal/php5/php5.y:5941 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8512,7 +8512,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5955 + // line internal/php5/php5.y:5955 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8527,7 +8527,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5971 + // line internal/php5/php5.y:5971 { yyVAL.node = yyDollar[1].node @@ -8535,7 +8535,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5977 + // line internal/php5/php5.y:5977 { yyVAL.node = yyDollar[1].node @@ -8543,7 +8543,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5986 + // line internal/php5/php5.y:5986 { yyVAL.node = yyDollar[2].node @@ -8561,7 +8561,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6002 + // line internal/php5/php5.y:6002 { yyVAL.node = yyDollar[2].node @@ -8579,7 +8579,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6022 + // line internal/php5/php5.y:6022 { yyVAL.node = yyDollar[1].node @@ -8587,7 +8587,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6032 + // line internal/php5/php5.y:6032 { yyVAL.node = yyDollar[1].node @@ -8595,7 +8595,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6041 + // line internal/php5/php5.y:6041 { yyVAL.node = yyDollar[1].node @@ -8603,7 +8603,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6050 + // line internal/php5/php5.y:6050 { yyVAL.node = yyDollar[1].node @@ -8663,7 +8663,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6108 + // line internal/php5/php5.y:6108 { yyVAL.node = yyDollar[1].node @@ -8671,7 +8671,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6117 + // line internal/php5/php5.y:6117 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8679,7 +8679,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6123 + // line internal/php5/php5.y:6123 { yyVAL.list = []ast.Vertex{} @@ -8687,7 +8687,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6133 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8703,7 +8703,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6150 + // line internal/php5/php5.y:6150 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8719,7 +8719,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6164 + // line internal/php5/php5.y:6164 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8735,7 +8735,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8746,7 +8746,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6193 + // line internal/php5/php5.y:6193 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8754,7 +8754,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6199 + // line internal/php5/php5.y:6199 { yyVAL.list = yyDollar[1].list @@ -8762,7 +8762,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6205 + // line internal/php5/php5.y:6205 { yyVAL.list = nil @@ -8770,7 +8770,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6214 { yyVAL.node = yyDollar[1].node @@ -8778,7 +8778,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6220 + // line internal/php5/php5.y:6220 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8792,7 +8792,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6235 + // line internal/php5/php5.y:6235 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8807,7 +8807,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6248 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8822,7 +8822,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6264 + // line internal/php5/php5.y:6264 { yyVAL.node = yyDollar[1].node @@ -8830,7 +8830,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6273 + // line internal/php5/php5.y:6273 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8846,7 +8846,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6287 + // line internal/php5/php5.y:6287 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8862,7 +8862,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6304 + // line internal/php5/php5.y:6304 { yyVAL.node = yyDollar[1].node @@ -8870,7 +8870,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6310 { yyVAL.node = yyDollar[1].node @@ -8878,7 +8878,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6316 + // line internal/php5/php5.y:6316 { yyVAL.node = yyDollar[1].node @@ -8886,7 +8886,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6326 + // line internal/php5/php5.y:6326 { yyVAL.node = yyDollar[1].node @@ -8894,7 +8894,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6332 + // line internal/php5/php5.y:6332 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8908,7 +8908,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6344 + // line internal/php5/php5.y:6344 { yyVAL.node = yyDollar[1].node @@ -8916,7 +8916,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6353 + // line internal/php5/php5.y:6353 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8932,7 +8932,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6367 + // line internal/php5/php5.y:6367 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8948,7 +8948,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6381 + // line internal/php5/php5.y:6381 { yyVAL.node = yyDollar[1].node @@ -8956,7 +8956,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6391 + // line internal/php5/php5.y:6391 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8973,7 +8973,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6406 + // line internal/php5/php5.y:6406 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8990,7 +8990,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6424 + // line internal/php5/php5.y:6424 { yyVAL.node = nil @@ -8998,7 +8998,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6430 + // line internal/php5/php5.y:6430 { yyVAL.node = yyDollar[1].node @@ -9006,7 +9006,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6440 + // line internal/php5/php5.y:6440 { yyVAL.list = yyDollar[1].list @@ -9014,7 +9014,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6446 + // line internal/php5/php5.y:6446 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9026,7 +9026,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6459 + // line internal/php5/php5.y:6459 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9042,7 +9042,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6473 + // line internal/php5/php5.y:6473 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9058,7 +9058,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6487 + // line internal/php5/php5.y:6487 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9070,7 +9070,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6500 + // line internal/php5/php5.y:6500 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9084,7 +9084,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6512 + // line internal/php5/php5.y:6512 { yyVAL.node = yyDollar[2].node @@ -9099,7 +9099,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6528 + // line internal/php5/php5.y:6528 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9115,7 +9115,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6542 + // line internal/php5/php5.y:6542 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9135,7 +9135,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6563 + // line internal/php5/php5.y:6563 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9150,7 +9150,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6576 + // line internal/php5/php5.y:6576 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9162,7 +9162,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6590 + // line internal/php5/php5.y:6590 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9176,7 +9176,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6602 + // line internal/php5/php5.y:6602 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9194,7 +9194,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6618 + // line internal/php5/php5.y:6618 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9202,7 +9202,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6628 + // line internal/php5/php5.y:6628 { yyVAL.list = []ast.Vertex{} @@ -9210,7 +9210,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6634 + // line internal/php5/php5.y:6634 { yyVAL.list = yyDollar[1].list @@ -9227,7 +9227,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6652 + // line internal/php5/php5.y:6652 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9244,7 +9244,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6667 + // line internal/php5/php5.y:6667 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9260,7 +9260,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6681 + // line internal/php5/php5.y:6681 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9276,7 +9276,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6695 + // line internal/php5/php5.y:6695 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9291,7 +9291,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6708 + // line internal/php5/php5.y:6708 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9311,7 +9311,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6726 + // line internal/php5/php5.y:6726 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9329,7 +9329,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6742 + // line internal/php5/php5.y:6742 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9348,7 +9348,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6759 + // line internal/php5/php5.y:6759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9365,7 +9365,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6777 + // line internal/php5/php5.y:6777 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9373,7 +9373,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6783 + // line internal/php5/php5.y:6783 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9388,7 +9388,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6796 + // line internal/php5/php5.y:6796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9396,7 +9396,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6802 + // line internal/php5/php5.y:6802 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9411,7 +9411,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6818 + // line internal/php5/php5.y:6818 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9428,7 +9428,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6833 + // line internal/php5/php5.y:6833 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9448,7 +9448,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6851 + // line internal/php5/php5.y:6851 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9470,7 +9470,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6871 + // line internal/php5/php5.y:6871 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9487,7 +9487,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6886 + // line internal/php5/php5.y:6886 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9506,7 +9506,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6903 + // line internal/php5/php5.y:6903 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9527,7 +9527,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6922 + // line internal/php5/php5.y:6922 { yyVAL.node = yyDollar[2].node @@ -9539,7 +9539,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6935 + // line internal/php5/php5.y:6935 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9553,7 +9553,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6947 + // line internal/php5/php5.y:6947 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9572,7 +9572,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6964 + // line internal/php5/php5.y:6964 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9589,7 +9589,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6982 + // line internal/php5/php5.y:6982 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9605,7 +9605,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6996 + // line internal/php5/php5.y:6996 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9621,7 +9621,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:7010 + // line internal/php5/php5.y:7010 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9637,7 +9637,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7024 + // line internal/php5/php5.y:7024 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9651,7 +9651,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7036 + // line internal/php5/php5.y:7036 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9665,7 +9665,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:7048 + // line internal/php5/php5.y:7048 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9681,7 +9681,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7062 + // line internal/php5/php5.y:7062 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9695,7 +9695,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7074 + // line internal/php5/php5.y:7074 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9709,7 +9709,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7089 + // line internal/php5/php5.y:7089 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9717,7 +9717,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7095 + // line internal/php5/php5.y:7095 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9728,7 +9728,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7107 + // line internal/php5/php5.y:7107 { yyVAL.node = yyDollar[1].node @@ -9736,7 +9736,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7113 + // line internal/php5/php5.y:7113 { yyVAL.node = yyDollar[1].node @@ -9744,7 +9744,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7122 + // line internal/php5/php5.y:7122 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9762,7 +9762,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7138 + // line internal/php5/php5.y:7138 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9780,7 +9780,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7157 + // line internal/php5/php5.y:7157 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9798,7 +9798,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7176 + // line internal/php5/php5.y:7176 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php7/parser.go b/internal/php7/parser.go index a960984..918c795 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -7,7 +7,6 @@ import ( "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" ) @@ -43,14 +42,9 @@ func (l *Parser) Lex(lval *yySymType) int { } func (l *Parser) Error(msg string) { - pos := &position.Position{ - StartLine: l.currentToken.StartLine, - EndLine: l.currentToken.EndLine, - StartPos: l.currentToken.StartPos, - EndPos: l.currentToken.EndPos, - } + var pos = l.currentToken.Position - l.Lexer.AddError(errors.NewError(msg, pos)) + l.Lexer.AddError(errors.NewError(msg, &pos)) } func (l *Parser) WithTokens() { diff --git a/internal/positionbuilder/position_builder.go b/internal/positionbuilder/position_builder.go index cf06379..4f69393 100644 --- a/internal/positionbuilder/position_builder.go +++ b/internal/positionbuilder/position_builder.go @@ -100,29 +100,29 @@ func (b *PositionBuilder) NewNodePosition(n ast.Vertex) *position.Position { // NewTokenPosition returns new Position func (b *PositionBuilder) NewTokenPosition(t *scanner.Token) *position.Position { return &position.Position{ - StartLine: t.StartLine, - EndLine: t.EndLine, - StartPos: t.StartPos, - EndPos: t.EndPos, + StartLine: t.Position.StartLine, + EndLine: t.Position.EndLine, + StartPos: t.Position.StartPos, + EndPos: t.Position.EndPos, } } // NewTokensPosition returns new Position func (b *PositionBuilder) NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *position.Position { return &position.Position{ - StartLine: startToken.StartLine, - EndLine: endToken.EndLine, - StartPos: startToken.StartPos, - EndPos: endToken.EndPos, + StartLine: startToken.Position.StartLine, + EndLine: endToken.Position.EndLine, + StartPos: startToken.Position.StartPos, + EndPos: endToken.Position.EndPos, } } // NewTokenNodePosition returns new Position func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n ast.Vertex) *position.Position { return &position.Position{ - StartLine: t.StartLine, + StartLine: t.Position.StartLine, EndLine: b.getNodeEndPos(n).endLine, - StartPos: t.StartPos, + StartPos: t.Position.StartPos, EndPos: b.getNodeEndPos(n).endPos, } } @@ -131,9 +131,9 @@ func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n ast.Vertex) * func (b *PositionBuilder) NewNodeTokenPosition(n ast.Vertex, t *scanner.Token) *position.Position { return &position.Position{ StartLine: b.getNodeStartPos(n).startLine, - EndLine: t.EndLine, + EndLine: t.Position.EndLine, StartPos: b.getNodeStartPos(n).startPos, - EndPos: t.EndPos, + EndPos: t.Position.EndPos, } } @@ -151,18 +151,18 @@ func (b *PositionBuilder) NewNodesPosition(startNode ast.Vertex, endNode ast.Ver func (b *PositionBuilder) NewNodeListTokenPosition(list []ast.Vertex, t *scanner.Token) *position.Position { return &position.Position{ StartLine: b.getListStartPos(list).startLine, - EndLine: t.EndLine, + EndLine: t.Position.EndLine, StartPos: b.getListStartPos(list).startPos, - EndPos: t.EndPos, + EndPos: t.Position.EndPos, } } // NewTokenNodeListPosition returns new Position func (b *PositionBuilder) NewTokenNodeListPosition(t *scanner.Token, list []ast.Vertex) *position.Position { return &position.Position{ - StartLine: t.StartLine, + StartLine: t.Position.StartLine, EndLine: b.getListEndPos(list).endLine, - StartPos: t.StartPos, + StartPos: t.Position.StartPos, EndPos: b.getListEndPos(list).endPos, } } @@ -191,17 +191,17 @@ func (b *PositionBuilder) NewNodeListNodePosition(list []ast.Vertex, n ast.Verte func (b *PositionBuilder) NewOptionalListTokensPosition(list []ast.Vertex, t *scanner.Token, endToken *scanner.Token) *position.Position { if list == nil { return &position.Position{ - StartLine: t.StartLine, - EndLine: endToken.EndLine, - StartPos: t.StartPos, - EndPos: endToken.EndPos, + StartLine: t.Position.StartLine, + EndLine: endToken.Position.EndLine, + StartPos: t.Position.StartPos, + EndPos: endToken.Position.EndPos, } } return &position.Position{ StartLine: b.getListStartPos(list).startLine, - EndLine: endToken.EndLine, + EndLine: endToken.Position.EndLine, StartPos: b.getListStartPos(list).startPos, - EndPos: endToken.EndPos, + EndPos: endToken.Position.EndPos, } } diff --git a/internal/positionbuilder/position_builder_test.go b/internal/positionbuilder/position_builder_test.go index 5d0e5bc..24652d9 100644 --- a/internal/positionbuilder/position_builder_test.go +++ b/internal/positionbuilder/position_builder_test.go @@ -14,11 +14,13 @@ func TestNewTokenPosition(t *testing.T) { builder := positionbuilder.PositionBuilder{} tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } pos := builder.NewTokenPosition(tkn) @@ -32,18 +34,22 @@ func TestNewTokensPosition(t *testing.T) { builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } token2 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 6, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 4, + EndPos: 6, + }, } pos := builder.NewTokensPosition(token1, token2) @@ -72,11 +78,13 @@ func TestNewNodePosition(t *testing.T) { func TestNewTokenNodePosition(t *testing.T) { tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } n := &ast.Identifier{ Node: ast.Node{ @@ -109,11 +117,13 @@ func TestNewNodeTokenPosition(t *testing.T) { } tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, } builder := positionbuilder.PositionBuilder{} @@ -207,11 +217,13 @@ func TestNewNodeListTokenPosition(t *testing.T) { } tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 3, - EndLine: 3, - StartPos: 20, - EndPos: 22, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 20, + EndPos: 22, + }, } builder := positionbuilder.PositionBuilder{} @@ -223,11 +235,13 @@ func TestNewNodeListTokenPosition(t *testing.T) { func TestNewTokenNodeListPosition(t *testing.T) { tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 2, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 2, + }, } n1 := &ast.Identifier{ @@ -343,18 +357,22 @@ func TestNewOptionalListTokensPosition(t *testing.T) { builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } token2 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 6, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 4, + EndPos: 6, + }, } pos := builder.NewOptionalListTokensPosition(nil, token1, token2) @@ -387,18 +405,22 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 4, - EndLine: 4, - StartPos: 27, - EndPos: 29, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 27, + EndPos: 29, + }, } token2 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 5, - EndLine: 5, - StartPos: 30, - EndPos: 32, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 30, + EndPos: 32, + }, } pos := builder.NewOptionalListTokensPosition([]ast.Vertex{n2, n3}, token1, token2) @@ -435,11 +457,13 @@ func TestNilNodeListPos(t *testing.T) { func TestNilNodeListTokenPos(t *testing.T) { token := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } builder := positionbuilder.PositionBuilder{} @@ -470,11 +494,13 @@ func TestEmptyNodeListPos(t *testing.T) { func TestEmptyNodeListTokenPos(t *testing.T) { token := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } builder := positionbuilder.PositionBuilder{} diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 89b6891..9dad9d0 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -78,10 +78,10 @@ func (l *Lexer) SetErrors(e []*errors.Error) { } func (lex *Lexer) setTokenPosition(token *Token) { - token.StartLine = lex.NewLines.GetLine(lex.ts) - token.EndLine = lex.NewLines.GetLine(lex.te - 1) - token.StartPos = lex.ts - token.EndPos = lex.te + token.Position.StartLine = lex.NewLines.GetLine(lex.ts) + token.Position.EndLine = lex.NewLines.GetLine(lex.te - 1) + token.Position.StartPos = lex.ts + token.Position.EndPos = lex.te } func (lex *Lexer) addToken(id TokenID, ps, pe int) { diff --git a/internal/scanner/token.go b/internal/scanner/token.go index 7c07126..793958c 100644 --- a/internal/scanner/token.go +++ b/internal/scanner/token.go @@ -1,16 +1,14 @@ package scanner import ( + "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" ) // Token value returned by lexer type Token struct { - ID TokenID - Value []byte - Tokens []token.Token - StartLine int - EndLine int - StartPos int - EndPos int + ID TokenID + Value []byte + Tokens []token.Token + Position position.Position }