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 0ad9abe..cf203cf 100644 Binary files a/internal/php5/php5.go and b/internal/php5/php5.go differ 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 03984ad..d8af320 100644 Binary files a/internal/php7/php7.go and b/internal/php7/php7.go differ diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9b99da7..5ad2f47 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -283,9 +283,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, } @@ -293,12 +291,12 @@ start: ; reserved_non_modifiers: - T_INCLUDE {$$=$1} | T_INCLUDE_ONCE {$$=$1} | T_EVAL {$$=$1} | T_REQUIRE {$$=$1} | T_REQUIRE_ONCE {$$=$1} | T_LOGICAL_OR {$$=$1} | T_LOGICAL_XOR {$$=$1} | T_LOGICAL_AND {$$=$1} - | T_INSTANCEOF {$$=$1} | T_NEW {$$=$1} | T_CLONE {$$=$1} | T_EXIT {$$=$1} | T_IF {$$=$1} | T_ELSEIF {$$=$1} | T_ELSE {$$=$1} | T_ENDIF {$$=$1} | T_ECHO {$$=$1} | T_DO {$$=$1} | T_WHILE {$$=$1} | T_ENDWHILE {$$=$1} - | T_FOR {$$=$1} | T_ENDFOR {$$=$1} | T_FOREACH {$$=$1} | T_ENDFOREACH {$$=$1} | T_DECLARE {$$=$1} | T_ENDDECLARE {$$=$1} | T_AS {$$=$1} | T_TRY {$$=$1} | T_CATCH {$$=$1} | T_FINALLY {$$=$1} - | T_THROW {$$=$1} | T_USE {$$=$1} | T_INSTEADOF {$$=$1} | T_GLOBAL {$$=$1} | T_VAR {$$=$1} | T_UNSET {$$=$1} | T_ISSET {$$=$1} | T_EMPTY {$$=$1} | T_CONTINUE {$$=$1} | T_GOTO {$$=$1} - | T_FUNCTION {$$=$1} | T_CONST {$$=$1} | T_RETURN {$$=$1} | T_PRINT {$$=$1} | T_YIELD {$$=$1} | T_LIST {$$=$1} | T_SWITCH {$$=$1} | T_ENDSWITCH {$$=$1} | T_CASE {$$=$1} | T_DEFAULT {$$=$1} | T_BREAK {$$=$1} - | T_ARRAY {$$=$1} | T_CALLABLE {$$=$1} | T_EXTENDS {$$=$1} | T_IMPLEMENTS {$$=$1} | T_NAMESPACE {$$=$1} | T_TRAIT {$$=$1} | T_INTERFACE {$$=$1} | T_CLASS {$$=$1} + T_INCLUDE {$$=$1} | T_INCLUDE_ONCE {$$=$1} | T_EVAL {$$=$1} | T_REQUIRE {$$=$1} | T_REQUIRE_ONCE {$$=$1} | T_LOGICAL_OR {$$=$1} | T_LOGICAL_XOR {$$=$1} | T_LOGICAL_AND {$$=$1} + | T_INSTANCEOF {$$=$1} | T_NEW {$$=$1} | T_CLONE {$$=$1} | T_EXIT {$$=$1} | T_IF {$$=$1} | T_ELSEIF {$$=$1} | T_ELSE {$$=$1} | T_ENDIF {$$=$1} | T_ECHO {$$=$1} | T_DO {$$=$1} | T_WHILE {$$=$1} | T_ENDWHILE {$$=$1} + | T_FOR {$$=$1} | T_ENDFOR {$$=$1} | T_FOREACH {$$=$1} | T_ENDFOREACH {$$=$1} | T_DECLARE {$$=$1} | T_ENDDECLARE {$$=$1} | T_AS {$$=$1} | T_TRY {$$=$1} | T_CATCH {$$=$1} | T_FINALLY {$$=$1} + | T_THROW {$$=$1} | T_USE {$$=$1} | T_INSTEADOF {$$=$1} | T_GLOBAL {$$=$1} | T_VAR {$$=$1} | T_UNSET {$$=$1} | T_ISSET {$$=$1} | T_EMPTY {$$=$1} | T_CONTINUE {$$=$1} | T_GOTO {$$=$1} + | T_FUNCTION {$$=$1} | T_CONST {$$=$1} | T_RETURN {$$=$1} | T_PRINT {$$=$1} | T_YIELD {$$=$1} | T_LIST {$$=$1} | T_SWITCH {$$=$1} | T_ENDSWITCH {$$=$1} | T_CASE {$$=$1} | T_DEFAULT {$$=$1} | T_BREAK {$$=$1} + | T_ARRAY {$$=$1} | T_CALLABLE {$$=$1} | T_EXTENDS {$$=$1} | T_IMPLEMENTS {$$=$1} | T_NAMESPACE {$$=$1} | T_TRAIT {$$=$1} | T_INTERFACE {$$=$1} | T_CLASS {$$=$1} | T_CLASS_C {$$=$1} | T_TRAIT_C {$$=$1} | T_FUNC_C {$$=$1} | T_METHOD_C {$$=$1} | T_LINE {$$=$1} | T_FILE {$$=$1} | T_DIR {$$=$1} | T_NS_C {$$=$1} | T_FN {$$=$1} ; @@ -340,9 +338,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, }, @@ -352,9 +348,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, } @@ -370,9 +364,7 @@ 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, } @@ -380,9 +372,7 @@ 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, @@ -392,9 +382,7 @@ 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, @@ -431,9 +419,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, @@ -443,14 +429,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, }, @@ -460,14 +442,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, }, @@ -479,9 +457,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, @@ -492,7 +468,7 @@ top_statement: { use := $2.(*ast.StmtGroupUse) - use.Node.Position = position.NewTokensPosition($1, $3) + use.Position = position.NewTokensPosition($1, $3) use.UseTkn = $1 use.SemiColonTkn = $3 @@ -502,7 +478,7 @@ top_statement: { use := $3.(*ast.StmtGroupUse) - use.Node.Position = position.NewTokensPosition($1, $4) + use.Position = position.NewTokensPosition($1, $4) use.UseTkn = $1 use.Type = $2 use.SemiColonTkn = $4 @@ -512,9 +488,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, @@ -524,9 +498,7 @@ top_statement: | T_USE use_type use_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, Type: $2, UseDeclarations: $3.(*ast.ParserSeparatedList).Items, @@ -537,9 +509,7 @@ top_statement: | T_CONST const_list ';' { $$ = &ast.StmtConstList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ConstTkn: $1, Consts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -552,9 +522,7 @@ use_type: T_FUNCTION { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -562,9 +530,7 @@ use_type: | T_CONST { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -577,13 +543,9 @@ group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &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, }, @@ -599,14 +561,10 @@ group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &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, }, @@ -625,13 +583,9 @@ mixed_group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &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, }, @@ -647,14 +601,10 @@ mixed_group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &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, }, @@ -735,7 +685,7 @@ inline_use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.Type = $1 - decl.Node.Position = position.NewNodesPosition($1, $2) + decl.Position = position.NewNodesPosition($1, $2) $$ = $2 } @@ -745,13 +695,9 @@ unprefixed_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, }, @@ -760,21 +706,15 @@ unprefixed_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, }, @@ -791,7 +731,7 @@ use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = $1 - decl.Node.Position = position.NewTokenNodePosition($1, $2) + decl.Position = position.NewTokenNodePosition($1, $2) $$ = $2 } @@ -855,9 +795,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, @@ -869,9 +807,7 @@ 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, @@ -891,16 +827,14 @@ statement: $5.(*ast.StmtWhile).OpenParenthesisTkn = $2 $5.(*ast.StmtWhile).Cond = $3 $5.(*ast.StmtWhile).CloseParenthesisTkn = $4 - $5.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | T_DO statement T_WHILE '(' expr ')' ';' { $$ = &ast.StmtDo{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -923,7 +857,7 @@ statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) $$ = $9 } @@ -933,16 +867,14 @@ statement: $5.(*ast.StmtSwitch).OpenParenthesisTkn = $2 $5.(*ast.StmtSwitch).Cond = $3 $5.(*ast.StmtSwitch).CloseParenthesisTkn = $4 - $5.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | T_BREAK optional_expr ';' { $$ = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -951,9 +883,7 @@ statement: | T_CONTINUE optional_expr ';' { $$ = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -962,9 +892,7 @@ statement: | T_RETURN optional_expr ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -974,7 +902,7 @@ statement: { $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 - $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -982,7 +910,7 @@ statement: { $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 - $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -990,16 +918,14 @@ 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, } @@ -1007,9 +933,7 @@ statement: | expr ';' { $$ = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -1021,7 +945,7 @@ statement: $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) $3.(*ast.StmtUnset).CloseParenthesisTkn = $5 $3.(*ast.StmtUnset).SemiColonTkn = $6 - $3.(*ast.StmtUnset).Node.Position = position.NewTokensPosition($1, $6) + $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $6) $$ = $3 } @@ -1033,7 +957,7 @@ statement: $7.(*ast.StmtForeach).AsTkn = $4 $7.(*ast.StmtForeach).Var = $5 $7.(*ast.StmtForeach).CloseParenthesisTkn = $6 - $7.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $7) + $7.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $7) $$ = $7 } @@ -1047,7 +971,7 @@ statement: $9.(*ast.StmtForeach).DoubleArrowTkn = $6 $9.(*ast.StmtForeach).Var = $7 $9.(*ast.StmtForeach).CloseParenthesisTkn = $8 - $9.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $9) $$ = $9 } @@ -1058,22 +982,26 @@ 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_list 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, @@ -1081,19 +1009,11 @@ 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, @@ -1102,14 +1022,10 @@ 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($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1119,13 +1035,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, }, @@ -1144,13 +1056,9 @@ catch_list: catch.CatchTkn = $2 catch.OpenParenthesisTkn = $3 catch.Var = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($5), - }, + Position: position.NewTokenPosition($5), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($5), - }, + Position: position.NewTokenPosition($5), IdentifierTkn: $5, Value: $5.Value, }, @@ -1159,7 +1067,7 @@ catch_list: catch.OpenCurlyBracketTkn = $7 catch.Stmts = $8 catch.CloseCurlyBracketTkn = $9 - catch.GetNode().Position = position.NewTokensPosition($2, $9) + catch.Position = position.NewTokensPosition($2, $9) $$ = append($1, catch) } @@ -1188,9 +1096,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, @@ -1226,15 +1132,11 @@ function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $11), - }, + Position: position.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1277,15 +1179,11 @@ class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewOptionalListTokensPosition($1, $2, $9), - }, + Position: position.NewOptionalListTokensPosition($1, $2, $9), Modifiers: $1, ClassTkn: $2, ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1299,14 +1197,10 @@ class_declaration_statement: | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), ClassTkn: $1, ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1334,9 +1228,7 @@ class_modifier: T_ABSTRACT { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1344,9 +1236,7 @@ class_modifier: | T_FINAL { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1357,14 +1247,10 @@ trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtTrait{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), TraitTkn: $1, TraitName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1379,14 +1265,10 @@ interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1406,9 +1288,7 @@ extends_from: | T_EXTENDS name { $$ = &ast.StmtClassExtends{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1423,9 +1303,7 @@ interface_extends_list: | T_EXTENDS name_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, @@ -1441,9 +1319,7 @@ implements_list: | T_IMPLEMENTS name_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, @@ -1459,9 +1335,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1469,9 +1343,7 @@ foreach_variable: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1482,9 +1354,7 @@ foreach_variable: | '[' array_pair_list ']' { $$ = &ast.ExprList{ - 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, @@ -1497,24 +1367,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, @@ -1527,24 +1391,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, @@ -1557,24 +1415,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, @@ -1587,9 +1439,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, @@ -1598,9 +1448,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, @@ -1610,9 +1458,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, @@ -1623,9 +1469,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, @@ -1644,9 +1488,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, @@ -1656,9 +1498,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, @@ -1681,24 +1521,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, @@ -1711,9 +1545,7 @@ if_stmt_without_else: T_IF '(' expr ')' statement { $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $5), - }, + Position: position.NewTokenNodePosition($1, $5), IfTkn: $1, OpenParenthesisTkn: $2, Cond: $3, @@ -1724,9 +1556,7 @@ if_stmt_without_else: | if_stmt_without_else T_ELSEIF '(' expr ')' statement { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $6), - }, + Position: position.NewTokenNodePosition($2, $6), ElseIfTkn: $2, OpenParenthesisTkn: $3, Cond: $4, @@ -1734,7 +1564,7 @@ if_stmt_without_else: Stmt: $6, }) - $1.(*ast.StmtIf).Node.Position = position.NewNodesPosition($1, $6) + $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $6) $$ = $1 } @@ -1748,14 +1578,12 @@ if_stmt: | if_stmt_without_else T_ELSE statement { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $3), - }, + Position: position.NewTokenNodePosition($2, $3), ElseTkn: $2, Stmt: $3, } - $1.(*ast.StmtIf).Node.Position = position.NewNodesPosition($1, $3) + $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $3) $$ = $1 } @@ -1765,9 +1593,7 @@ alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $6), - }, + Position: position.NewTokenNodeListPosition($1, $6), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2, @@ -1775,9 +1601,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $4, ColonTkn: $5, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($6), - }, + Position: position.NewNodeListPosition($6), Stmts: $6, }, } @@ -1785,9 +1609,7 @@ alt_if_stmt_without_else: | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $7), - }, + Position: position.NewTokenNodeListPosition($2, $7), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3, @@ -1795,9 +1617,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $5, ColonTkn: $6, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($7), - }, + Position: position.NewNodeListPosition($7), Stmts: $7, }, }) @@ -1811,29 +1631,25 @@ alt_if_stmt: { $1.(*ast.StmtIf).EndIfTkn = $2 $1.(*ast.StmtIf).SemiColonTkn = $3 - $1.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition($1, $3) + $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $3) $$ = $1 } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $4), - }, + Position: position.NewTokenNodeListPosition($2, $4), Alt: true, ElseTkn: $2, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($4), - }, + Position: position.NewNodeListPosition($4), Stmts: $4, }, } $1.(*ast.StmtIf).EndIfTkn = $5 $1.(*ast.StmtIf).SemiColonTkn = $6 - $1.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition($1, $6) + $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $6) $$ = $1 } @@ -1879,20 +1695,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, }, @@ -1911,20 +1721,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, }, @@ -1954,9 +1758,7 @@ type_expr: | '?' type { $$ = &ast.Nullable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), QuestionTkn: $1, Expr: $2, } @@ -1967,9 +1769,7 @@ type: T_ARRAY { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1977,9 +1777,7 @@ type: | T_CALLABLE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2008,9 +1806,7 @@ argument_list: '(' ')' { $$ = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2047,18 +1843,14 @@ argument: expr { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Expr: $1, } } | T_ELLIPSIS expr { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -2109,17 +1901,11 @@ static_var: { $$ = &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, }, @@ -2129,17 +1915,11 @@ static_var: | T_VARIABLE '=' expr { $$ = &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, }, @@ -2165,9 +1945,7 @@ class_statement: variable_modifiers optional_type property_list ';' { $$ = &ast.StmtPropertyList{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $4), - }, + Position: position.NewNodeListTokenPosition($1, $4), Modifiers: $1, Type: $2, Properties: $3.(*ast.ParserSeparatedList).Items, @@ -2178,9 +1956,7 @@ class_statement: | method_modifiers T_CONST class_const_list ';' { $$ = &ast.StmtClassConstList{ - Node: ast.Node{ - Position: position.NewOptionalListTokensPosition($1, $2, $4), - }, + Position: position.NewOptionalListTokensPosition($1, $2, $4), Modifiers: $1, ConstTkn: $2, Consts: $3.(*ast.ParserSeparatedList).Items, @@ -2191,9 +1967,7 @@ class_statement: | T_USE name_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, @@ -2204,20 +1978,16 @@ class_statement: { pos := position.NewTokenNodePosition($2, $10) if $1 != nil { - $$.GetNode().Position = position.NewNodeListNodePosition($1, $10) + pos = position.NewNodeListNodePosition($1, $10) } $$ = &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, }, @@ -2252,18 +2022,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' '}' { $$ = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2271,9 +2037,7 @@ trait_adaptations: | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2311,9 +2075,7 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_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, @@ -2326,15 +2088,11 @@ trait_alias: trait_method_reference T_AS T_STRING { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2343,15 +2101,11 @@ trait_alias: | trait_method_reference T_AS reserved_non_modifiers { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2360,16 +2114,12 @@ trait_alias: | trait_method_reference T_AS member_modifier identifier { $$ = &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, }, @@ -2378,9 +2128,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, @@ -2392,13 +2140,9 @@ trait_method_reference: identifier { $$ = &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, }, @@ -2414,15 +2158,11 @@ absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &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, }, @@ -2434,18 +2174,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, @@ -2462,9 +2198,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2498,9 +2232,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2508,9 +2240,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2518,9 +2248,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2528,9 +2256,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2538,9 +2264,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2548,9 +2272,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2577,17 +2299,11 @@ property: T_VARIABLE backup_doc_comment { $$ = &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, }, @@ -2598,17 +2314,11 @@ property: | T_VARIABLE '=' expr backup_doc_comment { $$ = &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, }, @@ -2639,13 +2349,9 @@ class_const_decl: identifier '=' expr backup_doc_comment { $$ = &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, }, @@ -2659,13 +2365,9 @@ const_decl: T_STRING '=' expr backup_doc_comment { $$ = &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, }, @@ -2729,9 +2431,7 @@ anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), ClassTkn: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -2751,9 +2451,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, @@ -2763,9 +2461,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2774,9 +2470,7 @@ new_expr: | T_NEW anonymous_class { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2787,13 +2481,9 @@ expr_without_variable: T_LIST '(' array_pair_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, @@ -2807,13 +2497,9 @@ expr_without_variable: | '[' array_pair_list ']' '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $5), - }, + Position: position.NewTokenNodePosition($1, $5), Var: &ast.ExprList{ - 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, @@ -2826,9 +2512,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, @@ -2837,9 +2521,7 @@ expr_without_variable: | variable '=' '&' expr { $$ = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2849,9 +2531,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, } @@ -2859,9 +2539,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, @@ -2870,9 +2548,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, @@ -2881,9 +2557,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, @@ -2892,9 +2566,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, @@ -2903,9 +2575,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, @@ -2914,9 +2584,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, @@ -2925,9 +2593,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, @@ -2936,9 +2602,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, @@ -2947,9 +2611,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, @@ -2958,9 +2620,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, @@ -2969,9 +2629,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, @@ -2980,9 +2638,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, @@ -2991,9 +2647,7 @@ expr_without_variable: | variable T_COALESCE_EQUAL expr { $$ = &ast.ExprAssignCoalesce{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3002,9 +2656,7 @@ expr_without_variable: | variable T_INC { $$ = &ast.ExprPostInc{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -3012,9 +2664,7 @@ expr_without_variable: | T_INC variable { $$ = &ast.ExprPreInc{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -3022,9 +2672,7 @@ expr_without_variable: | variable T_DEC { $$ = &ast.ExprPostDec{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -3032,9 +2680,7 @@ expr_without_variable: | T_DEC variable { $$ = &ast.ExprPreDec{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -3042,9 +2688,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, @@ -3053,9 +2697,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, @@ -3064,9 +2706,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, @@ -3075,9 +2715,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, @@ -3086,9 +2724,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, @@ -3097,9 +2733,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, @@ -3108,9 +2742,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, @@ -3119,9 +2751,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, @@ -3130,9 +2760,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, @@ -3141,9 +2769,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, @@ -3152,9 +2778,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, @@ -3163,9 +2787,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, @@ -3174,9 +2796,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, @@ -3185,9 +2805,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, @@ -3196,9 +2814,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, @@ -3207,9 +2823,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, @@ -3218,9 +2832,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, @@ -3229,9 +2841,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, } @@ -3239,9 +2849,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, } @@ -3249,9 +2857,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -3259,9 +2865,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -3269,9 +2873,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, @@ -3280,9 +2882,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, @@ -3291,9 +2891,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, @@ -3302,9 +2900,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, @@ -3313,9 +2909,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, @@ -3324,9 +2918,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, @@ -3335,9 +2927,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, @@ -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]] -}