diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 56f92ea..ad07c76 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 22a845a..d801635 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2041,15 +2041,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} @@ -2081,15 +2089,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 4876d91..a3ed309 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 0bfff99..602859b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1865,15 +1865,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} @@ -1905,15 +1913,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} diff --git a/pkg/ast/node.go b/pkg/ast/node.go index eaf4930..5242bf6 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -44,7 +44,8 @@ func (n *Nullable) Accept(v NodeVisitor) { // Reference node type Reference struct { Node - Var Vertex + AmpersandTkn *token.Token + Var Vertex } func (n *Reference) Accept(v NodeVisitor) { @@ -54,7 +55,8 @@ func (n *Reference) Accept(v NodeVisitor) { // Variadic node type Variadic struct { Node - Var Vertex + VariadicTkn *token.Token + Var Vertex } func (n *Variadic) Accept(v NodeVisitor) {