From 343896d019c269bc5e49b56d101925b559f49fc4 Mon Sep 17 00:00:00 2001 From: z7zmey Date: Tue, 10 Apr 2018 00:52:38 +0300 Subject: [PATCH] issue #8: php5 and php7 package refactoring --- main.go | 14 +- php5/lexer.go | 55 - php5/parser.go | 131 ++- php5/php5.go | 2852 ++++++++++++++++++++++++------------------------ php5/php5.y | 1816 +++++++++++++++--------------- php7/lexer.go | 55 - php7/parser.go | 122 ++- php7/php7.go | 1272 ++++++++++----------- php7/php7.y | 1272 ++++++++++----------- 9 files changed, 3840 insertions(+), 3749 deletions(-) delete mode 100644 php5/lexer.go delete mode 100644 php7/lexer.go diff --git a/main.go b/main.go index 8f60985..9c837e7 100644 --- a/main.go +++ b/main.go @@ -36,9 +36,19 @@ func main() { src, _ := os.Open(string(path)) if *usePhp5 { - nodes, comments, positions, errors = php5.Parse(src, path) + parser := php5.NewParser(src, path) + parser.Parse() + nodes = parser.GetRootNode() + errors = parser.GetErrors() + comments = parser.GetComments() + positions = parser.GetPositions() } else { - nodes, comments, positions, errors = php7.Parse(src, path) + parser := php7.NewParser(src, path) + parser.Parse() + nodes = parser.GetRootNode() + errors = parser.GetErrors() + comments = parser.GetComments() + positions = parser.GetPositions() } for _, e := range errors { diff --git a/php5/lexer.go b/php5/lexer.go deleted file mode 100644 index ae1060d..0000000 --- a/php5/lexer.go +++ /dev/null @@ -1,55 +0,0 @@ -package php5 - -import ( - "bufio" - goToken "go/token" - "io" - - "github.com/cznic/golex/lex" - - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/scanner" - "github.com/z7zmey/php-parser/token" -) - -type lexer struct { - scanner.Lexer - lastToken *token.Token - errors []*errors.Error -} - -func (l *lexer) Lex(lval *yySymType) int { - t := l.Lexer.Lex(lval) - l.lastToken = &lval.token - - return t -} - -func (l *lexer) Error(msg string) { - l.errors = append(l.errors, errors.NewError(msg, *l.lastToken)) -} - -func (lval *yySymType) Token(t token.Token) { - lval.token = t -} - -func newLexer(src io.Reader, fName string) *lexer { - file := goToken.NewFileSet().AddFile(fName, -1, 1<<31-1) - lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(scanner.Rune2Class)) - if err != nil { - panic(err) - } - - scanner := scanner.Lexer{ - Lexer: lx, - StateStack: []int{0}, - PhpDocComment: "", - Comments: nil, - } - - return &lexer{ - scanner, - nil, - nil, - } -} diff --git a/php5/parser.go b/php5/parser.go index a51a380..84bc23d 100644 --- a/php5/parser.go +++ b/php5/parser.go @@ -1,72 +1,117 @@ -// Package php5 parses PHP5 package php5 import ( + "bufio" + goToken "go/token" "io" - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/node/expr" + "github.com/cznic/golex/lex" "github.com/z7zmey/php-parser/comment" + "github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/token" ) -var rootnode node.Node -var comments comment.Comments -var positions position.Positions -var positionBuilder position.Builder - -var parentNode node.Node - -// Parse the php5 parser entrypoint -func Parse(src io.Reader, fName string) (node.Node, comment.Comments, position.Positions, []*errors.Error) { - yyDebug = 0 - yyErrorVerbose = true - rootnode = stmt.NewStmtList([]node.Node{}) //reset - comments = comment.Comments{} - positions = position.Positions{} - positionBuilder = position.Builder{Positions: &positions} - - lexer := newLexer(src, fName) - yyParse(lexer) - return rootnode, comments, positions, lexer.errors +func (lval *yySymType) Token(t token.Token) { + lval.token = t } -// ListGetFirstNodeComments returns comments of a first node in the list -func ListGetFirstNodeComments(list []node.Node) []comment.Comment { +// Parser structure +type Parser struct { + scanner.Lexer + lastToken *token.Token + positionBuilder *position.Builder + errors []*errors.Error + rootNode node.Node + comments comment.Comments + positions position.Positions +} + +// NewParser creates and returns new Parser +func NewParser(src io.Reader, fName string) *Parser { + file := goToken.NewFileSet().AddFile(fName, -1, 1<<31-1) + lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(scanner.Rune2Class)) + if err != nil { + panic(err) + } + + scanner := scanner.Lexer{ + Lexer: lx, + StateStack: []int{0}, + PhpDocComment: "", + Comments: nil, + } + + return &Parser{ + scanner, + nil, + nil, + nil, + nil, + nil, + nil, + } +} + +// Lex proxy to lexer Lex +func (l *Parser) Lex(lval *yySymType) int { + t := l.Lexer.Lex(lval) + l.lastToken = &lval.token + return t +} + +func (l *Parser) Error(msg string) { + l.errors = append(l.errors, errors.NewError(msg, *l.lastToken)) +} + +// Parse the php7 Parser entrypoint +func (l *Parser) Parse() int { + yyDebug = 0 + yyErrorVerbose = true + + // init + l.errors = nil + l.rootNode = nil + l.comments = comment.Comments{} + l.positions = position.Positions{} + l.positionBuilder = &position.Builder{ + Positions: &l.positions, + } + + // parse + + return yyParse(l) +} + +func (l *Parser) listGetFirstNodeComments(list []node.Node) []comment.Comment { if len(list) == 0 { return nil } node := list[0] - return comments[node] + return l.comments[node] } -type foreachVariable struct { - node node.Node - byRef bool +// GetRootNode returns root node +func (l *Parser) GetRootNode() node.Node { + return l.rootNode } -type nodesWithEndToken struct { - nodes []node.Node - endToken token.Token +// GetErrors returns errors list +func (l *Parser) GetErrors() []*errors.Error { + return l.errors } -type boolWithToken struct { - value bool - token *token.Token +// GetComments returns comments list +func (l *Parser) GetComments() comment.Comments { + return l.comments } -type simpleIndirectReference struct { - all []*expr.Variable - last *expr.Variable -} - -type altSyntaxNode struct { - node node.Node - isAlt bool +// GetPositions returns positions list +func (l *Parser) GetPositions() position.Positions { + return l.positions } diff --git a/php5/php5.go b/php5/php5.go index 510eb94..c248a3f 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -344,7 +344,32 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:3824 +//line php5/php5.y:3825 + +type foreachVariable struct { + node node.Node + byRef bool +} + +type nodesWithEndToken struct { + nodes []node.Node + endToken token.Token +} + +type boolWithToken struct { + value bool + token *token.Token +} + +type simpleIndirectReference struct { + all []*expr.Variable + last *expr.Variable +} + +type altSyntaxNode struct { + node node.Node + isAlt bool +} //line yacctab:1 var yyExca = [...]int{ @@ -2272,11 +2297,12 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:236 { - rootnode = stmt.NewStmtList(yyDollar[1].list) + yylex.(*Parser).rootNode = stmt.NewStmtList(yyDollar[1].list) + yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) } case 2: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:243 + //line php5/php5.y:244 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2284,368 +2310,368 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:248 + //line php5/php5.y:249 { yyVAL.list = []node.Node{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:253 + //line php5/php5.y:254 { namePart := name.NewNamePart(yyDollar[1].token.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.list = []node.Node{namePart} - comments.AddComments(namePart, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(namePart, yyDollar[1].token.Comments()) } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:260 + //line php5/php5.y:261 { namePart := name.NewNamePart(yyDollar[3].token.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.list = append(yyDollar[1].list, namePart) - comments.AddComments(namePart, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(namePart, yyDollar[3].token.Comments()) } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:270 + //line php5/php5.y:271 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:275 + //line php5/php5.y:276 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:277 + //line php5/php5.y:278 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:279 + //line php5/php5.y:280 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:281 + //line php5/php5.y:282 { yyVAL.node = stmt.NewHaltCompiler() - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:287 + //line php5/php5.y:288 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewNamespace(name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:297 + //line php5/php5.y:298 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:307 + //line php5/php5.y:308 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:313 + //line php5/php5.y:314 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:319 + //line php5/php5.y:320 { useType := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:329 + //line php5/php5.y:330 { useType := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:339 + //line php5/php5.y:340 { yyVAL.node = yyDollar[1].node } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:344 + //line php5/php5.y:345 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:346 + //line php5/php5.y:347 { yyVAL.list = []node.Node{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:351 + //line php5/php5.y:352 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:361 + //line php5/php5.y:362 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) alias := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(alias, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:374 + //line php5/php5.y:375 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:384 + //line php5/php5.y:385 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) alias := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(alias, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:400 + //line php5/php5.y:401 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:402 + //line php5/php5.y:403 { yyVAL.list = []node.Node{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:407 + //line php5/php5.y:408 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:417 + //line php5/php5.y:418 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) alias := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(alias, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:430 + //line php5/php5.y:431 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:440 + //line php5/php5.y:441 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) alias := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(alias, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:456 + //line php5/php5.y:457 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:458 + //line php5/php5.y:459 { yyVAL.list = []node.Node{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:463 + //line php5/php5.y:464 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:473 + //line php5/php5.y:474 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) alias := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(alias, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:486 + //line php5/php5.y:487 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:496 + //line php5/php5.y:497 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) alias := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(alias, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:512 + //line php5/php5.y:513 { name := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) constant := stmt.NewConstant(name, yyDollar[5].node, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - comments.AddComments(constant, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(constant, yyDollar[3].token.Comments()) constList := yyDollar[1].node.(*stmt.ConstList) constList.Consts = append(constList.Consts, constant) yyVAL.node = yyDollar[1].node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts)) } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:528 + //line php5/php5.y:529 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) constant := stmt.NewConstant(name, yyDollar[4].node, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) - comments.AddComments(constant, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(constant, yyDollar[2].token.Comments()) constList := []node.Node{constant} yyVAL.node = stmt.NewConstList(constList) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:547 + //line php5/php5.y:548 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2653,255 +2679,255 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:553 + //line php5/php5.y:554 { yyVAL.list = []node.Node{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:559 + //line php5/php5.y:560 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:564 + //line php5/php5.y:565 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:566 + //line php5/php5.y:567 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:568 + //line php5/php5.y:569 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:570 + //line php5/php5.y:571 { yyVAL.node = stmt.NewHaltCompiler() - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:580 + //line php5/php5.y:581 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:582 + //line php5/php5.y:583 { label := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewLabel(label) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(label, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(label, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:595 + //line php5/php5.y:596 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:601 + //line php5/php5.y:602 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) if yyDollar[5].node != nil { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) } else if len(yyDollar[4].list) > 0 { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list)) } else { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:615 + //line php5/php5.y:616 { stmts := stmt.NewStmtList(yyDollar[4].list) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition(yyDollar[4].list)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:624 + //line php5/php5.y:625 { if yyDollar[3].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltWhile(yyDollar[2].node, yyDollar[3].altSyntaxNode.node) } else { yyVAL.node = stmt.NewWhile(yyDollar[2].node, yyDollar[3].altSyntaxNode.node) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:634 + //line php5/php5.y:635 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:640 + //line php5/php5.y:641 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) } else { yyVAL.node = stmt.NewFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:650 + //line php5/php5.y:651 { if yyDollar[3].nodesWithEndToken.endToken.Value == ";" { yyVAL.node = stmt.NewAltSwitch(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) } else { yyVAL.node = stmt.NewSwitch(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:660 + //line php5/php5.y:661 { yyVAL.node = stmt.NewBreak(nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:666 + //line php5/php5.y:667 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:672 + //line php5/php5.y:673 { yyVAL.node = stmt.NewContinue(nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:678 + //line php5/php5.y:679 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:684 + //line php5/php5.y:685 { yyVAL.node = stmt.NewReturn(nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:690 + //line php5/php5.y:691 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:696 + //line php5/php5.y:697 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:702 + //line php5/php5.y:703 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:708 + //line php5/php5.y:709 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:714 + //line php5/php5.y:715 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:720 + //line php5/php5.y:721 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:726 + //line php5/php5.y:727 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:732 + //line php5/php5.y:733 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:738 + //line php5/php5.y:739 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:744 + //line php5/php5.y:745 { if yyDollar[6].foreachVariable.node == nil { if yyDollar[8].altSyntaxNode.isAlt { @@ -2916,12 +2942,12 @@ yydefault: yyVAL.node = stmt.NewForeach(yyDollar[3].node, yyDollar[5].foreachVariable.node, yyDollar[6].foreachVariable.node, yyDollar[8].altSyntaxNode.node, yyDollar[6].foreachVariable.byRef) } } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:762 + //line php5/php5.y:763 { if yyDollar[6].foreachVariable.node == nil { if yyDollar[8].altSyntaxNode.isAlt { @@ -2936,211 +2962,211 @@ yydefault: yyVAL.node = stmt.NewForeach(yyDollar[3].node, yyDollar[5].foreachVariable.node, yyDollar[6].foreachVariable.node, yyDollar[8].altSyntaxNode.node, yyDollar[6].foreachVariable.byRef) } } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:780 + //line php5/php5.y:781 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:786 + //line php5/php5.y:787 { yyVAL.node = stmt.NewNop() - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:792 + //line php5/php5.y:793 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) if yyDollar[6].node == nil { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) } else { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:804 + //line php5/php5.y:805 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:810 + //line php5/php5.y:811 { label := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewGoto(label) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(label, yyDollar[2].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(label, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:823 + //line php5/php5.y:824 { yyVAL.list = []node.Node{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:825 + //line php5/php5.y:826 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(identifier, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[4].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(variable, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[4].token.Comments()) catch := stmt.NewCatch([]node.Node{yyDollar[3].node}, variable, yyDollar[7].list) - positions.AddPosition(catch, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) - comments.AddComments(catch, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yylex.(*Parser).comments.AddComments(catch, yyDollar[1].token.Comments()) yyVAL.list = append([]node.Node{catch}, yyDollar[9].list...) } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:843 + //line php5/php5.y:844 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:845 + //line php5/php5.y:846 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:854 + //line php5/php5.y:855 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:856 + //line php5/php5.y:857 { yyVAL.list = []node.Node{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:861 + //line php5/php5.y:862 { yyVAL.list = []node.Node{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:863 + //line php5/php5.y:864 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:868 + //line php5/php5.y:869 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(identifier, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[4].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(variable, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[4].token.Comments()) yyVAL.node = stmt.NewCatch([]node.Node{yyDollar[3].node}, variable, yyDollar[7].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:885 + //line php5/php5.y:886 { yyVAL.list = []node.Node{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:887 + //line php5/php5.y:888 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:892 + //line php5/php5.y:893 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:897 + //line php5/php5.y:898 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:902 + //line php5/php5.y:903 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:907 + //line php5/php5.y:908 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:909 + //line php5/php5.y:910 { yyVAL.boolWithToken = boolWithToken{true, &yyDollar[1].token} } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:914 + //line php5/php5.y:915 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:916 + //line php5/php5.y:917 { yyVAL.boolWithToken = boolWithToken{true, &yyDollar[1].token} } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:921 + //line php5/php5.y:922 { name := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) yyVAL.node = stmt.NewFunction(name, yyDollar[2].boolWithToken.value, yyDollar[5].list, nil, yyDollar[8].list, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:934 + //line php5/php5.y:935 { switch n := yyDollar[1].node.(type) { case *stmt.Class: name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) n.ClassName = name n.Stmts = yyDollar[6].list n.Extends = yyDollar[3].node @@ -3149,7 +3175,7 @@ yydefault: case *stmt.Trait: // TODO: is it possible that trait extend or implement name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) n.TraitName = name n.Stmts = yyDollar[6].list } @@ -3158,1573 +3184,1573 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:955 + //line php5/php5.y:956 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) yyVAL.node = stmt.NewInterface(name, yyDollar[3].list, yyDollar[5].list, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:969 + //line php5/php5.y:970 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:975 + //line php5/php5.y:976 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(classModifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(classModifier, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(classModifier, yyDollar[1].token.Comments()) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:985 + //line php5/php5.y:986 { yyVAL.node = stmt.NewTrait(nil, nil, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:991 + //line php5/php5.y:992 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(classModifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(classModifier, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(classModifier, yyDollar[1].token.Comments()) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1004 + //line php5/php5.y:1005 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1006 + //line php5/php5.y:1007 { yyVAL.node = yyDollar[2].node } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1011 + //line php5/php5.y:1012 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1016 + //line php5/php5.y:1017 { yyVAL.list = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1018 + //line php5/php5.y:1019 { yyVAL.list = yyDollar[2].list } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1023 + //line php5/php5.y:1024 { yyVAL.list = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1025 + //line php5/php5.y:1026 { yyVAL.list = yyDollar[2].list } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1030 + //line php5/php5.y:1031 { yyVAL.list = []node.Node{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1032 + //line php5/php5.y:1033 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1037 + //line php5/php5.y:1038 { yyVAL.foreachVariable = foreachVariable{nil, false} } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1039 + //line php5/php5.y:1040 { yyVAL.foreachVariable = yyDollar[2].foreachVariable } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1044 + //line php5/php5.y:1045 { yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1046 + //line php5/php5.y:1047 { yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1048 + //line php5/php5.y:1049 { list := expr.NewList(yyDollar[3].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yyVAL.foreachVariable = foreachVariable{list, false} - comments.AddComments(list, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1058 + //line php5/php5.y:1059 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1060 + //line php5/php5.y:1061 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} - positions.AddPosition(yyVAL.altSyntaxNode.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1069 + //line php5/php5.y:1070 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1071 + //line php5/php5.y:1072 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} - positions.AddPosition(yyVAL.altSyntaxNode.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1080 + //line php5/php5.y:1081 { yyVAL.node = yyDollar[1].node } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1082 + //line php5/php5.y:1083 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1092 + //line php5/php5.y:1093 { name := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) constant := stmt.NewConstant(name, yyDollar[3].node, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - comments.AddComments(constant, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(constant, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{constant} } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1104 + //line php5/php5.y:1105 { name := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) constant := stmt.NewConstant(name, yyDollar[5].node, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - comments.AddComments(constant, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(constant, yyDollar[3].token.Comments()) yyVAL.list = append(yyDollar[1].list, constant) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1120 + //line php5/php5.y:1121 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1122 + //line php5/php5.y:1123 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[4].token} } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1124 + //line php5/php5.y:1125 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1126 + //line php5/php5.y:1127 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[5].token} } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1132 + //line php5/php5.y:1133 { yyVAL.list = []node.Node{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1134 + //line php5/php5.y:1135 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) - positions.AddPosition(_case, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) yyVAL.list = append(yyDollar[1].list, _case) - comments.AddComments(_case, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(_case, yyDollar[2].token.Comments()) } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1141 + //line php5/php5.y:1142 { _default := stmt.NewDefault(yyDollar[4].list) - positions.AddPosition(_default, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) yyVAL.list = append(yyDollar[1].list, _default) - comments.AddComments(_default, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(_default, yyDollar[2].token.Comments()) } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1158 + //line php5/php5.y:1159 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1160 + //line php5/php5.y:1161 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} - positions.AddPosition(yyVAL.altSyntaxNode.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1170 + //line php5/php5.y:1171 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1172 + //line php5/php5.y:1173 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) - comments.AddComments(_elseIf, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[2].token.Comments()) yyVAL.list = append(yyDollar[1].list, _elseIf) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1184 + //line php5/php5.y:1185 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1186 + //line php5/php5.y:1187 { stmts := stmt.NewStmtList(yyDollar[5].list) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition(yyDollar[5].list)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list)) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) - comments.AddComments(_elseIf, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[2].token.Comments()) yyVAL.list = append(yyDollar[1].list, _elseIf) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1201 + //line php5/php5.y:1202 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1203 + //line php5/php5.y:1204 { yyVAL.node = stmt.NewElse(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1213 + //line php5/php5.y:1214 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1215 + //line php5/php5.y:1216 { stmts := stmt.NewStmtList(yyDollar[3].list) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition(yyDollar[3].list)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) yyVAL.node = stmt.NewAltElse(stmts) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1228 + //line php5/php5.y:1229 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1230 + //line php5/php5.y:1231 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1235 + //line php5/php5.y:1236 { yyVAL.list = []node.Node{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1237 + //line php5/php5.y:1238 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1242 + //line php5/php5.y:1243 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) if yyDollar[1].node != nil { - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } else if yyDollar[2].boolWithToken.value == true { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(*yyDollar[2].boolWithToken.token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(*yyDollar[2].boolWithToken.token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) } else if yyDollar[3].boolWithToken.value == true { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(*yyDollar[3].boolWithToken.token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(*yyDollar[3].boolWithToken.token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) } else { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) } } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1268 + //line php5/php5.y:1269 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(identifier, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[4].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(variable, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[4].token.Comments()) yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) if yyDollar[1].node != nil { - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } else if yyDollar[2].boolWithToken.value == true { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(*yyDollar[2].boolWithToken.token, yyDollar[6].node)) - comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*yyDollar[2].boolWithToken.token, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) } else if yyDollar[3].boolWithToken.value == true { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(*yyDollar[3].boolWithToken.token, yyDollar[6].node)) - comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*yyDollar[3].boolWithToken.token, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) } else { - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) } } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1298 + //line php5/php5.y:1299 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1300 + //line php5/php5.y:1301 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1306 + //line php5/php5.y:1307 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1312 + //line php5/php5.y:1313 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1318 + //line php5/php5.y:1319 { yyVAL.nodesWithEndToken = &nodesWithEndToken{[]node.Node{}, yyDollar[2].token} } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1320 + //line php5/php5.y:1321 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1322 + //line php5/php5.y:1323 { arg := node.NewArgument(yyDollar[2].node, false, false) - positions.AddPosition(arg, positionBuilder.NewNodePosition(yyDollar[2].node)) - comments.AddComments(arg, comments[yyDollar[2].node]) + yylex.(*Parser).positions.AddPosition(arg, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(arg, yylex.(*Parser).comments[yyDollar[2].node]) yyVAL.nodesWithEndToken = &nodesWithEndToken{[]node.Node{arg}, yyDollar[3].token} } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1334 + //line php5/php5.y:1335 { yyVAL.list = []node.Node{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1336 + //line php5/php5.y:1337 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1341 + //line php5/php5.y:1342 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1347 + //line php5/php5.y:1348 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1353 + //line php5/php5.y:1354 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1359 + //line php5/php5.y:1360 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1368 + //line php5/php5.y:1369 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1370 + //line php5/php5.y:1371 { yyVAL.list = []node.Node{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1376 + //line php5/php5.y:1377 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1386 + //line php5/php5.y:1387 { yyVAL.node = expr.NewVariable(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1392 + //line php5/php5.y:1393 { yyVAL.node = expr.NewVariable(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1402 + //line php5/php5.y:1403 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) staticVar := stmt.NewStaticVar(variable, nil) - positions.AddPosition(staticVar, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.list = append(yyDollar[1].list, staticVar) - comments.AddComments(identifier, yyDollar[3].token.Comments()) - comments.AddComments(variable, yyDollar[3].token.Comments()) - comments.AddComments(staticVar, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, yyDollar[3].token.Comments()) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1419 + //line php5/php5.y:1420 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) staticVar := stmt.NewStaticVar(variable, yyDollar[5].node) - positions.AddPosition(staticVar, positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) yyVAL.list = append(yyDollar[1].list, staticVar) - comments.AddComments(identifier, yyDollar[3].token.Comments()) - comments.AddComments(variable, yyDollar[3].token.Comments()) - comments.AddComments(staticVar, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, yyDollar[3].token.Comments()) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1436 + //line php5/php5.y:1437 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) staticVar := stmt.NewStaticVar(variable, nil) - positions.AddPosition(staticVar, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.list = []node.Node{staticVar} - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(staticVar, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, yyDollar[1].token.Comments()) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1453 + //line php5/php5.y:1454 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) staticVar := stmt.NewStaticVar(variable, yyDollar[3].node) - positions.AddPosition(staticVar, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) yyVAL.list = []node.Node{staticVar} - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(staticVar, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, yyDollar[1].token.Comments()) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1475 + //line php5/php5.y:1476 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1477 + //line php5/php5.y:1478 { yyVAL.list = []node.Node{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1483 + //line php5/php5.y:1484 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1489 + //line php5/php5.y:1490 { yyVAL.node = yyDollar[1].node } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1491 + //line php5/php5.y:1492 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1493 + //line php5/php5.y:1494 { name := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(name, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[4].token.Comments()) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].boolWithToken.value, yyDollar[6].list, nil, yyDollar[8].nodesWithEndToken.nodes, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[8].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[8].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1506 + //line php5/php5.y:1507 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1515 + //line php5/php5.y:1516 { yyVAL.list = []node.Node{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1517 + //line php5/php5.y:1518 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1522 + //line php5/php5.y:1523 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1524 + //line php5/php5.y:1525 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1529 + //line php5/php5.y:1530 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1531 + //line php5/php5.y:1532 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1536 + //line php5/php5.y:1537 { yyVAL.list = []node.Node{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1538 + //line php5/php5.y:1539 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1543 + //line php5/php5.y:1544 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1545 + //line php5/php5.y:1546 { yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1550 + //line php5/php5.y:1551 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1559 + //line php5/php5.y:1560 { yyVAL.list = []node.Node{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1561 + //line php5/php5.y:1562 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1566 + //line php5/php5.y:1567 { name := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) yyVAL.node = stmt.NewTraitMethodRef(nil, name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1576 + //line php5/php5.y:1577 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1581 + //line php5/php5.y:1582 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1594 + //line php5/php5.y:1595 { alias := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(alias, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(alias, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1604 + //line php5/php5.y:1605 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1613 + //line php5/php5.y:1614 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1615 + //line php5/php5.y:1616 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1620 + //line php5/php5.y:1621 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1622 + //line php5/php5.y:1623 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1627 + //line php5/php5.y:1628 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1629 + //line php5/php5.y:1630 { modifier := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(modifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(modifier, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(modifier, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{modifier} } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1640 + //line php5/php5.y:1641 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1642 + //line php5/php5.y:1643 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1647 + //line php5/php5.y:1648 { yyVAL.list = []node.Node{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1649 + //line php5/php5.y:1650 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1654 + //line php5/php5.y:1655 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1660 + //line php5/php5.y:1661 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1666 + //line php5/php5.y:1667 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1672 + //line php5/php5.y:1673 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1678 + //line php5/php5.y:1679 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1684 + //line php5/php5.y:1685 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1693 + //line php5/php5.y:1694 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(identifier, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[3].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(variable, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[3].token.Comments()) property := stmt.NewProperty(variable, nil, "") - positions.AddPosition(property, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(property, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(property, yyDollar[3].token.Comments()) yyVAL.list = append(yyDollar[1].list, property) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1709 + //line php5/php5.y:1710 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(identifier, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[3].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(variable, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[3].token.Comments()) property := stmt.NewProperty(variable, yyDollar[5].node, "") - positions.AddPosition(property, positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - comments.AddComments(property, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(property, yyDollar[3].token.Comments()) yyVAL.list = append(yyDollar[1].list, property) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1725 + //line php5/php5.y:1726 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) property := stmt.NewProperty(variable, nil, "") - positions.AddPosition(property, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(property, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(property, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{property} } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1741 + //line php5/php5.y:1742 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) property := stmt.NewProperty(variable, yyDollar[3].node, "") - positions.AddPosition(property, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - comments.AddComments(property, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(property, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{property} } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1760 + //line php5/php5.y:1761 { name := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) constant := stmt.NewConstant(name, yyDollar[5].node, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - comments.AddComments(constant, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(constant, yyDollar[3].token.Comments()) yyDollar[1].node.(*stmt.ClassConstList).Consts = append(yyDollar[1].node.(*stmt.ClassConstList).Consts, constant) - positions.AddPosition(yyDollar[1].node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yylex.(*Parser).positions.AddPosition(yyDollar[1].node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) yyVAL.node = yyDollar[1].node } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1775 + //line php5/php5.y:1776 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) constant := stmt.NewConstant(name, yyDollar[4].node, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) - comments.AddComments(constant, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(constant, yyDollar[2].token.Comments()) yyVAL.node = stmt.NewClassConstList(nil, []node.Node{constant}) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1792 + //line php5/php5.y:1793 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1794 + //line php5/php5.y:1795 { yyVAL.list = []node.Node{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1800 + //line php5/php5.y:1801 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1802 + //line php5/php5.y:1803 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1807 + //line php5/php5.y:1808 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1809 + //line php5/php5.y:1810 { yyVAL.list = []node.Node{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1814 + //line php5/php5.y:1815 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1816 + //line php5/php5.y:1817 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1821 + //line php5/php5.y:1822 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) yyVAL.list = append(yyDollar[1].list, fetch) } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1828 + //line php5/php5.y:1829 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[2].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) yyVAL.list = []node.Node{fetch} } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1838 + //line php5/php5.y:1839 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1840 + //line php5/php5.y:1841 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1842 + //line php5/php5.y:1843 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1847 + //line php5/php5.y:1848 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1849 + //line php5/php5.y:1850 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1854 + //line php5/php5.y:1855 { if yyDollar[3].nodesWithEndToken != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) } else { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1869 + //line php5/php5.y:1870 { list := expr.NewList(yyDollar[3].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) - comments.AddComments(list, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1879 + //line php5/php5.y:1880 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1885 + //line php5/php5.y:1886 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1891 + //line php5/php5.y:1892 { _new := expr.NewNew(yyDollar[5].node, nil) - positions.AddPosition(_new, positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node)) + yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node)) if yyDollar[6].nodesWithEndToken != nil { _new = expr.NewNew(yyDollar[5].node, yyDollar[6].nodesWithEndToken.nodes) - positions.AddPosition(_new, positionBuilder.NewTokensPosition(yyDollar[4].token, yyDollar[6].nodesWithEndToken.endToken)) + yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[4].token, yyDollar[6].nodesWithEndToken.endToken)) } - comments.AddComments(_new, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(_new, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = assign.NewReference(yyDollar[1].node, _new) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, _new)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1906 + //line php5/php5.y:1907 { yyVAL.node = expr.NewClone(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1912 + //line php5/php5.y:1913 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1918 + //line php5/php5.y:1919 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1924 + //line php5/php5.y:1925 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1930 + //line php5/php5.y:1931 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1936 + //line php5/php5.y:1937 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1942 + //line php5/php5.y:1943 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1948 + //line php5/php5.y:1949 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1954 + //line php5/php5.y:1955 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1960 + //line php5/php5.y:1961 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1966 + //line php5/php5.y:1967 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1972 + //line php5/php5.y:1973 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1978 + //line php5/php5.y:1979 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1984 + //line php5/php5.y:1985 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1990 + //line php5/php5.y:1991 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1996 + //line php5/php5.y:1997 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2002 + //line php5/php5.y:2003 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2008 + //line php5/php5.y:2009 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2014 + //line php5/php5.y:2015 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2020 + //line php5/php5.y:2021 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2026 + //line php5/php5.y:2027 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2032 + //line php5/php5.y:2033 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2038 + //line php5/php5.y:2039 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2044 + //line php5/php5.y:2045 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2050 + //line php5/php5.y:2051 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2056 + //line php5/php5.y:2057 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2062 + //line php5/php5.y:2063 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2068 + //line php5/php5.y:2069 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2074 + //line php5/php5.y:2075 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2080 + //line php5/php5.y:2081 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2086 + //line php5/php5.y:2087 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2092 + //line php5/php5.y:2093 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2098 + //line php5/php5.y:2099 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2104 + //line php5/php5.y:2105 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2110 + //line php5/php5.y:2111 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2116 + //line php5/php5.y:2117 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2122 + //line php5/php5.y:2123 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2128 + //line php5/php5.y:2129 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2134 + //line php5/php5.y:2135 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2140 + //line php5/php5.y:2141 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2146 + //line php5/php5.y:2147 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2152 + //line php5/php5.y:2153 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2158 + //line php5/php5.y:2159 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2164 + //line php5/php5.y:2165 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2170 + //line php5/php5.y:2171 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2176 + //line php5/php5.y:2177 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2182 + //line php5/php5.y:2183 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2188 + //line php5/php5.y:2189 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2190 + //line php5/php5.y:2191 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2192 + //line php5/php5.y:2193 { yyVAL.node = yyDollar[2].node @@ -4732,503 +4758,503 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yyDollar[1].token.Comments()) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yyDollar[1].token.Comments()) yyVAL.node = nn case *expr.MethodCall: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yyDollar[1].token.Comments()) yyVAL.node = nn } } } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2218 + //line php5/php5.y:2219 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2224 + //line php5/php5.y:2225 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2230 + //line php5/php5.y:2231 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2232 + //line php5/php5.y:2233 { yyVAL.node = cast.NewInt(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2238 + //line php5/php5.y:2239 { yyVAL.node = cast.NewDouble(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2244 + //line php5/php5.y:2245 { yyVAL.node = cast.NewString(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2250 + //line php5/php5.y:2251 { yyVAL.node = cast.NewArray(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2256 + //line php5/php5.y:2257 { yyVAL.node = cast.NewObject(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2262 + //line php5/php5.y:2263 { yyVAL.node = cast.NewBool(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2268 + //line php5/php5.y:2269 { yyVAL.node = cast.NewUnset(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2274 + //line php5/php5.y:2275 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(yyDollar[2].node) } else { yyVAL.node = expr.NewExit(yyDollar[2].node) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2284 + //line php5/php5.y:2285 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2290 + //line php5/php5.y:2291 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2292 + //line php5/php5.y:2293 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2294 + //line php5/php5.y:2295 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2296 + //line php5/php5.y:2297 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2302 + //line php5/php5.y:2303 { yyVAL.node = expr.NewPrint(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2308 + //line php5/php5.y:2309 { yyVAL.node = expr.NewYield(nil, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:2314 + //line php5/php5.y:2315 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].list, nil, yyDollar[8].list, false, yyDollar[2].boolWithToken.value, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:2321 + //line php5/php5.y:2322 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, nil, yyDollar[9].list, true, yyDollar[3].boolWithToken.value, "") - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2331 + //line php5/php5.y:2332 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2337 + //line php5/php5.y:2338 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2343 + //line php5/php5.y:2344 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2349 + //line php5/php5.y:2350 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2358 + //line php5/php5.y:2359 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2364 + //line php5/php5.y:2365 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2370 + //line php5/php5.y:2371 { str := scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(str, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(str, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(str, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(str, yyDollar[1].token.Comments()) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[str]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[str]) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2380 + //line php5/php5.y:2381 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2389 + //line php5/php5.y:2390 { yyVAL.node = expr.NewArray(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2395 + //line php5/php5.y:2396 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2404 + //line php5/php5.y:2405 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2409 + //line php5/php5.y:2410 { yyVAL.list = []node.Node{} } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2411 + //line php5/php5.y:2412 { yyVAL.list = yyDollar[3].list } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2416 + //line php5/php5.y:2417 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(identifier, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[3].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(variable, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[3].token.Comments()) use := expr.NewClosureUse(variable, false) - positions.AddPosition(use, positionBuilder.NewTokenPosition(yyDollar[3].token)) - comments.AddComments(use, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(use, yyDollar[3].token.Comments()) yyVAL.list = append(yyDollar[1].list, use) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2432 + //line php5/php5.y:2433 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(identifier, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[4].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(variable, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[3].token.Comments()) use := expr.NewClosureUse(variable, true) - positions.AddPosition(use, positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) - comments.AddComments(use, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(use, yyDollar[3].token.Comments()) yyVAL.list = append(yyDollar[1].list, use) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2448 + //line php5/php5.y:2449 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) use := expr.NewClosureUse(variable, false) - positions.AddPosition(use, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(use, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(use, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{use} } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2464 + //line php5/php5.y:2465 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[2].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(identifier, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[2].token.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) use := expr.NewClosureUse(variable, true) - positions.AddPosition(use, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(use, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(use, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{use} } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2483 + //line php5/php5.y:2484 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(name, yyDollar[2].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(name, yyDollar[2].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2493 + //line php5/php5.y:2494 { funcName := name.NewRelative(yyDollar[3].list) - positions.AddPosition(funcName, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(funcName, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(funcName, yyDollar[1].token.Comments()) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(funcName, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[funcName]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(funcName, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[funcName]) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2503 + //line php5/php5.y:2504 { funcName := name.NewFullyQualified(yyDollar[2].list) - positions.AddPosition(funcName, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(funcName, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(funcName, yyDollar[1].token.Comments()) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(funcName, yyDollar[3].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[funcName]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(funcName, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[funcName]) } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2513 + //line php5/php5.y:2514 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2519 + //line php5/php5.y:2520 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2525 + //line php5/php5.y:2526 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2531 + //line php5/php5.y:2532 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2537 + //line php5/php5.y:2538 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2546 + //line php5/php5.y:2547 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2552 + //line php5/php5.y:2553 { yyVAL.node = name.NewName(yyDollar[1].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2558 + //line php5/php5.y:2559 { yyVAL.node = name.NewRelative(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2564 + //line php5/php5.y:2565 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2573 + //line php5/php5.y:2574 { yyVAL.node = name.NewName(yyDollar[1].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2579 + //line php5/php5.y:2580 { yyVAL.node = name.NewRelative(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2585 + //line php5/php5.y:2586 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2594 + //line php5/php5.y:2595 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2596 + //line php5/php5.y:2597 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2601 + //line php5/php5.y:2602 { yyVAL.node = yyDollar[1].node @@ -5236,14 +5262,14 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn } } @@ -5252,747 +5278,747 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn } } } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2637 + //line php5/php5.y:2638 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2643 + //line php5/php5.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2645 + //line php5/php5.y:2646 { yyVAL.list = []node.Node{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2651 + //line php5/php5.y:2652 { yyVAL.list = yyDollar[2].list } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2656 + //line php5/php5.y:2657 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2658 + //line php5/php5.y:2659 { yyVAL.node = nil } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2660 + //line php5/php5.y:2661 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2665 + //line php5/php5.y:2666 { yyVAL.list = []node.Node{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2667 + //line php5/php5.y:2668 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2669 + //line php5/php5.y:2670 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2674 + //line php5/php5.y:2675 { yyVAL.nodesWithEndToken = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2676 + //line php5/php5.y:2677 { yyVAL.nodesWithEndToken = yyDollar[1].nodesWithEndToken } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2681 + //line php5/php5.y:2682 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2687 + //line php5/php5.y:2688 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2693 + //line php5/php5.y:2694 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2699 + //line php5/php5.y:2700 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2705 + //line php5/php5.y:2706 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2711 + //line php5/php5.y:2712 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2717 + //line php5/php5.y:2718 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2723 + //line php5/php5.y:2724 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2729 + //line php5/php5.y:2730 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2735 + //line php5/php5.y:2736 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2741 + //line php5/php5.y:2742 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(encapsed, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(encapsed, yyDollar[2].token.Comments()) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2751 + //line php5/php5.y:2752 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2760 + //line php5/php5.y:2761 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2773 + //line php5/php5.y:2774 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2778 + //line php5/php5.y:2779 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2780 + //line php5/php5.y:2781 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2782 + //line php5/php5.y:2783 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) yyVAL.node = expr.NewConstFetch(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(name)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2792 + //line php5/php5.y:2793 { name := name.NewRelative(yyDollar[3].list) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) yyVAL.node = expr.NewConstFetch(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2802 + //line php5/php5.y:2803 { name := name.NewFullyQualified(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) yyVAL.node = expr.NewConstFetch(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2812 + //line php5/php5.y:2813 { yyVAL.node = expr.NewArray(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2818 + //line php5/php5.y:2819 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2824 + //line php5/php5.y:2825 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2826 + //line php5/php5.y:2827 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2832 + //line php5/php5.y:2833 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2837 + //line php5/php5.y:2838 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2843 + //line php5/php5.y:2844 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2849 + //line php5/php5.y:2850 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2855 + //line php5/php5.y:2856 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2861 + //line php5/php5.y:2862 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2867 + //line php5/php5.y:2868 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2873 + //line php5/php5.y:2874 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2879 + //line php5/php5.y:2880 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2885 + //line php5/php5.y:2886 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2891 + //line php5/php5.y:2892 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2897 + //line php5/php5.y:2898 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2903 + //line php5/php5.y:2904 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2909 + //line php5/php5.y:2910 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2915 + //line php5/php5.y:2916 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2921 + //line php5/php5.y:2922 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2927 + //line php5/php5.y:2928 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2933 + //line php5/php5.y:2934 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2939 + //line php5/php5.y:2940 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2945 + //line php5/php5.y:2946 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2951 + //line php5/php5.y:2952 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2957 + //line php5/php5.y:2958 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2963 + //line php5/php5.y:2964 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2969 + //line php5/php5.y:2970 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2975 + //line php5/php5.y:2976 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2981 + //line php5/php5.y:2982 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2987 + //line php5/php5.y:2988 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2993 + //line php5/php5.y:2994 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2999 + //line php5/php5.y:3000 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3005 + //line php5/php5.y:3006 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3011 + //line php5/php5.y:3012 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3017 + //line php5/php5.y:3018 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3023 + //line php5/php5.y:3024 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3029 + //line php5/php5.y:3030 { yyVAL.node = yyDollar[2].node } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3034 + //line php5/php5.y:3035 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3036 + //line php5/php5.y:3037 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) yyVAL.node = expr.NewConstFetch(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(name)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3046 + //line php5/php5.y:3047 { name := name.NewRelative(yyDollar[3].list) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) yyVAL.node = expr.NewConstFetch(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(name)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3056 + //line php5/php5.y:3057 { name := name.NewFullyQualified(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) yyVAL.node = expr.NewConstFetch(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(name)) - comments.AddComments(yyVAL.node, comments[name]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[name]) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3069 + //line php5/php5.y:3070 { name := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3079 + //line php5/php5.y:3080 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3081 + //line php5/php5.y:3082 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3083 + //line php5/php5.y:3084 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3085 + //line php5/php5.y:3086 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3091 + //line php5/php5.y:3092 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3097 + //line php5/php5.y:3098 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3106 + //line php5/php5.y:3107 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3108 + //line php5/php5.y:3109 { yyVAL.list = yyDollar[1].list } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3118 + //line php5/php5.y:3119 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) - comments.AddComments(arrayItem, comments[yyDollar[3].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[3].node]) yyVAL.list = append(yyDollar[1].list, arrayItem) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3126 + //line php5/php5.y:3127 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition(yyDollar[3].node)) - comments.AddComments(arrayItem, comments[yyDollar[3].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[3].node]) yyVAL.list = append(yyDollar[1].list, arrayItem) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3134 + //line php5/php5.y:3135 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(arrayItem, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.list = []node.Node{arrayItem} } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3142 + //line php5/php5.y:3143 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(arrayItem, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.list = []node.Node{arrayItem} } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3153 + //line php5/php5.y:3154 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3155 + //line php5/php5.y:3156 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3160 + //line php5/php5.y:3161 { yyVAL.node = yyDollar[2].node } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3162 + //line php5/php5.y:3163 { yyVAL.node = yyDollar[2].node } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3168 + //line php5/php5.y:3169 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3174 + //line php5/php5.y:3175 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3179 + //line php5/php5.y:3180 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3184 + //line php5/php5.y:3185 { yyVAL.node = yyDollar[1].node @@ -6005,20 +6031,20 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn case *expr.MethodCall: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn } } @@ -6027,45 +6053,45 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn case *expr.MethodCall: nn.Variable = yyVAL.node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyVAL.node, nn)) - comments.AddComments(nn, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.node = nn } } } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3237 + //line php5/php5.y:3238 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3242 + //line php5/php5.y:3243 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3244 + //line php5/php5.y:3245 { yyVAL.list = []node.Node{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3250 + //line php5/php5.y:3251 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -6076,272 +6102,272 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3262 + //line php5/php5.y:3263 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) yyVAL.list = append(yyDollar[1].list, fetch) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3269 + //line php5/php5.y:3270 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) yyVAL.list = []node.Node{yyDollar[1].node, fetch} } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3279 + //line php5/php5.y:3280 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].nodesWithEndToken.nodes, yyDollar[1].nodesWithEndToken.endToken)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].nodesWithEndToken.nodes, yyDollar[1].nodesWithEndToken.endToken)) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3287 + //line php5/php5.y:3288 { yyVAL.list = []node.Node{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3289 + //line php5/php5.y:3290 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3291 + //line php5/php5.y:3292 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3296 + //line php5/php5.y:3297 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3298 + //line php5/php5.y:3299 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) for _, n := range yyDollar[1].simpleIndirectReference.all { - positions[n] = positionBuilder.NewNodesPosition(n, yyDollar[2].node) + yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3311 + //line php5/php5.y:3312 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3317 + //line php5/php5.y:3318 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3327 + //line php5/php5.y:3328 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3332 + //line php5/php5.y:3333 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3338 + //line php5/php5.y:3339 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 454: - yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3346 - { - yyVAL.node = yyDollar[1].node - } - case 455: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:3347 { yyVAL.node = yyDollar[1].node } - case 456: + case 455: yyDollar = yyS[yypt-1 : yypt+1] //line php5/php5.y:3348 { yyVAL.node = yyDollar[1].node } + case 456: + yyDollar = yyS[yypt-1 : yypt+1] + //line php5/php5.y:3349 + { + yyVAL.node = yyDollar[1].node + } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3354 + //line php5/php5.y:3355 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3356 + //line php5/php5.y:3357 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) for _, n := range yyDollar[1].simpleIndirectReference.all { - positions[n] = positionBuilder.NewNodesPosition(n, yyDollar[2].node) + yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3366 + //line php5/php5.y:3367 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3371 + //line php5/php5.y:3372 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3377 + //line php5/php5.y:3378 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3383 + //line php5/php5.y:3384 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3389 + //line php5/php5.y:3390 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3399 + //line php5/php5.y:3400 { yyVAL.node = expr.NewVariable(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3408 + //line php5/php5.y:3409 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3410 + //line php5/php5.y:3411 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3416 + //line php5/php5.y:3417 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3418 + //line php5/php5.y:3419 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yyVAL.list = []node.Node{fetch} } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3428 + //line php5/php5.y:3429 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) yyVAL.list = append(yyDollar[1].list, fetch) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3435 + //line php5/php5.y:3436 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) yyVAL.list = append(yyDollar[1].list, fetch) } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3442 + //line php5/php5.y:3443 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) - positions.AddPosition(fetch, positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yyVAL.list = []node.Node{fetch} } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3452 + //line php5/php5.y:3453 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3458 + //line php5/php5.y:3459 { yyVAL.node = yyDollar[2].node } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3463 + //line php5/php5.y:3464 { n := expr.NewVariable(nil) - positions.AddPosition(n, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(n, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(n, yyDollar[1].token.Comments()) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3471 + //line php5/php5.y:3472 { n := expr.NewVariable(nil) - positions.AddPosition(n, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(n, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(n, yyDollar[2].token.Comments()) yyDollar[1].simpleIndirectReference.last.SetVarName(n) @@ -6351,13 +6377,13 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3486 + //line php5/php5.y:3487 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3488 + //line php5/php5.y:3489 { if yyDollar[1].node == nil { yyVAL.list = []node.Node{} @@ -6367,395 +6393,395 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3500 + //line php5/php5.y:3501 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3506 + //line php5/php5.y:3507 { item := expr.NewList(yyDollar[3].list) - positions.AddPosition(item, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(item, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(item, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(item, yyDollar[1].token.Comments()) yyVAL.node = expr.NewArrayItem(nil, item, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(item)) - comments.AddComments(yyVAL.node, comments[item]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(item)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[item]) } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3516 + //line php5/php5.y:3517 { yyVAL.node = nil } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3522 + //line php5/php5.y:3523 { yyVAL.list = []node.Node{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3524 + //line php5/php5.y:3525 { yyVAL.list = yyDollar[1].list } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3529 + //line php5/php5.y:3530 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) - comments.AddComments(arrayItem, comments[yyDollar[3].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[3].node]) yyVAL.list = append(yyDollar[1].list, arrayItem) } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3537 + //line php5/php5.y:3538 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition(yyDollar[3].node)) - comments.AddComments(arrayItem, comments[yyDollar[3].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[3].node]) yyVAL.list = append(yyDollar[1].list, arrayItem) } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3545 + //line php5/php5.y:3546 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(arrayItem, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.list = []node.Node{arrayItem} } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3553 + //line php5/php5.y:3554 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(arrayItem, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.list = []node.Node{arrayItem} } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3561 + //line php5/php5.y:3562 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[6].node, true) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) - comments.AddComments(arrayItem, comments[yyDollar[3].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[3].node]) yyVAL.list = append(yyDollar[1].list, arrayItem) } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3569 + //line php5/php5.y:3570 { arrayItem := expr.NewArrayItem(nil, yyDollar[4].node, true) - positions.AddPosition(arrayItem, positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) - comments.AddComments(arrayItem, yyDollar[3].token.Comments()) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yyDollar[3].token.Comments()) yyVAL.list = append(yyDollar[1].list, arrayItem) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3577 + //line php5/php5.y:3578 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(arrayItem, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[yyDollar[1].node]) yyVAL.list = []node.Node{arrayItem} } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3585 + //line php5/php5.y:3586 { arrayItem := expr.NewArrayItem(nil, yyDollar[2].node, true) - positions.AddPosition(arrayItem, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(arrayItem, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(arrayItem, yyDollar[1].token.Comments()) yyVAL.list = []node.Node{arrayItem} } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3596 + //line php5/php5.y:3597 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3598 + //line php5/php5.y:3599 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.list = append(yyDollar[1].list, encapsed) - comments.AddComments(encapsed, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, yyDollar[2].token.Comments()) } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3605 + //line php5/php5.y:3606 { yyVAL.list = []node.Node{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3607 + //line php5/php5.y:3608 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} - comments.AddComments(encapsed, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, yyDollar[1].token.Comments()) } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3617 + //line php5/php5.y:3618 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3627 + //line php5/php5.y:3628 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3640 + //line php5/php5.y:3641 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) fetch := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(fetch, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewPropertyFetch(variable, fetch) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(fetch, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(fetch, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3656 + //line php5/php5.y:3657 { yyVAL.node = yyDollar[2].node - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 499: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3662 + //line php5/php5.y:3663 { identifier := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) - comments.AddComments(identifier, yyDollar[2].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 500: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3676 + //line php5/php5.y:3677 { yyVAL.node = yyDollar[2].node } case 501: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3681 + //line php5/php5.y:3682 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3687 + //line php5/php5.y:3688 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } else { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3699 + //line php5/php5.y:3700 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(identifier) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 504: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3712 + //line php5/php5.y:3713 { yyVAL.node = expr.NewIsset(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3718 + //line php5/php5.y:3719 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3724 + //line php5/php5.y:3725 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 507: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3730 + //line php5/php5.y:3731 { yyVAL.node = expr.NewInclude(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3736 + //line php5/php5.y:3737 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 509: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3742 + //line php5/php5.y:3743 { yyVAL.node = expr.NewEval(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 510: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3748 + //line php5/php5.y:3749 { yyVAL.node = expr.NewRequire(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3754 + //line php5/php5.y:3755 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3763 + //line php5/php5.y:3764 { yyVAL.list = []node.Node{yyDollar[1].node} } case 513: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3765 + //line php5/php5.y:3766 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3770 + //line php5/php5.y:3771 { yyVAL.node = yyDollar[1].node } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3772 + //line php5/php5.y:3773 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3777 + //line php5/php5.y:3778 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3787 + //line php5/php5.y:3788 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3800 + //line php5/php5.y:3801 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3813 + //line php5/php5.y:3814 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } } goto yystack /* stack new state and value */ diff --git a/php5/php5.y b/php5/php5.y index f6f909d..f79ac9a 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -234,7 +234,8 @@ import ( start: top_statement_list { - rootnode = stmt.NewStmtList($1) + yylex.(*Parser).rootNode = stmt.NewStmtList($1) + yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) } ; @@ -252,16 +253,16 @@ namespace_name: T_STRING { namePart := name.NewNamePart($1.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = []node.Node{namePart} - comments.AddComments(namePart, $1.Comments()) + yylex.(*Parser).comments.AddComments(namePart, $1.Comments()) } | namespace_name T_NS_SEPARATOR T_STRING { namePart := name.NewNamePart($3.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = append($1, namePart) - comments.AddComments(namePart, $3.Comments()) + yylex.(*Parser).comments.AddComments(namePart, $3.Comments()) } ; @@ -280,60 +281,60 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NAMESPACE namespace_name ';' { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewNamespace(name, nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewNamespace(name, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NAMESPACE '{' top_statement_list '}' { $$ = stmt.NewNamespace(nil, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_USE use_declarations ';' { $$ = stmt.NewUseList(nil, $2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_USE T_FUNCTION use_function_declarations ';' { useType := node.NewIdentifier($2.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($2)) - comments.AddComments($$, $2.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments($$, $2.Comments()) $$ = stmt.NewUseList(useType, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_USE T_CONST use_const_declarations ';' { useType := node.NewIdentifier($2.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($2)) - comments.AddComments($$, $2.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments($$, $2.Comments()) $$ = stmt.NewUseList(useType, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | constant_declaration ';' { $$ = $1 } @@ -350,48 +351,48 @@ use_declaration: namespace_name { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | namespace_name T_AS T_STRING { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments(alias, $3.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, ListGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($2)) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) alias := node.NewIdentifier($4.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($2, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments(alias, $4.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(alias, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($2)) } ; @@ -406,48 +407,48 @@ use_function_declaration: namespace_name { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | namespace_name T_AS T_STRING { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments(alias, $3.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, ListGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($2)) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) alias := node.NewIdentifier($4.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($2, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments(alias, $4.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(alias, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($2)) } ; @@ -462,48 +463,48 @@ use_const_declaration: namespace_name { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | namespace_name T_AS T_STRING { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments(alias, $3.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, ListGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($2)) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) alias := node.NewIdentifier($4.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($2, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments(alias, $4.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments(alias, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($2)) } ; @@ -511,34 +512,34 @@ constant_declaration: constant_declaration ',' T_STRING '=' static_scalar { name := node.NewIdentifier($3.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) - comments.AddComments(name, $3.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(name, $3.Comments()) constant := stmt.NewConstant(name, $5, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($3, $5)) - comments.AddComments(constant, $3.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + yylex.(*Parser).comments.AddComments(constant, $3.Comments()) constList := $1.(*stmt.ConstList) constList.Consts = append(constList.Consts, constant) $$ = $1 - positions.AddPosition($$, positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) } | T_CONST T_STRING '=' static_scalar { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) - comments.AddComments(name, $2.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) constant := stmt.NewConstant(name, $4, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($2, $4)) - comments.AddComments(constant, $2.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + yylex.(*Parser).comments.AddComments(constant, $2.Comments()) constList := []node.Node{constant} $$ = stmt.NewConstList(constList) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, constList)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -569,8 +570,8 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -581,12 +582,12 @@ statement: | T_STRING ':' { label := node.NewIdentifier($1.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewLabel(label) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments(label, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(label, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -594,31 +595,31 @@ unticked_statement: '{' inner_statement_list '}' { $$ = stmt.NewStmtList($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_IF parenthesis_expr statement elseif_list else_single { $$ = stmt.NewIf($2, $3, $4, $5) if $5 != nil { - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) } else if len($4) > 0 { - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $4)) } else { - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { stmts := stmt.NewStmtList($4) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($4)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) $$ = stmt.NewAltIf($2, stmts, $5, $6) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_WHILE parenthesis_expr while_statement { @@ -627,14 +628,14 @@ unticked_statement: } else { $$ = stmt.NewWhile($2, $3.node) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DO statement T_WHILE parenthesis_expr ';' { $$ = stmt.NewDo($2, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { @@ -643,8 +644,8 @@ unticked_statement: } else { $$ = stmt.NewFor($3, $5, $7, $9.node) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $9.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_SWITCH parenthesis_expr switch_case_list { @@ -653,92 +654,92 @@ unticked_statement: } else { $$ = stmt.NewSwitch($2, $3.nodes) } - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_BREAK ';' { $$ = stmt.NewBreak(nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_BREAK expr ';' { $$ = stmt.NewBreak($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CONTINUE ';' { $$ = stmt.NewContinue(nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CONTINUE expr ';' { $$ = stmt.NewContinue($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_RETURN ';' { $$ = stmt.NewReturn(nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_RETURN expr_without_variable ';' { $$ = stmt.NewReturn($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_RETURN variable ';' { $$ = stmt.NewReturn($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | yield_expr ';' { $$ = stmt.NewExpression($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_GLOBAL global_var_list ';' { $$ = stmt.NewGlobal($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STATIC static_var_list ';' { $$ = stmt.NewStatic($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ECHO echo_expr_list ';' { $$ = stmt.NewEcho($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_INLINE_HTML { $$ = stmt.NewInlineHtml($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr ';' { $$ = stmt.NewExpression($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_UNSET '(' unset_variables ')' ';' { $$ = stmt.NewUnset($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -755,8 +756,8 @@ unticked_statement: $$ = stmt.NewForeach($3, $5.node, $6.node, $8.node, $6.byRef) } } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $8.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FOREACH '(' expr_without_variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -773,48 +774,48 @@ unticked_statement: $$ = stmt.NewForeach($3, $5.node, $6.node, $8.node, $6.byRef) } } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $8.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DECLARE '(' declare_list ')' declare_statement { $$ = stmt.NewDeclare($3, $5) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | ';' { $$ = stmt.NewNop() - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { $$ = stmt.NewTry($3, $5, $6) if $6 == nil { - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $5)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) } else { - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_THROW expr ';' { $$ = stmt.NewThrow($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_GOTO T_STRING ';' { label := node.NewIdentifier($2.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = stmt.NewGoto(label) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(label, $2.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(label, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -824,16 +825,16 @@ catch_statement: | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) - comments.AddComments(identifier, $4.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(identifier, $4.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) - comments.AddComments(variable, $4.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(variable, $4.Comments()) catch := stmt.NewCatch([]node.Node{$3}, variable, $7) - positions.AddPosition(catch, positionBuilder.NewTokensPosition($1, $8)) - comments.AddComments(catch, $1.Comments()) + yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + yylex.(*Parser).comments.AddComments(catch, $1.Comments()) $$ = append([]node.Node{catch}, $9...) } @@ -844,8 +845,8 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = stmt.NewFinally($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -867,16 +868,16 @@ additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) - comments.AddComments(identifier, $4.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(identifier, $4.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) - comments.AddComments(variable, $4.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(variable, $4.Comments()) $$ = stmt.NewCatch([]node.Node{$3}, variable, $7) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -920,12 +921,12 @@ unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { name := node.NewIdentifier($3.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) - comments.AddComments(name, $3.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(name, $3.Comments()) $$ = stmt.NewFunction(name, $2.value, $5, nil, $8, "") - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $9)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -935,7 +936,7 @@ unticked_class_declaration_statement: switch n := $1.(type) { case *stmt.Class : name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) n.ClassName = name n.Stmts = $6 n.Extends = $3 @@ -944,7 +945,7 @@ unticked_class_declaration_statement: case *stmt.Trait : // TODO: is it possible that trait extend or implement name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) n.TraitName = name n.Stmts = $6 } @@ -954,12 +955,12 @@ unticked_class_declaration_statement: | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) - comments.AddComments(name, $2.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) $$ = stmt.NewInterface(name, $3, $5, "") - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -968,34 +969,34 @@ class_entry_type: T_CLASS { $$ = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ABSTRACT T_CLASS { classModifier := node.NewIdentifier($1.Value) - positions.AddPosition(classModifier, positionBuilder.NewTokenPosition($1)) - comments.AddComments(classModifier, $1.Comments()) + yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(classModifier, $1.Comments()) $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_TRAIT { $$ = stmt.NewTrait(nil, nil, "") - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FINAL T_CLASS { classModifier := node.NewIdentifier($1.Value) - positions.AddPosition(classModifier, positionBuilder.NewTokenPosition($1)) - comments.AddComments(classModifier, $1.Comments()) + yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(classModifier, $1.Comments()) $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1047,9 +1048,9 @@ foreach_variable: | T_LIST '(' assignment_list ')' { list := expr.NewList($3) - positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) $$ = foreachVariable{list, false} - comments.AddComments(list, $1.Comments()) + yylex.(*Parser).comments.AddComments(list, $1.Comments()) } ; @@ -1059,7 +1060,7 @@ for_statement: | ':' inner_statement_list T_ENDFOR ';' { $$ = altSyntaxNode{stmt.NewStmtList($2), true} - positions.AddPosition($$.node, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) } ; @@ -1070,7 +1071,7 @@ foreach_statement: | ':' inner_statement_list T_ENDFOREACH ';' { $$ = altSyntaxNode{stmt.NewStmtList($2), true} - positions.AddPosition($$.node, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) } ; @@ -1081,8 +1082,8 @@ declare_statement: | ':' inner_statement_list T_ENDDECLARE ';' { $$ = stmt.NewStmtList($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1091,24 +1092,24 @@ declare_list: T_STRING '=' static_scalar { name := node.NewIdentifier($1.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) constant := stmt.NewConstant(name, $3, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($1, $3)) - comments.AddComments(constant, $1.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).comments.AddComments(constant, $1.Comments()) $$ = []node.Node{constant} } | declare_list ',' T_STRING '=' static_scalar { name := node.NewIdentifier($3.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) - comments.AddComments(name, $3.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(name, $3.Comments()) constant := stmt.NewConstant(name, $5, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($3, $5)) - comments.AddComments(constant, $3.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + yylex.(*Parser).comments.AddComments(constant, $3.Comments()) $$ = append($1, constant) } @@ -1133,16 +1134,16 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { _case := stmt.NewCase($3, $5) - positions.AddPosition(_case, positionBuilder.NewTokenNodeListPosition($2, $5)) + yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) $$ = append($1, _case) - comments.AddComments(_case, $2.Comments()) + yylex.(*Parser).comments.AddComments(_case, $2.Comments()) } | case_list T_DEFAULT case_separator inner_statement_list { _default := stmt.NewDefault($4) - positions.AddPosition(_default, positionBuilder.NewTokenNodeListPosition($2, $4)) + yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) $$ = append($1, _default) - comments.AddComments(_default, $2.Comments()) + yylex.(*Parser).comments.AddComments(_default, $2.Comments()) } ; @@ -1159,7 +1160,7 @@ while_statement: | ':' inner_statement_list T_ENDWHILE ';' { $$ = altSyntaxNode{stmt.NewStmtList($2), true} - positions.AddPosition($$.node, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) } ; @@ -1171,8 +1172,8 @@ elseif_list: | elseif_list T_ELSEIF parenthesis_expr statement { _elseIf := stmt.NewElseIf($3, $4) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodePosition($2, $4)) - comments.AddComments(_elseIf, $2.Comments()) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + yylex.(*Parser).comments.AddComments(_elseIf, $2.Comments()) $$ = append($1, _elseIf) } @@ -1185,11 +1186,11 @@ new_elseif_list: | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { stmts := stmt.NewStmtList($5) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($5)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($5)) _elseIf := stmt.NewAltElseIf($3, stmts) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodeListPosition($2, $5)) - comments.AddComments(_elseIf, $2.Comments()) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) + yylex.(*Parser).comments.AddComments(_elseIf, $2.Comments()) $$ = append($1, _elseIf) } @@ -1202,8 +1203,8 @@ else_single: | T_ELSE statement { $$ = stmt.NewElse($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1214,11 +1215,11 @@ new_else_single: | T_ELSE ':' inner_statement_list { stmts := stmt.NewStmtList($3) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($3)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) $$ = stmt.NewAltElse(stmts) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1241,53 +1242,53 @@ parameter: optional_class_type is_reference is_variadic T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) if $1 != nil { - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } else if $2.value == true { - positions.AddPosition($$, positionBuilder.NewTokensPosition(*$2.token, $4)) - comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition(*$2.token, $4)) + yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) } else if $3.value == true { - positions.AddPosition($$, positionBuilder.NewTokensPosition(*$3.token, $4)) - comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition(*$3.token, $4)) + yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) } else { - positions.AddPosition($$, positionBuilder.NewTokenPosition($4)) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) } } | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) - comments.AddComments(identifier, $4.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(identifier, $4.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) - comments.AddComments(variable, $4.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(variable, $4.Comments()) $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) if $1 != nil { - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $6)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } else if $2.value == true { - positions.AddPosition($$, positionBuilder.NewTokenNodePosition(*$2.token, $6)) - comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*$2.token, $6)) + yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) } else if $3.value == true { - positions.AddPosition($$, positionBuilder.NewTokenNodePosition(*$3.token, $6)) - comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*$3.token, $6)) + yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) } else { - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($4, $6)) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) } } ; @@ -1299,14 +1300,14 @@ optional_class_type: | T_ARRAY { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CALLABLE { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | fully_qualified_class_name { $$ = $1 } @@ -1321,8 +1322,8 @@ function_call_parameter_list: | '(' yield_expr ')' { arg := node.NewArgument($2, false, false) - positions.AddPosition(arg, positionBuilder.NewNodePosition($2)) - comments.AddComments(arg, comments[$2]) + yylex.(*Parser).positions.AddPosition(arg, yylex.(*Parser).positionBuilder.NewNodePosition($2)) + yylex.(*Parser).comments.AddComments(arg, yylex.(*Parser).comments[$2]) $$ = &nodesWithEndToken{[]node.Node{arg}, $3} } @@ -1340,26 +1341,26 @@ function_call_parameter: expr_without_variable { $$ = node.NewArgument($1, false, false) - positions.AddPosition($$, positionBuilder.NewNodePosition($1)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable { $$ = node.NewArgument($1, false, false) - positions.AddPosition($$, positionBuilder.NewNodePosition($1)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '&' w_variable { $$ = node.NewArgument($2, false, true) - positions.AddPosition($$, positionBuilder.NewNodePosition($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ELLIPSIS expr { $$ = node.NewArgument($2, true, false) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1375,24 +1376,24 @@ global_var: T_VARIABLE { name := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '$' r_variable { $$ = expr.NewVariable($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '$' '{' expr '}' { $$ = expr.NewVariable($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1401,70 +1402,70 @@ static_var_list: static_var_list ',' T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($3.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) staticVar := stmt.NewStaticVar(variable, nil) - positions.AddPosition(staticVar, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = append($1, staticVar) - comments.AddComments(identifier, $3.Comments()) - comments.AddComments(variable, $3.Comments()) - comments.AddComments(staticVar, $3.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $3.Comments()) + yylex.(*Parser).comments.AddComments(variable, $3.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, $3.Comments()) } | static_var_list ',' T_VARIABLE '=' static_scalar { identifier := node.NewIdentifier(strings.TrimLeft($3.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) staticVar := stmt.NewStaticVar(variable, $5) - positions.AddPosition(staticVar, positionBuilder.NewTokenNodePosition($3, $5)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) $$ = append($1, staticVar) - comments.AddComments(identifier, $3.Comments()) - comments.AddComments(variable, $3.Comments()) - comments.AddComments(staticVar, $3.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $3.Comments()) + yylex.(*Parser).comments.AddComments(variable, $3.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, $3.Comments()) } | T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) staticVar := stmt.NewStaticVar(variable, nil) - positions.AddPosition(staticVar, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = []node.Node{staticVar} - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments(staticVar, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, $1.Comments()) } | T_VARIABLE '=' static_scalar { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) staticVar := stmt.NewStaticVar(variable, $3) - positions.AddPosition(staticVar, positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) $$ = []node.Node{staticVar} - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments(staticVar, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments(staticVar, $1.Comments()) } ; @@ -1482,8 +1483,8 @@ class_statement: variable_modifiers class_variable_declaration ';' { $$ = stmt.NewPropertyList($1, $2) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | class_constant_declaration ';' { $$ = $1 } @@ -1492,12 +1493,12 @@ class_statement: | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { name := node.NewIdentifier($4.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($4)) - comments.AddComments(name, $4.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(name, $4.Comments()) $$ = stmt.NewClassMethod(name, $1, $3.value, $6, nil, $8.nodes, "") - positions.AddPosition($$, positionBuilder.NewOptionalListTokensPosition($1, $2, $8.endToken)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $8.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } ; @@ -1505,8 +1506,8 @@ trait_use_statement: T_USE trait_list trait_adaptations { $$ = stmt.NewTraitUse($2, $3.nodes) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1549,8 +1550,8 @@ trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { $$ = stmt.NewTraitUsePrecedence($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeNodeListPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -1565,12 +1566,12 @@ trait_method_reference: T_STRING { name := node.NewIdentifier($1.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) $$ = stmt.NewTraitMethodRef(nil, name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | trait_method_reference_fully_qualified { $$ = $1 } @@ -1580,12 +1581,12 @@ trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) - comments.AddComments(target, $3.Comments()) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) $$ = stmt.NewTraitMethodRef($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -1593,18 +1594,18 @@ trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { alias := node.NewIdentifier($4.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) $$ = stmt.NewTraitUseAlias($1, $3, alias) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments(alias, $4.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(alias, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | trait_method_reference T_AS member_modifier { $$ = stmt.NewTraitUseAlias($1, $3, nil) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -1628,8 +1629,8 @@ variable_modifiers: | T_VAR { modifier := node.NewIdentifier($1.Value) - positions.AddPosition(modifier, positionBuilder.NewTokenPosition($1)) - comments.AddComments(modifier, $1.Comments()) + yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(modifier, $1.Comments()) $$ = []node.Node{modifier} } @@ -1653,38 +1654,38 @@ member_modifier: T_PUBLIC { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_PROTECTED { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_PRIVATE { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STATIC { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ABSTRACT { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FINAL { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1692,64 +1693,64 @@ class_variable_declaration: class_variable_declaration ',' T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($3.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) - comments.AddComments(identifier, $3.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(identifier, $3.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) - comments.AddComments(variable, $3.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(variable, $3.Comments()) property := stmt.NewProperty(variable, nil, "") - positions.AddPosition(property, positionBuilder.NewTokenPosition($3)) - comments.AddComments(property, $3.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(property, $3.Comments()) $$ = append($1, property) } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { identifier := node.NewIdentifier(strings.TrimLeft($3.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) - comments.AddComments(identifier, $3.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(identifier, $3.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) - comments.AddComments(variable, $3.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(variable, $3.Comments()) property := stmt.NewProperty(variable, $5, "") - positions.AddPosition(property, positionBuilder.NewTokenNodePosition($3, $5)) - comments.AddComments(property, $3.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + yylex.(*Parser).comments.AddComments(property, $3.Comments()) $$ = append($1, property) } | T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) - comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) property := stmt.NewProperty(variable, nil, "") - positions.AddPosition(property, positionBuilder.NewTokenPosition($1)) - comments.AddComments(property, $1.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(property, $1.Comments()) $$ = []node.Node{property} } | T_VARIABLE '=' static_scalar { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) - comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) property := stmt.NewProperty(variable, $3, "") - positions.AddPosition(property, positionBuilder.NewTokenNodePosition($1, $3)) - comments.AddComments(property, $1.Comments()) + yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).comments.AddComments(property, $1.Comments()) $$ = []node.Node{property} } @@ -1759,31 +1760,31 @@ class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { name := node.NewIdentifier($3.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) - comments.AddComments(name, $3.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(name, $3.Comments()) constant := stmt.NewConstant(name, $5, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($3, $5)) - comments.AddComments(constant, $3.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + yylex.(*Parser).comments.AddComments(constant, $3.Comments()) $1.(*stmt.ClassConstList).Consts = append($1.(*stmt.ClassConstList).Consts, constant) - positions.AddPosition($1, positionBuilder.NewNodesPosition($1, $5)) + yylex.(*Parser).positions.AddPosition($1, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) $$ = $1 } | T_CONST T_STRING '=' static_scalar { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) - comments.AddComments(name, $2.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) constant := stmt.NewConstant(name, $4, "") - positions.AddPosition(constant, positionBuilder.NewTokenNodePosition($2, $4)) - comments.AddComments(constant, $2.Comments()) + yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + yylex.(*Parser).comments.AddComments(constant, $2.Comments()) $$ = stmt.NewClassConstList(nil, []node.Node{constant}) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1820,14 +1821,14 @@ chaining_dereference: chaining_dereference '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $3) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) $$ = append($1, fetch) } | '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $2) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($2)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($2)) $$ = []node.Node{fetch} } @@ -1854,13 +1855,13 @@ new_expr: { if $3 != nil { $$ = expr.NewNew($2, $3.nodes) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) } else { $$ = expr.NewNew($2, nil) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1868,321 +1869,321 @@ expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { list := expr.NewList($3) - positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) $$ = assign.NewAssign(list, $6) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) - comments.AddComments(list, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(list, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | variable '=' expr { $$ = assign.NewAssign($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable '=' '&' variable { $$ = assign.NewReference($1, $4) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable '=' '&' T_NEW class_name_reference ctor_arguments { _new := expr.NewNew($5, nil) - positions.AddPosition(_new, positionBuilder.NewTokenNodePosition($4, $5)) + yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $5)) if $6 != nil { _new = expr.NewNew($5, $6.nodes) - positions.AddPosition(_new, positionBuilder.NewTokensPosition($4, $6.endToken)) + yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokensPosition($4, $6.endToken)) } - comments.AddComments(_new, comments[$1]) + yylex.(*Parser).comments.AddComments(_new, yylex.(*Parser).comments[$1]) $$ = assign.NewReference($1, _new) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, _new)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_CLONE expr { $$ = expr.NewClone($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | variable T_PLUS_EQUAL expr { $$ = assign.NewPlus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_MINUS_EQUAL expr { $$ = assign.NewMinus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_MUL_EQUAL expr { $$ = assign.NewMul($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_POW_EQUAL expr { $$ = assign.NewPow($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_DIV_EQUAL expr { $$ = assign.NewDiv($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_CONCAT_EQUAL expr { $$ = assign.NewConcat($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_MOD_EQUAL expr { $$ = assign.NewMod($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_AND_EQUAL expr { $$ = assign.NewBitwiseAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_OR_EQUAL expr { $$ = assign.NewBitwiseOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_XOR_EQUAL expr { $$ = assign.NewBitwiseXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_SL_EQUAL expr { $$ = assign.NewShiftLeft($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_SR_EQUAL expr { $$ = assign.NewShiftRight($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | rw_variable T_INC { $$ = expr.NewPostInc($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_INC rw_variable { $$ = expr.NewPreInc($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | rw_variable T_DEC { $$ = expr.NewPostDec($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_DEC rw_variable { $$ = expr.NewPreDec($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr T_BOOLEAN_OR expr { $$ = binary.NewBooleanOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_BOOLEAN_AND expr { $$ = binary.NewBooleanAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_LOGICAL_OR expr { $$ = binary.NewLogicalOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_LOGICAL_AND expr { $$ = binary.NewLogicalAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_LOGICAL_XOR expr { $$ = binary.NewLogicalXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '|' expr { $$ = binary.NewBitwiseOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '&' expr { $$ = binary.NewBitwiseAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '^' expr { $$ = binary.NewBitwiseXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '.' expr { $$ = binary.NewConcat($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '+' expr { $$ = binary.NewPlus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '-' expr { $$ = binary.NewMinus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '*' expr { $$ = binary.NewMul($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_POW expr { $$ = binary.NewPow($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '/' expr { $$ = binary.NewDiv($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '%' expr { $$ = binary.NewMod($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_SL expr { $$ = binary.NewShiftLeft($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_SR expr { $$ = binary.NewShiftRight($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '+' expr %prec T_INC { $$ = expr.NewUnaryPlus($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '-' expr %prec T_INC { $$ = expr.NewUnaryMinus($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '!' expr { $$ = expr.NewBooleanNot($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '~' expr { $$ = expr.NewBitwiseNot($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr T_IS_IDENTICAL expr { $$ = binary.NewIdentical($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_NOT_IDENTICAL expr { $$ = binary.NewNotIdentical($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_EQUAL expr { $$ = binary.NewEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_NOT_EQUAL expr { $$ = binary.NewNotEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '<' expr { $$ = binary.NewSmaller($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_SMALLER_OR_EQUAL expr { $$ = binary.NewSmallerOrEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '>' expr { $$ = binary.NewGreater($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_GREATER_OR_EQUAL expr { $$ = binary.NewGreaterOrEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_INSTANCEOF class_name_reference { $$ = expr.NewInstanceOf($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | parenthesis_expr { $$ = $1 } @@ -2196,20 +2197,20 @@ expr_without_variable: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, $1.Comments()) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, $1.Comments()) $$ = nn case *expr.MethodCall: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, $1.Comments()) $$ = nn } } @@ -2217,58 +2218,58 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = expr.NewTernary($1, $3, $5) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $5)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '?' ':' expr { $$ = expr.NewTernary($1, nil, $4) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | internal_functions_in_yacc { $$ = $1 } | T_INT_CAST expr { $$ = cast.NewInt($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOUBLE_CAST expr { $$ = cast.NewDouble($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STRING_CAST expr { $$ = cast.NewString($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ARRAY_CAST expr { $$ = cast.NewArray($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_OBJECT_CAST expr { $$ = cast.NewObject($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_BOOL_CAST expr { $$ = cast.NewBool($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_UNSET_CAST expr { $$ = cast.NewUnset($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EXIT exit_expr { @@ -2277,14 +2278,14 @@ expr_without_variable: } else { $$ = expr.NewExit($2) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '@' expr { $$ = expr.NewErrorSuppress($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | scalar { $$ = $1 } @@ -2295,34 +2296,34 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = expr.NewShellExec($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_PRINT expr { $$ = expr.NewPrint($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD { $$ = expr.NewYield(nil, nil) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = expr.NewClosure($4, $6, nil, $8, false, $2.value, "") - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $9)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = expr.NewClosure($5, $7, nil, $9, true, $3.value, "") - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $10)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2330,26 +2331,26 @@ yield_expr: T_YIELD expr_without_variable { $$ = expr.NewYield(nil, $2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD variable { $$ = expr.NewYield(nil, $2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { $$ = expr.NewYield($2, $4) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD expr T_DOUBLE_ARROW variable { $$ = expr.NewYield($2, $4) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2357,30 +2358,30 @@ combined_scalar_offset: combined_scalar '[' dim_offset ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | combined_scalar_offset '[' dim_offset ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { str := scalar.NewString($1.Value) - positions.AddPosition(str, positionBuilder.NewTokenPosition($1)) - comments.AddComments(str, $1.Comments()) + yylex.(*Parser).positions.AddPosition(str, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(str, $1.Comments()) $$ = expr.NewArrayDimFetch(str, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(str, $4)) - comments.AddComments($$, comments[str]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[str]) } | general_constant '[' dim_offset ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2388,14 +2389,14 @@ combined_scalar: T_ARRAY '(' array_pair_list ')' { $$ = expr.NewArray($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '[' array_pair_list ']' { $$ = expr.NewShortArray($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2415,64 +2416,64 @@ lexical_var_list: lexical_var_list ',' T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($3.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($3)) - comments.AddComments(identifier, $3.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(identifier, $3.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($3)) - comments.AddComments(variable, $3.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(variable, $3.Comments()) use := expr.NewClosureUse(variable, false) - positions.AddPosition(use, positionBuilder.NewTokenPosition($3)) - comments.AddComments(use, $3.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).comments.AddComments(use, $3.Comments()) $$ = append($1, use) } | lexical_var_list ',' '&' T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) - comments.AddComments(identifier, $4.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(identifier, $4.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) - comments.AddComments(variable, $3.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments(variable, $3.Comments()) use := expr.NewClosureUse(variable, true) - positions.AddPosition(use, positionBuilder.NewTokensPosition($3, $4)) - comments.AddComments(use, $3.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) + yylex.(*Parser).comments.AddComments(use, $3.Comments()) $$ = append($1, use) } | T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) - comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) use := expr.NewClosureUse(variable, false) - positions.AddPosition(use, positionBuilder.NewTokenPosition($1)) - comments.AddComments(use, $1.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(use, $1.Comments()) $$ = []node.Node{use} } | '&' T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($2.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($2)) - comments.AddComments(identifier, $2.Comments()) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(identifier, $2.Comments()) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($2)) - comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) use := expr.NewClosureUse(variable, true) - positions.AddPosition(use, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments(use, $1.Comments()) + yylex.(*Parser).positions.AddPosition(use, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments(use, $1.Comments()) $$ = []node.Node{use} } @@ -2482,62 +2483,62 @@ function_call: namespace_name function_call_parameter_list { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) $$ = expr.NewFunctionCall(name, $2.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(name, $2.endToken)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(name, $2.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { funcName := name.NewRelative($3) - positions.AddPosition(funcName, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments(funcName, $1.Comments()) + yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments(funcName, $1.Comments()) $$ = expr.NewFunctionCall(funcName, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(funcName, $4.endToken)) - comments.AddComments($$, comments[funcName]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(funcName, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[funcName]) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { funcName := name.NewFullyQualified($2) - positions.AddPosition(funcName, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments(funcName, $1.Comments()) + yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments(funcName, $1.Comments()) $$ = expr.NewFunctionCall(funcName, $3.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition(funcName, $3.endToken)) - comments.AddComments($$, comments[funcName]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(funcName, $3.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[funcName]) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = expr.NewStaticCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = expr.NewStaticCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = expr.NewStaticCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = expr.NewStaticCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_without_objects function_call_parameter_list { $$ = expr.NewFunctionCall($1, $2.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2545,26 +2546,26 @@ class_name: T_STATIC { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | namespace_name { $$ = name.NewName($1) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = name.NewRelative($3) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NS_SEPARATOR namespace_name { $$ = name.NewFullyQualified($2) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2572,20 +2573,20 @@ fully_qualified_class_name: namespace_name { $$ = name.NewName($1) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = name.NewRelative($3) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NS_SEPARATOR namespace_name { $$ = name.NewFullyQualified($2) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2605,14 +2606,14 @@ dynamic_class_name_reference: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn } } @@ -2621,14 +2622,14 @@ dynamic_class_name_reference: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn } } @@ -2680,78 +2681,78 @@ common_scalar: T_LNUMBER { $$ = scalar.NewLnumber($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DNUMBER { $$ = scalar.NewDnumber($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CONSTANT_ENCAPSED_STRING { $$ = scalar.NewString($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_LINE { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FILE { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DIR { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_TRAIT_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_METHOD_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FUNC_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NS_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { encapsed := scalar.NewEncapsedStringPart($2.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($2)) - comments.AddComments(encapsed, $2.Comments()) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(encapsed, $2.Comments()) $$ = scalar.NewHeredoc($1.Value, []node.Node{encapsed}) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC T_END_HEREDOC { $$ = scalar.NewHeredoc($1.Value, nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2759,12 +2760,12 @@ static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2781,52 +2782,52 @@ static_scalar_value: | namespace_name { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) $$ = expr.NewConstFetch(name) - positions.AddPosition($$, positionBuilder.NewNodePosition(name)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { name := name.NewRelative($3) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments(name, $1.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) $$ = expr.NewConstFetch(name) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } | T_NS_SEPARATOR namespace_name { name := name.NewFullyQualified($2) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments(name, $1.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) $$ = expr.NewConstFetch(name) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } | T_ARRAY '(' static_array_pair_list ')' { $$ = expr.NewArray($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '[' static_array_pair_list ']' { $$ = expr.NewShortArray($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | static_class_constant { $$ = $1 } | T_CLASS_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | static_operation { $$ = $1 } @@ -2836,194 +2837,194 @@ static_operation: static_scalar_value '[' static_scalar_value ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '+' static_scalar_value { $$ = binary.NewPlus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '-' static_scalar_value { $$ = binary.NewMinus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '*' static_scalar_value { $$ = binary.NewMul($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_POW static_scalar_value { $$ = binary.NewPow($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '/' static_scalar_value { $$ = binary.NewDiv($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '%' static_scalar_value { $$ = binary.NewMod($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '!' static_scalar_value { $$ = expr.NewBooleanNot($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '~' static_scalar_value { $$ = expr.NewBitwiseNot($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | static_scalar_value '|' static_scalar_value { $$ = binary.NewBitwiseOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '&' static_scalar_value { $$ = binary.NewBitwiseAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '^' static_scalar_value { $$ = binary.NewBitwiseXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_SL static_scalar_value { $$ = binary.NewShiftLeft($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_SR static_scalar_value { $$ = binary.NewShiftRight($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '.' static_scalar_value { $$ = binary.NewConcat($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$ = binary.NewLogicalXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_LOGICAL_AND static_scalar_value { $$ = binary.NewLogicalAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_LOGICAL_OR static_scalar_value { $$ = binary.NewLogicalOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$ = binary.NewBooleanAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$ = binary.NewBooleanOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$ = binary.NewIdentical($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$ = binary.NewNotIdentical($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_IS_EQUAL static_scalar_value { $$ = binary.NewEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$ = binary.NewNotEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '<' static_scalar_value { $$ = binary.NewSmaller($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '>' static_scalar_value { $$ = binary.NewGreater($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$ = binary.NewSmallerOrEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$ = binary.NewGreaterOrEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '?' ':' static_scalar_value { $$ = expr.NewTernary($1, nil, $4) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$ = expr.NewTernary($1, $3, $5) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $5)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '+' static_scalar_value { $$ = expr.NewUnaryPlus($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '-' static_scalar_value { $$ = expr.NewUnaryMinus($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '(' static_scalar_value ')' { $$ = $2 } @@ -3035,32 +3036,32 @@ general_constant: | namespace_name { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) $$ = expr.NewConstFetch(name) - positions.AddPosition($$, positionBuilder.NewNodePosition(name)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { name := name.NewRelative($3) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments(name, $1.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) $$ = expr.NewConstFetch(name) - positions.AddPosition($$, positionBuilder.NewNodePosition(name)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } | T_NS_SEPARATOR namespace_name { name := name.NewFullyQualified($2) - positions.AddPosition(name, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments(name, $1.Comments()) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) $$ = expr.NewConstFetch(name) - positions.AddPosition($$, positionBuilder.NewNodePosition(name)) - comments.AddComments($$, comments[name]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[name]) } ; @@ -3068,12 +3069,12 @@ scalar: T_STRING_VARNAME { name := node.NewIdentifier($1.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | general_constant { $$ = $1 } @@ -3084,20 +3085,20 @@ scalar: | '"' encaps_list '"' { $$ = scalar.NewEncapsed($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = scalar.NewHeredoc($1.Value, $2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CLASS_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -3117,32 +3118,32 @@ non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := expr.NewArrayItem($3, $5, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($3, $5)) - comments.AddComments(arrayItem, comments[$3]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$3]) $$ = append($1, arrayItem) } | non_empty_static_array_pair_list ',' static_scalar_value { arrayItem := expr.NewArrayItem(nil, $3, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($3)) - comments.AddComments(arrayItem, comments[$3]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$3]) $$ = append($1, arrayItem) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := expr.NewArrayItem($1, $3, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments(arrayItem, comments[$1]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$1]) $$ = []node.Node{arrayItem} } | static_scalar_value { arrayItem := expr.NewArrayItem(nil, $1, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($1)) - comments.AddComments(arrayItem, comments[$1]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$1]) $$ = []node.Node{arrayItem} } @@ -3193,20 +3194,20 @@ variable: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn case *expr.MethodCall: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn } } @@ -3215,20 +3216,20 @@ variable: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn case *expr.MethodCall: nn.Variable = $$ - positions.AddPosition($$, positionBuilder.NewNodesPosition($$, nn)) - comments.AddComments(nn, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).comments.AddComments(nn, yylex.(*Parser).comments[$1]) $$ = nn } } @@ -3261,14 +3262,14 @@ array_method_dereference: array_method_dereference '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $3) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) $$ = append($1, fetch) } | method '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $3) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) $$ = []node.Node{$1, fetch} } @@ -3278,7 +3279,7 @@ method: function_call_parameter_list { $$ = expr.NewMethodCall(nil, nil, $1.nodes) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1.nodes, $1.endToken)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1.nodes, $1.endToken)) } ; @@ -3299,7 +3300,7 @@ variable_without_objects: $1.last.SetVarName($2) for _, n := range($1.all) { - positions[n] = positionBuilder.NewNodesPosition(n, $2) + yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) } $$ = $1.all[0] @@ -3310,14 +3311,14 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = expr.NewStaticPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = expr.NewStaticPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -3331,14 +3332,14 @@ array_function_dereference: array_function_dereference '[' dim_offset ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | function_call '[' dim_offset ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -3357,7 +3358,7 @@ base_variable: $1.last.SetVarName($2) for _, n := range($1.all) { - positions[n] = positionBuilder.NewNodesPosition(n, $2) + yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) } $$ = $1.all[0] @@ -3370,14 +3371,14 @@ reference_variable: reference_variable '[' dim_offset ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | reference_variable '{' expr '}' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | compound_variable { $$ = $1 } @@ -3388,18 +3389,18 @@ compound_variable: T_VARIABLE { name := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '$' '{' expr '}' { $$ = expr.NewVariable($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -3417,7 +3418,7 @@ object_property: | variable_without_objects { fetch := expr.NewPropertyFetch(nil, $1) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($1)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($1)) $$ = []node.Node{fetch} } @@ -3427,21 +3428,21 @@ object_dim_list: object_dim_list '[' dim_offset ']' { fetch := expr.NewArrayDimFetch(nil, $3) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) $$ = append($1, fetch) } | object_dim_list '{' expr '}' { fetch := expr.NewArrayDimFetch(nil, $3) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) $$ = append($1, fetch) } | variable_name { fetch := expr.NewPropertyFetch(nil, $1) - positions.AddPosition(fetch, positionBuilder.NewNodePosition($1)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($1)) $$ = []node.Node{fetch} } @@ -3451,8 +3452,8 @@ variable_name: T_STRING { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '{' expr '}' { $$ = $2 } @@ -3462,16 +3463,16 @@ simple_indirect_reference: '$' { n := expr.NewVariable(nil) - positions.AddPosition(n, positionBuilder.NewTokenPosition($1)) - comments.AddComments(n, $1.Comments()) + yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments(n, $1.Comments()) $$ = simpleIndirectReference{[]*expr.Variable{n}, n} } | simple_indirect_reference '$' { n := expr.NewVariable(nil) - positions.AddPosition(n, positionBuilder.NewTokenPosition($2)) - comments.AddComments(n, $2.Comments()) + yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(n, $2.Comments()) $1.last.SetVarName(n) @@ -3499,18 +3500,18 @@ assignment_list_element: variable { $$ = expr.NewArrayItem(nil, $1, false) - positions.AddPosition($$, positionBuilder.NewNodePosition($1)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_LIST '(' assignment_list ')' { item := expr.NewList($3) - positions.AddPosition(item, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments(item, $1.Comments()) + yylex.(*Parser).positions.AddPosition(item, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments(item, $1.Comments()) $$ = expr.NewArrayItem(nil, item, false) - positions.AddPosition($$, positionBuilder.NewNodePosition(item)) - comments.AddComments($$, comments[item]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(item)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[item]) } | /* empty */ { $$ = nil } @@ -3528,64 +3529,64 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { arrayItem := expr.NewArrayItem($3, $5, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($3, $5)) - comments.AddComments(arrayItem, comments[$3]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$3]) $$ = append($1, arrayItem) } | non_empty_array_pair_list ',' expr { arrayItem := expr.NewArrayItem(nil, $3, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($3)) - comments.AddComments(arrayItem, comments[$3]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$3]) $$ = append($1, arrayItem) } | expr T_DOUBLE_ARROW expr { arrayItem := expr.NewArrayItem($1, $3, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments(arrayItem, comments[$1]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$1]) $$ = []node.Node{arrayItem} } | expr { arrayItem := expr.NewArrayItem(nil, $1, false) - positions.AddPosition(arrayItem, positionBuilder.NewNodePosition($1)) - comments.AddComments(arrayItem, comments[$1]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$1]) $$ = []node.Node{arrayItem} } | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { arrayItem := expr.NewArrayItem($3, $6, true) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($3, $6)) - comments.AddComments(arrayItem, comments[$3]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$3]) $$ = append($1, arrayItem) } | non_empty_array_pair_list ',' '&' w_variable { arrayItem := expr.NewArrayItem(nil, $4, true) - positions.AddPosition(arrayItem, positionBuilder.NewTokenNodePosition($3, $4)) - comments.AddComments(arrayItem, $3.Comments()) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) + yylex.(*Parser).comments.AddComments(arrayItem, $3.Comments()) $$ = append($1, arrayItem) } | expr T_DOUBLE_ARROW '&' w_variable { arrayItem := expr.NewArrayItem($1, $4, true) - positions.AddPosition(arrayItem, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments(arrayItem, comments[$1]) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments(arrayItem, yylex.(*Parser).comments[$1]) $$ = []node.Node{arrayItem} } | '&' w_variable { arrayItem := expr.NewArrayItem(nil, $2, true) - positions.AddPosition(arrayItem, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments(arrayItem, $1.Comments()) + yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments(arrayItem, $1.Comments()) $$ = []node.Node{arrayItem} } @@ -3597,18 +3598,18 @@ encaps_list: | encaps_list T_ENCAPSED_AND_WHITESPACE { encapsed := scalar.NewEncapsedStringPart($2.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = append($1, encapsed) - comments.AddComments(encapsed, $2.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, $2.Comments()) } | encaps_var { $$ = []node.Node{$1} } | T_ENCAPSED_AND_WHITESPACE encaps_var { encapsed := scalar.NewEncapsedStringPart($1.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = []node.Node{encapsed, $2} - comments.AddComments(encapsed, $1.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, $1.Comments()) } ; @@ -3616,61 +3617,61 @@ encaps_var: T_VARIABLE { name := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE '[' encaps_var_offset ']' { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewArrayDimFetch(variable, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) fetch := node.NewIdentifier($3.Value) - positions.AddPosition(fetch, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewPropertyFetch(variable, fetch) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments(fetch, $3.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments(fetch, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = $2 - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { identifier := node.NewIdentifier($2.Value) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = expr.NewArrayDimFetch(variable, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) - comments.AddComments(identifier, $2.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $2.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CURLY_OPEN variable '}' { $$ = $2; } @@ -3680,30 +3681,30 @@ encaps_var_offset: T_STRING { $$ = scalar.NewString($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NUM_STRING { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi($1.Value); err == nil { $$ = scalar.NewLnumber($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) } else { $$ = scalar.NewString($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(identifier) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -3711,50 +3712,50 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { $$ = expr.NewIsset($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EMPTY '(' variable ')' { $$ = expr.NewEmpty($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EMPTY '(' expr_without_variable ')' { $$ = expr.NewEmpty($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_INCLUDE expr { $$ = expr.NewInclude($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_INCLUDE_ONCE expr { $$ = expr.NewIncludeOnce($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EVAL '(' expr ')' { $$ = expr.NewEval($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_REQUIRE expr { $$ = expr.NewRequire($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_REQUIRE_ONCE expr { $$ = expr.NewRequireOnce($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -3776,22 +3777,22 @@ class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -3799,12 +3800,12 @@ static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -3812,13 +3813,38 @@ class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; -%% \ No newline at end of file +%% + +type foreachVariable struct { + node node.Node + byRef bool +} + +type nodesWithEndToken struct { + nodes []node.Node + endToken token.Token +} + +type boolWithToken struct { + value bool + token *token.Token +} + +type simpleIndirectReference struct { + all []*expr.Variable + last *expr.Variable +} + +type altSyntaxNode struct { + node node.Node + isAlt bool +} diff --git a/php7/lexer.go b/php7/lexer.go deleted file mode 100644 index e752708..0000000 --- a/php7/lexer.go +++ /dev/null @@ -1,55 +0,0 @@ -package php7 - -import ( - "bufio" - goToken "go/token" - "io" - - "github.com/cznic/golex/lex" - - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/scanner" - "github.com/z7zmey/php-parser/token" -) - -type lexer struct { - scanner.Lexer - lastToken *token.Token - errors []*errors.Error -} - -func (l *lexer) Lex(lval *yySymType) int { - t := l.Lexer.Lex(lval) - l.lastToken = &lval.token - - return t -} - -func (l *lexer) Error(msg string) { - l.errors = append(l.errors, errors.NewError(msg, *l.lastToken)) -} - -func (lval *yySymType) Token(t token.Token) { - lval.token = t -} - -func newLexer(src io.Reader, fName string) *lexer { - file := goToken.NewFileSet().AddFile(fName, -1, 1<<31-1) - lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(scanner.Rune2Class)) - if err != nil { - panic(err) - } - - scanner := scanner.Lexer{ - Lexer: lx, - StateStack: []int{0}, - PhpDocComment: "", - Comments: nil, - } - - return &lexer{ - scanner, - nil, - nil, - } -} diff --git a/php7/parser.go b/php7/parser.go index 93964c9..ac36532 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -1,63 +1,117 @@ -// Package php7 parses PHP7 package php7 import ( + "bufio" + goToken "go/token" "io" + "github.com/cznic/golex/lex" + "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/token" ) -var rootnode node.Node -var comments comment.Comments -var positions position.Positions -var positionBuilder position.Builder - -// Parse the php7 parser entrypoint -func Parse(src io.Reader, fName string) (node.Node, comment.Comments, position.Positions, []*errors.Error) { - yyDebug = 0 - yyErrorVerbose = true - rootnode = stmt.NewStmtList([]node.Node{}) //reset - comments = comment.Comments{} - positions = position.Positions{} - positionBuilder = position.Builder{&positions} - - lexer := newLexer(src, fName) - yyParse(lexer) - return rootnode, comments, positions, lexer.errors +func (lval *yySymType) Token(t token.Token) { + lval.token = t } -// ListGetFirstNodeComments returns comments of a first node in the list -func ListGetFirstNodeComments(list []node.Node) []comment.Comment { +// Parser structure +type Parser struct { + scanner.Lexer + lastToken *token.Token + positionBuilder *position.Builder + errors []*errors.Error + rootNode node.Node + comments comment.Comments + positions position.Positions +} + +// NewParser creates and returns new Parser +func NewParser(src io.Reader, fName string) *Parser { + file := goToken.NewFileSet().AddFile(fName, -1, 1<<31-1) + lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(scanner.Rune2Class)) + if err != nil { + panic(err) + } + + scanner := scanner.Lexer{ + Lexer: lx, + StateStack: []int{0}, + PhpDocComment: "", + Comments: nil, + } + + return &Parser{ + scanner, + nil, + nil, + nil, + nil, + nil, + nil, + } +} + +// Lex proxy to lexer Lex +func (l *Parser) Lex(lval *yySymType) int { + t := l.Lexer.Lex(lval) + l.lastToken = &lval.token + return t +} + +func (l *Parser) Error(msg string) { + l.errors = append(l.errors, errors.NewError(msg, *l.lastToken)) +} + +// Parse the php7 Parser entrypoint +func (l *Parser) Parse() int { + yyDebug = 0 + yyErrorVerbose = true + + // init + l.errors = nil + l.rootNode = nil + l.comments = comment.Comments{} + l.positions = position.Positions{} + l.positionBuilder = &position.Builder{ + Positions: &l.positions, + } + + // parse + + return yyParse(l) +} + +func (l *Parser) listGetFirstNodeComments(list []node.Node) []comment.Comment { if len(list) == 0 { return nil } node := list[0] - return comments[node] + return l.comments[node] } -type foreachVariable struct { - node node.Node - byRef bool +// GetRootNode returns root node +func (l *Parser) GetRootNode() node.Node { + return l.rootNode } -type nodesWithEndToken struct { - nodes []node.Node - endToken token.Token +// GetErrors returns errors list +func (l *Parser) GetErrors() []*errors.Error { + return l.errors } -type boolWithToken struct { - value bool - token *token.Token +// GetComments returns comments list +func (l *Parser) GetComments() comment.Comments { + return l.comments } -type altSyntaxNode struct { - node node.Node - isAlt bool +// GetPositions returns positions list +func (l *Parser) GetPositions() position.Positions { + return l.positions } diff --git a/php7/php7.go b/php7/php7.go index a11e941..891ad31 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -346,6 +346,26 @@ const yyInitialStackSize = 16 //line php7/php7.y:2635 +type foreachVariable struct { + node node.Node + byRef bool +} + +type nodesWithEndToken struct { + nodes []node.Node + endToken token.Token +} + +type boolWithToken struct { + value bool + token *token.Token +} + +type altSyntaxNode struct { + node node.Node + isAlt bool +} + //line yacctab:1 var yyExca = [...]int{ -1, 1, @@ -2067,8 +2087,8 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:257 { - rootnode = stmt.NewStmtList(yyDollar[1].list) - positions.AddPosition(rootnode, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).rootNode = stmt.NewStmtList(yyDollar[1].list) + yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) } case 2: yyDollar = yyS[yypt-1 : yypt+1] @@ -2545,42 +2565,42 @@ yydefault: //line php7/php7.y:295 { namePart := name.NewNamePart(yyDollar[1].token.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.list = []node.Node{namePart} - comments.AddComments(namePart, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(namePart, yyDollar[1].token.Comments()) } case 81: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:302 { namePart := name.NewNamePart(yyDollar[3].token.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.list = append(yyDollar[1].list, namePart) - comments.AddComments(namePart, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(namePart, yyDollar[3].token.Comments()) } case 82: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:312 { yyVAL.node = name.NewName(yyDollar[1].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 83: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:318 { yyVAL.node = name.NewRelative(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 84: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:324 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 85: yyDollar = yyS[yypt-1 : yypt+1] @@ -2630,32 +2650,32 @@ yydefault: //line php7/php7.y:344 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewNamespace(name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 93: yyDollar = yyS[yypt-5 : yypt+1] //line php7/php7.y:354 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 94: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:364 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 95: yyDollar = yyS[yypt-3 : yypt+1] @@ -2674,8 +2694,8 @@ yydefault: //line php7/php7.y:372 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 98: yyDollar = yyS[yypt-4 : yypt+1] @@ -2688,72 +2708,72 @@ yydefault: //line php7/php7.y:379 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 100: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:388 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 101: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:394 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 102: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:403 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 103: yyDollar = yyS[yypt-7 : yypt+1] //line php7/php7.y:413 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 104: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:426 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 105: yyDollar = yyS[yypt-7 : yypt+1] //line php7/php7.y:436 { name := name.NewName(yyDollar[2].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[2].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 108: yyDollar = yyS[yypt-3 : yypt+1] @@ -2808,27 +2828,27 @@ yydefault: //line php7/php7.y:476 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewUse(nil, name, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 117: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:486 { name := name.NewName(yyDollar[1].list) - positions.AddPosition(name, positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) alias := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewUse(nil, name, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) - comments.AddComments(alias, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 118: yyDollar = yyS[yypt-1 : yypt+1] @@ -2910,16 +2930,16 @@ yydefault: //line php7/php7.y:532 { yyVAL.node = stmt.NewHaltCompiler() - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 131: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:540 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 132: yyDollar = yyS[yypt-1 : yypt+1] @@ -2942,16 +2962,16 @@ yydefault: } else { yyVAL.node = stmt.NewWhile(yyDollar[3].node, yyDollar[5].altSyntaxNode.node) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 135: yyDollar = yyS[yypt-7 : yypt+1] //line php7/php7.y:558 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 136: yyDollar = yyS[yypt-9 : yypt+1] @@ -2962,8 +2982,8 @@ yydefault: } else { yyVAL.node = stmt.NewFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 137: yyDollar = yyS[yypt-5 : yypt+1] @@ -2974,80 +2994,80 @@ yydefault: } else { yyVAL.node = stmt.NewSwitch(yyDollar[3].node, yyDollar[5].nodesWithEndToken.nodes) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 138: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:584 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 139: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:590 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 140: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:596 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 141: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:602 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 142: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:608 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 143: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:614 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 144: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:620 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 145: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:626 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 146: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:632 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 147: yyDollar = yyS[yypt-7 : yypt+1] @@ -3058,8 +3078,8 @@ yydefault: } else { yyVAL.node = stmt.NewForeach(yyDollar[3].node, nil, yyDollar[5].foreachVariable.node, yyDollar[7].altSyntaxNode.node, yyDollar[5].foreachVariable.byRef) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 148: yyDollar = yyS[yypt-9 : yypt+1] @@ -3070,24 +3090,24 @@ yydefault: } else { yyVAL.node = stmt.NewForeach(yyDollar[3].node, yyDollar[5].node, yyDollar[7].foreachVariable.node, yyDollar[9].altSyntaxNode.node, yyDollar[7].foreachVariable.byRef) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 149: yyDollar = yyS[yypt-5 : yypt+1] //line php7/php7.y:658 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 150: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:664 { yyVAL.node = stmt.NewNop() - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 151: yyDollar = yyS[yypt-6 : yypt+1] @@ -3095,45 +3115,45 @@ yydefault: { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) } else { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 152: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:682 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 153: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:688 { label := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewGoto(label) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(label, yyDollar[2].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(label, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 154: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:698 { label := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewLabel(label) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(label, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(label, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 155: yyDollar = yyS[yypt-0 : yypt+1] @@ -3146,16 +3166,16 @@ yydefault: //line php7/php7.y:711 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[5].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[5].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[5].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) catch := stmt.NewCatch(yyDollar[4].list, variable, yyDollar[8].list) - positions.AddPosition(catch, positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) + yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) yyVAL.list = append(yyDollar[1].list, catch) - comments.AddComments(identifier, yyDollar[5].token.Comments()) - comments.AddComments(variable, yyDollar[5].token.Comments()) - comments.AddComments(catch, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddComments(catch, yyDollar[2].token.Comments()) } case 157: yyDollar = yyS[yypt-1 : yypt+1] @@ -3180,8 +3200,8 @@ yydefault: //line php7/php7.y:733 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 161: yyDollar = yyS[yypt-1 : yypt+1] @@ -3206,12 +3226,12 @@ yydefault: //line php7/php7.y:751 { name := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewFunction(name, yyDollar[2].boolWithToken.value, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) - comments.AddComments(name, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 165: yyDollar = yyS[yypt-0 : yypt+1] @@ -3242,24 +3262,24 @@ yydefault: //line php7/php7.y:774 { name := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].node, yyDollar[5].list, yyDollar[8].list, yyDollar[6].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) - comments.AddComments(name, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 170: yyDollar = yyS[yypt-8 : yypt+1] //line php7/php7.y:784 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 171: yyDollar = yyS[yypt-1 : yypt+1] @@ -3278,40 +3298,40 @@ yydefault: //line php7/php7.y:802 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 174: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:808 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 175: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:817 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 176: yyDollar = yyS[yypt-7 : yypt+1] //line php7/php7.y:830 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewInterface(name, yyDollar[3].list, yyDollar[6].list, yyDollar[4].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 177: yyDollar = yyS[yypt-0 : yypt+1] @@ -3366,18 +3386,18 @@ yydefault: //line php7/php7.y:860 { list := expr.NewList(yyDollar[3].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yyVAL.foreachVariable = foreachVariable{list, false} - comments.AddComments(list, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) } case 186: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:867 { list := expr.NewShortList(yyDollar[2].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) yyVAL.foreachVariable = foreachVariable{list, false} - comments.AddComments(list, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) } case 187: yyDollar = yyS[yypt-1 : yypt+1] @@ -3390,7 +3410,7 @@ yydefault: //line php7/php7.y:879 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} - positions.AddPosition(yyVAL.altSyntaxNode.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 189: yyDollar = yyS[yypt-1 : yypt+1] @@ -3403,7 +3423,7 @@ yydefault: //line php7/php7.y:889 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} - positions.AddPosition(yyVAL.altSyntaxNode.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 191: yyDollar = yyS[yypt-1 : yypt+1] @@ -3416,8 +3436,8 @@ yydefault: //line php7/php7.y:898 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 193: yyDollar = yyS[yypt-3 : yypt+1] @@ -3454,18 +3474,18 @@ yydefault: //line php7/php7.y:915 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) - positions.AddPosition(_case, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) yyVAL.list = append(yyDollar[1].list, _case) - comments.AddComments(_case, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(_case, yyDollar[2].token.Comments()) } case 199: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:922 { _default := stmt.NewDefault(yyDollar[4].list) - positions.AddPosition(_default, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) yyVAL.list = append(yyDollar[1].list, _default) - comments.AddComments(_default, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(_default, yyDollar[2].token.Comments()) } case 202: yyDollar = yyS[yypt-1 : yypt+1] @@ -3478,26 +3498,26 @@ yydefault: //line php7/php7.y:939 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} - positions.AddPosition(yyVAL.altSyntaxNode.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 204: yyDollar = yyS[yypt-5 : yypt+1] //line php7/php7.y:947 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 205: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:953 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) - comments.AddComments(_elseIf, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[2].token.Comments()) } case 206: yyDollar = yyS[yypt-1 : yypt+1] @@ -3510,57 +3530,57 @@ yydefault: //line php7/php7.y:966 { _else := stmt.NewElse(yyDollar[3].node) - positions.AddPosition(_else, positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) } case 208: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:978 { stmts := stmt.NewStmtList(yyDollar[6].list) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition(yyDollar[6].list)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[6].list)) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) - comments.AddComments(stmts, yyDollar[5].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(stmts, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 209: yyDollar = yyS[yypt-7 : yypt+1] //line php7/php7.y:988 { stmts := stmt.NewStmtList(yyDollar[7].list) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition(yyDollar[7].list)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[7].list)) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) yyVAL.node = yyDollar[1].node.(*stmt.AltIf).AddElseIf(_elseIf) - comments.AddComments(stmts, yyDollar[6].token.Comments()) - comments.AddComments(_elseIf, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(stmts, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[2].token.Comments()) } case 210: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1002 { yyVAL.node = yyDollar[1].node - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) } case 211: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:1007 { stmts := stmt.NewStmtList(yyDollar[4].list) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition(yyDollar[4].list)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) _else := stmt.NewAltElse(stmts) - positions.AddPosition(_else, positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) yyVAL.node = yyDollar[1].node.(*stmt.AltIf).SetElse(_else) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) - comments.AddComments(stmts, yyDollar[3].token.Comments()) - comments.AddComments(_else, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(stmts, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(_else, yyDollar[2].token.Comments()) } case 212: yyDollar = yyS[yypt-1 : yypt+1] @@ -3591,29 +3611,29 @@ yydefault: //line php7/php7.y:1032 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) if yyDollar[1].node != nil { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } else if yyDollar[2].boolWithToken.value == true { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(*yyDollar[2].boolWithToken.token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(*yyDollar[2].boolWithToken.token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) } else if yyDollar[3].boolWithToken.value == true { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(*yyDollar[3].boolWithToken.token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(*yyDollar[3].boolWithToken.token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) } else { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) } } case 217: @@ -3621,29 +3641,29 @@ yydefault: //line php7/php7.y:1060 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) if yyDollar[1].node != nil { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } else if yyDollar[2].boolWithToken.value == true { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(*yyDollar[2].boolWithToken.token, yyDollar[6].node)) - comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*yyDollar[2].boolWithToken.token, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) } else if yyDollar[3].boolWithToken.value == true { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(*yyDollar[3].boolWithToken.token, yyDollar[6].node)) - comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*yyDollar[3].boolWithToken.token, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) } else { yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) - comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) } } case 218: @@ -3669,24 +3689,24 @@ yydefault: //line php7/php7.y:1097 { yyVAL.node = node.NewNullable(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 222: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1106 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 223: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1112 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 224: yyDollar = yyS[yypt-1 : yypt+1] @@ -3735,16 +3755,16 @@ yydefault: //line php7/php7.y:1137 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 232: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1143 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 233: yyDollar = yyS[yypt-3 : yypt+1] @@ -3781,30 +3801,30 @@ yydefault: //line php7/php7.y:1166 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewStaticVar(variable, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 239: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1179 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewStaticVar(variable, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 240: yyDollar = yyS[yypt-2 : yypt+1] @@ -3823,36 +3843,36 @@ yydefault: //line php7/php7.y:1200 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 243: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1206 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 244: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1212 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 245: yyDollar = yyS[yypt-10 : yypt+1] //line php7/php7.y:1218 { name := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].boolWithToken.value, yyDollar[7].list, yyDollar[9].node, yyDollar[10].nodesWithEndToken.nodes, yyDollar[5].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[10].nodesWithEndToken.endToken)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[10].nodesWithEndToken.endToken)) - comments.AddComments(name, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) + yylex.(*Parser).comments.AddComments(name, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).listGetFirstNodeComments(yyDollar[1].list)) } case 246: yyDollar = yyS[yypt-1 : yypt+1] @@ -3913,64 +3933,64 @@ yydefault: //line php7/php7.y:1252 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 256: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1261 { alias := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(alias, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 257: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1271 { alias := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(alias, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 258: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1281 { alias := node.NewIdentifier(yyDollar[4].token.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(alias, yyDollar[4].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(alias, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 259: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1291 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 260: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1300 { name := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewTraitMethodRef(nil, name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 261: yyDollar = yyS[yypt-1 : yypt+1] @@ -3983,12 +4003,12 @@ yydefault: //line php7/php7.y:1314 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 263: yyDollar = yyS[yypt-1 : yypt+1] @@ -4013,9 +4033,9 @@ yydefault: //line php7/php7.y:1333 { modifier := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(modifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.list = []node.Node{modifier} - comments.AddComments(modifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(modifier, yyDollar[1].token.Comments()) } case 267: yyDollar = yyS[yypt-0 : yypt+1] @@ -4046,48 +4066,48 @@ yydefault: //line php7/php7.y:1353 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 272: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1359 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 273: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1365 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 274: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1371 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 275: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1377 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 276: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1383 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 277: yyDollar = yyS[yypt-3 : yypt+1] @@ -4106,30 +4126,30 @@ yydefault: //line php7/php7.y:1397 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewProperty(variable, nil, yyDollar[2].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 280: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1410 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewProperty(variable, yyDollar[3].node, yyDollar[4].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 281: yyDollar = yyS[yypt-3 : yypt+1] @@ -4148,24 +4168,24 @@ yydefault: //line php7/php7.y:1431 { name := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 284: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1444 { name := node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 285: yyDollar = yyS[yypt-3 : yypt+1] @@ -4215,13 +4235,13 @@ yydefault: { if yyDollar[2].nodesWithEndToken != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].nodesWithEndToken.nodes, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) } else { yyVAL.node = stmt.NewClass(nil, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 293: yyDollar = yyS[yypt-3 : yypt+1] @@ -4229,13 +4249,13 @@ yydefault: { if yyDollar[3].nodesWithEndToken != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) } else { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 294: yyDollar = yyS[yypt-2 : yypt+1] @@ -4248,424 +4268,424 @@ yydefault: //line php7/php7.y:1506 { list := expr.NewList(yyDollar[3].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) - comments.AddComments(list, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 296: yyDollar = yyS[yypt-5 : yypt+1] //line php7/php7.y:1516 { shortList := expr.NewShortList(yyDollar[2].list) - positions.AddPosition(shortList, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(shortList, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) - comments.AddComments(shortList, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(shortList, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 297: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1526 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 298: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1532 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 299: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1538 { yyVAL.node = expr.NewClone(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 300: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1544 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 301: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1550 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 302: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1556 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 303: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1562 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 304: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1568 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 305: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1574 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 306: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1580 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 307: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1586 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 308: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1592 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 309: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1598 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 310: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1604 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 311: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1610 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 312: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1616 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 313: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1622 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 314: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1628 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 315: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1634 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 316: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1640 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 317: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1646 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 318: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1652 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 319: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1658 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 320: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1664 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 321: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1670 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 322: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1676 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 323: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1682 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 324: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1688 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 325: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1694 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 326: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1700 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 327: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1706 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 328: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1712 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 329: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1718 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 330: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1724 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 331: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1730 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 332: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1736 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 333: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1742 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 334: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1748 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 335: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1754 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 336: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1760 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 337: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1766 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 338: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1772 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 339: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1778 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 340: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1784 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 341: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1790 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 342: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1796 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 343: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1802 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 344: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1808 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 345: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1814 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 346: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1820 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 347: yyDollar = yyS[yypt-3 : yypt+1] @@ -4684,24 +4704,24 @@ yydefault: //line php7/php7.y:1828 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 350: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1834 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 351: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:1840 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 352: yyDollar = yyS[yypt-1 : yypt+1] @@ -4714,56 +4734,56 @@ yydefault: //line php7/php7.y:1847 { yyVAL.node = cast.NewInt(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 354: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1853 { yyVAL.node = cast.NewDouble(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 355: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1859 { yyVAL.node = cast.NewString(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 356: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1865 { yyVAL.node = cast.NewArray(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 357: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1871 { yyVAL.node = cast.NewObject(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 358: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1877 { yyVAL.node = cast.NewBool(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 359: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1883 { yyVAL.node = cast.NewUnset(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 360: yyDollar = yyS[yypt-2 : yypt+1] @@ -4774,16 +4794,16 @@ yydefault: } else { yyVAL.node = expr.NewExit(yyDollar[2].node) } - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 361: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1899 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 362: yyDollar = yyS[yypt-1 : yypt+1] @@ -4796,73 +4816,73 @@ yydefault: //line php7/php7.y:1906 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 364: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1912 { yyVAL.node = expr.NewPrint(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 365: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1918 { yyVAL.node = expr.NewYield(nil, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 366: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1924 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 367: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:1930 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 368: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1936 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 369: yyDollar = yyS[yypt-11 : yypt+1] //line php7/php7.y:1942 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].boolWithToken.value, yyDollar[3].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 370: yyDollar = yyS[yypt-12 : yypt+1] //line php7/php7.y:1949 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].list, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].boolWithToken.value, yyDollar[4].str) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 371: yyDollar = yyS[yypt-0 : yypt+1] //line php7/php7.y:1958 { - yyVAL.str = yylex.(*lexer).PhpDocComment - yylex.(*lexer).PhpDocComment = "" + yyVAL.str = yylex.(*Parser).PhpDocComment + yylex.(*Parser).PhpDocComment = "" } case 372: yyDollar = yyS[yypt-0 : yypt+1] @@ -4905,70 +4925,70 @@ yydefault: //line php7/php7.y:1978 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewClosureUse(variable, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 379: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:1991 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[2].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = expr.NewClosureUse(variable, true) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(identifier, yyDollar[2].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 380: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2007 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 381: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2013 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 382: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2019 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 383: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2025 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 384: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2034 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 385: yyDollar = yyS[yypt-1 : yypt+1] @@ -5035,140 +5055,140 @@ yydefault: //line php7/php7.y:2065 { yyVAL.node = expr.NewArray(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 396: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2071 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 397: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2077 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 398: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2086 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 399: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2092 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 400: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2098 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 401: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2104 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 402: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2110 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 403: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2116 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 404: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2122 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 405: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2128 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 406: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2134 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 407: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2140 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 408: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2146 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition(yyDollar[2].token)) - comments.AddComments(encapsed, yyDollar[2].token.Comments()) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(encapsed, yyDollar[2].token.Comments()) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 409: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2156 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 410: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2162 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 411: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2168 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 412: yyDollar = yyS[yypt-1 : yypt+1] @@ -5187,32 +5207,32 @@ yydefault: //line php7/php7.y:2179 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 415: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2185 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 416: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2195 { target := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - comments.AddComments(target, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 417: yyDollar = yyS[yypt-1 : yypt+1] @@ -5291,32 +5311,32 @@ yydefault: //line php7/php7.y:2235 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 430: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2241 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 431: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2247 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 432: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2253 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 433: yyDollar = yyS[yypt-1 : yypt+1] @@ -5341,52 +5361,52 @@ yydefault: //line php7/php7.y:2265 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 437: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2274 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 438: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2284 { yyVAL.node = expr.NewVariable(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 439: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2290 { yyVAL.node = expr.NewVariable(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 440: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2299 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 441: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2305 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 442: yyDollar = yyS[yypt-1 : yypt+1] @@ -5399,48 +5419,48 @@ yydefault: //line php7/php7.y:2315 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 444: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2321 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 445: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2327 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 446: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2333 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 447: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2339 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 448: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2348 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 449: yyDollar = yyS[yypt-3 : yypt+1] @@ -5459,8 +5479,8 @@ yydefault: //line php7/php7.y:2359 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 452: yyDollar = yyS[yypt-3 : yypt+1] @@ -5513,32 +5533,32 @@ yydefault: //line php7/php7.y:2392 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 460: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2398 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodePosition(yyDollar[1].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 461: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2404 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 462: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2410 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 463: yyDollar = yyS[yypt-6 : yypt+1] @@ -5546,12 +5566,12 @@ yydefault: { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, list, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) - comments.AddComments(list, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) + yylex.(*Parser).comments.AddComments(list, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yylex.(*Parser).comments[yyDollar[1].node]) } case 464: yyDollar = yyS[yypt-4 : yypt+1] @@ -5559,12 +5579,12 @@ yydefault: { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) - positions.AddPosition(list, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yyVAL.node = expr.NewArrayItem(nil, list, false) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(list, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 465: yyDollar = yyS[yypt-2 : yypt+1] @@ -5577,9 +5597,9 @@ yydefault: //line php7/php7.y:2442 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.list = append(yyDollar[1].list, encapsed) - comments.AddComments(encapsed, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, yyDollar[2].token.Comments()) } case 467: yyDollar = yyS[yypt-1 : yypt+1] @@ -5592,89 +5612,89 @@ yydefault: //line php7/php7.y:2450 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} - comments.AddComments(encapsed, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, yyDollar[1].token.Comments()) } case 469: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2460 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(name, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 470: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2470 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 471: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2483 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) fetch := node.NewIdentifier(yyDollar[3].token.Value) - positions.AddPosition(fetch, positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) yyVAL.node = expr.NewPropertyFetch(variable, fetch) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(fetch, yyDollar[3].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(fetch, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 472: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2499 { yyVAL.node = expr.NewVariable(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 473: yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:2505 { name := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = expr.NewVariable(name) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - comments.AddComments(name, yyDollar[2].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 474: yyDollar = yyS[yypt-6 : yypt+1] //line php7/php7.y:2515 { identifier := node.NewIdentifier(yyDollar[2].token.Value) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition(yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) - comments.AddComments(identifier, yyDollar[2].token.Comments()) - comments.AddComments(variable, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 475: yyDollar = yyS[yypt-3 : yypt+1] @@ -5687,8 +5707,8 @@ yydefault: //line php7/php7.y:2532 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 477: yyDollar = yyS[yypt-1 : yypt+1] @@ -5697,12 +5717,12 @@ yydefault: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } else { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 478: yyDollar = yyS[yypt-2 : yypt+1] @@ -5711,86 +5731,86 @@ yydefault: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[2].token.Value); err == nil { lnumber := scalar.NewLnumber(yyDollar[2].token.Value) - positions.AddPosition(lnumber, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(lnumber, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) yyVAL.node = expr.NewUnaryMinus(lnumber) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) - comments.AddComments(lnumber, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(lnumber, yyDollar[1].token.Comments()) } else { yyDollar[2].token.Value = "-" + yyDollar[2].token.Value yyVAL.node = scalar.NewString(yyDollar[2].token.Value) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) } - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 479: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:2568 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) yyVAL.node = expr.NewVariable(identifier) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenPosition(yyDollar[1].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - comments.AddComments(identifier, yyDollar[1].token.Comments()) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(identifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 480: yyDollar = yyS[yypt-5 : yypt+1] //line php7/php7.y:2581 { yyVAL.node = expr.NewIsset(yyDollar[3].list) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 481: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2587 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 482: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2593 { yyVAL.node = expr.NewInclude(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 483: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2599 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 484: yyDollar = yyS[yypt-4 : yypt+1] //line php7/php7.y:2605 { yyVAL.node = expr.NewEval(yyDollar[3].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 485: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2611 { yyVAL.node = expr.NewRequire(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 486: yyDollar = yyS[yypt-2 : yypt+1] //line php7/php7.y:2617 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) - positions.AddPosition(yyVAL.node, positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 487: yyDollar = yyS[yypt-1 : yypt+1] diff --git a/php7/php7.y b/php7/php7.y index 73f42c1..4b7b0f9 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -255,8 +255,8 @@ import ( start: top_statement_list { - rootnode = stmt.NewStmtList($1) - positions.AddPosition(rootnode, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).rootNode = stmt.NewStmtList($1) + yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) } ; @@ -294,16 +294,16 @@ namespace_name: T_STRING { namePart := name.NewNamePart($1.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = []node.Node{namePart} - comments.AddComments(namePart, $1.Comments()) + yylex.(*Parser).comments.AddComments(namePart, $1.Comments()) } | namespace_name T_NS_SEPARATOR T_STRING { namePart := name.NewNamePart($3.Value) - positions.AddPosition(namePart, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = append($1, namePart) - comments.AddComments(namePart, $3.Comments()) + yylex.(*Parser).comments.AddComments(namePart, $3.Comments()) } ; @@ -311,20 +311,20 @@ name: namespace_name { $$ = name.NewName($1) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = name.NewRelative($3) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NS_SEPARATOR namespace_name { $$ = name.NewFullyQualified($2) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -343,43 +343,43 @@ top_statement: | T_NAMESPACE namespace_name ';' { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewNamespace(name, nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewNamespace(name, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NAMESPACE '{' top_statement_list '}' { $$ = stmt.NewNamespace(nil, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_USE mixed_group_use_declaration ';' { $$ = $2 } | T_USE use_type group_use_declaration ';' { $$ = $3.(*stmt.GroupUse).SetUseType($2) } | T_USE use_declarations ';' { $$ = stmt.NewUseList(nil, $2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_USE use_type use_declarations ';' { $$ = stmt.NewUseList($2, $3) } | T_CONST const_list ';' { $$ = stmt.NewConstList($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -387,14 +387,14 @@ use_type: T_FUNCTION { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CONST { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -402,22 +402,22 @@ group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$ = stmt.NewGroupUse(nil, name, $4) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewGroupUse(nil, name, $5) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $7)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -425,22 +425,22 @@ mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$ = stmt.NewGroupUse(nil, name, $4) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { name := name.NewName($2) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$ = stmt.NewGroupUse(nil, name, $5) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $7)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - comments.AddComments(name, ListGetFirstNodeComments($2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -475,25 +475,25 @@ unprefixed_use_declaration: namespace_name { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$ = stmt.NewUse(nil, name, nil) - positions.AddPosition($$, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | namespace_name T_AS T_STRING { name := name.NewName($1) - positions.AddPosition(name, positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) alias := node.NewIdentifier($3.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewUse(nil, name, alias) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) - comments.AddComments(name, ListGetFirstNodeComments($1)) - comments.AddComments(alias, $3.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, yylex.(*Parser).listGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } ; @@ -531,16 +531,16 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } statement: '{' inner_statement_list '}' { $$ = stmt.NewStmtList($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | if_stmt { $$ = $1; } | alt_if_stmt { $$ = $1; } @@ -551,14 +551,14 @@ statement: } else { $$ = stmt.NewWhile($3, $5.node) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DO statement T_WHILE '(' expr ')' ';' { $$ = stmt.NewDo($2, $5) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $7)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { @@ -567,8 +567,8 @@ statement: } else { $$ = stmt.NewFor($3, $5, $7, $9.node) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $9.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_SWITCH '(' expr ')' switch_case_list { @@ -577,62 +577,62 @@ statement: } else { $$ = stmt.NewSwitch($3, $5.nodes) } - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5.endToken)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5.endToken)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_BREAK optional_expr ';' { $$ = stmt.NewBreak($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CONTINUE optional_expr ';' { $$ = stmt.NewContinue($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_RETURN optional_expr ';' { $$ = stmt.NewReturn($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_GLOBAL global_var_list ';' { $$ = stmt.NewGlobal($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STATIC static_var_list ';' { $$ = stmt.NewStatic($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ECHO echo_expr_list ';' { $$ = stmt.NewEcho($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_INLINE_HTML { $$ = stmt.NewInlineHtml($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr ';' { $$ = stmt.NewExpression($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_UNSET '(' unset_variables possible_comma ')' ';' { $$ = stmt.NewUnset($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { @@ -641,8 +641,8 @@ statement: } else { $$ = stmt.NewForeach($3, nil, $5.node, $7.node, $5.byRef) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $7.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement { @@ -651,58 +651,58 @@ statement: } else { $$ = stmt.NewForeach($3, $5, $7.node, $9.node, $7.byRef) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $9.node)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9.node)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DECLARE '(' const_list ')' declare_statement { $$ = stmt.NewDeclare($3, $5) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | ';' { $$ = stmt.NewNop() - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { if $6 == nil { $$ = stmt.NewTry($3, $5, $6) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $5)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) } else { $$ = stmt.NewTry($3, $5, $6) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_THROW expr ';' { $$ = stmt.NewThrow($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_GOTO T_STRING ';' { label := node.NewIdentifier($2.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = stmt.NewGoto(label) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(label, $2.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(label, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STRING ':' { label := node.NewIdentifier($1.Value) - positions.AddPosition(label, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewLabel(label) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments(label, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(label, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } catch_list: @@ -710,16 +710,16 @@ catch_list: | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' { identifier := node.NewIdentifier(strings.TrimLeft($5.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($5)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($5)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($5)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($5)) catch := stmt.NewCatch($4, variable, $8) - positions.AddPosition(catch, positionBuilder.NewTokensPosition($2, $9)) + yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9)) $$ = append($1, catch) - comments.AddComments(identifier, $5.Comments()) - comments.AddComments(variable, $5.Comments()) - comments.AddComments(catch, $2.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $5.Comments()) + yylex.(*Parser).comments.AddComments(variable, $5.Comments()) + yylex.(*Parser).comments.AddComments(catch, $2.Comments()) } ; catch_name_list: @@ -732,8 +732,8 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = stmt.NewFinally($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -750,12 +750,12 @@ function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { name := node.NewIdentifier($3.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewFunction(name, $2.value, $6, $8, $10, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $11)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) - comments.AddComments(name, $3.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -773,22 +773,22 @@ class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { name := node.NewIdentifier($3.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewClass(name, $1, nil, $4, $5, $8, $6) - positions.AddPosition($$, positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) - comments.AddComments(name, $3.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = stmt.NewClass(name, nil, nil, $3, $4, $7, $5) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) - comments.AddComments(name, $2.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -801,14 +801,14 @@ class_modifier: T_ABSTRACT { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FINAL { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -816,12 +816,12 @@ trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = stmt.NewTrait(name, $5, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) - comments.AddComments(name, $2.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -829,12 +829,12 @@ interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = stmt.NewInterface(name, $3, $6, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $7)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - comments.AddComments(name, $2.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -859,16 +859,16 @@ foreach_variable: | T_LIST '(' array_pair_list ')' { list := expr.NewList($3) - positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) $$ = foreachVariable{list, false} - comments.AddComments(list, $1.Comments()) + yylex.(*Parser).comments.AddComments(list, $1.Comments()) } | '[' array_pair_list ']' { list := expr.NewShortList($2) - positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) $$ = foreachVariable{list, false} - comments.AddComments(list, $1.Comments()) + yylex.(*Parser).comments.AddComments(list, $1.Comments()) } ; @@ -878,7 +878,7 @@ for_statement: | ':' inner_statement_list T_ENDFOR ';' { $$ = altSyntaxNode{stmt.NewStmtList($2), true} - positions.AddPosition($$.node, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) } ; @@ -888,7 +888,7 @@ foreach_statement: | ':' inner_statement_list T_ENDFOREACH ';' { $$ = altSyntaxNode{stmt.NewStmtList($2), true} - positions.AddPosition($$.node, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) } ; @@ -897,8 +897,8 @@ declare_statement: | ':' inner_statement_list T_ENDDECLARE ';' { $$ = stmt.NewStmtList($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -914,16 +914,16 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { _case := stmt.NewCase($3, $5) - positions.AddPosition(_case, positionBuilder.NewTokenNodeListPosition($2, $5)) + yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) $$ = append($1, _case) - comments.AddComments(_case, $2.Comments()) + yylex.(*Parser).comments.AddComments(_case, $2.Comments()) } | case_list T_DEFAULT case_separator inner_statement_list { _default := stmt.NewDefault($4) - positions.AddPosition(_default, positionBuilder.NewTokenNodeListPosition($2, $4)) + yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) $$ = append($1, _default) - comments.AddComments(_default, $2.Comments()) + yylex.(*Parser).comments.AddComments(_default, $2.Comments()) } ; @@ -938,7 +938,7 @@ while_statement: | ':' inner_statement_list T_ENDWHILE ';' { $$ = altSyntaxNode{stmt.NewStmtList($2), true} - positions.AddPosition($$.node, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) } ; @@ -946,17 +946,17 @@ if_stmt_without_else: T_IF '(' expr ')' statement { $$ = stmt.NewIf($3, $5, nil, nil) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { _elseIf := stmt.NewElseIf($4, $6) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodePosition($2, $6)) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) $$ = $1.(*stmt.If).AddElseIf(_elseIf) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) - comments.AddComments(_elseIf, $2.Comments()) + yylex.(*Parser).comments.AddComments(_elseIf, $2.Comments()) } ; @@ -965,11 +965,11 @@ if_stmt: | if_stmt_without_else T_ELSE statement { _else := stmt.NewElse($3) - positions.AddPosition(_else, positionBuilder.NewTokenNodePosition($2, $3)) + yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $3)) $$ = $1.(*stmt.If).SetElse(_else) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $2.Comments()) } ; @@ -977,23 +977,23 @@ alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { stmts := stmt.NewStmtList($6) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($6)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($6)) $$ = stmt.NewAltIf($3, stmts, nil, nil) - positions.AddPosition($$, positionBuilder.NewTokenNodeListPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6)) - comments.AddComments(stmts, $5.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(stmts, $5.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { stmts := stmt.NewStmtList($7) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($7)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($7)) _elseIf := stmt.NewAltElseIf($4, stmts) - positions.AddPosition(_elseIf, positionBuilder.NewTokenNodeListPosition($2, $7)) + yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7)) $$ = $1.(*stmt.AltIf).AddElseIf(_elseIf) - comments.AddComments(stmts, $6.Comments()) - comments.AddComments(_elseIf, $2.Comments()) + yylex.(*Parser).comments.AddComments(stmts, $6.Comments()) + yylex.(*Parser).comments.AddComments(_elseIf, $2.Comments()) } ; @@ -1001,19 +1001,19 @@ alt_if_stmt: alt_if_stmt_without_else T_ENDIF ';' { $$ = $1 - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { stmts := stmt.NewStmtList($4) - positions.AddPosition(stmts, positionBuilder.NewNodeListPosition($4)) + yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) _else := stmt.NewAltElse(stmts) - positions.AddPosition(_else, positionBuilder.NewTokenNodeListPosition($2, $4)) + yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) $$ = $1.(*stmt.AltIf).SetElse(_else) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) - comments.AddComments(stmts, $3.Comments()) - comments.AddComments(_else, $2.Comments()) + yylex.(*Parser).comments.AddComments(stmts, $3.Comments()) + yylex.(*Parser).comments.AddComments(_else, $2.Comments()) } ; @@ -1031,57 +1031,57 @@ parameter: optional_type is_reference is_variadic T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - comments.AddComments($$, $4.Comments()) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) if $1 != nil { $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } else if $2.value == true { $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewTokensPosition(*$2.token, $4)) - comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition(*$2.token, $4)) + yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) } else if $3.value == true { $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewTokensPosition(*$3.token, $4)) - comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition(*$3.token, $4)) + yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) } else { $$ = node.NewParameter($1, variable, nil, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($4)) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) } } | optional_type is_reference is_variadic T_VARIABLE '=' expr { identifier := node.NewIdentifier(strings.TrimLeft($4.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - comments.AddComments($$, $4.Comments()) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) if $1 != nil { $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $6)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } else if $2.value == true { $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition(*$2.token, $6)) - comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*$2.token, $6)) + yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) } else if $3.value == true { $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition(*$3.token, $6)) - comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition(*$3.token, $6)) + yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) } else { $$ = node.NewParameter($1, variable, $6, $2.value, $3.value) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($4, $6)) - comments.AddComments($$, $4.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + yylex.(*Parser).comments.AddComments($$, $4.Comments()) } } ; @@ -1096,8 +1096,8 @@ type_expr: | '?' type { $$ = node.NewNullable($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1105,14 +1105,14 @@ type: T_ARRAY { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CALLABLE { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | name { $$ = $1; } ; @@ -1136,14 +1136,14 @@ argument: expr { $$ = node.NewArgument($1, false, false) - positions.AddPosition($$, positionBuilder.NewNodePosition($1)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_ELLIPSIS expr { $$ = node.NewArgument($2, true, false) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1165,28 +1165,28 @@ static_var: T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewStaticVar(variable, nil) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE '=' expr { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewStaticVar(variable, $3) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1199,30 +1199,30 @@ class_statement: variable_modifiers property_list ';' { $$ = stmt.NewPropertyList($1, $2) - positions.AddPosition($$, positionBuilder.NewNodeListTokenPosition($1, $3)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | method_modifiers T_CONST class_const_list ';' { $$ = stmt.NewClassConstList($1, $3) - positions.AddPosition($$, positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } | T_USE name_list trait_adaptations { $$ = stmt.NewTraitUse($2, $3.nodes) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { name := node.NewIdentifier($4.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) $$ = stmt.NewClassMethod(name, $1, $3.value, $7, $9, $10.nodes, $5) - positions.AddPosition($$, positionBuilder.NewOptionalListTokensPosition($1, $2, $10.endToken)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $10.endToken)) - comments.AddComments(name, $4.Comments()) - comments.AddComments($$, ListGetFirstNodeComments($1)) + yylex.(*Parser).comments.AddComments(name, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).listGetFirstNodeComments($1)) } ; @@ -1251,8 +1251,8 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { $$ = stmt.NewTraitUsePrecedence($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeNodeListPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -1260,38 +1260,38 @@ trait_alias: trait_method_reference T_AS T_STRING { alias := node.NewIdentifier($3.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewTraitUseAlias($1, nil, alias) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(alias, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | trait_method_reference T_AS reserved_non_modifiers { alias := node.NewIdentifier($3.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewTraitUseAlias($1, nil, alias) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(alias, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | trait_method_reference T_AS member_modifier identifier { alias := node.NewIdentifier($4.Value) - positions.AddPosition(alias, positionBuilder.NewTokenPosition($4)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) $$ = stmt.NewTraitUseAlias($1, $3, alias) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments(alias, $4.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(alias, $4.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | trait_method_reference T_AS member_modifier { $$ = stmt.NewTraitUseAlias($1, $3, nil) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -1299,12 +1299,12 @@ trait_method_reference: identifier { name := node.NewIdentifier($1.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewTraitMethodRef(nil, name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | absolute_trait_method_reference { $$ = $1; } ; @@ -1313,12 +1313,12 @@ absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = stmt.NewTraitMethodRef($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -1332,9 +1332,9 @@ variable_modifiers: | T_VAR { modifier := node.NewIdentifier($1.Value) - positions.AddPosition(modifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = []node.Node{modifier} - comments.AddComments(modifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(modifier, $1.Comments()) } ; @@ -1352,38 +1352,38 @@ member_modifier: T_PUBLIC { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_PROTECTED { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_PRIVATE { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STATIC { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ABSTRACT { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FINAL { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1396,28 +1396,28 @@ property: T_VARIABLE backup_doc_comment { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewProperty(variable, nil, $2) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE '=' expr backup_doc_comment { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewProperty(variable, $3, $4) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1430,12 +1430,12 @@ class_const_decl: identifier '=' expr backup_doc_comment { name := node.NewIdentifier($1.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewConstant(name, $3, $4) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1443,12 +1443,12 @@ const_decl: T_STRING '=' expr backup_doc_comment { name := node.NewIdentifier($1.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = stmt.NewConstant(name, $3, $4) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1475,13 +1475,13 @@ anonymous_class: { if $2 != nil { $$ = stmt.NewClass(nil, nil, $2.nodes, $3, $4, $7, $5) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) } else { $$ = stmt.NewClass(nil, nil, nil, $3, $4, $7, $5) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $8)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1490,13 +1490,13 @@ new_expr: { if $3 != nil { $$ = expr.NewNew($2, $3.nodes) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3.endToken)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) } else { $$ = expr.NewNew($2, nil) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NEW anonymous_class { $$ = expr.NewNew($2, nil) } ; @@ -1505,385 +1505,385 @@ expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { list := expr.NewList($3) - positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) $$ = assign.NewAssign(list, $6) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) - comments.AddComments(list, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(list, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '[' array_pair_list ']' '=' expr { shortList := expr.NewShortList($2) - positions.AddPosition(shortList, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition(shortList, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) $$ = assign.NewAssign(shortList, $5) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $5)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) - comments.AddComments(shortList, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(shortList, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | variable '=' expr { $$ = assign.NewAssign($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable '=' '&' expr { $$ = assign.NewReference($1, $4) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_CLONE expr { $$ = expr.NewClone($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | variable T_PLUS_EQUAL expr { $$ = assign.NewPlus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_MINUS_EQUAL expr { $$ = assign.NewMinus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_MUL_EQUAL expr { $$ = assign.NewMul($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_POW_EQUAL expr { $$ = assign.NewPow($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_DIV_EQUAL expr { $$ = assign.NewDiv($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_CONCAT_EQUAL expr { $$ = assign.NewConcat($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_MOD_EQUAL expr { $$ = assign.NewMod($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_AND_EQUAL expr { $$ = assign.NewBitwiseAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_OR_EQUAL expr { $$ = assign.NewBitwiseOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_XOR_EQUAL expr { $$ = assign.NewBitwiseXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_SL_EQUAL expr { $$ = assign.NewShiftLeft($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_SR_EQUAL expr { $$ = assign.NewShiftRight($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable T_INC { $$ = expr.NewPostInc($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_INC variable { $$ = expr.NewPreInc($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | variable T_DEC { $$ = expr.NewPostDec($1) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_DEC variable { $$ = expr.NewPreDec($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr T_BOOLEAN_OR expr { $$ = binary.NewBooleanOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_BOOLEAN_AND expr { $$ = binary.NewBooleanAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_LOGICAL_OR expr { $$ = binary.NewLogicalOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_LOGICAL_AND expr { $$ = binary.NewLogicalAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_LOGICAL_XOR expr { $$ = binary.NewLogicalXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '|' expr { $$ = binary.NewBitwiseOr($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '&' expr { $$ = binary.NewBitwiseAnd($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '^' expr { $$ = binary.NewBitwiseXor($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '.' expr { $$ = binary.NewConcat($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '+' expr { $$ = binary.NewPlus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '-' expr { $$ = binary.NewMinus($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '*' expr { $$ = binary.NewMul($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_POW expr { $$ = binary.NewPow($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '/' expr { $$ = binary.NewDiv($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '%' expr { $$ = binary.NewMod($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_SL expr { $$ = binary.NewShiftLeft($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_SR expr { $$ = binary.NewShiftRight($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '+' expr %prec T_INC { $$ = expr.NewUnaryPlus($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '-' expr %prec T_INC { $$ = expr.NewUnaryMinus($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '!' expr { $$ = expr.NewBooleanNot($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '~' expr { $$ = expr.NewBitwiseNot($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr T_IS_IDENTICAL expr { $$ = binary.NewIdentical($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_NOT_IDENTICAL expr { $$ = binary.NewNotIdentical($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_EQUAL expr { $$ = binary.NewEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_NOT_EQUAL expr { $$ = binary.NewNotEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '<' expr { $$ = binary.NewSmaller($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_SMALLER_OR_EQUAL expr { $$ = binary.NewSmallerOrEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '>' expr { $$ = binary.NewGreater($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_IS_GREATER_OR_EQUAL expr { $$ = binary.NewGreaterOrEqual($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_SPACESHIP expr { $$ = binary.NewSpaceship($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_INSTANCEOF class_name_reference { $$ = expr.NewInstanceOf($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '(' expr ')' { $$ = $2; } | new_expr { $$ = $1; } | expr '?' expr ':' expr { $$ = expr.NewTernary($1, $3, $5) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $5)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr '?' ':' expr { $$ = expr.NewTernary($1, nil, $4) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_COALESCE expr { $$ = binary.NewCoalesce($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | internal_functions_in_yacc { $$ = $1} | T_INT_CAST expr { $$ = cast.NewInt($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOUBLE_CAST expr { $$ = cast.NewDouble($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STRING_CAST expr { $$ = cast.NewString($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_ARRAY_CAST expr { $$ = cast.NewArray($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_OBJECT_CAST expr { $$ = cast.NewObject($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_BOOL_CAST expr { $$ = cast.NewBool($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_UNSET_CAST expr { $$ = cast.NewUnset($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EXIT exit_expr { @@ -1892,70 +1892,70 @@ expr_without_variable: } else { $$ = expr.NewExit($2) } - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '@' expr { $$ = expr.NewErrorSuppress($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | scalar { $$ = $1; } | '`' backticks_expr '`' { $$ = expr.NewShellExec($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_PRINT expr { $$ = expr.NewPrint($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD { $$ = expr.NewYield(nil, nil) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD expr { $$ = expr.NewYield(nil, $2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD expr T_DOUBLE_ARROW expr { $$ = expr.NewYield($2, $4) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_YIELD_FROM expr { $$ = expr.NewYieldFrom($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = expr.NewClosure($5, $7, $8, $10, false, $2.value, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $11)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_STATIC T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = expr.NewClosure($6, $8, $9, $11, true, $3.value, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $12)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $12)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; backup_doc_comment: - /* empty */ { $$ = yylex.(*lexer).PhpDocComment; yylex.(*lexer).PhpDocComment = "" } + /* empty */ { $$ = yylex.(*Parser).PhpDocComment; yylex.(*Parser).PhpDocComment = "" } ; returns_ref: @@ -1977,28 +1977,28 @@ lexical_var: T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewClosureUse(variable, false) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '&' T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($2.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = expr.NewClosureUse(variable, true) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments(identifier, $2.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $2.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2006,26 +2006,26 @@ function_call: name argument_list { $$ = expr.NewFunctionCall($1, $2.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = expr.NewStaticCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = expr.NewStaticCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | callable_expr argument_list { $$ = expr.NewFunctionCall($1, $2.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $2.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2033,8 +2033,8 @@ class_name: T_STATIC { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | name { $$ = $1; } ; @@ -2064,20 +2064,20 @@ dereferencable_scalar: T_ARRAY '(' array_pair_list ')' { $$ = expr.NewArray($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '[' array_pair_list ']' { $$ = expr.NewShortArray($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CONSTANT_ENCAPSED_STRING { $$ = scalar.NewString($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2085,90 +2085,90 @@ scalar: T_LNUMBER { $$ = scalar.NewLnumber($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DNUMBER { $$ = scalar.NewDnumber($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_LINE { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FILE { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DIR { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_TRAIT_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_METHOD_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_FUNC_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NS_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CLASS_C { $$ = scalar.NewMagicConstant($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { encapsed := scalar.NewEncapsedStringPart($2.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($2)) - comments.AddComments(encapsed, $2.Comments()) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).comments.AddComments(encapsed, $2.Comments()) $$ = scalar.NewHeredoc($1.Value, []node.Node{encapsed}) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC T_END_HEREDOC { $$ = scalar.NewHeredoc($1.Value, nil) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '"' encaps_list '"' { $$ = scalar.NewEncapsed($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = scalar.NewHeredoc($1.Value, $2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | dereferencable_scalar { $$ = $1; } | constant { $$ = $1; } @@ -2178,28 +2178,28 @@ constant: name { $$ = expr.NewConstFetch($1) - positions.AddPosition($$, positionBuilder.NewNodePosition($1)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { target := node.NewIdentifier($3.Value) - positions.AddPosition(target, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewClassConstFetch($1, target) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - comments.AddComments(target, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2234,26 +2234,26 @@ callable_variable: | dereferencable '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | constant '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | dereferencable '{' expr '}' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | dereferencable T_OBJECT_OPERATOR property_name argument_list { $$ = expr.NewMethodCall($1, $3, $4.nodes) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4.endToken)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | function_call { $$ = $1; } ; @@ -2264,8 +2264,8 @@ variable: | dereferencable T_OBJECT_OPERATOR property_name { $$ = expr.NewPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2273,24 +2273,24 @@ simple_variable: T_VARIABLE { name := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '$' '{' expr '}' { $$ = expr.NewVariable($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '$' simple_variable { $$ = expr.NewVariable($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2298,14 +2298,14 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = expr.NewStaticPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = expr.NewStaticPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2314,32 +2314,32 @@ new_variable: | new_variable '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | new_variable '{' expr '}' { $$ = expr.NewArrayDimFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | new_variable T_OBJECT_OPERATOR property_name { $$ = expr.NewPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = expr.NewStaticPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = expr.NewStaticPropertyFetch($1, $3) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } ; @@ -2347,8 +2347,8 @@ member_name: identifier { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '{' expr '}' { $$ = $2; } | simple_variable { $$ = $1 } @@ -2358,8 +2358,8 @@ property_name: T_STRING { $$ = node.NewIdentifier($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '{' expr '}' { $$ = $2; } | simple_variable { $$ = $1 } @@ -2391,48 +2391,48 @@ array_pair: expr T_DOUBLE_ARROW expr { $$ = expr.NewArrayItem($1, $3, false) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $3)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr { $$ = expr.NewArrayItem(nil, $1, false) - positions.AddPosition($$, positionBuilder.NewNodePosition($1)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | expr T_DOUBLE_ARROW '&' variable { $$ = expr.NewArrayItem($1, $4, true) - positions.AddPosition($$, positionBuilder.NewNodesPosition($1, $4)) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | '&' variable { $$ = expr.NewArrayItem(nil, $2, true) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { // TODO: Cannot use list() as standalone expression list := expr.NewList($5) - positions.AddPosition(list, positionBuilder.NewTokensPosition($3, $6)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6)) $$ = expr.NewArrayItem($1, list, false) - positions.AddPosition($$, positionBuilder.NewNodeTokenPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) - comments.AddComments(list, $3.Comments()) - comments.AddComments($$, comments[$1]) + yylex.(*Parser).comments.AddComments(list, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, yylex.(*Parser).comments[$1]) } | T_LIST '(' array_pair_list ')' { // TODO: Cannot use list() as standalone expression list := expr.NewList($3) - positions.AddPosition(list, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) $$ = expr.NewArrayItem(nil, list, false) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments(list, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(list, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2441,17 +2441,17 @@ encaps_list: | encaps_list T_ENCAPSED_AND_WHITESPACE { encapsed := scalar.NewEncapsedStringPart($2.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = append($1, encapsed) - comments.AddComments(encapsed, $2.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, $2.Comments()) } | encaps_var { $$ = []node.Node{$1} } | T_ENCAPSED_AND_WHITESPACE encaps_var { encapsed := scalar.NewEncapsedStringPart($1.Value) - positions.AddPosition(encapsed, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = []node.Node{encapsed, $2} - comments.AddComments(encapsed, $1.Comments()) + yylex.(*Parser).comments.AddComments(encapsed, $1.Comments()) } ; @@ -2459,71 +2459,71 @@ encaps_var: T_VARIABLE { name := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(name, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(name, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE '[' encaps_var_offset ']' { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewArrayDimFetch(variable, $3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) fetch := node.NewIdentifier($3.Value) - positions.AddPosition(fetch, positionBuilder.NewTokenPosition($3)) + yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) $$ = expr.NewPropertyFetch(variable, fetch) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments(fetch, $3.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments(fetch, $3.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = expr.NewVariable($2) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { name := node.NewIdentifier($2.Value) - positions.AddPosition(name, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = expr.NewVariable(name) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $3)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - comments.AddComments(name, $2.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(name, $2.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { identifier := node.NewIdentifier($2.Value) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) variable := expr.NewVariable(identifier) - positions.AddPosition(variable, positionBuilder.NewTokenPosition($2)) + yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$ = expr.NewArrayDimFetch(variable, $4) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $6)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) - comments.AddComments(identifier, $2.Comments()) - comments.AddComments(variable, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $2.Comments()) + yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_CURLY_OPEN variable '}' { $$ = $2; } ; @@ -2531,48 +2531,48 @@ encaps_var_offset: T_STRING { $$ = scalar.NewString($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_NUM_STRING { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi($1.Value); err == nil { $$ = scalar.NewLnumber($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) } else { $$ = scalar.NewString($1.Value) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | '-' T_NUM_STRING { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi($2.Value); err == nil { lnumber := scalar.NewLnumber($2.Value) - positions.AddPosition(lnumber, positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).positions.AddPosition(lnumber, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) $$ = expr.NewUnaryMinus(lnumber) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - comments.AddComments(lnumber, $1.Comments()) + yylex.(*Parser).comments.AddComments(lnumber, $1.Comments()) } else { $2.Value = "-"+$2.Value $$ = scalar.NewString($2.Value) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $2)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) } - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_VARIABLE { identifier := node.NewIdentifier(strings.TrimLeft($1.Value, "$")) - positions.AddPosition(identifier, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) $$ = expr.NewVariable(identifier) - positions.AddPosition($$, positionBuilder.NewTokenPosition($1)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - comments.AddComments(identifier, $1.Comments()) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddComments(identifier, $1.Comments()) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2580,44 +2580,44 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables possible_comma ')' { $$ = expr.NewIsset($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $5)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EMPTY '(' expr ')' { $$ = expr.NewEmpty($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_INCLUDE expr { $$ = expr.NewInclude($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_INCLUDE_ONCE expr { $$ = expr.NewIncludeOnce($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_EVAL '(' expr ')' { $$ = expr.NewEval($3) - positions.AddPosition($$, positionBuilder.NewTokensPosition($1, $4)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_REQUIRE expr { $$ = expr.NewRequire($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } | T_REQUIRE_ONCE expr { $$ = expr.NewRequireOnce($2) - positions.AddPosition($$, positionBuilder.NewTokenNodePosition($1, $2)) - comments.AddComments($$, $1.Comments()) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -2632,4 +2632,24 @@ isset_variable: ///////////////////////////////////////////////////////////////////////// -%% \ No newline at end of file +%% + +type foreachVariable struct { + node node.Node + byRef bool +} + +type nodesWithEndToken struct { + nodes []node.Node + endToken token.Token +} + +type boolWithToken struct { + value bool + token *token.Token +} + +type altSyntaxNode struct { + node node.Node + isAlt bool +} \ No newline at end of file