From 20a42da7c9453c5e3b88b8e2151d95088c744892 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 8 Dec 2020 00:04:12 +0200 Subject: [PATCH] [refactoring] remove general Node struct --- cmd/php-parser/main.go | 14 +- internal/php5/php5.go | Bin 267853 -> 257350 bytes internal/php5/php5.y | 1942 ++++++++-------------------- internal/php7/php7.go | Bin 221842 -> 213588 bytes internal/php7/php7.y | 1405 ++++++-------------- internal/position/position.go | 4 +- internal/position/position_test.go | 298 ++--- pkg/ast/ast.go | 4 +- pkg/ast/node.go | 1207 +++++++++++++---- pkg/ast/visitor/dump.go | 230 ---- pkg/ast/visitor/dump_test.go | 6 - pkg/token/position.go | 74 -- pkg/token/position_string.go | 75 -- 13 files changed, 1932 insertions(+), 3327 deletions(-) delete mode 100644 pkg/token/position.go delete mode 100644 pkg/token/position_string.go diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 1cd927c..554dcf9 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "flag" "io" "io/ioutil" @@ -21,7 +20,6 @@ import ( "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/parser" - "github.com/z7zmey/php-parser/pkg/printer" ) var wg sync.WaitGroup @@ -165,12 +163,12 @@ func printerWorker(r <-chan result) { } if *printBack { - o := bytes.NewBuffer([]byte{}) - p := printer.NewPrinter(o) - p.Print(res.rootNode) - - err := ioutil.WriteFile(res.path, o.Bytes(), 0644) - checkErr(err) + //o := bytes.NewBuffer([]byte{}) + //p := printer.NewPrinter(o) + //p.Print(res.rootNode) + // + //err := ioutil.WriteFile(res.path, o.Bytes(), 0644) + //checkErr(err) } if *showResolvedNs { diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 0ad9abe8f26346bdad8ef41905c48a44ff45fb40..cf203cfb7976024ee7a247f7f0c322ab2a0ddf55 100644 GIT binary patch delta 28470 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 UrNw*dKik{jXeUuhOHbzi0X~Hs#Q*>R delta 32299 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 IekW4?9|guvlmGw# diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d15a4f1..95abd7e 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -266,9 +266,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1), - }, + Position: position.NewNodeListPosition($1), Stmts: $1, EndTkn: yylex.(*Parser).currentToken, } @@ -294,9 +292,7 @@ namespace_name: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -306,9 +302,7 @@ namespace_name: | namespace_name T_NS_SEPARATOR T_STRING { part := &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, } @@ -341,9 +335,7 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -353,14 +345,10 @@ top_statement: | T_NAMESPACE namespace_name ';' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -370,14 +358,10 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -389,9 +373,7 @@ top_statement: | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -401,9 +383,7 @@ top_statement: | T_USE use_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), UseTkn: $1, UseDeclarations: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -413,14 +393,10 @@ top_statement: | T_USE T_FUNCTION use_function_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -432,14 +408,10 @@ top_statement: | T_USE T_CONST use_const_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -451,7 +423,7 @@ top_statement: | constant_declaration ';' { $1.(*ast.StmtConstList).SemiColonTkn = $2 - $1.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtConstList).Position = position.NewNodeTokenPosition($1, $2) $$ = $1 } ; @@ -476,13 +448,9 @@ use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -491,21 +459,15 @@ use_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -514,14 +476,10 @@ use_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -530,22 +488,16 @@ use_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -573,13 +525,9 @@ use_function_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -588,21 +536,15 @@ use_function_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -611,14 +553,10 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -627,22 +565,16 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -670,13 +602,9 @@ use_const_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -685,21 +613,15 @@ use_const_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -708,14 +630,10 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -724,22 +642,16 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -751,16 +663,12 @@ constant_declaration: constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtConstList) - constList.Node.Position = position.NewNodesPosition($1, $5) + constList.Position = position.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -773,19 +681,13 @@ constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtConstList{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $4), - }, + Position: position.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -832,9 +734,7 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -852,13 +752,9 @@ statement: | T_STRING ':' { $$ = &ast.StmtLabel{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -871,9 +767,7 @@ unticked_statement: '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -889,9 +783,7 @@ unticked_statement: } $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, Cond: $2.(*ast.ParserBrackets).Child, @@ -904,9 +796,7 @@ unticked_statement: | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, @@ -914,9 +804,7 @@ unticked_statement: CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($4), - }, + Position: position.NewNodeListPosition($4), Stmts: $4, }, ElseIf: $5, @@ -931,16 +819,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).Node.Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $3) $$ = $3 } | T_DO statement T_WHILE parenthesis_expr ';' { $$ = &ast.StmtDo{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -963,7 +849,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).Node.Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) $$ = $9 } @@ -973,16 +859,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).Node.Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $3) $$ = $3 } | T_BREAK ';' { $$ = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), BreakTkn: $1, SemiColonTkn: $2, } @@ -990,9 +874,7 @@ unticked_statement: | T_BREAK expr ';' { $$ = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1001,9 +883,7 @@ unticked_statement: | T_CONTINUE ';' { $$ = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), ContinueTkn: $1, SemiColonTkn: $2, } @@ -1011,9 +891,7 @@ unticked_statement: | T_CONTINUE expr ';' { $$ = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1022,9 +900,7 @@ unticked_statement: | T_RETURN ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), ReturnTkn: $1, SemiColonTkn: $2, } @@ -1032,9 +908,7 @@ unticked_statement: | T_RETURN expr_without_variable ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1043,9 +917,7 @@ unticked_statement: | T_RETURN variable ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1054,9 +926,7 @@ unticked_statement: | yield_expr ';' { $$ = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -1066,7 +936,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).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -1075,7 +945,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).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -1083,16 +953,14 @@ unticked_statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -1100,9 +968,7 @@ unticked_statement: | expr ';' { $$ = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -1113,7 +979,7 @@ unticked_statement: $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 $3.(*ast.StmtUnset).CloseParenthesisTkn = $4 $3.(*ast.StmtUnset).SemiColonTkn = $5 - $3.(*ast.StmtUnset).Node.Position = position.NewTokensPosition($1, $5) + $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $5) $$ = $3 } @@ -1131,7 +997,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1149,7 +1015,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1160,22 +1026,26 @@ 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).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { + pos := position.NewTokenNodeListPosition($1, $5) + if $6 != nil { + pos = position.NewTokenNodePosition($1, $6) + } + $$ = &ast.StmtTry{ + Position: pos, TryTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -1183,19 +1053,11 @@ unticked_statement: Catches: $5, Finally: $6, } - - if $6 == nil { - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) - } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - } } | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1204,14 +1066,10 @@ unticked_statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1228,20 +1086,14 @@ catch_statement: | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { catch := &ast.StmtCatch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1263,9 +1115,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1300,20 +1150,14 @@ additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { $$ = &ast.StmtCatch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1389,15 +1233,11 @@ unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $9), - }, + Position: position.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1419,9 +1259,7 @@ unticked_class_declaration_statement: case *ast.StmtClass : n.Position = position.NewNodeTokenPosition($1, $7) n.ClassName = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1433,9 +1271,7 @@ unticked_class_declaration_statement: case *ast.StmtTrait : n.Position = position.NewNodeTokenPosition($1, $7) n.TraitName = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1451,14 +1287,10 @@ unticked_class_declaration_statement: | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1475,23 +1307,17 @@ class_entry_type: T_CLASS { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), ClassTkn: $1, } } | T_ABSTRACT T_CLASS { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1502,23 +1328,17 @@ class_entry_type: | T_TRAIT { $$ = &ast.StmtTrait{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), TraitTkn: $1, } } | T_FINAL T_CLASS { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1536,9 +1356,7 @@ extends_from: | T_EXTENDS fully_qualified_class_name { $$ = &ast.StmtClassExtends{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1560,9 +1378,7 @@ interface_extends_list: | T_EXTENDS interface_list { $$ = &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1578,9 +1394,7 @@ implements_list: | T_IMPLEMENTS interface_list { $$ = &ast.StmtClassImplements{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1626,9 +1440,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1643,9 +1455,7 @@ foreach_variable: } $$ = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1659,24 +1469,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1689,24 +1493,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1720,24 +1518,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1753,13 +1545,9 @@ declare_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1775,13 +1563,9 @@ declare_list: $1.(*ast.ParserSeparatedList).Items = append( $1.(*ast.ParserSeparatedList).Items, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1799,9 +1583,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1810,9 +1592,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1822,9 +1602,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1835,9 +1613,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1857,9 +1633,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $5), - }, + Position: position.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1869,9 +1643,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $4), - }, + Position: position.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1896,24 +1668,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1932,9 +1698,7 @@ elseif_list: | elseif_list T_ELSEIF parenthesis_expr statement { $$ = append($1, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $4), - }, + Position: position.NewTokenNodePosition($2, $4), ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, Cond: $3.(*ast.ParserBrackets).Child, @@ -1953,9 +1717,7 @@ new_elseif_list: | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { $$ = append($1, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $5), - }, + Position: position.NewTokenNodeListPosition($2, $5), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, @@ -1963,9 +1725,7 @@ new_elseif_list: CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $4, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($5), - }, + Position: position.NewNodeListPosition($5), Stmts: $5, }, }) @@ -1981,9 +1741,7 @@ else_single: | T_ELSE statement { $$ = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ElseTkn: $1, Stmt: $2, } @@ -1999,16 +1757,12 @@ new_else_single: | T_ELSE ':' inner_statement_list { $$ = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), - }, + Position: position.NewTokenNodeListPosition($1, $3), Alt: true, ElseTkn: $1, ColonTkn: $2, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($3), - }, + Position: position.NewNodeListPosition($3), Stmts: $3, }, } @@ -2056,20 +1810,14 @@ parameter: } $$ = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: $1, AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2088,20 +1836,14 @@ parameter: } $$ = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: $1, AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2121,9 +1863,7 @@ optional_class_type: | T_ARRAY { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2131,9 +1871,7 @@ optional_class_type: | T_CALLABLE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2149,9 +1887,7 @@ function_call_parameter_list: '(' ')' { $$ = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2168,15 +1904,11 @@ function_call_parameter_list: | '(' yield_expr ')' { $$ = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Arguments: []ast.Vertex{ &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($2), - }, + Position: position.NewNodePosition($2), Expr: $2, }, }, @@ -2206,27 +1938,21 @@ function_call_parameter: expr_without_variable { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Expr: $1, } } | variable { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Expr: $1, } } | '&' w_variable { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Expr: $2, } @@ -2234,9 +1960,7 @@ function_call_parameter: | T_ELLIPSIS expr { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -2264,13 +1988,9 @@ global_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2279,9 +1999,7 @@ global_var: | '$' r_variable { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -2289,14 +2007,10 @@ global_var: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -2310,17 +2024,11 @@ static_var_list: static_var_list ',' T_VARIABLE { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2333,17 +2041,11 @@ static_var_list: | static_var_list ',' T_VARIABLE '=' static_scalar { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2360,17 +2062,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2384,17 +2080,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2424,9 +2114,7 @@ class_statement: variable_modifiers class_variable_declaration ';' { $$ = &ast.StmtPropertyList{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $3), - }, + Position: position.NewNodeListTokenPosition($1, $3), Modifiers: $1, Properties: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2436,7 +2124,7 @@ class_statement: | class_constant_declaration ';' { $1.(*ast.StmtClassConstList).SemiColonTkn = $2 - $1.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtClassConstList).Position = position.NewNodeTokenPosition($1, $2) $$ = $1 } | trait_use_statement @@ -2447,20 +2135,16 @@ class_statement: { pos := position.NewTokenNodePosition($2, $8) if $1 != nil { - $$.GetNode().Position = position.NewNodeListNodePosition($1, $8) + pos = position.NewNodeListNodePosition($1, $8) } $$ = &ast.StmtClassMethod{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Modifiers: $1, FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2477,9 +2161,7 @@ trait_use_statement: T_USE trait_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2508,18 +2190,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2568,9 +2246,7 @@ trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { $$ = &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2599,13 +2275,9 @@ trait_method_reference: T_STRING { $$ = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2621,15 +2293,11 @@ trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2641,16 +2309,12 @@ trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2659,9 +2323,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2684,18 +2346,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2712,9 +2370,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2748,9 +2404,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2758,9 +2412,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2768,9 +2420,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2778,9 +2428,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2788,9 +2436,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2798,9 +2444,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2811,17 +2455,11 @@ class_variable_declaration: class_variable_declaration ',' T_VARIABLE { item := &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2836,17 +2474,11 @@ class_variable_declaration: | class_variable_declaration ',' T_VARIABLE '=' static_scalar { item := &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2865,17 +2497,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2890,17 +2516,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2917,16 +2537,12 @@ class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtClassConstList) - constList.Node.Position = position.NewNodesPosition($1, $5) + constList.Position = position.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2939,19 +2555,13 @@ class_constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtClassConstList{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $4), - }, + Position: position.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3022,9 +2632,7 @@ chaining_dereference: chaining_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -3036,9 +2644,7 @@ chaining_dereference: | '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), Var: nil, OpenBracketTkn: $1, Dim: $2, @@ -3080,9 +2686,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -3092,9 +2696,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), Class: $2, } } @@ -3105,13 +2707,9 @@ expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $6), - }, + Position: position.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3125,9 +2723,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3136,9 +2732,7 @@ expr_without_variable: | variable '=' '&' variable { $$ = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -3150,9 +2744,7 @@ expr_without_variable: var _new *ast.ExprNew if $3 != nil { _new = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($4, $6), - }, + Position: position.NewTokenNodePosition($4, $6), NewTkn: $4, Class: $5, OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, @@ -3162,18 +2754,14 @@ expr_without_variable: } } else { _new = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($4, $5), - }, + Position: position.NewTokenNodePosition($4, $5), NewTkn: $4, Class: $5, } } $$ = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, _new), - }, + Position: position.NewNodesPosition($1, _new), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -3183,9 +2771,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -3193,9 +2779,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3204,9 +2788,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3215,9 +2797,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3226,9 +2806,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3237,9 +2815,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3248,9 +2824,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3259,9 +2833,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3270,9 +2842,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3281,9 +2851,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3292,9 +2860,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3303,9 +2869,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3314,9 +2878,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3325,9 +2887,7 @@ expr_without_variable: | rw_variable T_INC { $$ = &ast.ExprPostInc{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -3335,9 +2895,7 @@ expr_without_variable: | T_INC rw_variable { $$ = &ast.ExprPreInc{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -3345,9 +2903,7 @@ expr_without_variable: | rw_variable T_DEC { $$ = &ast.ExprPostDec{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -3355,9 +2911,7 @@ expr_without_variable: | T_DEC rw_variable { $$ = &ast.ExprPreDec{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -3365,9 +2919,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3376,9 +2928,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3387,9 +2937,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3398,9 +2946,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3409,9 +2955,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3420,9 +2964,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3431,9 +2973,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3442,9 +2982,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3453,9 +2991,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3464,9 +3000,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3475,9 +3009,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3486,9 +3018,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3497,9 +3027,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3508,9 +3036,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3519,9 +3045,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3530,9 +3054,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3541,9 +3063,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3552,9 +3072,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -3562,9 +3080,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -3572,9 +3088,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -3582,9 +3096,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -3592,9 +3104,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3603,9 +3113,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3614,9 +3122,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3625,9 +3131,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3636,9 +3140,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3647,9 +3149,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3658,9 +3158,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3669,9 +3167,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3680,9 +3176,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -3699,9 +3193,7 @@ expr_without_variable: | '(' new_expr ')' instance_call { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3711,22 +3203,22 @@ expr_without_variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn } } @@ -3734,9 +3226,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $5), - }, + Position: position.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -3747,9 +3237,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -3763,9 +3251,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3773,9 +3259,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3783,9 +3267,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3793,9 +3275,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3803,9 +3283,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3813,9 +3291,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3823,9 +3299,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3837,9 +3311,9 @@ expr_without_variable: } if $2 == nil { - exit.Node.Position = position.NewTokenPosition($1) + exit.Position = position.NewTokenPosition($1) } else { - exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.Position = position.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3850,9 +3324,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3872,9 +3344,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3883,9 +3353,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3893,18 +3361,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), YieldTkn: $1, } } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $9), - }, + Position: position.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3920,9 +3384,7 @@ expr_without_variable: | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $10), - }, + Position: position.NewTokensPosition($1, $10), StaticTkn: $1, FunctionTkn: $2, AmpersandTkn: $3, @@ -3942,9 +3404,7 @@ yield_expr: T_YIELD expr_without_variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3952,9 +3412,7 @@ yield_expr: | T_YIELD variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3962,9 +3420,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3974,9 +3430,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3989,9 +3443,7 @@ combined_scalar_offset: combined_scalar '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4001,9 +3453,7 @@ combined_scalar_offset: | combined_scalar_offset '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4013,13 +3463,9 @@ combined_scalar_offset: | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Var: &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -4031,9 +3477,7 @@ combined_scalar_offset: | general_constant '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4046,9 +3490,7 @@ combined_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4059,9 +3501,7 @@ combined_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4085,9 +3525,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -4101,13 +3539,9 @@ lexical_var_list: lexical_var_list ',' T_VARIABLE { variable := &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4121,18 +3555,12 @@ lexical_var_list: | lexical_var_list ',' '&' T_VARIABLE { reference := &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $4), - }, + Position: position.NewTokensPosition($3, $4), AmpersandTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -4149,13 +3577,9 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4168,18 +3592,12 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4194,13 +3612,9 @@ function_call: namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), - }, + Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), Function: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4213,13 +3627,9 @@ function_call: | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), Function: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4234,13 +3644,9 @@ function_call: | T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Function: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4254,9 +3660,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4269,9 +3673,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4284,9 +3686,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4299,9 +3699,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4314,9 +3712,7 @@ function_call: | variable_without_objects function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $2), - }, + Position: position.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -4330,9 +3726,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -4340,9 +3734,7 @@ class_name: | namespace_name { $$ = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -4350,9 +3742,7 @@ class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4362,9 +3752,7 @@ class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4376,9 +3764,7 @@ fully_qualified_class_name: namespace_name { $$ = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -4386,9 +3772,7 @@ fully_qualified_class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4398,9 +3782,7 @@ fully_qualified_class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4430,12 +3812,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn } } @@ -4444,12 +3826,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn } } @@ -4490,9 +3872,7 @@ exit_expr: | '(' ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenBracketTkn: $1, CloseBracketTkn: $2, } @@ -4512,9 +3892,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -4541,9 +3919,7 @@ common_scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -4551,9 +3927,7 @@ common_scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -4561,9 +3935,7 @@ common_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4571,9 +3943,7 @@ common_scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4581,9 +3951,7 @@ common_scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4591,9 +3959,7 @@ common_scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4601,9 +3967,7 @@ common_scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4611,9 +3975,7 @@ common_scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4621,9 +3983,7 @@ common_scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4631,9 +3991,7 @@ common_scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4641,15 +3999,11 @@ common_scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4660,9 +4014,7 @@ common_scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -4673,15 +4025,11 @@ static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4708,13 +4056,9 @@ static_scalar_value: | namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4723,13 +4067,9 @@ static_scalar_value: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4740,13 +4080,9 @@ static_scalar_value: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4756,9 +4092,7 @@ static_scalar_value: | T_ARRAY '(' static_array_pair_list ')' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4769,9 +4103,7 @@ static_scalar_value: | '[' static_array_pair_list ']' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4785,9 +4117,7 @@ static_scalar_value: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4802,9 +4132,7 @@ static_operation: static_scalar_value '[' static_scalar_value ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4814,9 +4142,7 @@ static_operation: | static_scalar_value '+' static_scalar_value { $$ = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4825,9 +4151,7 @@ static_operation: | static_scalar_value '-' static_scalar_value { $$ = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4836,9 +4160,7 @@ static_operation: | static_scalar_value '*' static_scalar_value { $$ = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4847,9 +4169,7 @@ static_operation: | static_scalar_value T_POW static_scalar_value { $$ = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4858,9 +4178,7 @@ static_operation: | static_scalar_value '/' static_scalar_value { $$ = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4869,9 +4187,7 @@ static_operation: | static_scalar_value '%' static_scalar_value { $$ = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4880,9 +4196,7 @@ static_operation: | '!' static_scalar_value { $$ = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -4890,9 +4204,7 @@ static_operation: | '~' static_scalar_value { $$ = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -4900,9 +4212,7 @@ static_operation: | static_scalar_value '|' static_scalar_value { $$ = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4911,9 +4221,7 @@ static_operation: | static_scalar_value '&' static_scalar_value { $$ = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4922,9 +4230,7 @@ static_operation: | static_scalar_value '^' static_scalar_value { $$ = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4933,9 +4239,7 @@ static_operation: | static_scalar_value T_SL static_scalar_value { $$ = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4944,9 +4248,7 @@ static_operation: | static_scalar_value T_SR static_scalar_value { $$ = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4955,9 +4257,7 @@ static_operation: | static_scalar_value '.' static_scalar_value { $$ = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4966,9 +4266,7 @@ static_operation: | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$ = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4977,9 +4275,7 @@ static_operation: | static_scalar_value T_LOGICAL_AND static_scalar_value { $$ = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4988,9 +4284,7 @@ static_operation: | static_scalar_value T_LOGICAL_OR static_scalar_value { $$ = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4999,9 +4293,7 @@ static_operation: | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$ = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5010,9 +4302,7 @@ static_operation: | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$ = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5021,9 +4311,7 @@ static_operation: | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5032,9 +4320,7 @@ static_operation: | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5043,9 +4329,7 @@ static_operation: | static_scalar_value T_IS_EQUAL static_scalar_value { $$ = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5054,9 +4338,7 @@ static_operation: | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$ = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5065,9 +4347,7 @@ static_operation: | static_scalar_value '<' static_scalar_value { $$ = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5076,9 +4356,7 @@ static_operation: | static_scalar_value '>' static_scalar_value { $$ = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5087,9 +4365,7 @@ static_operation: | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5098,9 +4374,7 @@ static_operation: | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5109,9 +4383,7 @@ static_operation: | static_scalar_value '?' ':' static_scalar_value { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -5121,9 +4393,7 @@ static_operation: | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $5), - }, + Position: position.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -5134,9 +4404,7 @@ static_operation: | '+' static_scalar_value { $$ = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -5144,9 +4412,7 @@ static_operation: | '-' static_scalar_value { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -5154,9 +4420,7 @@ static_operation: | '(' static_scalar_value ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5172,13 +4436,9 @@ general_constant: | namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -5187,13 +4447,9 @@ general_constant: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -5204,13 +4460,9 @@ general_constant: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -5223,13 +4475,9 @@ scalar: T_STRING_VARNAME { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5250,9 +4498,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -5261,9 +4507,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -5272,9 +4516,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -5312,9 +4554,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{ - Node: ast.Node{ - Position: position.NewNodesPosition($3, $5), - }, + Position: position.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -5328,9 +4568,7 @@ non_empty_static_array_pair_list: | non_empty_static_array_pair_list ',' static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($3), - }, + Position: position.NewNodePosition($3), Val: $3, } @@ -5344,9 +4582,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -5359,9 +4595,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, }, }, @@ -5384,9 +4618,7 @@ parenthesis_expr: '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5395,9 +4627,7 @@ parenthesis_expr: | '(' yield_expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5441,9 +4671,7 @@ variable: case *ast.ExprArrayDimFetch: mc := $4[0].(*ast.ExprMethodCall) $3 = append($3, &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodePosition(mc), - }, + Position: position.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -5462,22 +4690,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn } } @@ -5486,22 +4714,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn } } @@ -5535,9 +4763,7 @@ variable_property: case *ast.ExprArrayDimFetch: mc := $3[0].(*ast.ExprMethodCall) $2 = append($2, &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodePosition(mc), - }, + Position: position.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -5560,9 +4786,7 @@ array_method_dereference: array_method_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5574,9 +4798,7 @@ array_method_dereference: | method '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5591,9 +4813,7 @@ method: function_call_parameter_list { $$ = &ast.ExprMethodCall{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $1.(*ast.ArgumentList).Arguments, SeparatorTkns: $1.(*ast.ArgumentList).SeparatorTkns, @@ -5626,7 +4846,7 @@ variable_without_objects: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -5638,9 +4858,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -5649,9 +4867,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -5670,9 +4886,7 @@ array_function_dereference: array_function_dereference '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5682,9 +4896,7 @@ array_function_dereference: | function_call '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5718,7 +4930,7 @@ base_variable: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -5734,9 +4946,7 @@ reference_variable: reference_variable '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5746,9 +4956,7 @@ reference_variable: | reference_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5766,13 +4974,9 @@ compound_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5781,14 +4985,10 @@ compound_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -5818,9 +5018,7 @@ object_property: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Property: $1, }, } @@ -5831,9 +5029,7 @@ object_dim_list: object_dim_list '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5845,9 +5041,7 @@ object_dim_list: | object_dim_list '{' expr '}' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5860,9 +5054,7 @@ object_dim_list: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Property: $1, }, } @@ -5873,9 +5065,7 @@ variable_name: T_STRING { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -5883,9 +5073,7 @@ variable_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5898,9 +5086,7 @@ simple_indirect_reference: { $$ = []ast.Vertex{ &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), DollarTkn: $1, }, } @@ -5908,9 +5094,7 @@ simple_indirect_reference: | simple_indirect_reference '$' { $$ = append($1, &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), DollarTkn: $2, }) } @@ -5937,9 +5121,7 @@ assignment_list_element: variable { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, } } @@ -5953,13 +5135,9 @@ assignment_list_element: } $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -5995,9 +5173,7 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($3, $5), - }, + Position: position.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -6011,9 +5187,7 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($3), - }, + Position: position.NewNodePosition($3), Val: $3, } @@ -6027,9 +5201,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -6042,9 +5214,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, }, }, @@ -6053,15 +5223,11 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($3, $6), - }, + Position: position.NewNodesPosition($3, $6), Key: $3, DoubleArrowTkn: $4, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($5, $6), - }, + Position: position.NewTokenNodePosition($5, $6), AmpersandTkn: $5, Var: $6, }, @@ -6075,13 +5241,9 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -6097,15 +5259,11 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -6118,13 +5276,9 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -6144,9 +5298,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -6160,9 +5312,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -6175,13 +5325,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -6190,17 +5336,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -6213,26 +5353,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6241,14 +5373,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewNodePosition($2), - }, + Position: position.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -6257,18 +5385,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -6279,22 +5401,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $5), - }, + Position: position.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -6309,9 +5423,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -6323,9 +5435,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -6335,17 +5445,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -6354,13 +5460,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -6372,9 +5474,7 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { $$ = &ast.ExprIsset{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -6385,9 +5485,7 @@ internal_functions_in_yacc: | T_EMPTY '(' variable ')' { $$ = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -6397,9 +5495,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -6409,9 +5505,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -6419,9 +5513,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -6429,9 +5521,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -6441,9 +5531,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -6451,9 +5539,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } @@ -6491,15 +5577,11 @@ class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6508,15 +5590,11 @@ class_constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6528,15 +5606,11 @@ static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6548,15 +5622,11 @@ class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 03984ad6a16a5d97cac1d014af27d0e501edc5b7..d8af320f3eb8cfe29869d82366f872690453138f 100644 GIT binary patch delta 18369 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 delta 22952 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 v&unNsx9YDvC-N' expr { $$ = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3346,9 +2936,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3357,9 +2945,7 @@ expr_without_variable: | expr T_SPACESHIP expr { $$ = &ast.ExprBinarySpaceship{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3368,9 +2954,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -3379,9 +2963,7 @@ expr_without_variable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3394,9 +2976,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $5), - }, + Position: position.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -3407,9 +2987,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -3419,9 +2997,7 @@ expr_without_variable: | expr T_COALESCE expr { $$ = &ast.ExprBinaryCoalesce{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3434,9 +3010,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3444,9 +3018,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3454,9 +3026,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3464,9 +3034,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3474,9 +3042,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3484,9 +3050,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3494,9 +3058,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3508,9 +3070,9 @@ expr_without_variable: } if $2 == nil { - exit.Node.Position = position.NewTokenPosition($1) + exit.Position = position.NewTokenPosition($1) } else { - exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.Position = position.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3521,9 +3083,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3535,9 +3095,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3546,9 +3104,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3556,18 +3112,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), YieldTkn: $1, } } | T_YIELD expr { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3575,9 +3127,7 @@ expr_without_variable: | T_YIELD expr T_DOUBLE_ARROW expr { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3587,9 +3137,7 @@ expr_without_variable: | T_YIELD_FROM expr { $$ = &ast.ExprYieldFrom{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldFromTkn: $1, Expr: $2, } @@ -3617,9 +3165,7 @@ inline_function: T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $11), - }, + Position: position.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $4, @@ -3637,9 +3183,7 @@ inline_function: | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { $$ = &ast.ExprArrowFunction{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $9), - }, + Position: position.NewTokenNodePosition($1, $9), FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3677,9 +3221,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -3709,13 +3251,9 @@ lexical_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3724,18 +3262,12 @@ lexical_var: | '&' T_VARIABLE { $$ = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3748,9 +3280,7 @@ function_call: name argument_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $2), - }, + Position: position.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3761,9 +3291,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3776,9 +3304,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3791,9 +3317,7 @@ function_call: | callable_expr argument_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $2), - }, + Position: position.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3807,9 +3331,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3839,9 +3361,7 @@ exit_expr: | '(' optional_expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3858,9 +3378,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -3887,9 +3405,7 @@ dereferencable_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3900,9 +3416,7 @@ dereferencable_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3912,9 +3426,7 @@ dereferencable_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -3925,9 +3437,7 @@ scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3935,9 +3445,7 @@ scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3945,9 +3453,7 @@ scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3955,9 +3461,7 @@ scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3965,9 +3469,7 @@ scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3975,9 +3477,7 @@ scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3985,9 +3485,7 @@ scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3995,9 +3493,7 @@ scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4005,9 +3501,7 @@ scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4015,9 +3509,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4025,15 +3517,11 @@ scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4044,9 +3532,7 @@ scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -4054,9 +3540,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -4065,9 +3549,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -4087,24 +3569,18 @@ constant: name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Const: $1, } } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4113,15 +3589,11 @@ constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4166,9 +3638,7 @@ dereferencable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4188,9 +3658,7 @@ callable_expr: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4210,9 +3678,7 @@ callable_variable: | dereferencable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4222,9 +3688,7 @@ callable_variable: | constant '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4234,9 +3698,7 @@ callable_variable: | dereferencable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4246,9 +3708,7 @@ callable_variable: | dereferencable T_OBJECT_OPERATOR property_name argument_list { $$ = &ast.ExprMethodCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Var: $1, ObjectOperatorTkn: $2, Method: $3, @@ -4276,9 +3736,7 @@ variable: | dereferencable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -4290,13 +3748,9 @@ simple_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4305,14 +3759,10 @@ simple_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -4322,9 +3772,7 @@ simple_variable: | '$' simple_variable { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -4335,9 +3783,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4346,9 +3792,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4364,9 +3808,7 @@ new_variable: | new_variable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4376,9 +3818,7 @@ new_variable: | new_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4388,9 +3828,7 @@ new_variable: | new_variable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -4399,9 +3837,7 @@ new_variable: | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4410,9 +3846,7 @@ new_variable: | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4424,9 +3858,7 @@ member_name: identifier { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -4434,9 +3866,7 @@ member_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4452,9 +3882,7 @@ property_name: T_STRING { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -4462,9 +3890,7 @@ property_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4521,9 +3947,7 @@ array_pair: expr T_DOUBLE_ARROW expr { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -4532,24 +3956,18 @@ array_pair: | expr { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, } } | expr T_DOUBLE_ARROW '&' variable { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -4558,13 +3976,9 @@ array_pair: | '&' variable { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -4573,9 +3987,7 @@ array_pair: | T_ELLIPSIS expr { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), EllipsisTkn: $1, Val: $2, } @@ -4583,15 +3995,11 @@ array_pair: | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $6), - }, + Position: position.NewNodeTokenPosition($1, $6), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $6), - }, + Position: position.NewTokensPosition($3, $6), ListTkn: $3, OpenBracketTkn: $4, Items: $5.(*ast.ParserSeparatedList).Items, @@ -4603,13 +4011,9 @@ array_pair: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4630,9 +4034,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4646,9 +4048,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -4661,13 +4061,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4676,17 +4072,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4699,26 +4089,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4727,14 +4109,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewNodePosition($2), - }, + Position: position.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -4743,18 +4121,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4765,22 +4137,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $5), - }, + Position: position.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4795,9 +4159,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4809,9 +4171,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4821,17 +4181,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4844,24 +4200,17 @@ encaps_var_offset: if isInt { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), MinusTkn: $1, Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), NumberTkn: $2, Value: $2.Value, }, } - $$.GetNode().Position = position.NewTokensPosition($1, $2) } else { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), MinusTkn: $1, StringTkn: $2, Value: append([]byte("-"), $2.Value...), @@ -4871,13 +4220,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4893,9 +4238,7 @@ internal_functions_in_yacc: } $$ = &ast.ExprIsset{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -4906,9 +4249,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4918,9 +4259,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4928,9 +4267,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4938,9 +4275,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4950,9 +4285,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -4960,9 +4293,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } diff --git a/internal/position/position.go b/internal/position/position.go index 2603826..888f24b 100644 --- a/internal/position/position.go +++ b/internal/position/position.go @@ -36,7 +36,7 @@ func getNodeStartPos(n ast.Vertex) startPos { return startPos{-1, -1} } - p := n.GetNode().Position + p := n.GetPosition() if p != nil { sl = p.StartLine sp = p.StartPos @@ -65,7 +65,7 @@ func getNodeEndPos(n ast.Vertex) endPos { return endPos{-1, -1} } - p := n.GetNode().Position + p := n.GetPosition() if p != nil { el = p.EndLine ep = p.EndPos diff --git a/internal/position/position_test.go b/internal/position/position_test.go index 1fd6c83..fcd2681 100644 --- a/internal/position/position_test.go +++ b/internal/position/position_test.go @@ -23,9 +23,7 @@ func TestNewTokenPosition(t *testing.T) { pos := builder.NewTokenPosition(tkn) - assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) - - assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 1, EndPos: 3}, pos) } func TestNewTokensPosition(t *testing.T) { @@ -50,24 +48,22 @@ func TestNewTokensPosition(t *testing.T) { pos := builder.NewTokensPosition(token1, token2) - assert.DeepEqual(t, &position.Position{1, 2, 0, 6}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 6}, pos) } func TestNewNodePosition(t *testing.T) { n := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, }, } pos := builder.NewNodePosition(n) - assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 1, EndPos: 3}, pos) } func TestNewTokenNodePosition(t *testing.T) { @@ -81,30 +77,26 @@ func TestNewTokenNodePosition(t *testing.T) { }, } n := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 12, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 4, + EndPos: 12, }, } pos := builder.NewTokenNodePosition(tkn, n) - assert.DeepEqual(t, &position.Position{1, 2, 0, 12}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 12}, pos) } func TestNewNodeTokenPosition(t *testing.T) { n := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } @@ -120,85 +112,73 @@ func TestNewNodeTokenPosition(t *testing.T) { pos := builder.NewNodeTokenPosition(n, tkn) - assert.DeepEqual(t, &position.Position{1, 2, 0, 12}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 12}, pos) } func TestNewNodeListPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 19, }, } pos := builder.NewNodeListPosition([]ast.Vertex{n1, n2}) - assert.DeepEqual(t, &position.Position{1, 2, 0, 19}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 19}, pos) } func TestNewNodesPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 19, }, } pos := builder.NewNodesPosition(n1, n2) - assert.DeepEqual(t, &position.Position{1, 2, 0, 19}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 19}, pos) } func TestNewNodeListTokenPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 19, }, } @@ -214,7 +194,7 @@ func TestNewNodeListTokenPosition(t *testing.T) { pos := builder.NewNodeListTokenPosition([]ast.Vertex{n1, n2}, tkn) - assert.DeepEqual(t, &position.Position{1, 3, 0, 22}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 22}, pos) } func TestNewTokenNodeListPosition(t *testing.T) { @@ -229,106 +209,90 @@ func TestNewTokenNodeListPosition(t *testing.T) { } n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 10, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 3, + EndPos: 10, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 11, - EndPos: 20, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 11, + EndPos: 20, }, } pos := builder.NewTokenNodeListPosition(tkn, []ast.Vertex{n1, n2}) - assert.DeepEqual(t, &position.Position{1, 3, 0, 20}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 20}, pos) } func TestNewNodeNodeListPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 17, }, } n3 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 18, + EndPos: 26, }, } pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{n2, n3}) - assert.DeepEqual(t, &position.Position{1, 3, 0, 26}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 26}, pos) } func TestNewNodeListNodePosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 17, }, } n3 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 18, + EndPos: 26, }, } pos := builder.NewNodeListNodePosition([]ast.Vertex{n1, n2}, n3) - assert.DeepEqual(t, &position.Position{1, 3, 0, 26}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 26}, pos) } func TestNewOptionalListTokensPosition(t *testing.T) { @@ -353,28 +317,24 @@ func TestNewOptionalListTokensPosition(t *testing.T) { pos := builder.NewOptionalListTokensPosition(nil, token1, token2) - assert.DeepEqual(t, &position.Position{1, 2, 0, 6}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 6}, pos) } func TestNewOptionalListTokensPosition2(t *testing.T) { n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 17, }, } n3 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 18, + EndPos: 26, }, } @@ -399,34 +359,32 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { pos := builder.NewOptionalListTokensPosition([]ast.Vertex{n2, n3}, token1, token2) - assert.DeepEqual(t, &position.Position{2, 5, 9, 32}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 2, EndLine: 5, StartPos: 9, EndPos: 32}, pos) } func TestNilNodePos(t *testing.T) { pos := builder.NewNodesPosition(nil, nil) - assert.DeepEqual(t, &position.Position{-1, -1, -1, -1}, pos) + assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: -1, StartPos: -1, EndPos: -1}, pos) } func TestNilNodeListPos(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } pos := builder.NewNodeNodeListPosition(n1, nil) - assert.DeepEqual(t, &position.Position{1, -1, 0, -1}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: -1, EndPos: -1}, pos) } func TestNilNodeListTokenPos(t *testing.T) { - token := &token.Token{ + tkn := &token.Token{ Value: []byte(`foo`), Position: &position.Position{ StartLine: 1, @@ -436,30 +394,28 @@ func TestNilNodeListTokenPos(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition(nil, token) + pos := builder.NewNodeListTokenPosition(nil, tkn) - assert.DeepEqual(t, &position.Position{-1, 1, -1, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: 1, StartPos: -1, EndPos: 3}, pos) } func TestEmptyNodeListPos(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{}) - assert.DeepEqual(t, &position.Position{1, -1, 0, -1}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: -1, EndPos: -1}, pos) } func TestEmptyNodeListTokenPos(t *testing.T) { - token := &token.Token{ + tkn := &token.Token{ Value: []byte(`foo`), Position: &position.Position{ StartLine: 1, @@ -469,7 +425,7 @@ func TestEmptyNodeListTokenPos(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition([]ast.Vertex{}, token) + pos := builder.NewNodeListTokenPosition([]ast.Vertex{}, tkn) - assert.DeepEqual(t, &position.Position{-1, 1, -1, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: 1, StartPos: -1, EndPos: 3}, pos) } diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index b711aaa..c689909 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -1,8 +1,10 @@ package ast +import "github.com/z7zmey/php-parser/pkg/position" + type Vertex interface { Accept(v NodeVisitor) - GetNode() *Node + GetPosition() *position.Position } type Traverser interface { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index b375c45..70655b5 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -5,35 +5,24 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -type Node struct { - StartTokens []token.Token - EndTokens []token.Token - Tokens token.Collection - Position *position.Position -} - -func (n *Node) GetNode() *Node { - return n -} - -func (n *Node) GetPosition() *position.Position { - return n.Position -} - // Root node type Root struct { - Node - Stmts []Vertex - EndTkn *token.Token + Position *position.Position + Stmts []Vertex + EndTkn *token.Token } func (n *Root) Accept(v NodeVisitor) { v.Root(n) } +func (n *Root) GetPosition() *position.Position { + return n.Position +} + // Nullable node type Nullable struct { - Node + Position *position.Position QuestionTkn *token.Token Expr Vertex } @@ -42,9 +31,13 @@ func (n *Nullable) Accept(v NodeVisitor) { v.Nullable(n) } +func (n *Nullable) GetPosition() *position.Position { + return n.Position +} + // Parameter node type Parameter struct { - Node + Position *position.Position Type Vertex AmpersandTkn *token.Token VariadicTkn *token.Token @@ -57,9 +50,13 @@ func (n *Parameter) Accept(v NodeVisitor) { v.Parameter(n) } +func (n *Parameter) GetPosition() *position.Position { + return n.Position +} + // Identifier node type Identifier struct { - Node + Position *position.Position IdentifierTkn *token.Token Value []byte } @@ -68,9 +65,13 @@ func (n *Identifier) Accept(v NodeVisitor) { v.Identifier(n) } +func (n *Identifier) GetPosition() *position.Position { + return n.Position +} + // Argument node type Argument struct { - Node + Position *position.Position VariadicTkn *token.Token AmpersandTkn *token.Token Expr Vertex @@ -80,9 +81,13 @@ func (n *Argument) Accept(v NodeVisitor) { v.Argument(n) } +func (n *Argument) GetPosition() *position.Position { + return n.Position +} + // ScalarDnumber node type ScalarDnumber struct { - Node + Position *position.Position NumberTkn *token.Token Value []byte } @@ -91,9 +96,13 @@ func (n *ScalarDnumber) Accept(v NodeVisitor) { v.ScalarDnumber(n) } +func (n *ScalarDnumber) GetPosition() *position.Position { + return n.Position +} + // ScalarEncapsed node type ScalarEncapsed struct { - Node + Position *position.Position OpenQoteTkn *token.Token Parts []Vertex CloseQoteTkn *token.Token @@ -103,9 +112,13 @@ func (n *ScalarEncapsed) Accept(v NodeVisitor) { v.ScalarEncapsed(n) } +func (n *ScalarEncapsed) GetPosition() *position.Position { + return n.Position +} + // ScalarEncapsedStringPart node type ScalarEncapsedStringPart struct { - Node + Position *position.Position EncapsedStrTkn *token.Token Value []byte } @@ -114,9 +127,13 @@ func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { v.ScalarEncapsedStringPart(n) } +func (n *ScalarEncapsedStringPart) GetPosition() *position.Position { + return n.Position +} + // ScalarHeredoc node type ScalarHeredoc struct { - Node + Position *position.Position OpenHeredocTkn *token.Token Parts []Vertex CloseHeredocTkn *token.Token @@ -126,9 +143,13 @@ func (n *ScalarHeredoc) Accept(v NodeVisitor) { v.ScalarHeredoc(n) } +func (n *ScalarHeredoc) GetPosition() *position.Position { + return n.Position +} + // ScalarLnumber node type ScalarLnumber struct { - Node + Position *position.Position NumberTkn *token.Token Value []byte } @@ -137,9 +158,13 @@ func (n *ScalarLnumber) Accept(v NodeVisitor) { v.ScalarLnumber(n) } +func (n *ScalarLnumber) GetPosition() *position.Position { + return n.Position +} + // ScalarMagicConstant node type ScalarMagicConstant struct { - Node + Position *position.Position MagicConstTkn *token.Token Value []byte } @@ -148,9 +173,13 @@ func (n *ScalarMagicConstant) Accept(v NodeVisitor) { v.ScalarMagicConstant(n) } +func (n *ScalarMagicConstant) GetPosition() *position.Position { + return n.Position +} + // ScalarString node type ScalarString struct { - Node + Position *position.Position MinusTkn *token.Token StringTkn *token.Token Value []byte @@ -160,9 +189,13 @@ func (n *ScalarString) Accept(v NodeVisitor) { v.ScalarString(n) } +func (n *ScalarString) GetPosition() *position.Position { + return n.Position +} + // StmtBreak node type StmtBreak struct { - Node + Position *position.Position BreakTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -172,9 +205,13 @@ func (n *StmtBreak) Accept(v NodeVisitor) { v.StmtBreak(n) } +func (n *StmtBreak) GetPosition() *position.Position { + return n.Position +} + // StmtCase node type StmtCase struct { - Node + Position *position.Position CaseTkn *token.Token Cond Vertex CaseSeparatorTkn *token.Token @@ -185,9 +222,13 @@ func (n *StmtCase) Accept(v NodeVisitor) { v.StmtCase(n) } +func (n *StmtCase) GetPosition() *position.Position { + return n.Position +} + // StmtCatch node type StmtCatch struct { - Node + Position *position.Position CatchTkn *token.Token OpenParenthesisTkn *token.Token Types []Vertex @@ -203,9 +244,13 @@ func (n *StmtCatch) Accept(v NodeVisitor) { v.StmtCatch(n) } +func (n *StmtCatch) GetPosition() *position.Position { + return n.Position +} + // StmtClass node type StmtClass struct { - Node + Position *position.Position Modifiers []Vertex ClassTkn *token.Token ClassName Vertex @@ -224,9 +269,13 @@ func (n *StmtClass) Accept(v NodeVisitor) { v.StmtClass(n) } +func (n *StmtClass) GetPosition() *position.Position { + return n.Position +} + // StmtClassConstList node type StmtClassConstList struct { - Node + Position *position.Position Modifiers []Vertex ConstTkn *token.Token Consts []Vertex @@ -238,9 +287,13 @@ func (n *StmtClassConstList) Accept(v NodeVisitor) { v.StmtClassConstList(n) } +func (n *StmtClassConstList) GetPosition() *position.Position { + return n.Position +} + // StmtClassExtends node type StmtClassExtends struct { - Node + Position *position.Position ExtendTkn *token.Token ClassName Vertex } @@ -249,9 +302,13 @@ func (n *StmtClassExtends) Accept(v NodeVisitor) { v.StmtClassExtends(n) } +func (n *StmtClassExtends) GetPosition() *position.Position { + return n.Position +} + // StmtClassImplements node type StmtClassImplements struct { - Node + Position *position.Position ImplementsTkn *token.Token InterfaceNames []Vertex SeparatorTkns []*token.Token @@ -261,9 +318,13 @@ func (n *StmtClassImplements) Accept(v NodeVisitor) { v.StmtClassImplements(n) } +func (n *StmtClassImplements) GetPosition() *position.Position { + return n.Position +} + // StmtClassMethod node type StmtClassMethod struct { - Node + Position *position.Position Modifiers []Vertex FunctionTkn *token.Token AmpersandTkn *token.Token @@ -281,9 +342,13 @@ func (n *StmtClassMethod) Accept(v NodeVisitor) { v.StmtClassMethod(n) } +func (n *StmtClassMethod) GetPosition() *position.Position { + return n.Position +} + // StmtConstList node type StmtConstList struct { - Node + Position *position.Position ConstTkn *token.Token Consts []Vertex SeparatorTkns []*token.Token @@ -294,9 +359,13 @@ func (n *StmtConstList) Accept(v NodeVisitor) { v.StmtConstList(n) } +func (n *StmtConstList) GetPosition() *position.Position { + return n.Position +} + // StmtConstant node type StmtConstant struct { - Node + Position *position.Position Name Vertex EqualTkn *token.Token Expr Vertex @@ -306,9 +375,13 @@ func (n *StmtConstant) Accept(v NodeVisitor) { v.StmtConstant(n) } +func (n *StmtConstant) GetPosition() *position.Position { + return n.Position +} + // StmtContinue node type StmtContinue struct { - Node + Position *position.Position ContinueTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -318,9 +391,13 @@ func (n *StmtContinue) Accept(v NodeVisitor) { v.StmtContinue(n) } +func (n *StmtContinue) GetPosition() *position.Position { + return n.Position +} + // StmtDeclare node type StmtDeclare struct { - Node + Position *position.Position Alt bool DeclareTkn *token.Token OpenParenthesisTkn *token.Token @@ -337,9 +414,13 @@ func (n *StmtDeclare) Accept(v NodeVisitor) { v.StmtDeclare(n) } +func (n *StmtDeclare) GetPosition() *position.Position { + return n.Position +} + // StmtDefault node type StmtDefault struct { - Node + Position *position.Position DefaultTkn *token.Token CaseSeparatorTkn *token.Token Stmts []Vertex @@ -349,9 +430,13 @@ func (n *StmtDefault) Accept(v NodeVisitor) { v.StmtDefault(n) } +func (n *StmtDefault) GetPosition() *position.Position { + return n.Position +} + // StmtDo node type StmtDo struct { - Node + Position *position.Position DoTkn *token.Token Stmt Vertex WhileTkn *token.Token @@ -365,9 +450,13 @@ func (n *StmtDo) Accept(v NodeVisitor) { v.StmtDo(n) } +func (n *StmtDo) GetPosition() *position.Position { + return n.Position +} + // StmtEcho node type StmtEcho struct { - Node + Position *position.Position EchoTkn *token.Token Exprs []Vertex SeparatorTkns []*token.Token @@ -378,9 +467,13 @@ func (n *StmtEcho) Accept(v NodeVisitor) { v.StmtEcho(n) } +func (n *StmtEcho) GetPosition() *position.Position { + return n.Position +} + // StmtElse node type StmtElse struct { - Node + Position *position.Position Alt bool ElseTkn *token.Token ColonTkn *token.Token @@ -391,9 +484,13 @@ func (n *StmtElse) Accept(v NodeVisitor) { v.StmtElse(n) } +func (n *StmtElse) GetPosition() *position.Position { + return n.Position +} + // StmtElseIf node type StmtElseIf struct { - Node + Position *position.Position Alt bool ElseIfTkn *token.Token OpenParenthesisTkn *token.Token @@ -407,9 +504,13 @@ func (n *StmtElseIf) Accept(v NodeVisitor) { v.StmtElseIf(n) } +func (n *StmtElseIf) GetPosition() *position.Position { + return n.Position +} + // StmtExpression node type StmtExpression struct { - Node + Position *position.Position Expr Vertex SemiColonTkn *token.Token } @@ -418,9 +519,13 @@ func (n *StmtExpression) Accept(v NodeVisitor) { v.StmtExpression(n) } +func (n *StmtExpression) GetPosition() *position.Position { + return n.Position +} + // StmtFinally node type StmtFinally struct { - Node + Position *position.Position FinallyTkn *token.Token OpenCurlyBracketTkn *token.Token Stmts []Vertex @@ -431,9 +536,13 @@ func (n *StmtFinally) Accept(v NodeVisitor) { v.StmtFinally(n) } +func (n *StmtFinally) GetPosition() *position.Position { + return n.Position +} + // StmtFor node type StmtFor struct { - Node + Position *position.Position Alt bool ForTkn *token.Token OpenParenthesisTkn *token.Token @@ -456,9 +565,13 @@ func (n *StmtFor) Accept(v NodeVisitor) { v.StmtFor(n) } +func (n *StmtFor) GetPosition() *position.Position { + return n.Position +} + // StmtForeach node type StmtForeach struct { - Node + Position *position.Position Alt bool ForeachTkn *token.Token OpenParenthesisTkn *token.Token @@ -478,9 +591,13 @@ func (n *StmtForeach) Accept(v NodeVisitor) { v.StmtForeach(n) } +func (n *StmtForeach) GetPosition() *position.Position { + return n.Position +} + // StmtFunction node type StmtFunction struct { - Node + Position *position.Position FunctionTkn *token.Token AmpersandTkn *token.Token FunctionName Vertex @@ -499,9 +616,13 @@ func (n *StmtFunction) Accept(v NodeVisitor) { v.StmtFunction(n) } +func (n *StmtFunction) GetPosition() *position.Position { + return n.Position +} + // StmtGlobal node type StmtGlobal struct { - Node + Position *position.Position GlobalTkn *token.Token Vars []Vertex SeparatorTkns []*token.Token @@ -512,9 +633,13 @@ func (n *StmtGlobal) Accept(v NodeVisitor) { v.StmtGlobal(n) } +func (n *StmtGlobal) GetPosition() *position.Position { + return n.Position +} + // StmtGoto node type StmtGoto struct { - Node + Position *position.Position GotoTkn *token.Token Label Vertex SemiColonTkn *token.Token @@ -524,9 +649,13 @@ func (n *StmtGoto) Accept(v NodeVisitor) { v.StmtGoto(n) } +func (n *StmtGoto) GetPosition() *position.Position { + return n.Position +} + // StmtHaltCompiler node type StmtHaltCompiler struct { - Node + Position *position.Position HaltCompilerTkn *token.Token OpenParenthesisTkn *token.Token CloseParenthesisTkn *token.Token @@ -537,9 +666,13 @@ func (n *StmtHaltCompiler) Accept(v NodeVisitor) { v.StmtHaltCompiler(n) } +func (n *StmtHaltCompiler) GetPosition() *position.Position { + return n.Position +} + // StmtIf node type StmtIf struct { - Node + Position *position.Position Alt bool IfTkn *token.Token OpenParenthesisTkn *token.Token @@ -557,9 +690,13 @@ func (n *StmtIf) Accept(v NodeVisitor) { v.StmtIf(n) } +func (n *StmtIf) GetPosition() *position.Position { + return n.Position +} + // StmtInlineHtml node type StmtInlineHtml struct { - Node + Position *position.Position InlineHtmlTkn *token.Token Value []byte } @@ -568,9 +705,13 @@ func (n *StmtInlineHtml) Accept(v NodeVisitor) { v.StmtInlineHtml(n) } +func (n *StmtInlineHtml) GetPosition() *position.Position { + return n.Position +} + // StmtInterface node type StmtInterface struct { - Node + Position *position.Position InterfaceTkn *token.Token InterfaceName Vertex Extends Vertex @@ -583,9 +724,13 @@ func (n *StmtInterface) Accept(v NodeVisitor) { v.StmtInterface(n) } +func (n *StmtInterface) GetPosition() *position.Position { + return n.Position +} + // StmtInterfaceExtends node type StmtInterfaceExtends struct { - Node + Position *position.Position ExtendsTkn *token.Token InterfaceNames []Vertex SeparatorTkns []*token.Token @@ -595,9 +740,13 @@ func (n *StmtInterfaceExtends) Accept(v NodeVisitor) { v.StmtInterfaceExtends(n) } +func (n *StmtInterfaceExtends) GetPosition() *position.Position { + return n.Position +} + // StmtLabel node type StmtLabel struct { - Node + Position *position.Position LabelName Vertex ColonTkn *token.Token } @@ -606,9 +755,13 @@ func (n *StmtLabel) Accept(v NodeVisitor) { v.StmtLabel(n) } +func (n *StmtLabel) GetPosition() *position.Position { + return n.Position +} + // StmtNamespace node type StmtNamespace struct { - Node + Position *position.Position NsTkn *token.Token Name Vertex OpenCurlyBracket *token.Token @@ -621,9 +774,13 @@ func (n *StmtNamespace) Accept(v NodeVisitor) { v.StmtNamespace(n) } +func (n *StmtNamespace) GetPosition() *position.Position { + return n.Position +} + // StmtNop node type StmtNop struct { - Node + Position *position.Position SemiColonTkn *token.Token } @@ -631,9 +788,13 @@ func (n *StmtNop) Accept(v NodeVisitor) { v.StmtNop(n) } +func (n *StmtNop) GetPosition() *position.Position { + return n.Position +} + // StmtProperty node type StmtProperty struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -643,9 +804,13 @@ func (n *StmtProperty) Accept(v NodeVisitor) { v.StmtProperty(n) } +func (n *StmtProperty) GetPosition() *position.Position { + return n.Position +} + // StmtPropertyList node type StmtPropertyList struct { - Node + Position *position.Position Modifiers []Vertex Type Vertex Properties []Vertex @@ -657,9 +822,13 @@ func (n *StmtPropertyList) Accept(v NodeVisitor) { v.StmtPropertyList(n) } +func (n *StmtPropertyList) GetPosition() *position.Position { + return n.Position +} + // StmtReturn node type StmtReturn struct { - Node + Position *position.Position ReturnTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -669,9 +838,13 @@ func (n *StmtReturn) Accept(v NodeVisitor) { v.StmtReturn(n) } +func (n *StmtReturn) GetPosition() *position.Position { + return n.Position +} + // StmtStatic node type StmtStatic struct { - Node + Position *position.Position StaticTkn *token.Token Vars []Vertex SeparatorTkns []*token.Token @@ -682,9 +855,13 @@ func (n *StmtStatic) Accept(v NodeVisitor) { v.StmtStatic(n) } +func (n *StmtStatic) GetPosition() *position.Position { + return n.Position +} + // StmtStaticVar node type StmtStaticVar struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -694,9 +871,13 @@ func (n *StmtStaticVar) Accept(v NodeVisitor) { v.StmtStaticVar(n) } +func (n *StmtStaticVar) GetPosition() *position.Position { + return n.Position +} + // StmtStmtList node type StmtStmtList struct { - Node + Position *position.Position OpenCurlyBracket *token.Token Stmts []Vertex CloseCurlyBracket *token.Token @@ -706,9 +887,13 @@ func (n *StmtStmtList) Accept(v NodeVisitor) { v.StmtStmtList(n) } +func (n *StmtStmtList) GetPosition() *position.Position { + return n.Position +} + // StmtSwitch node type StmtSwitch struct { - Node + Position *position.Position Alt bool SwitchTkn *token.Token OpenParenthesisTkn *token.Token @@ -727,9 +912,13 @@ func (n *StmtSwitch) Accept(v NodeVisitor) { v.StmtSwitch(n) } +func (n *StmtSwitch) GetPosition() *position.Position { + return n.Position +} + // StmtThrow node type StmtThrow struct { - Node + Position *position.Position ThrowTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -739,9 +928,13 @@ func (n *StmtThrow) Accept(v NodeVisitor) { v.StmtThrow(n) } +func (n *StmtThrow) GetPosition() *position.Position { + return n.Position +} + // StmtTrait node type StmtTrait struct { - Node + Position *position.Position TraitTkn *token.Token TraitName Vertex Extends Vertex @@ -755,9 +948,13 @@ func (n *StmtTrait) Accept(v NodeVisitor) { v.StmtTrait(n) } +func (n *StmtTrait) GetPosition() *position.Position { + return n.Position +} + // StmtTraitAdaptationList node type StmtTraitAdaptationList struct { - Node + Position *position.Position OpenParenthesisTkn *token.Token Adaptations []Vertex CloseParenthesisTkn *token.Token @@ -767,9 +964,13 @@ func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { v.StmtTraitAdaptationList(n) } +func (n *StmtTraitAdaptationList) GetPosition() *position.Position { + return n.Position +} + // StmtTraitMethodRef node type StmtTraitMethodRef struct { - Node + Position *position.Position Trait Vertex DoubleColonTkn *token.Token Method Vertex @@ -779,9 +980,13 @@ func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { v.StmtTraitMethodRef(n) } +func (n *StmtTraitMethodRef) GetPosition() *position.Position { + return n.Position +} + // StmtTraitUse node type StmtTraitUse struct { - Node + Position *position.Position UseTkn *token.Token Traits []Vertex SeparatorTkns []*token.Token @@ -792,9 +997,13 @@ func (n *StmtTraitUse) Accept(v NodeVisitor) { v.StmtTraitUse(n) } +func (n *StmtTraitUse) GetPosition() *position.Position { + return n.Position +} + // StmtTraitUseAlias node type StmtTraitUseAlias struct { - Node + Position *position.Position Ref Vertex AsTkn *token.Token Modifier Vertex @@ -806,9 +1015,13 @@ func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { v.StmtTraitUseAlias(n) } +func (n *StmtTraitUseAlias) GetPosition() *position.Position { + return n.Position +} + // StmtTraitUsePrecedence node type StmtTraitUsePrecedence struct { - Node + Position *position.Position Ref Vertex InsteadofTkn *token.Token Insteadof []Vertex @@ -820,9 +1033,13 @@ func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { v.StmtTraitUsePrecedence(n) } +func (n *StmtTraitUsePrecedence) GetPosition() *position.Position { + return n.Position +} + // StmtTry node type StmtTry struct { - Node + Position *position.Position TryTkn *token.Token OpenCurlyBracket *token.Token Stmts []Vertex @@ -835,9 +1052,13 @@ func (n *StmtTry) Accept(v NodeVisitor) { v.StmtTry(n) } +func (n *StmtTry) GetPosition() *position.Position { + return n.Position +} + // StmtUnset node type StmtUnset struct { - Node + Position *position.Position UnsetTkn *token.Token OpenParenthesisTkn *token.Token Vars []Vertex @@ -850,9 +1071,13 @@ func (n *StmtUnset) Accept(v NodeVisitor) { v.StmtUnset(n) } +func (n *StmtUnset) GetPosition() *position.Position { + return n.Position +} + // StmtUse node type StmtUse struct { - Node + Position *position.Position UseTkn *token.Token Type Vertex UseDeclarations []Vertex @@ -864,9 +1089,13 @@ func (n *StmtUse) Accept(v NodeVisitor) { v.StmtUse(n) } +func (n *StmtUse) GetPosition() *position.Position { + return n.Position +} + // StmtGroupUse node type StmtGroupUse struct { - Node + Position *position.Position UseTkn *token.Token Type Vertex LeadingNsSeparatorTkn *token.Token @@ -883,9 +1112,13 @@ func (n *StmtGroupUse) Accept(v NodeVisitor) { v.StmtGroupUse(n) } +func (n *StmtGroupUse) GetPosition() *position.Position { + return n.Position +} + // StmtUseDeclaration node type StmtUseDeclaration struct { - Node + Position *position.Position Type Vertex NsSeparatorTkn *token.Token Use Vertex @@ -897,9 +1130,13 @@ func (n *StmtUseDeclaration) Accept(v NodeVisitor) { v.StmtUseDeclaration(n) } +func (n *StmtUseDeclaration) GetPosition() *position.Position { + return n.Position +} + // StmtWhile node type StmtWhile struct { - Node + Position *position.Position Alt bool WhileTkn *token.Token OpenParenthesisTkn *token.Token @@ -915,9 +1152,13 @@ func (n *StmtWhile) Accept(v NodeVisitor) { v.StmtWhile(n) } +func (n *StmtWhile) GetPosition() *position.Position { + return n.Position +} + // ExprArray node type ExprArray struct { - Node + Position *position.Position ArrayTkn *token.Token OpenBracketTkn *token.Token Items []Vertex @@ -929,9 +1170,13 @@ func (n *ExprArray) Accept(v NodeVisitor) { v.ExprArray(n) } +func (n *ExprArray) GetPosition() *position.Position { + return n.Position +} + // ExprArrayDimFetch node type ExprArrayDimFetch struct { - Node + Position *position.Position Var Vertex OpenBracketTkn *token.Token Dim Vertex @@ -942,9 +1187,13 @@ func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { v.ExprArrayDimFetch(n) } +func (n *ExprArrayDimFetch) GetPosition() *position.Position { + return n.Position +} + // ExprArrayItem node type ExprArrayItem struct { - Node + Position *position.Position EllipsisTkn *token.Token Key Vertex DoubleArrowTkn *token.Token @@ -955,9 +1204,13 @@ func (n *ExprArrayItem) Accept(v NodeVisitor) { v.ExprArrayItem(n) } +func (n *ExprArrayItem) GetPosition() *position.Position { + return n.Position +} + // ExprArrowFunction node type ExprArrowFunction struct { - Node + Position *position.Position StaticTkn *token.Token FnTkn *token.Token AmpersandTkn *token.Token @@ -975,9 +1228,13 @@ func (n *ExprArrowFunction) Accept(v NodeVisitor) { v.ExprArrowFunction(n) } +func (n *ExprArrowFunction) GetPosition() *position.Position { + return n.Position +} + // ExprBitwiseNot node type ExprBitwiseNot struct { - Node + Position *position.Position TildaTkn *token.Token Expr Vertex } @@ -986,9 +1243,13 @@ func (n *ExprBitwiseNot) Accept(v NodeVisitor) { v.ExprBitwiseNot(n) } +func (n *ExprBitwiseNot) GetPosition() *position.Position { + return n.Position +} + // ExprBooleanNot node type ExprBooleanNot struct { - Node + Position *position.Position ExclamationTkn *token.Token Expr Vertex } @@ -997,9 +1258,13 @@ func (n *ExprBooleanNot) Accept(v NodeVisitor) { v.ExprBooleanNot(n) } +func (n *ExprBooleanNot) GetPosition() *position.Position { + return n.Position +} + // ExprClassConstFetch node type ExprClassConstFetch struct { - Node + Position *position.Position Class Vertex DoubleColonTkn *token.Token ConstantName Vertex @@ -1009,9 +1274,13 @@ func (n *ExprClassConstFetch) Accept(v NodeVisitor) { v.ExprClassConstFetch(n) } +func (n *ExprClassConstFetch) GetPosition() *position.Position { + return n.Position +} + // ExprClone node type ExprClone struct { - Node + Position *position.Position CloneTkn *token.Token Expr Vertex } @@ -1020,9 +1289,13 @@ func (n *ExprClone) Accept(v NodeVisitor) { v.ExprClone(n) } +func (n *ExprClone) GetPosition() *position.Position { + return n.Position +} + // ExprClosure node type ExprClosure struct { - Node + Position *position.Position StaticTkn *token.Token FunctionTkn *token.Token AmpersandTkn *token.Token @@ -1042,9 +1315,13 @@ func (n *ExprClosure) Accept(v NodeVisitor) { v.ExprClosure(n) } +func (n *ExprClosure) GetPosition() *position.Position { + return n.Position +} + // ExprClosureUse node type ExprClosureUse struct { - Node + Position *position.Position UseTkn *token.Token OpenParenthesisTkn *token.Token Uses []Vertex @@ -1056,19 +1333,27 @@ func (n *ExprClosureUse) Accept(v NodeVisitor) { v.ExprClosureUse(n) } +func (n *ExprClosureUse) GetPosition() *position.Position { + return n.Position +} + // ExprConstFetch node type ExprConstFetch struct { - Node - Const Vertex + Position *position.Position + Const Vertex } func (n *ExprConstFetch) Accept(v NodeVisitor) { v.ExprConstFetch(n) } +func (n *ExprConstFetch) GetPosition() *position.Position { + return n.Position +} + // ExprEmpty node type ExprEmpty struct { - Node + Position *position.Position EmptyTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -1079,20 +1364,28 @@ func (n *ExprEmpty) Accept(v NodeVisitor) { v.ExprEmpty(n) } +func (n *ExprEmpty) GetPosition() *position.Position { + return n.Position +} + // ExprErrorSuppress node type ExprErrorSuppress struct { - Node - AtTkn *token.Token - Expr Vertex + Position *position.Position + AtTkn *token.Token + Expr Vertex } func (n *ExprErrorSuppress) Accept(v NodeVisitor) { v.ExprErrorSuppress(n) } +func (n *ExprErrorSuppress) GetPosition() *position.Position { + return n.Position +} + // ExprEval node type ExprEval struct { - Node + Position *position.Position EvalTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -1103,9 +1396,13 @@ func (n *ExprEval) Accept(v NodeVisitor) { v.ExprEval(n) } +func (n *ExprEval) GetPosition() *position.Position { + return n.Position +} + // ExprExit node type ExprExit struct { - Node + Position *position.Position DieTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -1116,9 +1413,13 @@ func (n *ExprExit) Accept(v NodeVisitor) { v.ExprExit(n) } +func (n *ExprExit) GetPosition() *position.Position { + return n.Position +} + // ExprFunctionCall node type ExprFunctionCall struct { - Node + Position *position.Position Function Vertex OpenParenthesisTkn *token.Token Arguments []Vertex @@ -1130,9 +1431,13 @@ func (n *ExprFunctionCall) Accept(v NodeVisitor) { v.ExprFunctionCall(n) } +func (n *ExprFunctionCall) GetPosition() *position.Position { + return n.Position +} + // ExprInclude node type ExprInclude struct { - Node + Position *position.Position IncludeTkn *token.Token Expr Vertex } @@ -1141,9 +1446,13 @@ func (n *ExprInclude) Accept(v NodeVisitor) { v.ExprInclude(n) } +func (n *ExprInclude) GetPosition() *position.Position { + return n.Position +} + // ExprIncludeOnce node type ExprIncludeOnce struct { - Node + Position *position.Position IncludeTkn *token.Token Expr Vertex } @@ -1152,9 +1461,13 @@ func (n *ExprIncludeOnce) Accept(v NodeVisitor) { v.ExprIncludeOnce(n) } +func (n *ExprIncludeOnce) GetPosition() *position.Position { + return n.Position +} + // ExprInstanceOf node type ExprInstanceOf struct { - Node + Position *position.Position Expr Vertex InstanceOfTkn *token.Token Class Vertex @@ -1164,9 +1477,13 @@ func (n *ExprInstanceOf) Accept(v NodeVisitor) { v.ExprInstanceOf(n) } +func (n *ExprInstanceOf) GetPosition() *position.Position { + return n.Position +} + // ExprIsset node type ExprIsset struct { - Node + Position *position.Position IssetTkn *token.Token OpenParenthesisTkn *token.Token Vars []Vertex @@ -1178,9 +1495,13 @@ func (n *ExprIsset) Accept(v NodeVisitor) { v.ExprIsset(n) } +func (n *ExprIsset) GetPosition() *position.Position { + return n.Position +} + // ExprList node type ExprList struct { - Node + Position *position.Position ListTkn *token.Token OpenBracketTkn *token.Token Items []Vertex @@ -1192,9 +1513,13 @@ func (n *ExprList) Accept(v NodeVisitor) { v.ExprList(n) } +func (n *ExprList) GetPosition() *position.Position { + return n.Position +} + // ExprMethodCall node type ExprMethodCall struct { - Node + Position *position.Position Var Vertex ObjectOperatorTkn *token.Token Method Vertex @@ -1208,9 +1533,13 @@ func (n *ExprMethodCall) Accept(v NodeVisitor) { v.ExprMethodCall(n) } +func (n *ExprMethodCall) GetPosition() *position.Position { + return n.Position +} + // ExprNew node type ExprNew struct { - Node + Position *position.Position NewTkn *token.Token Class Vertex OpenParenthesisTkn *token.Token @@ -1223,53 +1552,73 @@ func (n *ExprNew) Accept(v NodeVisitor) { v.ExprNew(n) } +func (n *ExprNew) GetPosition() *position.Position { + return n.Position +} + // ExprPostDec node type ExprPostDec struct { - Node - Var Vertex - DecTkn *token.Token + Position *position.Position + Var Vertex + DecTkn *token.Token } func (n *ExprPostDec) Accept(v NodeVisitor) { v.ExprPostDec(n) } +func (n *ExprPostDec) GetPosition() *position.Position { + return n.Position +} + // ExprPostInc node type ExprPostInc struct { - Node - Var Vertex - IncTkn *token.Token + Position *position.Position + Var Vertex + IncTkn *token.Token } func (n *ExprPostInc) Accept(v NodeVisitor) { v.ExprPostInc(n) } +func (n *ExprPostInc) GetPosition() *position.Position { + return n.Position +} + // ExprPreDec node type ExprPreDec struct { - Node - DecTkn *token.Token - Var Vertex + Position *position.Position + DecTkn *token.Token + Var Vertex } func (n *ExprPreDec) Accept(v NodeVisitor) { v.ExprPreDec(n) } +func (n *ExprPreDec) GetPosition() *position.Position { + return n.Position +} + // ExprPreInc node type ExprPreInc struct { - Node - IncTkn *token.Token - Var Vertex + Position *position.Position + IncTkn *token.Token + Var Vertex } func (n *ExprPreInc) Accept(v NodeVisitor) { v.ExprPreInc(n) } +func (n *ExprPreInc) GetPosition() *position.Position { + return n.Position +} + // ExprPrint node type ExprPrint struct { - Node + Position *position.Position PrintTkn *token.Token Expr Vertex } @@ -1278,9 +1627,13 @@ func (n *ExprPrint) Accept(v NodeVisitor) { v.ExprPrint(n) } +func (n *ExprPrint) GetPosition() *position.Position { + return n.Position +} + // ExprPropertyFetch node type ExprPropertyFetch struct { - Node + Position *position.Position Var Vertex ObjectOperatorTkn *token.Token Property Vertex @@ -1290,9 +1643,13 @@ func (n *ExprPropertyFetch) Accept(v NodeVisitor) { v.ExprPropertyFetch(n) } +func (n *ExprPropertyFetch) GetPosition() *position.Position { + return n.Position +} + // ExprReference node type ExprReference struct { - Node + Position *position.Position AmpersandTkn *token.Token Var Vertex } @@ -1301,9 +1658,13 @@ func (n *ExprReference) Accept(v NodeVisitor) { v.ExprReference(n) } +func (n *ExprReference) GetPosition() *position.Position { + return n.Position +} + // ExprRequire node type ExprRequire struct { - Node + Position *position.Position RequireTkn *token.Token Expr Vertex } @@ -1312,9 +1673,13 @@ func (n *ExprRequire) Accept(v NodeVisitor) { v.ExprRequire(n) } +func (n *ExprRequire) GetPosition() *position.Position { + return n.Position +} + // ExprRequireOnce node type ExprRequireOnce struct { - Node + Position *position.Position RequireOnceTkn *token.Token Expr Vertex } @@ -1323,9 +1688,13 @@ func (n *ExprRequireOnce) Accept(v NodeVisitor) { v.ExprRequireOnce(n) } +func (n *ExprRequireOnce) GetPosition() *position.Position { + return n.Position +} + // ExprShellExec node type ExprShellExec struct { - Node + Position *position.Position OpenBacktickTkn *token.Token Parts []Vertex CloseBacktickTkn *token.Token @@ -1335,9 +1704,13 @@ func (n *ExprShellExec) Accept(v NodeVisitor) { v.ExprShellExec(n) } +func (n *ExprShellExec) GetPosition() *position.Position { + return n.Position +} + // ExprStaticCall node type ExprStaticCall struct { - Node + Position *position.Position Class Vertex DoubleColonTkn *token.Token Call Vertex @@ -1351,9 +1724,13 @@ func (n *ExprStaticCall) Accept(v NodeVisitor) { v.ExprStaticCall(n) } +func (n *ExprStaticCall) GetPosition() *position.Position { + return n.Position +} + // ExprStaticPropertyFetch node type ExprStaticPropertyFetch struct { - Node + Position *position.Position Class Vertex DoubleColonTkn *token.Token Property Vertex @@ -1363,9 +1740,13 @@ func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) { v.ExprStaticPropertyFetch(n) } +func (n *ExprStaticPropertyFetch) GetPosition() *position.Position { + return n.Position +} + // ExprTernary node type ExprTernary struct { - Node + Position *position.Position Condition Vertex QuestionTkn *token.Token IfTrue Vertex @@ -1377,9 +1758,13 @@ func (n *ExprTernary) Accept(v NodeVisitor) { v.ExprTernary(n) } +func (n *ExprTernary) GetPosition() *position.Position { + return n.Position +} + // ExprUnaryMinus node type ExprUnaryMinus struct { - Node + Position *position.Position MinusTkn *token.Token Expr Vertex } @@ -1388,20 +1773,28 @@ func (n *ExprUnaryMinus) Accept(v NodeVisitor) { v.ExprUnaryMinus(n) } +func (n *ExprUnaryMinus) GetPosition() *position.Position { + return n.Position +} + // ExprUnaryPlus node type ExprUnaryPlus struct { - Node - PlusTkn *token.Token - Expr Vertex + Position *position.Position + PlusTkn *token.Token + Expr Vertex } func (n *ExprUnaryPlus) Accept(v NodeVisitor) { v.ExprUnaryPlus(n) } +func (n *ExprUnaryPlus) GetPosition() *position.Position { + return n.Position +} + // ExprVariable node type ExprVariable struct { - Node + Position *position.Position DollarTkn *token.Token VarName Vertex } @@ -1410,9 +1803,13 @@ func (n *ExprVariable) Accept(v NodeVisitor) { v.ExprVariable(n) } +func (n *ExprVariable) GetPosition() *position.Position { + return n.Position +} + // ExprYield node type ExprYield struct { - Node + Position *position.Position YieldTkn *token.Token Key Vertex DoubleArrowTkn *token.Token @@ -1423,9 +1820,13 @@ func (n *ExprYield) Accept(v NodeVisitor) { v.ExprYield(n) } +func (n *ExprYield) GetPosition() *position.Position { + return n.Position +} + // ExprYieldFrom node type ExprYieldFrom struct { - Node + Position *position.Position YieldFromTkn *token.Token Expr Vertex } @@ -1434,86 +1835,118 @@ func (n *ExprYieldFrom) Accept(v NodeVisitor) { v.ExprYieldFrom(n) } +func (n *ExprYieldFrom) GetPosition() *position.Position { + return n.Position +} + // ExprCastArray node type ExprCastArray struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastArray) Accept(v NodeVisitor) { v.ExprCastArray(n) } +func (n *ExprCastArray) GetPosition() *position.Position { + return n.Position +} + // ExprCastBool node type ExprCastBool struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastBool) Accept(v NodeVisitor) { v.ExprCastBool(n) } +func (n *ExprCastBool) GetPosition() *position.Position { + return n.Position +} + // ExprCastDouble node type ExprCastDouble struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastDouble) Accept(v NodeVisitor) { v.ExprCastDouble(n) } +func (n *ExprCastDouble) GetPosition() *position.Position { + return n.Position +} + // ExprCastInt node type ExprCastInt struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastInt) Accept(v NodeVisitor) { v.ExprCastInt(n) } +func (n *ExprCastInt) GetPosition() *position.Position { + return n.Position +} + // ExprCastObject node type ExprCastObject struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastObject) Accept(v NodeVisitor) { v.ExprCastObject(n) } +func (n *ExprCastObject) GetPosition() *position.Position { + return n.Position +} + // ExprCastString node type ExprCastString struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastString) Accept(v NodeVisitor) { v.ExprCastString(n) } +func (n *ExprCastString) GetPosition() *position.Position { + return n.Position +} + // ExprCastUnset node type ExprCastUnset struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastUnset) Accept(v NodeVisitor) { v.ExprCastUnset(n) } +func (n *ExprCastUnset) GetPosition() *position.Position { + return n.Position +} + // ExprAssign node type ExprAssign struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1523,9 +1956,13 @@ func (n *ExprAssign) Accept(v NodeVisitor) { v.ExprAssign(n) } +func (n *ExprAssign) GetPosition() *position.Position { + return n.Position +} + // ExprAssignReference node type ExprAssignReference struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token AmpersandTkn *token.Token @@ -1536,9 +1973,13 @@ func (n *ExprAssignReference) Accept(v NodeVisitor) { v.ExprAssignReference(n) } +func (n *ExprAssignReference) GetPosition() *position.Position { + return n.Position +} + // ExprAssignBitwiseAnd node type ExprAssignBitwiseAnd struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1548,9 +1989,13 @@ func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { v.ExprAssignBitwiseAnd(n) } +func (n *ExprAssignBitwiseAnd) GetPosition() *position.Position { + return n.Position +} + // ExprAssignBitwiseOr node type ExprAssignBitwiseOr struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1560,9 +2005,13 @@ func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { v.ExprAssignBitwiseOr(n) } +func (n *ExprAssignBitwiseOr) GetPosition() *position.Position { + return n.Position +} + // ExprAssignBitwiseXor node type ExprAssignBitwiseXor struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1572,9 +2021,13 @@ func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { v.ExprAssignBitwiseXor(n) } +func (n *ExprAssignBitwiseXor) GetPosition() *position.Position { + return n.Position +} + // ExprAssignCoalesce node type ExprAssignCoalesce struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1584,9 +2037,13 @@ func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { v.ExprAssignCoalesce(n) } +func (n *ExprAssignCoalesce) GetPosition() *position.Position { + return n.Position +} + // ExprAssignConcat node type ExprAssignConcat struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1596,9 +2053,13 @@ func (n *ExprAssignConcat) Accept(v NodeVisitor) { v.ExprAssignConcat(n) } +func (n *ExprAssignConcat) GetPosition() *position.Position { + return n.Position +} + // ExprAssignDiv node type ExprAssignDiv struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1608,9 +2069,13 @@ func (n *ExprAssignDiv) Accept(v NodeVisitor) { v.ExprAssignDiv(n) } +func (n *ExprAssignDiv) GetPosition() *position.Position { + return n.Position +} + // ExprAssignMinus node type ExprAssignMinus struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1620,9 +2085,13 @@ func (n *ExprAssignMinus) Accept(v NodeVisitor) { v.ExprAssignMinus(n) } +func (n *ExprAssignMinus) GetPosition() *position.Position { + return n.Position +} + // ExprAssignMod node type ExprAssignMod struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1632,9 +2101,13 @@ func (n *ExprAssignMod) Accept(v NodeVisitor) { v.ExprAssignMod(n) } +func (n *ExprAssignMod) GetPosition() *position.Position { + return n.Position +} + // ExprAssignMul node type ExprAssignMul struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1644,9 +2117,13 @@ func (n *ExprAssignMul) Accept(v NodeVisitor) { v.ExprAssignMul(n) } +func (n *ExprAssignMul) GetPosition() *position.Position { + return n.Position +} + // ExprAssignPlus node type ExprAssignPlus struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1656,9 +2133,13 @@ func (n *ExprAssignPlus) Accept(v NodeVisitor) { v.ExprAssignPlus(n) } +func (n *ExprAssignPlus) GetPosition() *position.Position { + return n.Position +} + // ExprAssignPow node type ExprAssignPow struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1668,9 +2149,13 @@ func (n *ExprAssignPow) Accept(v NodeVisitor) { v.ExprAssignPow(n) } +func (n *ExprAssignPow) GetPosition() *position.Position { + return n.Position +} + // ExprAssignShiftLeft node type ExprAssignShiftLeft struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1680,9 +2165,13 @@ func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { v.ExprAssignShiftLeft(n) } +func (n *ExprAssignShiftLeft) GetPosition() *position.Position { + return n.Position +} + // ExprAssignShiftRight node type ExprAssignShiftRight struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1692,332 +2181,444 @@ func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { v.ExprAssignShiftRight(n) } +func (n *ExprAssignShiftRight) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBitwiseAnd node type ExprBinaryBitwiseAnd struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) { v.ExprBinaryBitwiseAnd(n) } +func (n *ExprBinaryBitwiseAnd) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBitwiseOr node type ExprBinaryBitwiseOr struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) { v.ExprBinaryBitwiseOr(n) } +func (n *ExprBinaryBitwiseOr) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBitwiseXor node type ExprBinaryBitwiseXor struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) { v.ExprBinaryBitwiseXor(n) } +func (n *ExprBinaryBitwiseXor) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBooleanAnd node type ExprBinaryBooleanAnd struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) { v.ExprBinaryBooleanAnd(n) } +func (n *ExprBinaryBooleanAnd) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBooleanOr node type ExprBinaryBooleanOr struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) { v.ExprBinaryBooleanOr(n) } +func (n *ExprBinaryBooleanOr) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryCoalesce node type ExprBinaryCoalesce struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) { v.ExprBinaryCoalesce(n) } +func (n *ExprBinaryCoalesce) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryConcat node type ExprBinaryConcat struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryConcat) Accept(v NodeVisitor) { v.ExprBinaryConcat(n) } +func (n *ExprBinaryConcat) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryDiv node type ExprBinaryDiv struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryDiv) Accept(v NodeVisitor) { v.ExprBinaryDiv(n) } +func (n *ExprBinaryDiv) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryEqual node type ExprBinaryEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryEqual) Accept(v NodeVisitor) { v.ExprBinaryEqual(n) } +func (n *ExprBinaryEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryGreater node type ExprBinaryGreater struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryGreater) Accept(v NodeVisitor) { v.ExprBinaryGreater(n) } +func (n *ExprBinaryGreater) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryGreaterOrEqual node type ExprBinaryGreaterOrEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) { v.ExprBinaryGreaterOrEqual(n) } +func (n *ExprBinaryGreaterOrEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryIdentical node type ExprBinaryIdentical struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryIdentical) Accept(v NodeVisitor) { v.ExprBinaryIdentical(n) } +func (n *ExprBinaryIdentical) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryLogicalAnd node type ExprBinaryLogicalAnd struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) { v.ExprBinaryLogicalAnd(n) } +func (n *ExprBinaryLogicalAnd) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryLogicalOr node type ExprBinaryLogicalOr struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) { v.ExprBinaryLogicalOr(n) } +func (n *ExprBinaryLogicalOr) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryLogicalXor node type ExprBinaryLogicalXor struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) { v.ExprBinaryLogicalXor(n) } +func (n *ExprBinaryLogicalXor) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryMinus node type ExprBinaryMinus struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryMinus) Accept(v NodeVisitor) { v.ExprBinaryMinus(n) } +func (n *ExprBinaryMinus) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryMod node type ExprBinaryMod struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryMod) Accept(v NodeVisitor) { v.ExprBinaryMod(n) } +func (n *ExprBinaryMod) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryMul node type ExprBinaryMul struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryMul) Accept(v NodeVisitor) { v.ExprBinaryMul(n) } +func (n *ExprBinaryMul) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryNotEqual node type ExprBinaryNotEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) { v.ExprBinaryNotEqual(n) } +func (n *ExprBinaryNotEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryNotIdentical node type ExprBinaryNotIdentical struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) { v.ExprBinaryNotIdentical(n) } +func (n *ExprBinaryNotIdentical) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryPlus node type ExprBinaryPlus struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryPlus) Accept(v NodeVisitor) { v.ExprBinaryPlus(n) } +func (n *ExprBinaryPlus) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryPow node type ExprBinaryPow struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryPow) Accept(v NodeVisitor) { v.ExprBinaryPow(n) } +func (n *ExprBinaryPow) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryShiftLeft node type ExprBinaryShiftLeft struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) { v.ExprBinaryShiftLeft(n) } +func (n *ExprBinaryShiftLeft) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryShiftRight node type ExprBinaryShiftRight struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) { v.ExprBinaryShiftRight(n) } +func (n *ExprBinaryShiftRight) GetPosition() *position.Position { + return n.Position +} + // ExprBinarySmaller node type ExprBinarySmaller struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinarySmaller) Accept(v NodeVisitor) { v.ExprBinarySmaller(n) } +func (n *ExprBinarySmaller) GetPosition() *position.Position { + return n.Position +} + // ExprBinarySmallerOrEqual node type ExprBinarySmallerOrEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) { v.ExprBinarySmallerOrEqual(n) } +func (n *ExprBinarySmallerOrEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinarySpaceship node type ExprBinarySpaceship struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { v.ExprBinarySpaceship(n) } +func (n *ExprBinarySpaceship) GetPosition() *position.Position { + return n.Position +} + type NameName struct { - Node + Position *position.Position Parts []Vertex SeparatorTkns []*token.Token } @@ -2026,8 +2627,12 @@ func (n *NameName) Accept(v NodeVisitor) { v.NameName(n) } +func (n *NameName) GetPosition() *position.Position { + return n.Position +} + type NameFullyQualified struct { - Node + Position *position.Position NsSeparatorTkn *token.Token Parts []Vertex SeparatorTkns []*token.Token @@ -2037,8 +2642,12 @@ func (n *NameFullyQualified) Accept(v NodeVisitor) { v.NameFullyQualified(n) } +func (n *NameFullyQualified) GetPosition() *position.Position { + return n.Position +} + type NameRelative struct { - Node + Position *position.Position NsTkn *token.Token NsSeparatorTkn *token.Token Parts []Vertex @@ -2049,8 +2658,12 @@ func (n *NameRelative) Accept(v NodeVisitor) { v.NameRelative(n) } +func (n *NameRelative) GetPosition() *position.Position { + return n.Position +} + type NameNamePart struct { - Node + Position *position.Position StringTkn *token.Token Value []byte } @@ -2059,10 +2672,14 @@ func (n *NameNamePart) Accept(v NodeVisitor) { v.NameNamePart(n) } +func (n *NameNamePart) GetPosition() *position.Position { + return n.Position +} + // TODO: move to private section type ParserBrackets struct { - Node + Position *position.Position OpenBracketTkn *token.Token Child Vertex CloseBracketTkn *token.Token @@ -2072,8 +2689,12 @@ func (n *ParserBrackets) Accept(v NodeVisitor) { v.ParserBrackets(n) } +func (n *ParserBrackets) GetPosition() *position.Position { + return n.Position +} + type ParserSeparatedList struct { - Node + Position *position.Position Items []Vertex SeparatorTkns []*token.Token } @@ -2082,9 +2703,13 @@ func (n *ParserSeparatedList) Accept(v NodeVisitor) { v.ParserSeparatedList(n) } +func (n *ParserSeparatedList) GetPosition() *position.Position { + return n.Position +} + // ArgumentList node type ArgumentList struct { - Node + Position *position.Position OpenParenthesisTkn *token.Token Arguments []Vertex SeparatorTkns []*token.Token @@ -2095,8 +2720,12 @@ func (n *ArgumentList) Accept(v NodeVisitor) { // do nothing } +func (n *ArgumentList) GetPosition() *position.Position { + return n.Position +} + type ReturnType struct { - Node + Position *position.Position ColonTkn *token.Token Type Vertex } @@ -2104,3 +2733,7 @@ type ReturnType struct { func (n *ReturnType) Accept(v NodeVisitor) { // do nothing } + +func (n *ReturnType) GetPosition() *position.Position { + return n.Position +} diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index abcf932..771ac0c 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -5,7 +5,6 @@ import ( "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" "io" - "sort" "strconv" "strings" ) @@ -99,76 +98,6 @@ func (v *Dump) LeaveNode(_ ast.Vertex) { v.print("\n") } -func (v *Dump) printNode(n *ast.Node) { - if n.Position == nil && n.Tokens == nil { - return - } - - v.printIndent(v.indent) - v.print("Node: ast.Node{\n") - - if n.Tokens != nil { - v.printIndent(v.indent + 1) - v.print("Tokens: token.Collection{\n") - - keys := make([]int, 0, len(n.Tokens)) - for k := range n.Tokens { - keys = append(keys, int(k)) - } - sort.Ints(keys) - - for _, k := range keys { - key := token.Position(k) - - v.printIndent(v.indent + 2) - v.print("token." + key.String() + ": []*token.Token{\n") - - for _, tkn := range n.Tokens[key] { - v.printIndent(v.indent + 3) - v.print("{\n") - - v.printIndent(v.indent + 4) - v.print("ID: token." + tkn.ID.String() + ",\n") - - v.printIndent(v.indent + 4) - v.print("Value: []byte(" + strconv.Quote(string(tkn.Value)) + "),\n") - - v.printIndent(v.indent + 3) - v.print("},\n") - } - - v.printIndent(v.indent + 2) - v.print("},\n") - } - - v.printIndent(v.indent + 1) - v.print("},\n") - } - - if n.Position != nil { - v.printIndent(v.indent + 1) - v.print("Position: &position.Position{\n") - - v.printIndent(v.indent + 2) - v.print("StartLine: " + strconv.Itoa(n.Position.StartLine) + ",\n") - - v.printIndent(v.indent + 2) - v.print("EndLine: " + strconv.Itoa(n.Position.EndLine) + ",\n") - - v.printIndent(v.indent + 2) - v.print("StartPos: " + strconv.Itoa(n.Position.StartPos) + ",\n") - - v.printIndent(v.indent + 2) - v.print("EndPos: " + strconv.Itoa(n.Position.EndPos) + ",\n") - - v.printIndent(v.indent + 1) - v.print("},\n") - } - - v.printIndent(v.indent) - v.print("},\n") -} - func (v *Dump) printToken(key string, t *token.Token) { if t == nil { return @@ -194,25 +123,21 @@ func (v *Dump) printToken(key string, t *token.Token) { func (v *Dump) Root(n *ast.Root) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Root{\n") - v.printNode(n.GetNode()) } func (v *Dump) Nullable(n *ast.Nullable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Nullable{\n") - v.printNode(n.GetNode()) } func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent - 1) v.print("&ast.Parameter{\n") - v.printNode(n.GetNode()) } func (v *Dump) Identifier(n *ast.Identifier) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Identifier{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -221,79 +146,66 @@ func (v *Dump) Identifier(n *ast.Identifier) { func (v *Dump) Argument(n *ast.Argument) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Argument{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCase(n *ast.StmtCase) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCase{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCatch(n *ast.StmtCatch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCatch{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClass(n *ast.StmtClass) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClass{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassConstList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassExtends{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassImplements{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassMethod{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtConstList(n *ast.StmtConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtConstant(n *ast.StmtConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstant{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtContinue(n *ast.StmtContinue) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtContinue{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDeclare{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -304,25 +216,21 @@ func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { func (v *Dump) StmtDefault(n *ast.StmtDefault) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDefault{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtDo(n *ast.StmtDo) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDo{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtEcho(n *ast.StmtEcho) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtEcho{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtElse(n *ast.StmtElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElse{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -333,7 +241,6 @@ func (v *Dump) StmtElse(n *ast.StmtElse) { func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElseIf{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -344,19 +251,16 @@ func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { func (v *Dump) StmtExpression(n *ast.StmtExpression) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtExpression{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFinally(n *ast.StmtFinally) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFinally{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFor(n *ast.StmtFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFor{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -367,37 +271,31 @@ func (v *Dump) StmtFor(n *ast.StmtFor) { func (v *Dump) StmtForeach(n *ast.StmtForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtForeach{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFunction(n *ast.StmtFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFunction{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGlobal{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtGoto(n *ast.StmtGoto) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGoto{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtHaltCompiler{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtIf(n *ast.StmtIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtIf{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -408,7 +306,6 @@ func (v *Dump) StmtIf(n *ast.StmtIf) { func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInlineHtml{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -417,73 +314,61 @@ func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { func (v *Dump) StmtInterface(n *ast.StmtInterface) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterface{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterfaceExtends{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtLabel(n *ast.StmtLabel) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtLabel{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNamespace{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtNop(n *ast.StmtNop) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNop{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtProperty(n *ast.StmtProperty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtProperty{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtPropertyList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtReturn(n *ast.StmtReturn) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtReturn{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStatic(n *ast.StmtStatic) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStatic{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStaticVar{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStmtList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtSwitch{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -494,61 +379,51 @@ func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { func (v *Dump) StmtThrow(n *ast.StmtThrow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtThrow{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTrait(n *ast.StmtTrait) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTrait{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitAdaptationList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitMethodRef{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUseAlias{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUsePrecedence{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTry(n *ast.StmtTry) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTry{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUnset(n *ast.StmtUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUnset{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUse(n *ast.StmtUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUse{\n") - v.printNode(n.GetNode()) v.printToken("UseTkn", n.UseTkn) v.printToken("SemiColonTkn", n.SemiColonTkn) @@ -557,7 +432,6 @@ func (v *Dump) StmtUse(n *ast.StmtUse) { func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGroupUse{\n") - v.printNode(n.GetNode()) v.printToken("UseTkn", n.UseTkn) v.printToken("LeadingNsSeparatorTkn", n.LeadingNsSeparatorTkn) v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) @@ -569,7 +443,6 @@ func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUseDeclaration{\n") - v.printNode(n.GetNode()) v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) v.printToken("AsTkn", n.AsTkn) } @@ -577,7 +450,6 @@ func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtWhile{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -588,547 +460,456 @@ func (v *Dump) StmtWhile(n *ast.StmtWhile) { func (v *Dump) ExprArray(n *ast.ExprArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayDimFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayItem{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrowFunction{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBitwiseNot{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBooleanNot{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClassConstFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClone(n *ast.ExprClone) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClone{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosure{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosureUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprConstFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEmpty{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprErrorSuppress{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprEval(n *ast.ExprEval) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEval{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprExit(n *ast.ExprExit) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprExit{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprFunctionCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprInclude(n *ast.ExprInclude) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInclude{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIncludeOnce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInstanceOf{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprIsset(n *ast.ExprIsset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIsset{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprList(n *ast.ExprList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprList{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprMethodCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprNew(n *ast.ExprNew) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprNew{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostDec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostInc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreDec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreInc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPrint(n *ast.ExprPrint) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPrint{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPropertyFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprReference(n *ast.ExprReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprReference{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprRequire(n *ast.ExprRequire) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequire{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequireOnce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShellExec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticPropertyFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprTernary(n *ast.ExprTernary) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprTernary{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprVariable(n *ast.ExprVariable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprVariable{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprYield(n *ast.ExprYield) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYield{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYieldFrom{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssign(n *ast.ExprAssign) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssign{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignReference{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignCoalesce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignConcat{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignDiv{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMod{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMul{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPow{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftLeft{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftRight{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryCoalesce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryConcat{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryDiv{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreater{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreaterOrEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryIdentical{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMod{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMul{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotIdentical{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPow{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftLeft{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftRight{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmaller{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmallerOrEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySpaceship{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastBool{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastDouble{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastInt{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastObject{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastString(n *ast.ExprCastString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastString{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastUnset{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarDnumber{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1137,13 +918,11 @@ func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsed{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsedStringPart{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1152,13 +931,11 @@ func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarHeredoc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarLnumber{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1167,7 +944,6 @@ func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarMagicConstant{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1176,7 +952,6 @@ func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { func (v *Dump) ScalarString(n *ast.ScalarString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarString{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1185,25 +960,21 @@ func (v *Dump) ScalarString(n *ast.ScalarString) { func (v *Dump) NameName(n *ast.NameName) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameName{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameFullyQualified{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameRelative(n *ast.NameRelative) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameRelative{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameNamePart{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1212,7 +983,6 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ParserBrackets{\n") - v.printNode(n.GetNode()) } func (v *Dump) ParserSeparatedList(n *ast.ParserSeparatedList) { diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index 0ccdc27..3bcdad0 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -20,12 +20,6 @@ func ExampleDump() { }, }, }, - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 1, - }, }, Stmts: []ast.Vertex{ &ast.Identifier{}, diff --git a/pkg/token/position.go b/pkg/token/position.go deleted file mode 100644 index cd76285..0000000 --- a/pkg/token/position.go +++ /dev/null @@ -1,74 +0,0 @@ -package token - -type Position int - -//go:generate stringer -type=Position -output ./position_string.go -const ( - Start Position = iota - End - SemiColon - AltEnd - Ampersand - Name - Key - Var - ReturnType - CaseSeparator - LexicalVars - Params - Ref - Cast - Expr - InitExpr - CondExpr - IncExpr - True - Cond - - Namespace - Static - Use - For - Foreach - Declare - Label - Finally - List - Default - Function - Alias - Equal - Array - Isset - Echo - Try - Catch - Unset - - Stmts - VarList - ConstList - NameList - ParamList - ModifierList - ArrayPairList - CaseListStart - CaseListEnd - PropertyList - ParameterList - AdaptationList - LexicalVarList - - CloseParenthesisToken -) - -type Collection map[Position][]*Token - -func (c Collection) IsEmpty() bool { - for _, v := range c { - if len(v) > 0 { - return false - } - } - return true -} diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go deleted file mode 100644 index ac7c7b5..0000000 --- a/pkg/token/position_string.go +++ /dev/null @@ -1,75 +0,0 @@ -// Code generated by "stringer -type=Position -output ./position_string.go"; DO NOT EDIT. - -package token - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[Start-0] - _ = x[End-1] - _ = x[SemiColon-2] - _ = x[AltEnd-3] - _ = x[Ampersand-4] - _ = x[Name-5] - _ = x[Key-6] - _ = x[Var-7] - _ = x[ReturnType-8] - _ = x[CaseSeparator-9] - _ = x[LexicalVars-10] - _ = x[Params-11] - _ = x[Ref-12] - _ = x[Cast-13] - _ = x[Expr-14] - _ = x[InitExpr-15] - _ = x[CondExpr-16] - _ = x[IncExpr-17] - _ = x[True-18] - _ = x[Cond-19] - _ = x[Namespace-20] - _ = x[Static-21] - _ = x[Use-22] - _ = x[For-23] - _ = x[Foreach-24] - _ = x[Declare-25] - _ = x[Label-26] - _ = x[Finally-27] - _ = x[List-28] - _ = x[Default-29] - _ = x[Function-30] - _ = x[Alias-31] - _ = x[Equal-32] - _ = x[Array-33] - _ = x[Isset-34] - _ = x[Echo-35] - _ = x[Try-36] - _ = x[Catch-37] - _ = x[Unset-38] - _ = x[Stmts-39] - _ = x[VarList-40] - _ = x[ConstList-41] - _ = x[NameList-42] - _ = x[ParamList-43] - _ = x[ModifierList-44] - _ = x[ArrayPairList-45] - _ = x[CaseListStart-46] - _ = x[CaseListEnd-47] - _ = x[PropertyList-48] - _ = x[ParameterList-49] - _ = x[AdaptationList-50] - _ = x[LexicalVarList-51] - _ = x[CloseParenthesisToken-52] -} - -const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticUseForForeachDeclareLabelFinallyListDefaultFunctionAliasEqualArrayIssetEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndPropertyListParameterListAdaptationListLexicalVarListCloseParenthesisToken" - -var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 142, 145, 152, 159, 164, 171, 175, 182, 190, 195, 200, 205, 210, 214, 217, 222, 227, 232, 239, 248, 256, 265, 277, 290, 303, 314, 326, 339, 353, 367, 388} - -func (i Position) String() string { - if i < 0 || i >= Position(len(_Position_index)-1) { - return "Position(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _Position_name[_Position_index[i]:_Position_index[i+1]] -}