From f3a605aba11d44015fca4b7d01ee612961833645 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 8 Dec 2020 02:08:59 +0200 Subject: [PATCH] [refactoring] update position builder --- Makefile | 7 +- internal/php5/parser.go | 3 + internal/php5/php5.go | Bin 257350 -> 264995 bytes internal/php5/php5.y | 1027 ++++++++++++++++----------------- internal/php7/parser.go | 3 + internal/php7/php7.go | Bin 213588 -> 219043 bytes internal/php7/php7.y | 735 ++++++++++++----------- internal/position/position.go | 215 ++++--- internal/scanner/lexer.go | 2 +- 9 files changed, 1013 insertions(+), 979 deletions(-) diff --git a/Makefile b/Makefile index 6bcfbcd..5309a04 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PHPFILE=example.php -all: compile fmt build run +all: compile fmt build fmt: find . -type f -iregex '.*\.go' -exec gofmt -l -s -w '{}' + @@ -9,9 +9,6 @@ build: go generate ./... go build ./cmd/... -run: - ./php-parser -d go $(PHPFILE) - test: go test ./... @@ -22,7 +19,7 @@ bench: go test -benchmem -bench=. ./internal/php5 go test -benchmem -bench=. ./internal/php7 -compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scanner.go fmt +compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scanner.go sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php7/php7.go sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php5/php5.go sed -i '' -e 's/\/\/line/\/\/ line/g' ./internal/php5/php5.go diff --git a/internal/php5/parser.go b/internal/php5/parser.go index ee75429..84015d2 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -1,6 +1,7 @@ package php5 import ( + builder "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -13,6 +14,7 @@ type Parser struct { currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) + builder *builder.Builder } // NewParser creates and returns new Parser @@ -20,6 +22,7 @@ func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser return &Parser{ Lexer: lexer, errHandlerFunc: errHandlerFunc, + builder: builder.NewBuilder(), } } diff --git a/internal/php5/php5.go b/internal/php5/php5.go index cf203cfb7976024ee7a247f7f0c322ab2a0ddf55..24fa23b155e37a3733f09cae54685b40a61807f9 100644 GIT binary patch delta 25993 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 delta 18779 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 0 { - pos = position.NewTokenNodeListPosition($1, $4) + pos = yylex.(*Parser).builder.NewTokenNodeListPosition($1, $4) } $$ = &ast.StmtIf{ @@ -796,7 +795,7 @@ unticked_statement: | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { $$ = &ast.StmtIf{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, @@ -804,7 +803,7 @@ unticked_statement: CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($4), + Position: yylex.(*Parser).builder.NewNodeListPosition($4), Stmts: $4, }, ElseIf: $5, @@ -819,14 +818,14 @@ unticked_statement: $3.(*ast.StmtWhile).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn $3.(*ast.StmtWhile).Cond = $2.(*ast.ParserBrackets).Child $3.(*ast.StmtWhile).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn - $3.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $3) $$ = $3 } | T_DO statement T_WHILE parenthesis_expr ';' { $$ = &ast.StmtDo{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -849,7 +848,7 @@ unticked_statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) $$ = $9 } @@ -859,14 +858,14 @@ unticked_statement: $3.(*ast.StmtSwitch).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn $3.(*ast.StmtSwitch).Cond = $2.(*ast.ParserBrackets).Child $3.(*ast.StmtSwitch).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn - $3.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $3) $$ = $3 } | T_BREAK ';' { $$ = &ast.StmtBreak{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), BreakTkn: $1, SemiColonTkn: $2, } @@ -874,7 +873,7 @@ unticked_statement: | T_BREAK expr ';' { $$ = &ast.StmtBreak{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -883,7 +882,7 @@ unticked_statement: | T_CONTINUE ';' { $$ = &ast.StmtContinue{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), ContinueTkn: $1, SemiColonTkn: $2, } @@ -891,7 +890,7 @@ unticked_statement: | T_CONTINUE expr ';' { $$ = &ast.StmtContinue{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -900,7 +899,7 @@ unticked_statement: | T_RETURN ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), ReturnTkn: $1, SemiColonTkn: $2, } @@ -908,7 +907,7 @@ unticked_statement: | T_RETURN expr_without_variable ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -917,7 +916,7 @@ unticked_statement: | T_RETURN variable ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -926,7 +925,7 @@ unticked_statement: | yield_expr ';' { $$ = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -936,7 +935,7 @@ unticked_statement: $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) - $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -945,7 +944,7 @@ unticked_statement: $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) - $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -953,14 +952,14 @@ unticked_statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -968,7 +967,7 @@ unticked_statement: | expr ';' { $$ = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -979,7 +978,7 @@ unticked_statement: $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 $3.(*ast.StmtUnset).CloseParenthesisTkn = $4 $3.(*ast.StmtUnset).SemiColonTkn = $5 - $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $5) + $3.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition($1, $5) $$ = $3 } @@ -997,7 +996,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1015,7 +1014,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1026,22 +1025,22 @@ unticked_statement: $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 - $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { - pos := position.NewTokenNodeListPosition($1, $5) + pos := yylex.(*Parser).builder.NewTokenNodeListPosition($1, $5) if $6 != nil { - pos = position.NewTokenNodePosition($1, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($1, $6) } $$ = &ast.StmtTry{ @@ -1057,7 +1056,7 @@ unticked_statement: | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1066,10 +1065,10 @@ unticked_statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1086,14 +1085,14 @@ catch_statement: | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { catch := &ast.StmtCatch{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1115,7 +1114,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1150,14 +1149,14 @@ additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { $$ = &ast.StmtCatch{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1233,11 +1232,11 @@ unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Position: position.NewTokensPosition($1, $9), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1257,9 +1256,9 @@ unticked_class_declaration_statement: { switch n := $1.(type) { case *ast.StmtClass : - n.Position = position.NewNodeTokenPosition($1, $7) + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) n.ClassName = &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1269,9 +1268,9 @@ unticked_class_declaration_statement: n.Stmts = $6 n.CloseCurlyBracket = $7 case *ast.StmtTrait : - n.Position = position.NewNodeTokenPosition($1, $7) + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) n.TraitName = &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1287,10 +1286,10 @@ unticked_class_declaration_statement: | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1307,17 +1306,17 @@ class_entry_type: T_CLASS { $$ = &ast.StmtClass{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), ClassTkn: $1, } } | T_ABSTRACT T_CLASS { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1328,17 +1327,17 @@ class_entry_type: | T_TRAIT { $$ = &ast.StmtTrait{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), TraitTkn: $1, } } | T_FINAL T_CLASS { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1356,7 +1355,7 @@ extends_from: | T_EXTENDS fully_qualified_class_name { $$ = &ast.StmtClassExtends{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1378,7 +1377,7 @@ interface_extends_list: | T_EXTENDS interface_list { $$ = &ast.StmtInterfaceExtends{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1394,7 +1393,7 @@ implements_list: | T_IMPLEMENTS interface_list { $$ = &ast.StmtClassImplements{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1440,7 +1439,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1455,7 +1454,7 @@ foreach_variable: } $$ = &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1469,18 +1468,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1493,18 +1492,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1518,18 +1517,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1545,9 +1544,9 @@ declare_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1563,9 +1562,9 @@ declare_list: $1.(*ast.ParserSeparatedList).Items = append( $1.(*ast.ParserSeparatedList).Items, &ast.StmtConstant{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1583,7 +1582,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1592,7 +1591,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1602,7 +1601,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1613,7 +1612,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1633,7 +1632,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Position: position.NewTokenNodeListPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1643,7 +1642,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Position: position.NewTokenNodeListPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1668,18 +1667,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1698,7 +1697,7 @@ elseif_list: | elseif_list T_ELSEIF parenthesis_expr statement { $$ = append($1, &ast.StmtElseIf{ - Position: position.NewTokenNodePosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $4), ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, Cond: $3.(*ast.ParserBrackets).Child, @@ -1717,7 +1716,7 @@ new_elseif_list: | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { $$ = append($1, &ast.StmtElseIf{ - Position: position.NewTokenNodeListPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, @@ -1725,7 +1724,7 @@ new_elseif_list: CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $4, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($5), + Position: yylex.(*Parser).builder.NewNodeListPosition($5), Stmts: $5, }, }) @@ -1741,7 +1740,7 @@ else_single: | T_ELSE statement { $$ = &ast.StmtElse{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ElseTkn: $1, Stmt: $2, } @@ -1757,12 +1756,12 @@ new_else_single: | T_ELSE ':' inner_statement_list { $$ = &ast.StmtElse{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3), Alt: true, ElseTkn: $1, ColonTkn: $2, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($3), + Position: yylex.(*Parser).builder.NewNodeListPosition($3), Stmts: $3, }, } @@ -1800,13 +1799,13 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - pos := position.NewTokenPosition($4) + pos := yylex.(*Parser).builder.NewTokenPosition($4) if $1 != nil { - pos = position.NewNodeTokenPosition($1, $4) + pos = yylex.(*Parser).builder.NewNodeTokenPosition($1, $4) } else if $2 != nil { - pos = position.NewTokensPosition($2, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($2, $4) } else if $3 != nil { - pos = position.NewTokensPosition($3, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($3, $4) } $$ = &ast.Parameter{ @@ -1815,9 +1814,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1826,13 +1825,13 @@ parameter: } | optional_class_type is_reference is_variadic T_VARIABLE '=' expr { - pos := position.NewTokenNodePosition($4, $6) + pos := yylex.(*Parser).builder.NewTokenNodePosition($4, $6) if $1 != nil { - pos = position.NewNodesPosition($1, $6) + pos = yylex.(*Parser).builder.NewNodesPosition($1, $6) } else if $2 != nil { - pos = position.NewTokenNodePosition($2, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($2, $6) } else if $3 != nil { - pos = position.NewTokenNodePosition($3, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($3, $6) } $$ = &ast.Parameter{ @@ -1841,9 +1840,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1863,7 +1862,7 @@ optional_class_type: | T_ARRAY { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1871,7 +1870,7 @@ optional_class_type: | T_CALLABLE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1887,7 +1886,7 @@ function_call_parameter_list: '(' ')' { $$ = &ast.ArgumentList{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -1895,7 +1894,7 @@ function_call_parameter_list: | '(' non_empty_function_call_parameter_list ')' { argumentList := $2.(*ast.ArgumentList) - argumentList.Position = position.NewTokensPosition($1, $3) + argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) argumentList.OpenParenthesisTkn = $1 argumentList.CloseParenthesisTkn = $3 @@ -1904,11 +1903,11 @@ function_call_parameter_list: | '(' yield_expr ')' { $$ = &ast.ArgumentList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Arguments: []ast.Vertex{ &ast.Argument{ - Position: position.NewNodePosition($2), + Position: yylex.(*Parser).builder.NewNodePosition($2), Expr: $2, }, }, @@ -1938,21 +1937,21 @@ function_call_parameter: expr_without_variable { $$ = &ast.Argument{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Expr: $1, } } | variable { $$ = &ast.Argument{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Expr: $1, } } | '&' w_variable { $$ = &ast.Argument{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Expr: $2, } @@ -1960,7 +1959,7 @@ function_call_parameter: | T_ELLIPSIS expr { $$ = &ast.Argument{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -1988,9 +1987,9 @@ global_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1999,7 +1998,7 @@ global_var: | '$' r_variable { $$ = &ast.ExprVariable{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -2007,10 +2006,10 @@ global_var: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -2024,11 +2023,11 @@ static_var_list: static_var_list ',' T_VARIABLE { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2041,11 +2040,11 @@ static_var_list: | static_var_list ',' T_VARIABLE '=' static_scalar { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2062,11 +2061,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2080,11 +2079,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2114,7 +2113,7 @@ class_statement: variable_modifiers class_variable_declaration ';' { $$ = &ast.StmtPropertyList{ - Position: position.NewNodeListTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $3), Modifiers: $1, Properties: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2124,7 +2123,7 @@ class_statement: | class_constant_declaration ';' { $1.(*ast.StmtClassConstList).SemiColonTkn = $2 - $1.(*ast.StmtClassConstList).Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtClassConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $2) $$ = $1 } | trait_use_statement @@ -2133,9 +2132,9 @@ class_statement: } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { - pos := position.NewTokenNodePosition($2, $8) + pos := yylex.(*Parser).builder.NewTokenNodePosition($2, $8) if $1 != nil { - pos = position.NewNodeListNodePosition($1, $8) + pos = yylex.(*Parser).builder.NewNodeListNodePosition($1, $8) } $$ = &ast.StmtClassMethod{ @@ -2144,7 +2143,7 @@ class_statement: FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2161,7 +2160,7 @@ trait_use_statement: T_USE trait_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2190,14 +2189,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2246,7 +2245,7 @@ trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2275,9 +2274,9 @@ trait_method_reference: T_STRING { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2293,11 +2292,11 @@ trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2309,12 +2308,12 @@ trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2323,7 +2322,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2346,14 +2345,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2370,7 +2369,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2404,7 +2403,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2412,7 +2411,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2420,7 +2419,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2428,7 +2427,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2436,7 +2435,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2444,7 +2443,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2455,11 +2454,11 @@ class_variable_declaration: class_variable_declaration ',' T_VARIABLE { item := &ast.StmtProperty{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2474,11 +2473,11 @@ class_variable_declaration: | class_variable_declaration ',' T_VARIABLE '=' static_scalar { item := &ast.StmtProperty{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2497,11 +2496,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2516,11 +2515,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2537,12 +2536,12 @@ class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtClassConstList) - constList.Position = position.NewNodesPosition($1, $5) + constList.Position = yylex.(*Parser).builder.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2555,13 +2554,13 @@ class_constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtClassConstList{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -2632,7 +2631,7 @@ chaining_dereference: chaining_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -2644,7 +2643,7 @@ chaining_dereference: | '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: nil, OpenBracketTkn: $1, Dim: $2, @@ -2686,7 +2685,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2696,7 +2695,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), Class: $2, } } @@ -2707,9 +2706,9 @@ expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewTokenNodePosition($1, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -2723,7 +2722,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2732,7 +2731,7 @@ expr_without_variable: | variable '=' '&' variable { $$ = &ast.ExprAssignReference{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2744,7 +2743,7 @@ expr_without_variable: var _new *ast.ExprNew if $3 != nil { _new = &ast.ExprNew{ - Position: position.NewTokenNodePosition($4, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $6), NewTkn: $4, Class: $5, OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2754,14 +2753,14 @@ expr_without_variable: } } else { _new = &ast.ExprNew{ - Position: position.NewTokenNodePosition($4, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $5), NewTkn: $4, Class: $5, } } $$ = &ast.ExprAssignReference{ - Position: position.NewNodesPosition($1, _new), + Position: yylex.(*Parser).builder.NewNodesPosition($1, _new), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2771,7 +2770,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -2779,7 +2778,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2788,7 +2787,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2797,7 +2796,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2806,7 +2805,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2815,7 +2814,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2824,7 +2823,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2833,7 +2832,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2842,7 +2841,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2851,7 +2850,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2860,7 +2859,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2869,7 +2868,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2878,7 +2877,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2887,7 +2886,7 @@ expr_without_variable: | rw_variable T_INC { $$ = &ast.ExprPostInc{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -2895,7 +2894,7 @@ expr_without_variable: | T_INC rw_variable { $$ = &ast.ExprPreInc{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -2903,7 +2902,7 @@ expr_without_variable: | rw_variable T_DEC { $$ = &ast.ExprPostDec{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -2911,7 +2910,7 @@ expr_without_variable: | T_DEC rw_variable { $$ = &ast.ExprPreDec{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -2919,7 +2918,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2928,7 +2927,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2937,7 +2936,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2946,7 +2945,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2955,7 +2954,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2964,7 +2963,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2973,7 +2972,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2982,7 +2981,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2991,7 +2990,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3000,7 +2999,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3009,7 +3008,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3018,7 +3017,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3027,7 +3026,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3036,7 +3035,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3045,7 +3044,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3054,7 +3053,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3063,7 +3062,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3072,7 +3071,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -3080,7 +3079,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -3088,7 +3087,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -3096,7 +3095,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -3104,7 +3103,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3113,7 +3112,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3122,7 +3121,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3131,7 +3130,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3140,7 +3139,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3149,7 +3148,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3158,7 +3157,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3167,7 +3166,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3176,7 +3175,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -3193,7 +3192,7 @@ expr_without_variable: | '(' new_expr ')' instance_call { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3203,22 +3202,22 @@ expr_without_variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -3226,7 +3225,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -3237,7 +3236,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -3251,7 +3250,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3259,7 +3258,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3267,7 +3266,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3275,7 +3274,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3283,7 +3282,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3291,7 +3290,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3299,7 +3298,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3311,9 +3310,9 @@ expr_without_variable: } if $2 == nil { - exit.Position = position.NewTokenPosition($1) + exit.Position = yylex.(*Parser).builder.NewTokenPosition($1) } else { - exit.Position = position.NewTokenNodePosition($1, $2) + exit.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3324,7 +3323,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3344,7 +3343,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3353,7 +3352,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3361,14 +3360,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), YieldTkn: $1, } } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Position: position.NewTokensPosition($1, $9), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3384,7 +3383,7 @@ expr_without_variable: | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Position: position.NewTokensPosition($1, $10), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $10), StaticTkn: $1, FunctionTkn: $2, AmpersandTkn: $3, @@ -3404,7 +3403,7 @@ yield_expr: T_YIELD expr_without_variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3412,7 +3411,7 @@ yield_expr: | T_YIELD variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3420,7 +3419,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3430,7 +3429,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3443,7 +3442,7 @@ combined_scalar_offset: combined_scalar '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3453,7 +3452,7 @@ combined_scalar_offset: | combined_scalar_offset '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3463,9 +3462,9 @@ combined_scalar_offset: | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -3477,7 +3476,7 @@ combined_scalar_offset: | general_constant '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3490,7 +3489,7 @@ combined_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3501,7 +3500,7 @@ combined_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3525,7 +3524,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -3539,9 +3538,9 @@ lexical_var_list: lexical_var_list ',' T_VARIABLE { variable := &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -3555,12 +3554,12 @@ lexical_var_list: | lexical_var_list ',' '&' T_VARIABLE { reference := &ast.ExprReference{ - Position: position.NewTokensPosition($3, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($3, $4), AmpersandTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -3577,9 +3576,9 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3592,12 +3591,12 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprReference{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3612,9 +3611,9 @@ function_call: namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), + Position: yylex.(*Parser).builder.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), Function: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -3627,9 +3626,9 @@ function_call: | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), Function: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -3644,9 +3643,9 @@ function_call: | T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Function: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3660,7 +3659,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3673,7 +3672,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3686,7 +3685,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3699,7 +3698,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3712,7 +3711,7 @@ function_call: | variable_without_objects function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3726,7 +3725,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3734,7 +3733,7 @@ class_name: | namespace_name { $$ = &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -3742,7 +3741,7 @@ class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -3752,7 +3751,7 @@ class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3764,7 +3763,7 @@ fully_qualified_class_name: namespace_name { $$ = &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -3772,7 +3771,7 @@ fully_qualified_class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -3782,7 +3781,7 @@ fully_qualified_class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3812,12 +3811,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -3826,12 +3825,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -3872,7 +3871,7 @@ exit_expr: | '(' ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenBracketTkn: $1, CloseBracketTkn: $2, } @@ -3892,7 +3891,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -3919,7 +3918,7 @@ common_scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3927,7 +3926,7 @@ common_scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3935,7 +3934,7 @@ common_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -3943,7 +3942,7 @@ common_scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3951,7 +3950,7 @@ common_scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3959,7 +3958,7 @@ common_scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3967,7 +3966,7 @@ common_scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3975,7 +3974,7 @@ common_scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3983,7 +3982,7 @@ common_scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3991,7 +3990,7 @@ common_scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3999,11 +3998,11 @@ common_scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4014,7 +4013,7 @@ common_scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -4025,11 +4024,11 @@ static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4056,9 +4055,9 @@ static_scalar_value: | namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4067,9 +4066,9 @@ static_scalar_value: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4080,9 +4079,9 @@ static_scalar_value: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4092,7 +4091,7 @@ static_scalar_value: | T_ARRAY '(' static_array_pair_list ')' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4103,7 +4102,7 @@ static_scalar_value: | '[' static_array_pair_list ']' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4117,7 +4116,7 @@ static_scalar_value: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4132,7 +4131,7 @@ static_operation: static_scalar_value '[' static_scalar_value ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4142,7 +4141,7 @@ static_operation: | static_scalar_value '+' static_scalar_value { $$ = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4151,7 +4150,7 @@ static_operation: | static_scalar_value '-' static_scalar_value { $$ = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4160,7 +4159,7 @@ static_operation: | static_scalar_value '*' static_scalar_value { $$ = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4169,7 +4168,7 @@ static_operation: | static_scalar_value T_POW static_scalar_value { $$ = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4178,7 +4177,7 @@ static_operation: | static_scalar_value '/' static_scalar_value { $$ = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4187,7 +4186,7 @@ static_operation: | static_scalar_value '%' static_scalar_value { $$ = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4196,7 +4195,7 @@ static_operation: | '!' static_scalar_value { $$ = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -4204,7 +4203,7 @@ static_operation: | '~' static_scalar_value { $$ = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -4212,7 +4211,7 @@ static_operation: | static_scalar_value '|' static_scalar_value { $$ = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4221,7 +4220,7 @@ static_operation: | static_scalar_value '&' static_scalar_value { $$ = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4230,7 +4229,7 @@ static_operation: | static_scalar_value '^' static_scalar_value { $$ = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4239,7 +4238,7 @@ static_operation: | static_scalar_value T_SL static_scalar_value { $$ = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4248,7 +4247,7 @@ static_operation: | static_scalar_value T_SR static_scalar_value { $$ = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4257,7 +4256,7 @@ static_operation: | static_scalar_value '.' static_scalar_value { $$ = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4266,7 +4265,7 @@ static_operation: | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$ = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4275,7 +4274,7 @@ static_operation: | static_scalar_value T_LOGICAL_AND static_scalar_value { $$ = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4284,7 +4283,7 @@ static_operation: | static_scalar_value T_LOGICAL_OR static_scalar_value { $$ = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4293,7 +4292,7 @@ static_operation: | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$ = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4302,7 +4301,7 @@ static_operation: | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$ = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4311,7 +4310,7 @@ static_operation: | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4320,7 +4319,7 @@ static_operation: | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4329,7 +4328,7 @@ static_operation: | static_scalar_value T_IS_EQUAL static_scalar_value { $$ = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4338,7 +4337,7 @@ static_operation: | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$ = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4347,7 +4346,7 @@ static_operation: | static_scalar_value '<' static_scalar_value { $$ = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4356,7 +4355,7 @@ static_operation: | static_scalar_value '>' static_scalar_value { $$ = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4365,7 +4364,7 @@ static_operation: | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4374,7 +4373,7 @@ static_operation: | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4383,7 +4382,7 @@ static_operation: | static_scalar_value '?' ':' static_scalar_value { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -4393,7 +4392,7 @@ static_operation: | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -4404,7 +4403,7 @@ static_operation: | '+' static_scalar_value { $$ = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -4412,7 +4411,7 @@ static_operation: | '-' static_scalar_value { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -4420,7 +4419,7 @@ static_operation: | '(' static_scalar_value ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4436,9 +4435,9 @@ general_constant: | namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4447,9 +4446,9 @@ general_constant: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4460,9 +4459,9 @@ general_constant: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4475,9 +4474,9 @@ scalar: T_STRING_VARNAME { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4498,7 +4497,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -4507,7 +4506,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -4516,7 +4515,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4554,7 +4553,7 @@ non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition($3, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -4568,7 +4567,7 @@ non_empty_static_array_pair_list: | non_empty_static_array_pair_list ',' static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodePosition($3), + Position: yylex.(*Parser).builder.NewNodePosition($3), Val: $3, } @@ -4582,7 +4581,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -4595,7 +4594,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, }, }, @@ -4618,7 +4617,7 @@ parenthesis_expr: '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4627,7 +4626,7 @@ parenthesis_expr: | '(' yield_expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4671,7 +4670,7 @@ variable: case *ast.ExprArrayDimFetch: mc := $4[0].(*ast.ExprMethodCall) $3 = append($3, &ast.ExprFunctionCall{ - Position: position.NewNodePosition(mc), + Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -4690,22 +4689,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -4714,22 +4713,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -4763,7 +4762,7 @@ variable_property: case *ast.ExprArrayDimFetch: mc := $3[0].(*ast.ExprMethodCall) $2 = append($2, &ast.ExprFunctionCall{ - Position: position.NewNodePosition(mc), + Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -4786,7 +4785,7 @@ array_method_dereference: array_method_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -4798,7 +4797,7 @@ array_method_dereference: | method '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -4813,7 +4812,7 @@ method: function_call_parameter_list { $$ = &ast.ExprMethodCall{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $1.(*ast.ArgumentList).Arguments, SeparatorTkns: $1.(*ast.ArgumentList).SeparatorTkns, @@ -4846,7 +4845,7 @@ variable_without_objects: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -4858,7 +4857,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4867,7 +4866,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4886,7 +4885,7 @@ array_function_dereference: array_function_dereference '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4896,7 +4895,7 @@ array_function_dereference: | function_call '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4930,7 +4929,7 @@ base_variable: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -4946,7 +4945,7 @@ reference_variable: reference_variable '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4956,7 +4955,7 @@ reference_variable: | reference_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4974,9 +4973,9 @@ compound_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4985,10 +4984,10 @@ compound_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -5018,7 +5017,7 @@ object_property: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Property: $1, }, } @@ -5029,7 +5028,7 @@ object_dim_list: object_dim_list '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5041,7 +5040,7 @@ object_dim_list: | object_dim_list '{' expr '}' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5054,7 +5053,7 @@ object_dim_list: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Property: $1, }, } @@ -5065,7 +5064,7 @@ variable_name: T_STRING { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -5073,7 +5072,7 @@ variable_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5086,7 +5085,7 @@ simple_indirect_reference: { $$ = []ast.Vertex{ &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), DollarTkn: $1, }, } @@ -5094,7 +5093,7 @@ simple_indirect_reference: | simple_indirect_reference '$' { $$ = append($1, &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), DollarTkn: $2, }) } @@ -5121,7 +5120,7 @@ assignment_list_element: variable { $$ = &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, } } @@ -5135,9 +5134,9 @@ assignment_list_element: } $$ = &ast.ExprArrayItem{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -5173,7 +5172,7 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition($3, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -5187,7 +5186,7 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodePosition($3), + Position: yylex.(*Parser).builder.NewNodePosition($3), Val: $3, } @@ -5201,7 +5200,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -5214,7 +5213,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, }, }, @@ -5223,11 +5222,11 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition($3, $6), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $6), Key: $3, DoubleArrowTkn: $4, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($5, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($5, $6), AmpersandTkn: $5, Var: $6, }, @@ -5241,9 +5240,9 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -5259,11 +5258,11 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -5276,9 +5275,9 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -5298,7 +5297,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -5312,7 +5311,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -5325,9 +5324,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5336,11 +5335,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5353,18 +5352,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5373,10 +5372,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewNodePosition($2), + Position: yylex.(*Parser).builder.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -5385,12 +5384,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -5401,14 +5400,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -5423,7 +5422,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5435,7 +5434,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -5445,13 +5444,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -5460,9 +5459,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5474,7 +5473,7 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { $$ = &ast.ExprIsset{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -5485,7 +5484,7 @@ internal_functions_in_yacc: | T_EMPTY '(' variable ')' { $$ = &ast.ExprEmpty{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -5495,7 +5494,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -5505,7 +5504,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -5513,7 +5512,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -5521,7 +5520,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -5531,7 +5530,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -5539,7 +5538,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } @@ -5577,11 +5576,11 @@ class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5590,11 +5589,11 @@ class_constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5606,11 +5605,11 @@ static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5622,11 +5621,11 @@ class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, diff --git a/internal/php7/parser.go b/internal/php7/parser.go index f49ecd8..f053888 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -1,6 +1,7 @@ package php7 import ( + builder "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -13,6 +14,7 @@ type Parser struct { currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) + builder *builder.Builder } // NewParser creates and returns new Parser @@ -20,6 +22,7 @@ func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser return &Parser{ Lexer: lexer, errHandlerFunc: errHandlerFunc, + builder: builder.NewBuilder(), } } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index d8af320f3eb8cfe29869d82366f872690453138f..11c021e4de7377a35ee9c6f6057e3afba89c48a7 100644 GIT binary patch delta 20688 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 delta 14751 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 diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 5ad2f47..4f52bad 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4,7 +4,6 @@ package php7 import ( "strconv" - "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) @@ -283,7 +282,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ - Position: position.NewNodeListPosition($1), + Position: yylex.(*Parser).builder.NewNodeListPosition($1), Stmts: $1, EndTkn: yylex.(*Parser).currentToken, } @@ -338,7 +337,7 @@ namespace_name: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -348,7 +347,7 @@ namespace_name: | namespace_name T_NS_SEPARATOR T_STRING { part := &ast.NameNamePart{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, } @@ -364,7 +363,7 @@ name: namespace_name { $$ = &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -372,7 +371,7 @@ name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -382,7 +381,7 @@ name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -419,7 +418,7 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -429,10 +428,10 @@ top_statement: | T_NAMESPACE namespace_name ';' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -442,10 +441,10 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -457,7 +456,7 @@ top_statement: | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -468,7 +467,7 @@ top_statement: { use := $2.(*ast.StmtGroupUse) - use.Position = position.NewTokensPosition($1, $3) + use.Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) use.UseTkn = $1 use.SemiColonTkn = $3 @@ -478,7 +477,7 @@ top_statement: { use := $3.(*ast.StmtGroupUse) - use.Position = position.NewTokensPosition($1, $4) + use.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) use.UseTkn = $1 use.Type = $2 use.SemiColonTkn = $4 @@ -488,7 +487,7 @@ top_statement: | T_USE use_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), UseTkn: $1, UseDeclarations: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -498,7 +497,7 @@ top_statement: | T_USE use_type use_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: $2, UseDeclarations: $3.(*ast.ParserSeparatedList).Items, @@ -509,7 +508,7 @@ top_statement: | T_CONST const_list ';' { $$ = &ast.StmtConstList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ConstTkn: $1, Consts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -522,7 +521,7 @@ use_type: T_FUNCTION { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -530,7 +529,7 @@ use_type: | T_CONST { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -543,9 +542,9 @@ group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -561,10 +560,10 @@ group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -583,9 +582,9 @@ mixed_group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -601,10 +600,10 @@ mixed_group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -685,7 +684,7 @@ inline_use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.Type = $1 - decl.Position = position.NewNodesPosition($1, $2) + decl.Position = yylex.(*Parser).builder.NewNodesPosition($1, $2) $$ = $2 } @@ -695,9 +694,9 @@ unprefixed_use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -706,15 +705,15 @@ unprefixed_use_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -731,7 +730,7 @@ use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = $1 - decl.Position = position.NewTokenNodePosition($1, $2) + decl.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) $$ = $2 } @@ -795,7 +794,7 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -807,7 +806,7 @@ statement: '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -827,14 +826,14 @@ statement: $5.(*ast.StmtWhile).OpenParenthesisTkn = $2 $5.(*ast.StmtWhile).Cond = $3 $5.(*ast.StmtWhile).CloseParenthesisTkn = $4 - $5.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | T_DO statement T_WHILE '(' expr ')' ';' { $$ = &ast.StmtDo{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -857,7 +856,7 @@ statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) $$ = $9 } @@ -867,14 +866,14 @@ statement: $5.(*ast.StmtSwitch).OpenParenthesisTkn = $2 $5.(*ast.StmtSwitch).Cond = $3 $5.(*ast.StmtSwitch).CloseParenthesisTkn = $4 - $5.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | T_BREAK optional_expr ';' { $$ = &ast.StmtBreak{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -883,7 +882,7 @@ statement: | T_CONTINUE optional_expr ';' { $$ = &ast.StmtContinue{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -892,7 +891,7 @@ statement: | T_RETURN optional_expr ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -902,7 +901,7 @@ statement: { $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 - $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -910,7 +909,7 @@ statement: { $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 - $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -918,14 +917,14 @@ statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -933,7 +932,7 @@ statement: | expr ';' { $$ = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -945,7 +944,7 @@ statement: $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) $3.(*ast.StmtUnset).CloseParenthesisTkn = $5 $3.(*ast.StmtUnset).SemiColonTkn = $6 - $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $6) + $3.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition($1, $6) $$ = $3 } @@ -957,7 +956,7 @@ statement: $7.(*ast.StmtForeach).AsTkn = $4 $7.(*ast.StmtForeach).Var = $5 $7.(*ast.StmtForeach).CloseParenthesisTkn = $6 - $7.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $7) + $7.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $7) $$ = $7 } @@ -971,7 +970,7 @@ statement: $9.(*ast.StmtForeach).DoubleArrowTkn = $6 $9.(*ast.StmtForeach).Var = $7 $9.(*ast.StmtForeach).CloseParenthesisTkn = $8 - $9.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) $$ = $9 } @@ -982,22 +981,22 @@ statement: $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 - $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { - pos := position.NewTokenNodeListPosition($1, $5) + pos := yylex.(*Parser).builder.NewTokenNodeListPosition($1, $5) if $6 != nil { - pos = position.NewTokenNodePosition($1, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($1, $6) } $$ = &ast.StmtTry{ @@ -1013,7 +1012,7 @@ statement: | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1022,10 +1021,10 @@ statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1035,9 +1034,9 @@ statement: | T_STRING ':' { $$ = &ast.StmtLabel{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), LabelName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1056,9 +1055,9 @@ catch_list: catch.CatchTkn = $2 catch.OpenParenthesisTkn = $3 catch.Var = &ast.ExprVariable{ - Position: position.NewTokenPosition($5), + Position: yylex.(*Parser).builder.NewTokenPosition($5), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($5), + Position: yylex.(*Parser).builder.NewTokenPosition($5), IdentifierTkn: $5, Value: $5.Value, }, @@ -1067,7 +1066,7 @@ catch_list: catch.OpenCurlyBracketTkn = $7 catch.Stmts = $8 catch.CloseCurlyBracketTkn = $9 - catch.Position = position.NewTokensPosition($2, $9) + catch.Position = yylex.(*Parser).builder.NewTokensPosition($2, $9) $$ = append($1, catch) } @@ -1096,7 +1095,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1132,11 +1131,11 @@ function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Position: position.NewTokensPosition($1, $11), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1179,11 +1178,11 @@ class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Position: position.NewOptionalListTokensPosition($1, $2, $9), + Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $9), Modifiers: $1, ClassTkn: $2, ClassName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1197,10 +1196,10 @@ class_declaration_statement: | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, ClassName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1228,7 +1227,7 @@ class_modifier: T_ABSTRACT { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1236,7 +1235,7 @@ class_modifier: | T_FINAL { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1247,10 +1246,10 @@ trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtTrait{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), TraitTkn: $1, TraitName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1265,10 +1264,10 @@ interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1288,7 +1287,7 @@ extends_from: | T_EXTENDS name { $$ = &ast.StmtClassExtends{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1303,7 +1302,7 @@ interface_extends_list: | T_EXTENDS name_list { $$ = &ast.StmtInterfaceExtends{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1319,7 +1318,7 @@ implements_list: | T_IMPLEMENTS name_list { $$ = &ast.StmtClassImplements{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1335,7 +1334,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1343,7 +1342,7 @@ foreach_variable: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1354,7 +1353,7 @@ foreach_variable: | '[' array_pair_list ']' { $$ = &ast.ExprList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1367,18 +1366,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1391,18 +1390,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1415,18 +1414,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1439,7 +1438,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1448,7 +1447,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1458,7 +1457,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1469,7 +1468,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1488,7 +1487,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Position: position.NewTokenNodeListPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1498,7 +1497,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Position: position.NewTokenNodeListPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1521,18 +1520,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1545,7 +1544,7 @@ if_stmt_without_else: T_IF '(' expr ')' statement { $$ = &ast.StmtIf{ - Position: position.NewTokenNodePosition($1, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $5), IfTkn: $1, OpenParenthesisTkn: $2, Cond: $3, @@ -1556,7 +1555,7 @@ if_stmt_without_else: | if_stmt_without_else T_ELSEIF '(' expr ')' statement { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Position: position.NewTokenNodePosition($2, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $6), ElseIfTkn: $2, OpenParenthesisTkn: $3, Cond: $4, @@ -1564,7 +1563,7 @@ if_stmt_without_else: Stmt: $6, }) - $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $6) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodesPosition($1, $6) $$ = $1 } @@ -1578,12 +1577,12 @@ if_stmt: | if_stmt_without_else T_ELSE statement { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Position: position.NewTokenNodePosition($2, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $3), ElseTkn: $2, Stmt: $3, } - $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $3) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodesPosition($1, $3) $$ = $1 } @@ -1593,7 +1592,7 @@ alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { $$ = &ast.StmtIf{ - Position: position.NewTokenNodeListPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $6), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2, @@ -1601,7 +1600,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $4, ColonTkn: $5, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($6), + Position: yylex.(*Parser).builder.NewNodeListPosition($6), Stmts: $6, }, } @@ -1609,7 +1608,7 @@ alt_if_stmt_without_else: | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Position: position.NewTokenNodeListPosition($2, $7), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $7), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3, @@ -1617,7 +1616,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $5, ColonTkn: $6, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($7), + Position: yylex.(*Parser).builder.NewNodeListPosition($7), Stmts: $7, }, }) @@ -1631,25 +1630,25 @@ alt_if_stmt: { $1.(*ast.StmtIf).EndIfTkn = $2 $1.(*ast.StmtIf).SemiColonTkn = $3 - $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $3) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $3) $$ = $1 } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Position: position.NewTokenNodeListPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), Alt: true, ElseTkn: $2, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($4), + Position: yylex.(*Parser).builder.NewNodeListPosition($4), Stmts: $4, }, } $1.(*ast.StmtIf).EndIfTkn = $5 $1.(*ast.StmtIf).SemiColonTkn = $6 - $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $6) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $6) $$ = $1 } @@ -1685,13 +1684,13 @@ non_empty_parameter_list: parameter: optional_type is_reference is_variadic T_VARIABLE { - pos := position.NewTokenPosition($4) + pos := yylex.(*Parser).builder.NewTokenPosition($4) if $1 != nil { - pos = position.NewNodeTokenPosition($1, $4) + pos = yylex.(*Parser).builder.NewNodeTokenPosition($1, $4) } else if $2 != nil { - pos = position.NewTokensPosition($2, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($2, $4) } else if $3 != nil { - pos = position.NewTokensPosition($3, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($3, $4) } $$ = &ast.Parameter{ @@ -1700,9 +1699,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1711,13 +1710,13 @@ parameter: } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - pos := position.NewTokenNodePosition($4, $6) + pos := yylex.(*Parser).builder.NewTokenNodePosition($4, $6) if $1 != nil { - pos = position.NewNodesPosition($1, $6) + pos = yylex.(*Parser).builder.NewNodesPosition($1, $6) } else if $2 != nil { - pos = position.NewTokenNodePosition($2, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($2, $6) } else if $3 != nil { - pos = position.NewTokenNodePosition($3, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($3, $6) } $$ = &ast.Parameter{ @@ -1726,9 +1725,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1758,7 +1757,7 @@ type_expr: | '?' type { $$ = &ast.Nullable{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), QuestionTkn: $1, Expr: $2, } @@ -1769,7 +1768,7 @@ type: T_ARRAY { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1777,7 +1776,7 @@ type: | T_CALLABLE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1806,7 +1805,7 @@ argument_list: '(' ')' { $$ = &ast.ArgumentList{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -1814,7 +1813,7 @@ argument_list: | '(' non_empty_argument_list possible_comma ')' { argumentList := $2.(*ast.ArgumentList) - argumentList.Position = position.NewTokensPosition($1, $4) + argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) argumentList.OpenParenthesisTkn = $1 argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3) argumentList.CloseParenthesisTkn = $4 @@ -1843,14 +1842,14 @@ argument: expr { $$ = &ast.Argument{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Expr: $1, } } | T_ELLIPSIS expr { $$ = &ast.Argument{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -1901,11 +1900,11 @@ static_var: { $$ = &ast.StmtStaticVar{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1915,11 +1914,11 @@ static_var: | T_VARIABLE '=' expr { $$ = &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1945,7 +1944,7 @@ class_statement: variable_modifiers optional_type property_list ';' { $$ = &ast.StmtPropertyList{ - Position: position.NewNodeListTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $4), Modifiers: $1, Type: $2, Properties: $3.(*ast.ParserSeparatedList).Items, @@ -1956,7 +1955,7 @@ class_statement: | method_modifiers T_CONST class_const_list ';' { $$ = &ast.StmtClassConstList{ - Position: position.NewOptionalListTokensPosition($1, $2, $4), + Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $4), Modifiers: $1, ConstTkn: $2, Consts: $3.(*ast.ParserSeparatedList).Items, @@ -1967,7 +1966,7 @@ class_statement: | T_USE name_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1976,9 +1975,9 @@ class_statement: } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { - pos := position.NewTokenNodePosition($2, $10) + pos := yylex.(*Parser).builder.NewTokenNodePosition($2, $10) if $1 != nil { - pos = position.NewNodeListNodePosition($1, $10) + pos = yylex.(*Parser).builder.NewNodeListNodePosition($1, $10) } $$ = &ast.StmtClassMethod{ @@ -1987,7 +1986,7 @@ class_statement: FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2022,14 +2021,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' '}' { $$ = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2037,7 +2036,7 @@ trait_adaptations: | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2075,7 +2074,7 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2088,11 +2087,11 @@ trait_alias: trait_method_reference T_AS T_STRING { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2101,11 +2100,11 @@ trait_alias: | trait_method_reference T_AS reserved_non_modifiers { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2114,12 +2113,12 @@ trait_alias: | trait_method_reference T_AS member_modifier identifier { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2128,7 +2127,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2140,9 +2139,9 @@ trait_method_reference: identifier { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2158,11 +2157,11 @@ absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2174,14 +2173,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2198,7 +2197,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2232,7 +2231,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2240,7 +2239,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2248,7 +2247,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2256,7 +2255,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2264,7 +2263,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2272,7 +2271,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2299,11 +2298,11 @@ property: T_VARIABLE backup_doc_comment { $$ = &ast.StmtProperty{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2314,11 +2313,11 @@ property: | T_VARIABLE '=' expr backup_doc_comment { $$ = &ast.StmtProperty{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2349,9 +2348,9 @@ class_const_decl: identifier '=' expr backup_doc_comment { $$ = &ast.StmtConstant{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2365,9 +2364,9 @@ const_decl: T_STRING '=' expr backup_doc_comment { $$ = &ast.StmtConstant{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2431,7 +2430,7 @@ anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -2451,7 +2450,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2461,7 +2460,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2470,7 +2469,7 @@ new_expr: | T_NEW anonymous_class { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2481,9 +2480,9 @@ expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewTokenNodePosition($1, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -2497,9 +2496,9 @@ expr_without_variable: | '[' array_pair_list ']' '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewTokenNodePosition($1, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $5), Var: &ast.ExprList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2512,7 +2511,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2521,7 +2520,7 @@ expr_without_variable: | variable '=' '&' expr { $$ = &ast.ExprAssignReference{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2531,7 +2530,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -2539,7 +2538,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2548,7 +2547,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2557,7 +2556,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2566,7 +2565,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2575,7 +2574,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2584,7 +2583,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2593,7 +2592,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2602,7 +2601,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2611,7 +2610,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2620,7 +2619,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2629,7 +2628,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2638,7 +2637,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2647,7 +2646,7 @@ expr_without_variable: | variable T_COALESCE_EQUAL expr { $$ = &ast.ExprAssignCoalesce{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2656,7 +2655,7 @@ expr_without_variable: | variable T_INC { $$ = &ast.ExprPostInc{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -2664,7 +2663,7 @@ expr_without_variable: | T_INC variable { $$ = &ast.ExprPreInc{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -2672,7 +2671,7 @@ expr_without_variable: | variable T_DEC { $$ = &ast.ExprPostDec{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -2680,7 +2679,7 @@ expr_without_variable: | T_DEC variable { $$ = &ast.ExprPreDec{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -2688,7 +2687,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2697,7 +2696,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2706,7 +2705,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2715,7 +2714,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2724,7 +2723,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2733,7 +2732,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2742,7 +2741,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2751,7 +2750,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2760,7 +2759,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2769,7 +2768,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2778,7 +2777,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2787,7 +2786,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2796,7 +2795,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2805,7 +2804,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2814,7 +2813,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2823,7 +2822,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2832,7 +2831,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2841,7 +2840,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -2849,7 +2848,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -2857,7 +2856,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -2865,7 +2864,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -2873,7 +2872,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2882,7 +2881,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2891,7 +2890,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2900,7 +2899,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2909,7 +2908,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2918,7 +2917,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2927,7 +2926,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2936,7 +2935,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2945,7 +2944,7 @@ expr_without_variable: | expr T_SPACESHIP expr { $$ = &ast.ExprBinarySpaceship{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2954,7 +2953,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -2963,7 +2962,7 @@ expr_without_variable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -2976,7 +2975,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -2987,7 +2986,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -2997,7 +2996,7 @@ expr_without_variable: | expr T_COALESCE expr { $$ = &ast.ExprBinaryCoalesce{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3010,7 +3009,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3018,7 +3017,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3026,7 +3025,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3034,7 +3033,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3042,7 +3041,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3050,7 +3049,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3058,7 +3057,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3070,9 +3069,9 @@ expr_without_variable: } if $2 == nil { - exit.Position = position.NewTokenPosition($1) + exit.Position = yylex.(*Parser).builder.NewTokenPosition($1) } else { - exit.Position = position.NewTokenNodePosition($1, $2) + exit.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3083,7 +3082,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3095,7 +3094,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3104,7 +3103,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3112,14 +3111,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), YieldTkn: $1, } } | T_YIELD expr { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3127,7 +3126,7 @@ expr_without_variable: | T_YIELD expr T_DOUBLE_ARROW expr { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3137,7 +3136,7 @@ expr_without_variable: | T_YIELD_FROM expr { $$ = &ast.ExprYieldFrom{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldFromTkn: $1, Expr: $2, } @@ -3150,10 +3149,10 @@ expr_without_variable: { switch n := $2.(type) { case *ast.ExprClosure : - n.Position = position.NewTokenNodePosition($1, $2) + n.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) n.StaticTkn = $1; case *ast.ExprArrowFunction : - n.Position = position.NewTokenNodePosition($1, $2) + n.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) n.StaticTkn = $1; }; @@ -3165,7 +3164,7 @@ inline_function: T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Position: position.NewTokensPosition($1, $11), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $4, @@ -3183,7 +3182,7 @@ inline_function: | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { $$ = &ast.ExprArrowFunction{ - Position: position.NewTokenNodePosition($1, $9), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $9), FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3221,7 +3220,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -3251,9 +3250,9 @@ lexical_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3262,12 +3261,12 @@ lexical_var: | '&' T_VARIABLE { $$ = &ast.ExprReference{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3280,7 +3279,7 @@ function_call: name argument_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3291,7 +3290,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3304,7 +3303,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3317,7 +3316,7 @@ function_call: | callable_expr argument_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3331,7 +3330,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3361,7 +3360,7 @@ exit_expr: | '(' optional_expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3378,7 +3377,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -3405,7 +3404,7 @@ dereferencable_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3416,7 +3415,7 @@ dereferencable_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3426,7 +3425,7 @@ dereferencable_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -3437,7 +3436,7 @@ scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3445,7 +3444,7 @@ scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3453,7 +3452,7 @@ scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3461,7 +3460,7 @@ scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3469,7 +3468,7 @@ scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3477,7 +3476,7 @@ scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3485,7 +3484,7 @@ scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3493,7 +3492,7 @@ scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3501,7 +3500,7 @@ scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3509,7 +3508,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3517,11 +3516,11 @@ scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -3532,7 +3531,7 @@ scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -3540,7 +3539,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -3549,7 +3548,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -3569,18 +3568,18 @@ constant: name { $$ = &ast.ExprConstFetch{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Const: $1, } } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -3589,11 +3588,11 @@ constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -3638,7 +3637,7 @@ dereferencable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3658,7 +3657,7 @@ callable_expr: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3678,7 +3677,7 @@ callable_variable: | dereferencable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3688,7 +3687,7 @@ callable_variable: | constant '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3698,7 +3697,7 @@ callable_variable: | dereferencable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3708,7 +3707,7 @@ callable_variable: | dereferencable T_OBJECT_OPERATOR property_name argument_list { $$ = &ast.ExprMethodCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, ObjectOperatorTkn: $2, Method: $3, @@ -3736,7 +3735,7 @@ variable: | dereferencable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -3748,9 +3747,9 @@ simple_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3759,10 +3758,10 @@ simple_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -3772,7 +3771,7 @@ simple_variable: | '$' simple_variable { $$ = &ast.ExprVariable{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -3783,7 +3782,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3792,7 +3791,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3808,7 +3807,7 @@ new_variable: | new_variable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3818,7 +3817,7 @@ new_variable: | new_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3828,7 +3827,7 @@ new_variable: | new_variable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -3837,7 +3836,7 @@ new_variable: | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3846,7 +3845,7 @@ new_variable: | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3858,7 +3857,7 @@ member_name: identifier { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3866,7 +3865,7 @@ member_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3882,7 +3881,7 @@ property_name: T_STRING { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3890,7 +3889,7 @@ property_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3947,7 +3946,7 @@ array_pair: expr T_DOUBLE_ARROW expr { $$ = &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -3956,18 +3955,18 @@ array_pair: | expr { $$ = &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, } } | expr T_DOUBLE_ARROW '&' variable { $$ = &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -3976,9 +3975,9 @@ array_pair: | '&' variable { $$ = &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -3987,7 +3986,7 @@ array_pair: | T_ELLIPSIS expr { $$ = &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), EllipsisTkn: $1, Val: $2, } @@ -3995,11 +3994,11 @@ array_pair: | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Position: position.NewNodeTokenPosition($1, $6), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $6), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprList{ - Position: position.NewTokensPosition($3, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($3, $6), ListTkn: $3, OpenBracketTkn: $4, Items: $5.(*ast.ParserSeparatedList).Items, @@ -4011,9 +4010,9 @@ array_pair: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4034,7 +4033,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4048,7 +4047,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -4061,9 +4060,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4072,11 +4071,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4089,18 +4088,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4109,10 +4108,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewNodePosition($2), + Position: yylex.(*Parser).builder.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -4121,12 +4120,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4137,14 +4136,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4159,7 +4158,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4171,7 +4170,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4181,13 +4180,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4200,17 +4199,17 @@ encaps_var_offset: if isInt { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), MinusTkn: $1, Expr: &ast.ScalarLnumber{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), NumberTkn: $2, Value: $2.Value, }, } } else { $$ = &ast.ScalarString{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), MinusTkn: $1, StringTkn: $2, Value: append([]byte("-"), $2.Value...), @@ -4220,9 +4219,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4238,7 +4237,7 @@ internal_functions_in_yacc: } $$ = &ast.ExprIsset{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -4249,7 +4248,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4259,7 +4258,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4267,7 +4266,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4275,7 +4274,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4285,7 +4284,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -4293,7 +4292,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } diff --git a/internal/position/position.go b/internal/position/position.go index 888f24b..e6be89a 100644 --- a/internal/position/position.go +++ b/internal/position/position.go @@ -16,6 +16,16 @@ type endPos struct { endPos int } +type Builder struct { + pool *position.Pool +} + +func NewBuilder() *Builder { + return &Builder{ + pool: position.NewPool(position.DefaultBlockSize), + } +} + func getListStartPos(l []ast.Vertex) startPos { if l == nil { return startPos{-1, -1} @@ -75,130 +85,153 @@ func getNodeEndPos(n ast.Vertex) endPos { } // NewNodeListPosition returns new Position -func NewNodeListPosition(list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: getListEndPos(list).endLine, - StartPos: getListStartPos(list).startPos, - EndPos: getListEndPos(list).endPos, - } +func (b *Builder) NewNodeListPosition(list []ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = getListEndPos(list).endLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = getListEndPos(list).endPos + + return pos } // NewNodePosition returns new Position -func NewNodePosition(n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(n).startLine, - EndLine: getNodeEndPos(n).endLine, - StartPos: getNodeStartPos(n).startPos, - EndPos: getNodeEndPos(n).endPos, - } +func (b *Builder) NewNodePosition(n ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(n).startLine + pos.EndLine = getNodeEndPos(n).endLine + pos.StartPos = getNodeStartPos(n).startPos + pos.EndPos = getNodeEndPos(n).endPos + + return pos } // NewTokenPosition returns new Position -func NewTokenPosition(t *token.Token) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: t.Position.EndLine, - StartPos: t.Position.StartPos, - EndPos: t.Position.EndPos, - } +func (b *Builder) NewTokenPosition(t *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = t.Position.StartLine + pos.EndLine = t.Position.EndLine + pos.StartPos = t.Position.StartPos + pos.EndPos = t.Position.EndPos + + return pos } // NewTokensPosition returns new Position -func NewTokensPosition(startToken *token.Token, endToken *token.Token) *position.Position { - return &position.Position{ - StartLine: startToken.Position.StartLine, - EndLine: endToken.Position.EndLine, - StartPos: startToken.Position.StartPos, - EndPos: endToken.Position.EndPos, - } +func (b *Builder) NewTokensPosition(startToken *token.Token, endToken *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = startToken.Position.StartLine + pos.EndLine = endToken.Position.EndLine + pos.StartPos = startToken.Position.StartPos + pos.EndPos = endToken.Position.EndPos + + return pos } // NewTokenNodePosition returns new Position -func NewTokenNodePosition(t *token.Token, n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: getNodeEndPos(n).endLine, - StartPos: t.Position.StartPos, - EndPos: getNodeEndPos(n).endPos, - } +func (b *Builder) NewTokenNodePosition(t *token.Token, n ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = t.Position.StartLine + pos.EndLine = getNodeEndPos(n).endLine + pos.StartPos = t.Position.StartPos + pos.EndPos = getNodeEndPos(n).endPos + + return pos } // NewNodeTokenPosition returns new Position -func NewNodeTokenPosition(n ast.Vertex, t *token.Token) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(n).startLine, - EndLine: t.Position.EndLine, - StartPos: getNodeStartPos(n).startPos, - EndPos: t.Position.EndPos, - } +func (b *Builder) NewNodeTokenPosition(n ast.Vertex, t *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(n).startLine + pos.EndLine = t.Position.EndLine + pos.StartPos = getNodeStartPos(n).startPos + pos.EndPos = t.Position.EndPos + + return pos } // NewNodesPosition returns new Position -func NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(startNode).startLine, - EndLine: getNodeEndPos(endNode).endLine, - StartPos: getNodeStartPos(startNode).startPos, - EndPos: getNodeEndPos(endNode).endPos, - } +func (b *Builder) NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(startNode).startLine + pos.EndLine = getNodeEndPos(endNode).endLine + pos.StartPos = getNodeStartPos(startNode).startPos + pos.EndPos = getNodeEndPos(endNode).endPos + + return pos } // NewNodeListTokenPosition returns new Position -func NewNodeListTokenPosition(list []ast.Vertex, t *token.Token) *position.Position { - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: t.Position.EndLine, - StartPos: getListStartPos(list).startPos, - EndPos: t.Position.EndPos, - } +func (b *Builder) NewNodeListTokenPosition(list []ast.Vertex, t *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = t.Position.EndLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = t.Position.EndPos + + return pos } // NewTokenNodeListPosition returns new Position -func NewTokenNodeListPosition(t *token.Token, list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: getListEndPos(list).endLine, - StartPos: t.Position.StartPos, - EndPos: getListEndPos(list).endPos, - } +func (b *Builder) NewTokenNodeListPosition(t *token.Token, list []ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = t.Position.StartLine + pos.EndLine = getListEndPos(list).endLine + pos.StartPos = t.Position.StartPos + pos.EndPos = getListEndPos(list).endPos + + return pos } // NewNodeNodeListPosition returns new Position -func NewNodeNodeListPosition(n ast.Vertex, list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(n).startLine, - EndLine: getListEndPos(list).endLine, - StartPos: getNodeStartPos(n).startPos, - EndPos: getListEndPos(list).endPos, - } +func (b *Builder) NewNodeNodeListPosition(n ast.Vertex, list []ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(n).startLine + pos.EndLine = getListEndPos(list).endLine + pos.StartPos = getNodeStartPos(n).startPos + pos.EndPos = getListEndPos(list).endPos + + return pos } // NewNodeListNodePosition returns new Position -func NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: getNodeEndPos(n).endLine, - StartPos: getListStartPos(list).startPos, - EndPos: getNodeEndPos(n).endPos, - } +func (b *Builder) NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = getNodeEndPos(n).endLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = getNodeEndPos(n).endPos + + return pos } // NewOptionalListTokensPosition returns new Position -func NewOptionalListTokensPosition(list []ast.Vertex, t *token.Token, endToken *token.Token) *position.Position { - if list == nil { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: endToken.Position.EndLine, - StartPos: t.Position.StartPos, - EndPos: endToken.Position.EndPos, - } - } +func (b *Builder) NewOptionalListTokensPosition(list []ast.Vertex, t *token.Token, endToken *token.Token) *position.Position { + pos := b.pool.Get() - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: endToken.Position.EndLine, - StartPos: getListStartPos(list).startPos, - EndPos: endToken.Position.EndPos, + if list == nil { + pos.StartLine = t.Position.StartLine + pos.EndLine = endToken.Position.EndLine + pos.StartPos = t.Position.StartPos + pos.EndPos = endToken.Position.EndPos + + return pos } + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = endToken.Position.EndLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = endToken.Position.EndPos + + return pos } diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 8c0381f..6a26ffc 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -36,7 +36,7 @@ func NewLexer(data []byte, phpVersion string, errHandlerFunc func(*errors.Error) stack: make([]int, 0), tokenPool: token.NewPool(position.DefaultBlockSize), - positionPool: position.NewPool(position.DefaultBlockSize), + positionPool: position.NewPool(token.DefaultBlockSize), newLines: NewLines{make([]int, 0, 128)}, }