diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8664f6e..58de3b2 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6598 +// line internal/php5/php5.y:6583 // line yacctab:1 var yyExca = [...]int{ @@ -5358,65 +5358,54 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] // line internal/php5/php5.y:3131 { - pairList := yyDollar[3].node.(*ast.ParserSeparatedList) - fistPair := pairList.Items[0].(*ast.ExprArrayItem) - - if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { - pairList.Items = nil - } - - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), }, - ListTkn: yyDollar[1].token, - OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[4].token, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + }, + EqualTkn: yyDollar[5].token, + Expr: yyDollar[6].node, } - yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} - - // save position - listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3162 +// line internal/php5/php5.y:3151 { - yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3173 +// line internal/php5/php5.y:3162 { - yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + Expr: yyDollar[4].node, + } } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3185 +// line internal/php5/php5.y:3174 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5440,25 +5429,19 @@ yydefault: } } - yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, _new} - - // save position - if yyDollar[6].node != nil { - _new.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) - } else { - _new.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node) + yyVAL.node = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, _new), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + Expr: _new, } - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, _new) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.SkippedTokens) } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3225 +// line internal/php5/php5.y:3208 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5470,162 +5453,163 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3218 { - yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3245 +// line internal/php5/php5.y:3229 { - yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3256 +// line internal/php5/php5.y:3240 { - yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3267 +// line internal/php5/php5.y:3251 { - yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3278 +// line internal/php5/php5.y:3262 { - yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3289 +// line internal/php5/php5.y:3273 { - yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3300 +// line internal/php5/php5.y:3284 { - yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3311 +// line internal/php5/php5.y:3295 { - yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3322 +// line internal/php5/php5.y:3306 { - yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3333 +// line internal/php5/php5.y:3317 { - yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3328 { - yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3355 +// line internal/php5/php5.y:3339 { - yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3366 +// line internal/php5/php5.y:3350 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5637,7 +5621,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3376 +// line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5649,7 +5633,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3386 +// line internal/php5/php5.y:3370 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5661,7 +5645,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3396 +// line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5673,227 +5657,228 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3406 +// line internal/php5/php5.y:3390 { - yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3417 +// line internal/php5/php5.y:3401 { - yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3428 +// line internal/php5/php5.y:3412 { - yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3439 +// line internal/php5/php5.y:3423 { - yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3450 +// line internal/php5/php5.y:3434 { - yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3461 +// line internal/php5/php5.y:3445 { - yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3472 +// line internal/php5/php5.y:3456 { - yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3483 +// line internal/php5/php5.y:3467 { - yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3494 +// line internal/php5/php5.y:3478 { - yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3504 +// line internal/php5/php5.y:3489 { - yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3515 +// line internal/php5/php5.y:3500 { - yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3526 +// line internal/php5/php5.y:3511 { - yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3537 +// line internal/php5/php5.y:3522 { - yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3548 +// line internal/php5/php5.y:3533 { - yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3559 +// line internal/php5/php5.y:3544 { - yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3570 +// line internal/php5/php5.y:3555 { - yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3566 { - yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3592 +// line internal/php5/php5.y:3577 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5905,7 +5890,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3602 +// line internal/php5/php5.y:3587 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5917,7 +5902,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3612 +// line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5929,7 +5914,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3622 +// line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5941,112 +5926,112 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3632 +// line internal/php5/php5.y:3617 { - yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3643 +// line internal/php5/php5.y:3628 { - yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3654 +// line internal/php5/php5.y:3639 { - yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3665 +// line internal/php5/php5.y:3650 { - yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3677 +// line internal/php5/php5.y:3662 { - yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3688 +// line internal/php5/php5.y:3673 { - yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3699 +// line internal/php5/php5.y:3684 { - yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3695 { - yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3721 +// line internal/php5/php5.y:3706 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6059,19 +6044,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3732 +// line internal/php5/php5.y:3717 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3736 +// line internal/php5/php5.y:3721 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3740 +// line internal/php5/php5.y:3725 { yyVAL.node = yyDollar[2].node @@ -6105,7 +6090,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3772 +// line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6120,7 +6105,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3785 +// line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6134,13 +6119,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3797 +// line internal/php5/php5.y:3782 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3801 +// line internal/php5/php5.y:3786 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6152,7 +6137,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3811 +// line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6164,7 +6149,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3806 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6176,7 +6161,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3816 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6188,7 +6173,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3826 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6200,7 +6185,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3836 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6212,7 +6197,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3861 +// line internal/php5/php5.y:3846 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6224,7 +6209,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3871 +// line internal/php5/php5.y:3856 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6243,7 +6228,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3888 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6255,25 +6240,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3898 +// line internal/php5/php5.y:3883 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3887 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3891 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3895 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6286,7 +6271,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3921 +// line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6298,7 +6283,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3931 +// line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6309,7 +6294,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3940 +// line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6328,7 +6313,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3957 +// line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6348,7 +6333,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3978 +// line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6360,7 +6345,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3988 +// line internal/php5/php5.y:3973 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6372,7 +6357,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3998 +// line internal/php5/php5.y:3983 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6386,7 +6371,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4010 +// line internal/php5/php5.y:3995 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6400,7 +6385,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4025 +// line internal/php5/php5.y:4010 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6414,7 +6399,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4037 +// line internal/php5/php5.y:4022 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6428,7 +6413,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4049 +// line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6448,7 +6433,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4067 +// line internal/php5/php5.y:4052 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6462,7 +6447,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4082 +// line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6477,7 +6462,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4095 +// line internal/php5/php5.y:4080 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6491,19 +6476,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4110 +// line internal/php5/php5.y:4095 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4117 +// line internal/php5/php5.y:4102 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4121 +// line internal/php5/php5.y:4106 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6518,7 +6503,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4137 +// line internal/php5/php5.y:4122 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6540,7 +6525,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4142 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6568,7 +6553,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4183 +// line internal/php5/php5.y:4168 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6589,7 +6574,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4202 +// line internal/php5/php5.y:4187 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6616,7 +6601,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4230 +// line internal/php5/php5.y:4215 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6635,7 +6620,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4247 +// line internal/php5/php5.y:4232 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6656,7 +6641,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4266 +// line internal/php5/php5.y:4251 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6676,7 +6661,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4284 +// line internal/php5/php5.y:4269 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6692,7 +6677,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4298 +// line internal/php5/php5.y:4283 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6708,7 +6693,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4312 +// line internal/php5/php5.y:4297 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6724,7 +6709,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4326 +// line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6740,7 +6725,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4340 +// line internal/php5/php5.y:4325 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6754,7 +6739,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4355 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6766,7 +6751,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4365 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6777,7 +6762,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4359 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6790,7 +6775,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4385 +// line internal/php5/php5.y:4370 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6802,7 +6787,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4398 +// line internal/php5/php5.y:4383 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6813,7 +6798,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4407 +// line internal/php5/php5.y:4392 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6826,7 +6811,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4418 +// line internal/php5/php5.y:4403 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6838,19 +6823,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4416 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4435 +// line internal/php5/php5.y:4420 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4442 +// line internal/php5/php5.y:4427 { yyVAL.node = yyDollar[1].node @@ -6891,25 +6876,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4466 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4489 +// line internal/php5/php5.y:4474 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4493 +// line internal/php5/php5.y:4478 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4486 { yyVAL.list = yyDollar[2].list @@ -6918,13 +6903,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4511 +// line internal/php5/php5.y:4496 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4515 +// line internal/php5/php5.y:4500 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6940,19 +6925,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4529 +// line internal/php5/php5.y:4514 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4536 +// line internal/php5/php5.y:4521 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4525 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6966,25 +6951,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4552 +// line internal/php5/php5.y:4537 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4559 +// line internal/php5/php5.y:4544 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 +// line internal/php5/php5.y:4548 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4570 +// line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6996,7 +6981,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4580 +// line internal/php5/php5.y:4565 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7008,7 +6993,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4575 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7020,7 +7005,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4600 +// line internal/php5/php5.y:4585 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7032,7 +7017,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4610 +// line internal/php5/php5.y:4595 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7044,7 +7029,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4620 +// line internal/php5/php5.y:4605 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7056,7 +7041,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4630 +// line internal/php5/php5.y:4615 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7068,7 +7053,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4640 +// line internal/php5/php5.y:4625 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7080,7 +7065,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4650 +// line internal/php5/php5.y:4635 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7092,7 +7077,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4660 +// line internal/php5/php5.y:4645 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7104,7 +7089,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4670 +// line internal/php5/php5.y:4655 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7125,7 +7110,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4689 +// line internal/php5/php5.y:4674 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7137,7 +7122,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4702 +// line internal/php5/php5.y:4687 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7156,25 +7141,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4722 +// line internal/php5/php5.y:4707 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4729 +// line internal/php5/php5.y:4714 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4733 +// line internal/php5/php5.y:4718 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4737 +// line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7190,7 +7175,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4751 +// line internal/php5/php5.y:4736 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7208,7 +7193,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4767 +// line internal/php5/php5.y:4752 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7225,7 +7210,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4782 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7240,7 +7225,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4780 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7254,13 +7239,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4792 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4811 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7272,13 +7257,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4821 +// line internal/php5/php5.y:4806 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7292,85 +7277,85 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4840 +// line internal/php5/php5.y:4825 { - yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4851 +// line internal/php5/php5.y:4836 { - yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4862 +// line internal/php5/php5.y:4847 { - yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4873 +// line internal/php5/php5.y:4858 { - yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4884 +// line internal/php5/php5.y:4869 { - yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4895 +// line internal/php5/php5.y:4880 { - yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4906 +// line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7382,7 +7367,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7394,255 +7379,255 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4926 +// line internal/php5/php5.y:4911 { - yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4937 +// line internal/php5/php5.y:4922 { - yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4933 { - yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4959 +// line internal/php5/php5.y:4944 { - yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4970 +// line internal/php5/php5.y:4955 { - yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4981 +// line internal/php5/php5.y:4966 { - yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4992 +// line internal/php5/php5.y:4977 { - yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5003 +// line internal/php5/php5.y:4988 { - yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5014 +// line internal/php5/php5.y:4999 { - yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5025 +// line internal/php5/php5.y:5010 { - yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5036 +// line internal/php5/php5.y:5021 { - yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5047 +// line internal/php5/php5.y:5032 { - yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5058 +// line internal/php5/php5.y:5043 { - yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5069 +// line internal/php5/php5.y:5054 { - yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5080 +// line internal/php5/php5.y:5065 { - yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5092 +// line internal/php5/php5.y:5077 { - yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5103 +// line internal/php5/php5.y:5088 { - yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5114 +// line internal/php5/php5.y:5099 { - yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5125 +// line internal/php5/php5.y:5110 { - yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5136 +// line internal/php5/php5.y:5121 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7656,7 +7641,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5148 +// line internal/php5/php5.y:5133 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7671,7 +7656,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5161 +// line internal/php5/php5.y:5146 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7683,7 +7668,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5171 +// line internal/php5/php5.y:5156 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7695,7 +7680,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5181 +// line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[2].node @@ -7705,13 +7690,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5192 +// line internal/php5/php5.y:5177 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5196 +// line internal/php5/php5.y:5181 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7727,7 +7712,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5210 +// line internal/php5/php5.y:5195 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7745,7 +7730,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5226 +// line internal/php5/php5.y:5211 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7762,7 +7747,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5244 +// line internal/php5/php5.y:5229 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7779,25 +7764,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5259 +// line internal/php5/php5.y:5244 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5263 +// line internal/php5/php5.y:5248 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5267 +// line internal/php5/php5.y:5252 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5256 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7810,7 +7795,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5267 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7823,7 +7808,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5293 +// line internal/php5/php5.y:5278 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7835,13 +7820,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5306 +// line internal/php5/php5.y:5291 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5310 +// line internal/php5/php5.y:5295 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7852,19 +7837,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5322 +// line internal/php5/php5.y:5307 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5326 +// line internal/php5/php5.y:5311 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5333 +// line internal/php5/php5.y:5318 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7882,7 +7867,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5349 +// line internal/php5/php5.y:5334 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7898,7 +7883,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5363 +// line internal/php5/php5.y:5348 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7915,7 +7900,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5378 +// line internal/php5/php5.y:5363 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7930,19 +7915,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5394 +// line internal/php5/php5.y:5379 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5398 +// line internal/php5/php5.y:5383 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5405 +// line internal/php5/php5.y:5390 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7959,7 +7944,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5420 +// line internal/php5/php5.y:5405 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7976,25 +7961,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5439 +// line internal/php5/php5.y:5424 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5432 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5439 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5461 +// line internal/php5/php5.y:5446 { yyVAL.node = yyDollar[1].node @@ -8072,25 +8057,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5537 +// line internal/php5/php5.y:5522 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5544 +// line internal/php5/php5.y:5529 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5533 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5556 +// line internal/php5/php5.y:5541 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8121,7 +8106,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5587 +// line internal/php5/php5.y:5572 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8137,7 +8122,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5601 +// line internal/php5/php5.y:5586 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8153,7 +8138,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5618 +// line internal/php5/php5.y:5603 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8166,31 +8151,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5632 +// line internal/php5/php5.y:5617 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5636 +// line internal/php5/php5.y:5621 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5640 +// line internal/php5/php5.y:5625 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5647 +// line internal/php5/php5.y:5632 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5636 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8202,7 +8187,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5649 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8215,7 +8200,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5675 +// line internal/php5/php5.y:5660 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8228,13 +8213,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5689 +// line internal/php5/php5.y:5674 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5696 +// line internal/php5/php5.y:5681 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8248,7 +8233,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5708 +// line internal/php5/php5.y:5693 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8262,31 +8247,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5723 +// line internal/php5/php5.y:5708 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5712 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5716 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5724 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5743 +// line internal/php5/php5.y:5728 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8298,13 +8283,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5753 +// line internal/php5/php5.y:5738 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5745 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8318,7 +8303,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5757 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8332,13 +8317,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5784 +// line internal/php5/php5.y:5769 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5792 +// line internal/php5/php5.y:5777 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8355,7 +8340,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5807 +// line internal/php5/php5.y:5792 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8374,25 +8359,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5827 +// line internal/php5/php5.y:5812 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5831 +// line internal/php5/php5.y:5816 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5839 +// line internal/php5/php5.y:5824 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5843 +// line internal/php5/php5.y:5828 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8405,7 +8390,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5857 +// line internal/php5/php5.y:5842 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8421,7 +8406,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5871 +// line internal/php5/php5.y:5856 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8437,7 +8422,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5885 +// line internal/php5/php5.y:5870 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8450,7 +8435,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5899 +// line internal/php5/php5.y:5884 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8462,7 +8447,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5909 +// line internal/php5/php5.y:5894 { yyVAL.node = yyDollar[2].node @@ -8475,7 +8460,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5923 +// line internal/php5/php5.y:5908 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8488,7 +8473,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5934 +// line internal/php5/php5.y:5919 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8499,7 +8484,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5946 +// line internal/php5/php5.y:5931 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8508,7 +8493,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5953 +// line internal/php5/php5.y:5938 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8516,7 +8501,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5963 +// line internal/php5/php5.y:5948 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8527,7 +8512,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5972 +// line internal/php5/php5.y:5957 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8554,19 +8539,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5997 +// line internal/php5/php5.y:5982 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6005 +// line internal/php5/php5.y:5990 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6009 +// line internal/php5/php5.y:5994 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8577,7 +8562,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6021 +// line internal/php5/php5.y:6006 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8595,7 +8580,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6037 +// line internal/php5/php5.y:6022 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8611,7 +8596,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6036 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8628,7 +8613,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6066 +// line internal/php5/php5.y:6051 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8643,7 +8628,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6079 +// line internal/php5/php5.y:6064 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8667,7 +8652,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6101 +// line internal/php5/php5.y:6086 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8689,7 +8674,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6121 +// line internal/php5/php5.y:6106 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8712,7 +8697,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6142 +// line internal/php5/php5.y:6127 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8733,13 +8718,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6164 +// line internal/php5/php5.y:6149 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6168 +// line internal/php5/php5.y:6153 { yyVAL.list = append( yyDollar[1].list, @@ -8754,13 +8739,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6181 +// line internal/php5/php5.y:6166 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6185 +// line internal/php5/php5.y:6170 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8775,7 +8760,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6201 +// line internal/php5/php5.y:6186 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8792,7 +8777,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6216 +// line internal/php5/php5.y:6201 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8817,7 +8802,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6239 +// line internal/php5/php5.y:6224 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8847,7 +8832,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6267 +// line internal/php5/php5.y:6252 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8865,7 +8850,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6283 +// line internal/php5/php5.y:6268 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8889,7 +8874,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6305 +// line internal/php5/php5.y:6290 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8921,7 +8906,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6335 +// line internal/php5/php5.y:6320 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8934,7 +8919,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6349 +// line internal/php5/php5.y:6334 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8946,7 +8931,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6359 +// line internal/php5/php5.y:6344 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8975,7 +8960,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6386 +// line internal/php5/php5.y:6371 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8992,7 +8977,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6404 +// line internal/php5/php5.y:6389 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -9007,7 +8992,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6417 +// line internal/php5/php5.y:6402 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9021,7 +9006,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6429 +// line internal/php5/php5.y:6414 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9035,7 +9020,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6441 +// line internal/php5/php5.y:6426 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9047,7 +9032,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6451 +// line internal/php5/php5.y:6436 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9059,7 +9044,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6461 +// line internal/php5/php5.y:6446 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9073,7 +9058,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6473 +// line internal/php5/php5.y:6458 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9085,7 +9070,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6483 +// line internal/php5/php5.y:6468 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9097,7 +9082,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6496 +// line internal/php5/php5.y:6481 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9105,7 +9090,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6487 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9114,19 +9099,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6512 +// line internal/php5/php5.y:6497 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6516 +// line internal/php5/php5.y:6501 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6523 +// line internal/php5/php5.y:6508 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9145,7 +9130,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6540 +// line internal/php5/php5.y:6525 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9164,7 +9149,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6560 +// line internal/php5/php5.y:6545 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9183,7 +9168,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6580 +// line internal/php5/php5.y:6565 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 7ff468a..3f5ef26 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3129,57 +3129,46 @@ new_expr: expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { - pairList := $3.(*ast.ParserSeparatedList) - fistPair := pairList.Items[0].(*ast.ExprArrayItem) - - if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { - pairList.Items = nil - } - - listNode := &ast.ExprList{ + $$ = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), + Position: position.NewTokenNodePosition($1, $6), }, - ListTkn: $1, - OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $4, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + }, + EqualTkn: $5, + Expr: $6, } - $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} - - // save position - listNode.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | variable '=' expr { - $$ = &ast.ExprAssign{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable '=' '&' variable { - $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) + $$ = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Var: $1, + EqualTkn: $2, + AmpersandTkn: $3, + Expr: $4, + } } | variable '=' '&' T_NEW class_name_reference ctor_arguments { @@ -3205,21 +3194,15 @@ expr_without_variable: } } - $$ = &ast.ExprAssignReference{ast.Node{}, $1, _new} - - // save position - if $6 != nil { - _new.GetNode().Position = position.NewTokenNodePosition($4, $6) - } else { - _new.GetNode().Position = position.NewTokenNodePosition($4, $5) + $$ = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, _new), + }, + Var: $1, + EqualTkn: $2, + AmpersandTkn: $3, + Expr: _new, } - $$.GetNode().Position = position.NewNodesPosition($1, _new) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, $4.SkippedTokens) } | T_CLONE expr { @@ -3233,134 +3216,135 @@ expr_without_variable: } | variable T_PLUS_EQUAL expr { - $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MINUS_EQUAL expr { - $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MUL_EQUAL expr { - $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_POW_EQUAL expr { - $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_DIV_EQUAL expr { - $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_CONCAT_EQUAL expr { - $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MOD_EQUAL expr { - $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_AND_EQUAL expr { - $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_OR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_XOR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SL_EQUAL expr { - $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SR_EQUAL expr { - $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | rw_variable T_INC { @@ -3404,189 +3388,190 @@ expr_without_variable: } | expr T_BOOLEAN_OR expr { - $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_BOOLEAN_AND expr { - $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_OR expr { - $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_AND expr { - $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_XOR expr { - $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '|' expr { - $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '&' expr { - $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '^' expr { - $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '.' expr { - $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '+' expr { - $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '-' expr { - $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '*' expr { - $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_POW expr { - $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '/' expr { - $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '%' expr { - $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SL expr { - $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SR expr { - $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | '+' expr %prec T_INC { @@ -3630,92 +3615,92 @@ expr_without_variable: } | expr T_IS_IDENTICAL expr { - $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_IDENTICAL expr { - $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_EQUAL expr { - $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_EQUAL expr { - $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | expr '<' expr { - $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_SMALLER_OR_EQUAL expr { - $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '>' expr { - $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_GREATER_OR_EQUAL expr { - $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_INSTANCEOF class_name_reference { @@ -4838,69 +4823,69 @@ static_operation: } | static_scalar_value '+' static_scalar_value { - $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '-' static_scalar_value { - $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '*' static_scalar_value { - $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_POW static_scalar_value { - $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '/' static_scalar_value { - $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '%' static_scalar_value { - $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | '!' static_scalar_value { @@ -4924,213 +4909,213 @@ static_operation: } | static_scalar_value '|' static_scalar_value { - $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '&' static_scalar_value { - $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '^' static_scalar_value { - $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_SL static_scalar_value { - $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_SR static_scalar_value { - $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '.' static_scalar_value { - $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_LOGICAL_XOR static_scalar_value { - $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_LOGICAL_AND static_scalar_value { - $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_LOGICAL_OR static_scalar_value { - $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_BOOLEAN_AND static_scalar_value { - $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_BOOLEAN_OR static_scalar_value { - $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_IDENTICAL static_scalar_value { - $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { - $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_EQUAL static_scalar_value { - $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { - $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | static_scalar_value '<' static_scalar_value { - $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '>' static_scalar_value { - $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { - $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { - $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '?' ':' static_scalar_value { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 8788ab2..3704052 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:290 + // line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:320 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:331 + // line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:342 + // line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:349 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:361 + // line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:375 + // line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:384 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:395 + // line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:408 + // line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:413 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:445 + // line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:461 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:479 + // line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:491 + // line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:501 + // line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:512 + // line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:523 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:535 + // line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:550 + // line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:560 + // line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:573 + // line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:595 + // line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:619 + // line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:639 + // line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:663 + // line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:674 + // line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:680 + // line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:687 + // line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:693 + // line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:700 + // line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:713 + // line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:728 + // line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:742 + // line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:767 + // line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:782 + // line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:798 + // line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:816 + // line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:821 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:855 + // line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:899 + // line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:913 + // line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:923 + // line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:934 + // line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:945 + // line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:956 + // line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:964 + // line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:980 + // line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:990 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1000 + // line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1011 + // line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1037 + // line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1124 + // line internal/php7/php7.y:1124 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3507,7 +3507,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1151 + // line internal/php7/php7.y:1151 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3515,7 +3515,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1157 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3524,13 +3524,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1167 + // line internal/php7/php7.y:1167 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1171 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3544,7 +3544,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1186 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3552,7 +3552,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1192 + // line internal/php7/php7.y:1192 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3561,13 +3561,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1202 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1209 + // line internal/php7/php7.y:1209 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3594,31 +3594,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1237 + // line internal/php7/php7.y:1237 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1241 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1248 + // line internal/php7/php7.y:1248 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1252 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1259 + // line internal/php7/php7.y:1259 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3642,7 +3642,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1281 + // line internal/php7/php7.y:1281 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3665,19 +3665,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1305 + // line internal/php7/php7.y:1305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1316 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3689,7 +3689,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1326 + // line internal/php7/php7.y:1326 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3701,7 +3701,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1339 + // line internal/php7/php7.y:1339 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3722,7 +3722,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1361 + // line internal/php7/php7.y:1361 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3744,13 +3744,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1384 + // line internal/php7/php7.y:1384 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1388 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3762,13 +3762,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1401 + // line internal/php7/php7.y:1401 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1405 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3781,13 +3781,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1419 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1423 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3800,13 +3800,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1437 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1441 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3818,7 +3818,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1451 + // line internal/php7/php7.y:1451 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3833,7 +3833,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1464 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3847,7 +3847,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1479 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3858,7 +3858,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1488 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3878,7 +3878,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1509 + // line internal/php7/php7.y:1509 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3889,7 +3889,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1518 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3909,7 +3909,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1539 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3920,7 +3920,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1548 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3940,7 +3940,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1569 + // line internal/php7/php7.y:1569 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3953,7 +3953,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1580 + // line internal/php7/php7.y:1580 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3967,7 +3967,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1592 + // line internal/php7/php7.y:1592 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3982,7 +3982,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1605 + // line internal/php7/php7.y:1605 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3998,13 +3998,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1622 + // line internal/php7/php7.y:1622 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1626 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4018,7 +4018,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1638 + // line internal/php7/php7.y:1638 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4031,19 +4031,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1652 + // line internal/php7/php7.y:1652 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1663 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4054,7 +4054,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1672 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4074,7 +4074,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1693 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4089,7 +4089,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1706 + // line internal/php7/php7.y:1706 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4108,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1726 + // line internal/php7/php7.y:1726 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1730 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4130,7 +4130,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1747 + // line internal/php7/php7.y:1747 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4152,7 +4152,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1767 + // line internal/php7/php7.y:1767 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4176,7 +4176,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1792 + // line internal/php7/php7.y:1792 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4186,7 +4186,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1800 + // line internal/php7/php7.y:1800 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4210,25 +4210,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1825 + // line internal/php7/php7.y:1825 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1829 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1836 + // line internal/php7/php7.y:1836 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1840 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4237,7 +4237,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1850 + // line internal/php7/php7.y:1850 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4292,7 +4292,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1903 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4349,25 +4349,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1961 + // line internal/php7/php7.y:1961 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1965 + // line internal/php7/php7.y:1965 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1976 + // line internal/php7/php7.y:1976 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4379,7 +4379,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1989 + // line internal/php7/php7.y:1989 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4391,7 +4391,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1999 + // line internal/php7/php7.y:1999 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4403,19 +4403,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2009 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2016 + // line internal/php7/php7.y:2016 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2020 + // line internal/php7/php7.y:2020 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4424,7 +4424,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2030 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4436,7 +4436,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2040 + // line internal/php7/php7.y:2040 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4448,7 +4448,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2053 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4456,7 +4456,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2059 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4465,7 +4465,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2069 + // line internal/php7/php7.y:2069 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4476,7 +4476,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2078 + // line internal/php7/php7.y:2078 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4488,7 +4488,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2091 + // line internal/php7/php7.y:2091 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4497,7 +4497,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2098 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4505,13 +4505,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2107 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2114 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4520,7 +4520,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2121 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4528,7 +4528,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2130 + // line internal/php7/php7.y:2130 { yyVAL.node = &ast.StmtStaticVar{ @@ -4551,7 +4551,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4575,19 +4575,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2176 + // line internal/php7/php7.y:2176 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2180 + // line internal/php7/php7.y:2180 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2187 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4602,7 +4602,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4616,7 +4616,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4630,7 +4630,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2224 + // line internal/php7/php7.y:2224 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4661,7 +4661,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2256 + // line internal/php7/php7.y:2256 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4669,7 +4669,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2262 + // line internal/php7/php7.y:2262 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4678,7 +4678,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2272 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4689,7 +4689,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4701,7 +4701,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4714,19 +4714,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2305 + // line internal/php7/php7.y:2305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2309 + // line internal/php7/php7.y:2309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2316 + // line internal/php7/php7.y:2316 { yyVAL.node = yyDollar[1].node @@ -4736,7 +4736,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4746,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2335 + // line internal/php7/php7.y:2335 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4760,7 +4760,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2350 + // line internal/php7/php7.y:2350 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4779,7 +4779,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2367 + // line internal/php7/php7.y:2367 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4798,7 +4798,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2384 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4818,7 +4818,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4831,7 +4831,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2416 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4848,13 +4848,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2431 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2438 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4873,7 +4873,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2458 + // line internal/php7/php7.y:2458 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4884,7 +4884,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4897,13 +4897,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2481 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2485 + // line internal/php7/php7.y:2485 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4917,31 +4917,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2500 + // line internal/php7/php7.y:2500 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2504 + // line internal/php7/php7.y:2504 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2511 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2515 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4953,7 +4953,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4965,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2542 + // line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4977,7 +4977,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2552 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4989,7 +4989,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5001,7 +5001,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5013,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2585 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5022,7 +5022,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2592 + // line internal/php7/php7.y:2592 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5030,7 +5030,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2601 + // line internal/php7/php7.y:2601 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5053,7 +5053,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2622 + // line internal/php7/php7.y:2622 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5077,7 +5077,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2647 + // line internal/php7/php7.y:2647 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5085,13 +5085,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2653 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2660 + // line internal/php7/php7.y:2660 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5112,7 +5112,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2682 + // line internal/php7/php7.y:2682 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5133,7 +5133,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2704 + // line internal/php7/php7.y:2704 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5142,7 +5142,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2711 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5150,25 +5150,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2720 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2727 + // line internal/php7/php7.y:2727 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2731 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2738 + // line internal/php7/php7.y:2738 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5177,13 +5177,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2745 + // line internal/php7/php7.y:2745 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2752 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5200,7 +5200,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2770 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5225,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2793 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5237,77 +5237,77 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2806 { - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), }, - ListTkn: yyDollar[1].token, - OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[4].token, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + }, + EqualTkn: yyDollar[5].token, + Expr: yyDollar[6].node, } - yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2826 + // line internal/php7/php7.y:2826 { - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), }, - OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[3].token, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, } - yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[5].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.SkippedTokens) } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2845 { - yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2856 { - yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + Expr: yyDollar[4].node, + } } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2868 + // line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5319,176 +5319,176 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2878 { - yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2889 { - yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2900 { - yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2911 { - yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2922 { - yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2933 { - yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2944 { - yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2955 { - yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2966 { - yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2977 { - yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2988 { - yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2999 + // line internal/php7/php7.y:2999 { - yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3010 + // line internal/php7/php7.y:3010 { - yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 + // line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5500,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5512,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5524,7 +5524,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3051 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5536,227 +5536,228 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3061 + // line internal/php7/php7.y:3061 { - yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3072 + // line internal/php7/php7.y:3072 { - yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3083 { - yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3094 + // line internal/php7/php7.y:3094 { - yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3105 { - yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3116 { - yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3127 { - yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3138 { - yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3149 { - yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3159 + // line internal/php7/php7.y:3160 { - yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3170 + // line internal/php7/php7.y:3171 { - yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3181 + // line internal/php7/php7.y:3182 { - yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3192 + // line internal/php7/php7.y:3193 { - yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3203 + // line internal/php7/php7.y:3204 { - yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3214 + // line internal/php7/php7.y:3215 { - yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3226 { - yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3236 + // line internal/php7/php7.y:3237 { - yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5768,7 +5769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3257 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5780,7 +5781,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3267 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5792,7 +5793,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5804,125 +5805,124 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3287 + // line internal/php7/php7.y:3288 { - yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3298 + // line internal/php7/php7.y:3299 { - yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3309 + // line internal/php7/php7.y:3310 { - yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3320 + // line internal/php7/php7.y:3321 { - yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3332 { - yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3343 { - yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3354 { - yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3365 { - yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3376 { - yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySpaceship{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5935,7 +5935,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3398 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5952,13 +5952,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3413 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3417 + // line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5973,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5987,26 +5987,26 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3442 { - yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6018,7 +6018,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3467 + // line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6030,7 +6030,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6042,7 +6042,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3487 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6054,7 +6054,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3497 + // line internal/php7/php7.y:3497 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6066,7 +6066,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3507 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6078,7 +6078,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3517 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6090,7 +6090,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3527 + // line internal/php7/php7.y:3527 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6109,7 +6109,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3544 + // line internal/php7/php7.y:3544 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6121,13 +6121,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3554 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3558 + // line internal/php7/php7.y:3558 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6140,7 +6140,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3569 + // line internal/php7/php7.y:3569 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6152,7 +6152,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3579 + // line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6163,7 +6163,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3588 + // line internal/php7/php7.y:3588 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6175,7 +6175,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3598 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6189,7 +6189,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3610 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6201,13 +6201,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3624 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6222,7 +6222,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3640 + // line internal/php7/php7.y:3640 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6243,7 +6243,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6262,25 +6262,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3683 + // line internal/php7/php7.y:3683 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3687 + // line internal/php7/php7.y:3687 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3694 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3698 + // line internal/php7/php7.y:3698 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6295,7 +6295,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3714 + // line internal/php7/php7.y:3714 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6304,7 +6304,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3721 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6312,7 +6312,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3730 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6329,7 +6329,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3745 + // line internal/php7/php7.y:3745 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6352,7 +6352,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3769 + // line internal/php7/php7.y:3769 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6366,7 +6366,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6382,7 +6382,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6398,7 +6398,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6412,7 +6412,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3824 + // line internal/php7/php7.y:3824 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6424,31 +6424,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3834 + // line internal/php7/php7.y:3834 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3845 + // line internal/php7/php7.y:3845 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3852 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3856 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6465,13 +6465,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3874 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3878 + // line internal/php7/php7.y:3878 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6485,25 +6485,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3890 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3897 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3901 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6518,7 +6518,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3921 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6532,7 +6532,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3933 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6544,7 +6544,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6556,7 +6556,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6568,7 +6568,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6580,7 +6580,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6592,7 +6592,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6604,7 +6604,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3996 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6616,7 +6616,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6628,7 +6628,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6640,7 +6640,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4026 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6652,7 +6652,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4036 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6664,7 +6664,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4046 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6685,7 +6685,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4065 + // line internal/php7/php7.y:4065 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6697,7 +6697,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6710,7 +6710,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4086 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6723,19 +6723,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6746,7 +6746,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4117 + // line internal/php7/php7.y:4117 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6765,7 +6765,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4134 + // line internal/php7/php7.y:4134 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6784,43 +6784,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4154 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4158 + // line internal/php7/php7.y:4158 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4165 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4183 + // line internal/php7/php7.y:4183 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4187 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6837,19 +6837,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4202 + // line internal/php7/php7.y:4202 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4209 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4213 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6866,19 +6866,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4228 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4235 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4239 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6892,7 +6892,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6906,7 +6906,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4263 + // line internal/php7/php7.y:4263 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6920,7 +6920,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6936,25 +6936,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4289 + // line internal/php7/php7.y:4289 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4296 + // line internal/php7/php7.y:4296 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4300 + // line internal/php7/php7.y:4300 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4304 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6967,7 +6967,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6984,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7003,7 +7003,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7015,7 +7015,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4363 + // line internal/php7/php7.y:4363 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7028,7 +7028,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4374 + // line internal/php7/php7.y:4374 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7041,13 +7041,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4388 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4392 + // line internal/php7/php7.y:4392 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7061,7 +7061,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4404 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7075,7 +7075,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4416 + // line internal/php7/php7.y:4416 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7088,7 +7088,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4427 + // line internal/php7/php7.y:4427 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7101,7 +7101,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4438 + // line internal/php7/php7.y:4438 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7114,7 +7114,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4452 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7126,7 +7126,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4462 { yyVAL.node = yyDollar[2].node @@ -7136,13 +7136,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4470 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7154,7 +7154,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[2].node @@ -7164,13 +7164,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4495 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4502 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7183,19 +7183,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4516 + // line internal/php7/php7.y:4516 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4520 + // line internal/php7/php7.y:4520 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4527 + // line internal/php7/php7.y:4527 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7204,7 +7204,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4534 + // line internal/php7/php7.y:4534 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7212,7 +7212,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4543 + // line internal/php7/php7.y:4543 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7225,7 +7225,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4554 + // line internal/php7/php7.y:4554 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7236,7 +7236,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4563 + // line internal/php7/php7.y:4563 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7255,7 +7255,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4580 + // line internal/php7/php7.y:4580 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7272,7 +7272,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4595 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7284,7 +7284,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4605 + // line internal/php7/php7.y:4605 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7306,7 +7306,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4625 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7326,13 +7326,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4646 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4650 + // line internal/php7/php7.y:4650 { yyVAL.list = append( yyDollar[1].list, @@ -7347,13 +7347,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4663 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4667 + // line internal/php7/php7.y:4667 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7368,7 +7368,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4683 + // line internal/php7/php7.y:4683 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7385,7 +7385,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4698 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7410,7 +7410,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4721 + // line internal/php7/php7.y:4721 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7440,7 +7440,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4749 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7458,7 +7458,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4765 + // line internal/php7/php7.y:4765 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7482,7 +7482,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4787 + // line internal/php7/php7.y:4787 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7514,7 +7514,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4817 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7527,7 +7527,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4831 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7539,7 +7539,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4841 + // line internal/php7/php7.y:4841 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7562,7 +7562,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4862 + // line internal/php7/php7.y:4862 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7595,7 +7595,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4893 + // line internal/php7/php7.y:4893 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7612,7 +7612,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4911 + // line internal/php7/php7.y:4911 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7631,7 +7631,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4928 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7645,7 +7645,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4940 + // line internal/php7/php7.y:4940 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7657,7 +7657,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7669,7 +7669,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4960 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7683,7 +7683,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4972 + // line internal/php7/php7.y:4972 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7695,7 +7695,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4982 + // line internal/php7/php7.y:4982 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7707,7 +7707,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4995 + // line internal/php7/php7.y:4995 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7715,7 +7715,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5001 + // line internal/php7/php7.y:5001 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7724,7 +7724,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5011 + // line internal/php7/php7.y:5011 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 7390dd6..25adcd7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2804,65 +2804,65 @@ new_expr: expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { - listNode := &ast.ExprList{ + $$ = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), + Position: position.NewTokenNodePosition($1, $6), }, - ListTkn: $1, - OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $4, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + }, + EqualTkn: $5, + Expr: $6, } - $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | '[' array_pair_list ']' '=' expr { - listNode := &ast.ExprList{ + $$ = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), + Position: position.NewTokenNodePosition($1, $5), }, - OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $3, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + }, + EqualTkn: $4, + Expr: $5, } - $$ = &ast.ExprAssign{ast.Node{}, listNode, $5} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $4.SkippedTokens) } | variable '=' expr { - $$ = &ast.ExprAssign{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable '=' '&' expr { - $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) + $$ = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Var: $1, + EqualTkn: $2, + AmpersandTkn: $3, + Expr: $4, + } } | T_CLONE expr { @@ -2876,146 +2876,146 @@ expr_without_variable: } | variable T_PLUS_EQUAL expr { - $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MINUS_EQUAL expr { - $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MUL_EQUAL expr { - $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_POW_EQUAL expr { - $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_DIV_EQUAL expr { - $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_CONCAT_EQUAL expr { - $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MOD_EQUAL expr { - $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_AND_EQUAL expr { - $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_OR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_XOR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SL_EQUAL expr { - $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SR_EQUAL expr { - $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_COALESCE_EQUAL expr { - $$ = &ast.ExprAssignCoalesce{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_INC { @@ -3059,189 +3059,190 @@ expr_without_variable: } | expr T_BOOLEAN_OR expr { - $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_BOOLEAN_AND expr { - $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_OR expr { - $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_AND expr { - $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_XOR expr { - $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '|' expr { - $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '&' expr { - $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '^' expr { - $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '.' expr { - $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '+' expr { - $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '-' expr { - $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '*' expr { - $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_POW expr { - $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '/' expr { - $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '%' expr { - $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SL expr { - $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SR expr { - $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | '+' expr %prec T_INC { @@ -3285,103 +3286,102 @@ expr_without_variable: } | expr T_IS_IDENTICAL expr { - $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_IDENTICAL expr { - $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_EQUAL expr { - $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_EQUAL expr { - $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '<' expr { - $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_SMALLER_OR_EQUAL expr { - $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '>' expr { - $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_GREATER_OR_EQUAL expr { - $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SPACESHIP expr { - $$ = &ast.ExprBinarySpaceship{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySpaceship{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_INSTANCEOF class_name_reference { @@ -3440,14 +3440,14 @@ expr_without_variable: } | expr T_COALESCE expr { - $$ = &ast.ExprBinaryCoalesce{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | internal_functions_in_yacc { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index a4599b4..ccea997 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1529,8 +1529,9 @@ func (n *ExprCastUnset) Accept(v NodeVisitor) { // ExprAssign node type ExprAssign struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssign) Accept(v NodeVisitor) { @@ -1540,8 +1541,10 @@ func (n *ExprAssign) Accept(v NodeVisitor) { // ExprAssignReference node type ExprAssignReference struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + AmpersandTkn *token.Token + Expr Vertex } func (n *ExprAssignReference) Accept(v NodeVisitor) { @@ -1551,8 +1554,9 @@ func (n *ExprAssignReference) Accept(v NodeVisitor) { // ExprAssignBitwiseAnd node type ExprAssignBitwiseAnd struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { @@ -1562,8 +1566,9 @@ func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { // ExprAssignBitwiseOr node type ExprAssignBitwiseOr struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { @@ -1573,8 +1578,9 @@ func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { // ExprAssignBitwiseXor node type ExprAssignBitwiseXor struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { @@ -1584,8 +1590,9 @@ func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { // ExprAssignCoalesce node type ExprAssignCoalesce struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { @@ -1595,8 +1602,9 @@ func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { // ExprAssignConcat node type ExprAssignConcat struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignConcat) Accept(v NodeVisitor) { @@ -1606,8 +1614,9 @@ func (n *ExprAssignConcat) Accept(v NodeVisitor) { // ExprAssignDiv node type ExprAssignDiv struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignDiv) Accept(v NodeVisitor) { @@ -1617,8 +1626,9 @@ func (n *ExprAssignDiv) Accept(v NodeVisitor) { // ExprAssignMinus node type ExprAssignMinus struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignMinus) Accept(v NodeVisitor) { @@ -1628,8 +1638,9 @@ func (n *ExprAssignMinus) Accept(v NodeVisitor) { // ExprAssignMod node type ExprAssignMod struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignMod) Accept(v NodeVisitor) { @@ -1639,8 +1650,9 @@ func (n *ExprAssignMod) Accept(v NodeVisitor) { // ExprAssignMul node type ExprAssignMul struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignMul) Accept(v NodeVisitor) { @@ -1650,8 +1662,9 @@ func (n *ExprAssignMul) Accept(v NodeVisitor) { // ExprAssignPlus node type ExprAssignPlus struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignPlus) Accept(v NodeVisitor) { @@ -1661,8 +1674,9 @@ func (n *ExprAssignPlus) Accept(v NodeVisitor) { // ExprAssignPow node type ExprAssignPow struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignPow) Accept(v NodeVisitor) { @@ -1672,8 +1686,9 @@ func (n *ExprAssignPow) Accept(v NodeVisitor) { // ExprAssignShiftLeft node type ExprAssignShiftLeft struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { @@ -1683,8 +1698,9 @@ func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { // ExprAssignShiftRight node type ExprAssignShiftRight struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { @@ -1695,6 +1711,7 @@ func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { type ExprBinaryBitwiseAnd struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1706,6 +1723,7 @@ func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) { type ExprBinaryBitwiseOr struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1717,6 +1735,7 @@ func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) { type ExprBinaryBitwiseXor struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1728,6 +1747,7 @@ func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) { type ExprBinaryBooleanAnd struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1739,6 +1759,7 @@ func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) { type ExprBinaryBooleanOr struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1750,6 +1771,7 @@ func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) { type ExprBinaryCoalesce struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1761,6 +1783,7 @@ func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) { type ExprBinaryConcat struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1772,6 +1795,7 @@ func (n *ExprBinaryConcat) Accept(v NodeVisitor) { type ExprBinaryDiv struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1783,6 +1807,7 @@ func (n *ExprBinaryDiv) Accept(v NodeVisitor) { type ExprBinaryEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1794,6 +1819,7 @@ func (n *ExprBinaryEqual) Accept(v NodeVisitor) { type ExprBinaryGreater struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1805,6 +1831,7 @@ func (n *ExprBinaryGreater) Accept(v NodeVisitor) { type ExprBinaryGreaterOrEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1816,6 +1843,7 @@ func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) { type ExprBinaryIdentical struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1827,6 +1855,7 @@ func (n *ExprBinaryIdentical) Accept(v NodeVisitor) { type ExprBinaryLogicalAnd struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1838,6 +1867,7 @@ func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) { type ExprBinaryLogicalOr struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1849,6 +1879,7 @@ func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) { type ExprBinaryLogicalXor struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1860,6 +1891,7 @@ func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) { type ExprBinaryMinus struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1871,6 +1903,7 @@ func (n *ExprBinaryMinus) Accept(v NodeVisitor) { type ExprBinaryMod struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1882,6 +1915,7 @@ func (n *ExprBinaryMod) Accept(v NodeVisitor) { type ExprBinaryMul struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1893,6 +1927,7 @@ func (n *ExprBinaryMul) Accept(v NodeVisitor) { type ExprBinaryNotEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1904,6 +1939,7 @@ func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) { type ExprBinaryNotIdentical struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1915,6 +1951,7 @@ func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) { type ExprBinaryPlus struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1926,6 +1963,7 @@ func (n *ExprBinaryPlus) Accept(v NodeVisitor) { type ExprBinaryPow struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1937,6 +1975,7 @@ func (n *ExprBinaryPow) Accept(v NodeVisitor) { type ExprBinaryShiftLeft struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1948,6 +1987,7 @@ func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) { type ExprBinaryShiftRight struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1959,6 +1999,7 @@ func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) { type ExprBinarySmaller struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1970,6 +2011,7 @@ func (n *ExprBinarySmaller) Accept(v NodeVisitor) { type ExprBinarySmallerOrEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1981,6 +2023,7 @@ func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) { type ExprBinarySpaceship struct { Node Left Vertex + OpTkn *token.Token Right Vertex }