diff --git a/php5/php5.go b/php5/php5.go index 181e7d2..eec29c4 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:6792 +//line php5/php5.y:6794 type simpleIndirectReference struct { all []*expr.Variable @@ -2431,10 +2431,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yylex.(*Parser).Begin(scanner.HALT_COMPILER) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:378 + //line php5/php5.y:380 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2451,7 +2453,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:393 + //line php5/php5.y:395 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2469,7 +2471,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:409 + //line php5/php5.y:411 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2485,7 +2487,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:423 + //line php5/php5.y:425 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2500,7 +2502,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:436 + //line php5/php5.y:438 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2518,7 +2520,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:452 + //line php5/php5.y:454 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2536,7 +2538,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:468 + //line php5/php5.y:470 { yyVAL.node = yyDollar[1].node @@ -2550,7 +2552,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:483 + //line php5/php5.y:485 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2561,7 +2563,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:492 + //line php5/php5.y:494 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2569,7 +2571,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:501 + //line php5/php5.y:503 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2582,7 +2584,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:512 + //line php5/php5.y:514 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2601,7 +2603,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:529 + //line php5/php5.y:531 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2617,7 +2619,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:543 + //line php5/php5.y:545 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2637,7 +2639,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:564 + //line php5/php5.y:566 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2648,7 +2650,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:573 + //line php5/php5.y:575 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2656,7 +2658,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:582 + //line php5/php5.y:584 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2669,7 +2671,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:593 + //line php5/php5.y:595 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2688,7 +2690,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:610 + //line php5/php5.y:612 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2704,7 +2706,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:624 + //line php5/php5.y:626 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2724,7 +2726,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:645 + //line php5/php5.y:647 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2735,7 +2737,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:654 + //line php5/php5.y:656 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2743,7 +2745,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:663 + //line php5/php5.y:665 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2756,7 +2758,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:674 + //line php5/php5.y:676 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2775,7 +2777,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:691 + //line php5/php5.y:693 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2791,7 +2793,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:705 + //line php5/php5.y:707 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2811,7 +2813,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:726 + //line php5/php5.y:728 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -2833,7 +2835,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:746 + //line php5/php5.y:748 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -2854,7 +2856,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:768 + //line php5/php5.y:770 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2864,7 +2866,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:776 + //line php5/php5.y:778 { yyVAL.list = []node.Node{} @@ -2872,7 +2874,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:786 + //line php5/php5.y:788 { // error yyVAL.node = nil @@ -2881,7 +2883,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:793 + //line php5/php5.y:795 { yyVAL.node = yyDollar[1].node @@ -2889,7 +2891,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:799 + //line php5/php5.y:801 { yyVAL.node = yyDollar[1].node @@ -2897,7 +2899,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:805 + //line php5/php5.y:807 { yyVAL.node = yyDollar[1].node @@ -2905,7 +2907,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:811 + //line php5/php5.y:813 { yyVAL.node = stmt.NewHaltCompiler() @@ -2922,7 +2924,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:830 + //line php5/php5.y:832 { yyVAL.node = yyDollar[1].node @@ -2930,7 +2932,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:836 + //line php5/php5.y:838 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -2947,7 +2949,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:854 + //line php5/php5.y:856 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -2962,7 +2964,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:867 + //line php5/php5.y:869 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -2982,7 +2984,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:885 + //line php5/php5.y:887 { stmts := stmt.NewStmtList(yyDollar[4].list) yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) @@ -3001,7 +3003,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:902 + //line php5/php5.y:904 { switch n := yyDollar[3].node.(type) { case *stmt.While: @@ -3022,7 +3024,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:921 + //line php5/php5.y:923 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) @@ -3038,7 +3040,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:935 + //line php5/php5.y:937 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3067,7 +3069,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:962 + //line php5/php5.y:964 { switch n := yyDollar[3].node.(type) { case *stmt.Switch: @@ -3090,7 +3092,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:983 + //line php5/php5.y:985 { yyVAL.node = stmt.NewBreak(nil) @@ -3105,7 +3107,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:996 + //line php5/php5.y:998 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3120,7 +3122,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1009 + //line php5/php5.y:1011 { yyVAL.node = stmt.NewContinue(nil) @@ -3135,7 +3137,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1022 + //line php5/php5.y:1024 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3150,7 +3152,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1035 + //line php5/php5.y:1037 { yyVAL.node = stmt.NewReturn(nil) @@ -3165,7 +3167,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1048 + //line php5/php5.y:1050 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3180,7 +3182,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1061 + //line php5/php5.y:1063 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3195,7 +3197,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1074 + //line php5/php5.y:1076 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3209,7 +3211,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1086 + //line php5/php5.y:1088 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3224,7 +3226,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1099 + //line php5/php5.y:1101 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3239,7 +3241,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1112 + //line php5/php5.y:1114 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3254,7 +3256,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1125 + //line php5/php5.y:1127 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3268,7 +3270,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1137 + //line php5/php5.y:1139 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3282,7 +3284,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1149 + //line php5/php5.y:1151 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3299,7 +3301,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1164 + //line php5/php5.y:1166 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3338,7 +3340,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1201 + //line php5/php5.y:1203 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3377,7 +3379,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1238 + //line php5/php5.y:1240 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3393,7 +3395,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1252 + //line php5/php5.y:1254 { yyVAL.node = stmt.NewNop() @@ -3407,7 +3409,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1264 + //line php5/php5.y:1266 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3427,7 +3429,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1282 + //line php5/php5.y:1284 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3442,7 +3444,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1295 + //line php5/php5.y:1297 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3460,7 +3462,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1314 + //line php5/php5.y:1316 { yyVAL.list = []node.Node{} @@ -3468,7 +3470,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1320 + //line php5/php5.y:1322 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3492,7 +3494,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1345 + //line php5/php5.y:1347 { yyVAL.node = nil @@ -3500,7 +3502,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1351 + //line php5/php5.y:1353 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3516,7 +3518,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1368 + //line php5/php5.y:1370 { yyVAL.list = yyDollar[1].list @@ -3524,7 +3526,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1374 + //line php5/php5.y:1376 { yyVAL.list = []node.Node{} @@ -3532,7 +3534,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1383 + //line php5/php5.y:1385 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3540,7 +3542,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1389 + //line php5/php5.y:1391 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3548,7 +3550,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1398 + //line php5/php5.y:1400 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3571,7 +3573,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1422 + //line php5/php5.y:1424 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3579,7 +3581,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1428 + //line php5/php5.y:1430 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3590,7 +3592,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1440 + //line php5/php5.y:1442 { yyVAL.node = yyDollar[1].node @@ -3598,7 +3600,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1449 + //line php5/php5.y:1451 { yyVAL.node = yyDollar[1].node @@ -3606,7 +3608,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1458 + //line php5/php5.y:1460 { yyVAL.node = yyDollar[1].node @@ -3614,31 +3616,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1467 + //line php5/php5.y:1469 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1471 + //line php5/php5.y:1473 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1478 + //line php5/php5.y:1480 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1482 + //line php5/php5.y:1484 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1489 + //line php5/php5.y:1491 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") @@ -3662,7 +3664,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1514 + //line php5/php5.y:1516 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3692,7 +3694,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1542 + //line php5/php5.y:1544 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3710,7 +3712,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1562 + //line php5/php5.y:1564 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3724,7 +3726,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1574 + //line php5/php5.y:1576 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3741,7 +3743,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1589 + //line php5/php5.y:1591 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3755,7 +3757,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1601 + //line php5/php5.y:1603 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3772,7 +3774,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1619 + //line php5/php5.y:1621 { yyVAL.ClassExtends = nil @@ -3780,7 +3782,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1625 + //line php5/php5.y:1627 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3794,13 +3796,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1640 + //line php5/php5.y:1642 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1647 + //line php5/php5.y:1649 { yyVAL.InterfaceExtends = nil @@ -3808,7 +3810,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1653 + //line php5/php5.y:1655 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3822,7 +3824,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1668 + //line php5/php5.y:1670 { yyVAL.ClassImplements = nil @@ -3830,7 +3832,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1674 + //line php5/php5.y:1676 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3844,7 +3846,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1689 + //line php5/php5.y:1691 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3852,7 +3854,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1695 + //line php5/php5.y:1697 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3863,7 +3865,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1707 + //line php5/php5.y:1709 { yyVAL.node = nil @@ -3871,7 +3873,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1713 + //line php5/php5.y:1715 { yyVAL.node = yyDollar[2].node @@ -3882,7 +3884,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1725 + //line php5/php5.y:1727 { yyVAL.node = yyDollar[1].node @@ -3890,7 +3892,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1731 + //line php5/php5.y:1733 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3904,7 +3906,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1743 + //line php5/php5.y:1745 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -3920,7 +3922,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1760 + //line php5/php5.y:1762 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -3931,7 +3933,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1769 + //line php5/php5.y:1771 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -3949,7 +3951,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1788 + //line php5/php5.y:1790 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -3960,7 +3962,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1797 + //line php5/php5.y:1799 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -3978,7 +3980,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1817 + //line php5/php5.y:1819 { yyVAL.node = yyDollar[1].node @@ -3986,7 +3988,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1823 + //line php5/php5.y:1825 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -4002,7 +4004,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1841 + //line php5/php5.y:1843 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -4020,7 +4022,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1857 + //line php5/php5.y:1859 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4039,7 +4041,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1878 + //line php5/php5.y:1880 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4056,7 +4058,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1893 + //line php5/php5.y:1895 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4074,7 +4076,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1909 + //line php5/php5.y:1911 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4092,7 +4094,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1925 + //line php5/php5.y:1927 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4112,7 +4114,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1947 + //line php5/php5.y:1949 { yyVAL.list = []node.Node{} @@ -4120,7 +4122,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1953 + //line php5/php5.y:1955 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4136,7 +4138,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1967 + //line php5/php5.y:1969 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4152,19 +4154,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1985 + //line php5/php5.y:1987 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1989 + //line php5/php5.y:1991 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1997 + //line php5/php5.y:1999 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4175,7 +4177,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2006 + //line php5/php5.y:2008 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4193,7 +4195,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2027 + //line php5/php5.y:2029 { yyVAL.list = nil @@ -4201,7 +4203,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2033 + //line php5/php5.y:2035 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4216,7 +4218,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2050 + //line php5/php5.y:2052 { yyVAL.list = nil @@ -4224,7 +4226,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2056 + //line php5/php5.y:2058 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -4242,7 +4244,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2076 + //line php5/php5.y:2078 { yyVAL.node = nil @@ -4250,7 +4252,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2082 + //line php5/php5.y:2084 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -4264,7 +4266,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2098 + //line php5/php5.y:2100 { yyVAL.node = nil @@ -4272,7 +4274,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2104 + //line php5/php5.y:2106 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4289,7 +4291,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2123 + //line php5/php5.y:2125 { yyVAL.list = yyDollar[1].list @@ -4297,7 +4299,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2129 + //line php5/php5.y:2131 { yyVAL.list = nil @@ -4305,7 +4307,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2138 + //line php5/php5.y:2140 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4313,7 +4315,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2144 + //line php5/php5.y:2146 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4324,7 +4326,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2156 + //line php5/php5.y:2158 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4356,7 +4358,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2186 + //line php5/php5.y:2188 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4389,7 +4391,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2221 + //line php5/php5.y:2223 { yyVAL.node = nil @@ -4397,7 +4399,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2227 + //line php5/php5.y:2229 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4411,7 +4413,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2239 + //line php5/php5.y:2241 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4425,7 +4427,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2251 + //line php5/php5.y:2253 { yyVAL.node = yyDollar[1].node @@ -4433,7 +4435,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2261 + //line php5/php5.y:2263 { yyVAL.node = node.NewArgumentList(nil) @@ -4448,7 +4450,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2274 + //line php5/php5.y:2276 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4463,7 +4465,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2287 + //line php5/php5.y:2289 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4480,7 +4482,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2306 + //line php5/php5.y:2308 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4488,7 +4490,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2312 + //line php5/php5.y:2314 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4499,7 +4501,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2324 + //line php5/php5.y:2326 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4510,7 +4512,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2333 + //line php5/php5.y:2335 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4521,7 +4523,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2342 + //line php5/php5.y:2344 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4535,7 +4537,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2354 + //line php5/php5.y:2356 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4549,7 +4551,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2369 + //line php5/php5.y:2371 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4560,7 +4562,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2378 + //line php5/php5.y:2380 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4568,7 +4570,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2388 + //line php5/php5.y:2390 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4584,7 +4586,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2402 + //line php5/php5.y:2404 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4598,7 +4600,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2414 + //line php5/php5.y:2416 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4614,7 +4616,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2432 + //line php5/php5.y:2434 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4634,7 +4636,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2450 + //line php5/php5.y:2452 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4655,7 +4657,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2469 + //line php5/php5.y:2471 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4674,7 +4676,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2486 + //line php5/php5.y:2488 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4694,7 +4696,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2508 + //line php5/php5.y:2510 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4702,7 +4704,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2514 + //line php5/php5.y:2516 { yyVAL.list = []node.Node{} @@ -4710,7 +4712,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2524 + //line php5/php5.y:2526 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4724,7 +4726,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2536 + //line php5/php5.y:2538 { yyVAL.node = yyDollar[1].node @@ -4738,7 +4740,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2548 + //line php5/php5.y:2550 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4748,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2554 + //line php5/php5.y:2556 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[6].list, nil, yyDollar[8].node, "") @@ -4772,7 +4774,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2581 + //line php5/php5.y:2583 { var adaptationList *stmt.TraitAdaptationList switch n := yyDollar[3].node.(type) { @@ -4793,7 +4795,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2603 + //line php5/php5.y:2605 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4801,7 +4803,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2609 + //line php5/php5.y:2611 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4812,7 +4814,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2621 + //line php5/php5.y:2623 { yyVAL.node = stmt.NewNop() @@ -4825,7 +4827,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2633 + //line php5/php5.y:2635 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4839,7 +4841,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2648 + //line php5/php5.y:2650 { yyVAL.list = nil @@ -4847,7 +4849,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2654 + //line php5/php5.y:2656 { yyVAL.list = yyDollar[1].list @@ -4855,7 +4857,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2663 + //line php5/php5.y:2665 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4863,7 +4865,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2669 + //line php5/php5.y:2671 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4871,7 +4873,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2678 + //line php5/php5.y:2680 { yyVAL.node = yyDollar[1].node @@ -4882,7 +4884,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2687 + //line php5/php5.y:2689 { yyVAL.node = yyDollar[1].node @@ -4893,7 +4895,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2699 + //line php5/php5.y:2701 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4907,7 +4909,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2714 + //line php5/php5.y:2716 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4915,7 +4917,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2720 + //line php5/php5.y:2722 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4926,7 +4928,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2732 + //line php5/php5.y:2734 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4942,7 +4944,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2746 + //line php5/php5.y:2748 { yyVAL.node = yyDollar[1].node @@ -4950,7 +4952,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2755 + //line php5/php5.y:2757 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4967,7 +4969,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2773 + //line php5/php5.y:2775 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4984,7 +4986,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2788 + //line php5/php5.y:2790 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4998,7 +5000,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2803 + //line php5/php5.y:2805 { yyVAL.node = nil @@ -5006,7 +5008,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2809 + //line php5/php5.y:2811 { yyVAL.node = yyDollar[1].node @@ -5014,7 +5016,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2818 + //line php5/php5.y:2820 { yyVAL.node = stmt.NewNop() @@ -5028,7 +5030,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2830 + //line php5/php5.y:2832 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5043,7 +5045,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2846 + //line php5/php5.y:2848 { yyVAL.list = yyDollar[1].list @@ -5051,7 +5053,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2852 + //line php5/php5.y:2854 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5066,7 +5068,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2868 + //line php5/php5.y:2870 { yyVAL.list = nil @@ -5074,7 +5076,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2874 + //line php5/php5.y:2876 { yyVAL.list = yyDollar[1].list @@ -5082,7 +5084,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2883 + //line php5/php5.y:2885 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5090,7 +5092,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2889 + //line php5/php5.y:2891 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5098,7 +5100,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2898 + //line php5/php5.y:2900 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5112,7 +5114,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2910 + //line php5/php5.y:2912 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5126,7 +5128,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2922 + //line php5/php5.y:2924 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5140,7 +5142,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2934 + //line php5/php5.y:2936 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5154,7 +5156,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2946 + //line php5/php5.y:2948 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5168,7 +5170,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2958 + //line php5/php5.y:2960 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5182,7 +5184,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2973 + //line php5/php5.y:2975 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5202,7 +5204,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2991 + //line php5/php5.y:2993 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5223,7 +5225,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3010 + //line php5/php5.y:3012 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5242,7 +5244,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3027 + //line php5/php5.y:3029 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5262,7 +5264,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3048 + //line php5/php5.y:3050 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -5284,7 +5286,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3068 + //line php5/php5.y:3070 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5304,7 +5306,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3089 + //line php5/php5.y:3091 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5315,7 +5317,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3098 + //line php5/php5.y:3100 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5323,7 +5325,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3108 + //line php5/php5.y:3110 { yyVAL.list = nil @@ -5331,7 +5333,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3114 + //line php5/php5.y:3116 { yyVAL.list = yyDollar[1].list @@ -5339,7 +5341,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3123 + //line php5/php5.y:3125 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5350,7 +5352,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3132 + //line php5/php5.y:3134 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5358,7 +5360,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3141 + //line php5/php5.y:3143 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5366,7 +5368,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3147 + //line php5/php5.y:3149 { yyVAL.list = yyDollar[1].list @@ -5374,7 +5376,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3156 + //line php5/php5.y:3158 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5390,7 +5392,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3170 + //line php5/php5.y:3172 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5406,7 +5408,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3187 + //line php5/php5.y:3189 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5414,7 +5416,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3193 + //line php5/php5.y:3195 { yyVAL.list = yyDollar[1].list @@ -5422,7 +5424,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3199 + //line php5/php5.y:3201 { yyVAL.list = yyDollar[1].list @@ -5430,7 +5432,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3208 + //line php5/php5.y:3210 { yyVAL.list = nil @@ -5438,7 +5440,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3214 + //line php5/php5.y:3216 { yyVAL.list = yyDollar[1].list @@ -5446,7 +5448,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3223 + //line php5/php5.y:3225 { if yyDollar[3].node != nil { @@ -5464,7 +5466,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3242 + //line php5/php5.y:3244 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5483,7 +5485,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3259 + //line php5/php5.y:3261 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5497,7 +5499,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3271 + //line php5/php5.y:3273 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5512,7 +5514,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3284 + //line php5/php5.y:3286 { var _new *expr.New @@ -5540,7 +5542,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3310 + //line php5/php5.y:3312 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5554,7 +5556,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3322 + //line php5/php5.y:3324 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5568,7 +5570,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3334 + //line php5/php5.y:3336 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5582,7 +5584,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3346 + //line php5/php5.y:3348 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5596,7 +5598,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3358 + //line php5/php5.y:3360 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5610,7 +5612,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3370 + //line php5/php5.y:3372 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5624,7 +5626,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3382 + //line php5/php5.y:3384 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5638,7 +5640,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3394 + //line php5/php5.y:3396 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5652,7 +5654,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3406 + //line php5/php5.y:3408 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5666,7 +5668,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3418 + //line php5/php5.y:3420 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5680,7 +5682,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3430 + //line php5/php5.y:3432 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5694,7 +5696,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3442 + //line php5/php5.y:3444 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5708,7 +5710,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3454 + //line php5/php5.y:3456 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5722,7 +5724,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3466 + //line php5/php5.y:3468 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5736,7 +5738,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3478 + //line php5/php5.y:3480 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5750,7 +5752,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3490 + //line php5/php5.y:3492 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5764,7 +5766,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3502 + //line php5/php5.y:3504 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5778,7 +5780,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3514 + //line php5/php5.y:3516 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5792,7 +5794,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3526 + //line php5/php5.y:3528 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5806,7 +5808,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3538 + //line php5/php5.y:3540 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5820,7 +5822,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3550 + //line php5/php5.y:3552 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5834,7 +5836,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3562 + //line php5/php5.y:3564 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5848,7 +5850,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3574 + //line php5/php5.y:3576 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5862,7 +5864,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3586 + //line php5/php5.y:3588 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5876,7 +5878,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3598 + //line php5/php5.y:3600 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5890,7 +5892,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3610 + //line php5/php5.y:3612 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5904,7 +5906,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3622 + //line php5/php5.y:3624 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5918,7 +5920,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3634 + //line php5/php5.y:3636 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5932,7 +5934,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3646 + //line php5/php5.y:3648 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5946,7 +5948,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3658 + //line php5/php5.y:3660 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5960,7 +5962,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3670 + //line php5/php5.y:3672 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5974,7 +5976,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3682 + //line php5/php5.y:3684 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5988,7 +5990,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3694 + //line php5/php5.y:3696 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6002,7 +6004,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3706 + //line php5/php5.y:3708 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6016,7 +6018,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3718 + //line php5/php5.y:3720 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6030,7 +6032,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3730 + //line php5/php5.y:3732 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6044,7 +6046,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3742 + //line php5/php5.y:3744 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6058,7 +6060,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3754 + //line php5/php5.y:3756 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6072,7 +6074,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3766 + //line php5/php5.y:3768 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6086,7 +6088,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3778 + //line php5/php5.y:3780 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6100,7 +6102,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3790 + //line php5/php5.y:3792 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6114,7 +6116,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3802 + //line php5/php5.y:3804 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6128,7 +6130,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3814 + //line php5/php5.y:3816 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6142,7 +6144,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3826 + //line php5/php5.y:3828 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6156,7 +6158,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3838 + //line php5/php5.y:3840 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6170,7 +6172,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3850 + //line php5/php5.y:3852 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6184,7 +6186,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3862 + //line php5/php5.y:3864 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6198,7 +6200,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3874 + //line php5/php5.y:3876 { yyVAL.node = yyDollar[1].node @@ -6206,7 +6208,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3880 + //line php5/php5.y:3882 { yyVAL.node = yyDollar[1].node @@ -6214,7 +6216,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3886 + //line php5/php5.y:3888 { yyVAL.node = yyDollar[2].node @@ -6245,7 +6247,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3915 + //line php5/php5.y:3917 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6260,7 +6262,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3928 + //line php5/php5.y:3930 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6275,7 +6277,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3941 + //line php5/php5.y:3943 { yyVAL.node = yyDollar[1].node @@ -6283,7 +6285,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3947 + //line php5/php5.y:3949 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6297,7 +6299,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3959 + //line php5/php5.y:3961 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6311,7 +6313,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3971 + //line php5/php5.y:3973 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6325,7 +6327,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3983 + //line php5/php5.y:3985 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6339,7 +6341,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3995 + //line php5/php5.y:3997 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6353,7 +6355,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4007 + //line php5/php5.y:4009 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6367,7 +6369,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4019 + //line php5/php5.y:4021 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6381,7 +6383,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4031 + //line php5/php5.y:4033 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(nil) @@ -6413,7 +6415,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4061 + //line php5/php5.y:4063 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6427,7 +6429,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4073 + //line php5/php5.y:4075 { yyVAL.node = yyDollar[1].node @@ -6435,7 +6437,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4079 + //line php5/php5.y:4081 { yyVAL.node = yyDollar[1].node @@ -6443,7 +6445,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4085 + //line php5/php5.y:4087 { yyVAL.node = yyDollar[1].node @@ -6451,7 +6453,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4091 + //line php5/php5.y:4093 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6466,7 +6468,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4104 + //line php5/php5.y:4106 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6480,7 +6482,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4116 + //line php5/php5.y:4118 { yyVAL.node = expr.NewYield(nil, nil) @@ -6494,7 +6496,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4128 + //line php5/php5.y:4130 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6515,7 +6517,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4147 + //line php5/php5.y:4149 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6537,7 +6539,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4170 + //line php5/php5.y:4172 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6551,7 +6553,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4182 + //line php5/php5.y:4184 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6565,7 +6567,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4194 + //line php5/php5.y:4196 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6580,7 +6582,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4207 + //line php5/php5.y:4209 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6595,7 +6597,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4223 + //line php5/php5.y:4225 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6610,7 +6612,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4236 + //line php5/php5.y:4238 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6625,7 +6627,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4249 + //line php5/php5.y:4251 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6642,7 +6644,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4264 + //line php5/php5.y:4266 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6657,7 +6659,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4280 + //line php5/php5.y:4282 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6673,7 +6675,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4294 + //line php5/php5.y:4296 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6688,13 +6690,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4310 + //line php5/php5.y:4312 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4317 + //line php5/php5.y:4319 { yyVAL.ClosureUse = nil @@ -6702,7 +6704,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4323 + //line php5/php5.y:4325 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6712,7 +6714,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4334 + //line php5/php5.y:4336 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6730,7 +6732,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4350 + //line php5/php5.y:4352 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6750,7 +6752,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4368 + //line php5/php5.y:4370 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6767,7 +6769,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4383 + //line php5/php5.y:4385 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6787,7 +6789,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4404 + //line php5/php5.y:4406 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -6800,7 +6802,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4415 + //line php5/php5.y:4417 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -6817,7 +6819,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4430 + //line php5/php5.y:4432 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -6833,7 +6835,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4444 + //line php5/php5.y:4446 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6847,7 +6849,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4456 + //line php5/php5.y:4458 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6861,7 +6863,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4468 + //line php5/php5.y:4470 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6875,7 +6877,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4480 + //line php5/php5.y:4482 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6889,7 +6891,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4492 + //line php5/php5.y:4494 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6900,7 +6902,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4504 + //line php5/php5.y:4506 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6914,7 +6916,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4516 + //line php5/php5.y:4518 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -6925,7 +6927,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4525 + //line php5/php5.y:4527 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6940,7 +6942,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4538 + //line php5/php5.y:4540 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6954,7 +6956,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4553 + //line php5/php5.y:4555 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -6965,7 +6967,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4562 + //line php5/php5.y:4564 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6980,7 +6982,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4575 + //line php5/php5.y:4577 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6994,7 +6996,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4590 + //line php5/php5.y:4592 { yyVAL.node = yyDollar[1].node @@ -7002,7 +7004,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4596 + //line php5/php5.y:4598 { yyVAL.node = yyDollar[1].node @@ -7010,7 +7012,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4605 + //line php5/php5.y:4607 { yyVAL.node = yyDollar[1].node @@ -7049,7 +7051,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4642 + //line php5/php5.y:4644 { yyVAL.node = yyDollar[1].node @@ -7057,7 +7059,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4652 + //line php5/php5.y:4654 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7065,7 +7067,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4658 + //line php5/php5.y:4660 { yyVAL.list = []node.Node{} @@ -7073,7 +7075,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4668 + //line php5/php5.y:4670 { yyVAL.list = yyDollar[2].list @@ -7084,7 +7086,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4680 + //line php5/php5.y:4682 { yyVAL.node = nil @@ -7092,7 +7094,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4686 + //line php5/php5.y:4688 { yyVAL.node = expr.NewExit(nil) @@ -7107,7 +7109,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4699 + //line php5/php5.y:4701 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7118,7 +7120,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4711 + //line php5/php5.y:4713 { yyVAL.list = []node.Node{} @@ -7126,7 +7128,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4717 + //line php5/php5.y:4719 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -7134,7 +7136,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4723 + //line php5/php5.y:4725 { yyVAL.list = yyDollar[1].list @@ -7142,7 +7144,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4732 + //line php5/php5.y:4734 { yyVAL.node = nil @@ -7150,7 +7152,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4738 + //line php5/php5.y:4740 { yyVAL.node = yyDollar[1].node @@ -7158,7 +7160,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4747 + //line php5/php5.y:4749 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7172,7 +7174,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4759 + //line php5/php5.y:4761 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7186,7 +7188,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4771 + //line php5/php5.y:4773 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7200,7 +7202,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4783 + //line php5/php5.y:4785 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7214,7 +7216,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4795 + //line php5/php5.y:4797 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7228,7 +7230,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4807 + //line php5/php5.y:4809 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7242,7 +7244,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4819 + //line php5/php5.y:4821 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7256,7 +7258,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4831 + //line php5/php5.y:4833 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7270,7 +7272,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4843 + //line php5/php5.y:4845 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7284,7 +7286,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4855 + //line php5/php5.y:4857 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7298,7 +7300,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4867 + //line php5/php5.y:4869 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7314,7 +7316,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4881 + //line php5/php5.y:4883 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7328,7 +7330,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4896 + //line php5/php5.y:4898 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7345,7 +7347,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4914 + //line php5/php5.y:4916 { yyVAL.node = yyDollar[1].node @@ -7353,7 +7355,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4923 + //line php5/php5.y:4925 { yyVAL.node = yyDollar[1].node @@ -7361,7 +7363,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4929 + //line php5/php5.y:4931 { yyVAL.node = yyDollar[1].node @@ -7369,7 +7371,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4935 + //line php5/php5.y:4937 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7382,7 +7384,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4946 + //line php5/php5.y:4948 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7399,7 +7401,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4961 + //line php5/php5.y:4963 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7415,7 +7417,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4975 + //line php5/php5.y:4977 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7431,7 +7433,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4989 + //line php5/php5.y:4991 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7446,7 +7448,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5002 + //line php5/php5.y:5004 { yyVAL.node = yyDollar[1].node @@ -7454,7 +7456,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5008 + //line php5/php5.y:5010 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7468,7 +7470,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5020 + //line php5/php5.y:5022 { yyVAL.node = yyDollar[1].node @@ -7476,7 +7478,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5029 + //line php5/php5.y:5031 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7491,7 +7493,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5042 + //line php5/php5.y:5044 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7505,7 +7507,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5054 + //line php5/php5.y:5056 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7519,7 +7521,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5066 + //line php5/php5.y:5068 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7533,7 +7535,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5078 + //line php5/php5.y:5080 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7547,7 +7549,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5090 + //line php5/php5.y:5092 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7561,7 +7563,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5102 + //line php5/php5.y:5104 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7575,7 +7577,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5114 + //line php5/php5.y:5116 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7589,7 +7591,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5126 + //line php5/php5.y:5128 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7603,7 +7605,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5138 + //line php5/php5.y:5140 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7617,7 +7619,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5150 + //line php5/php5.y:5152 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7631,7 +7633,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5162 + //line php5/php5.y:5164 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7645,7 +7647,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5174 + //line php5/php5.y:5176 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -7659,7 +7661,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5186 + //line php5/php5.y:5188 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -7673,7 +7675,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5198 + //line php5/php5.y:5200 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -7687,7 +7689,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5210 + //line php5/php5.y:5212 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -7701,7 +7703,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5222 + //line php5/php5.y:5224 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -7715,7 +7717,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5234 + //line php5/php5.y:5236 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -7729,7 +7731,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5246 + //line php5/php5.y:5248 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -7743,7 +7745,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5258 + //line php5/php5.y:5260 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -7757,7 +7759,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5270 + //line php5/php5.y:5272 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7771,7 +7773,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5282 + //line php5/php5.y:5284 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7785,7 +7787,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5294 + //line php5/php5.y:5296 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -7799,7 +7801,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5306 + //line php5/php5.y:5308 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -7813,7 +7815,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5318 + //line php5/php5.y:5320 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -7827,7 +7829,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5330 + //line php5/php5.y:5332 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -7841,7 +7843,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5342 + //line php5/php5.y:5344 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7855,7 +7857,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5354 + //line php5/php5.y:5356 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7869,7 +7871,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5366 + //line php5/php5.y:5368 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -7884,7 +7886,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5379 + //line php5/php5.y:5381 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -7899,7 +7901,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5392 + //line php5/php5.y:5394 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -7913,7 +7915,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5404 + //line php5/php5.y:5406 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -7927,7 +7929,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5416 + //line php5/php5.y:5418 { yyVAL.node = yyDollar[2].node @@ -7939,7 +7941,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5429 + //line php5/php5.y:5431 { yyVAL.node = yyDollar[1].node @@ -7947,7 +7949,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5435 + //line php5/php5.y:5437 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7960,7 +7962,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5446 + //line php5/php5.y:5448 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7975,7 +7977,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5459 + //line php5/php5.y:5461 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7991,7 +7993,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5476 + //line php5/php5.y:5478 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8007,7 +8009,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5490 + //line php5/php5.y:5492 { yyVAL.node = yyDollar[1].node @@ -8015,7 +8017,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5496 + //line php5/php5.y:5498 { yyVAL.node = yyDollar[1].node @@ -8023,7 +8025,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5502 + //line php5/php5.y:5504 { yyVAL.node = yyDollar[1].node @@ -8031,7 +8033,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5508 + //line php5/php5.y:5510 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8045,7 +8047,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5520 + //line php5/php5.y:5522 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8059,7 +8061,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5532 + //line php5/php5.y:5534 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8073,7 +8075,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5547 + //line php5/php5.y:5549 { yyVAL.list = nil @@ -8081,7 +8083,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5553 + //line php5/php5.y:5555 { yyVAL.list = yyDollar[1].list @@ -8094,19 +8096,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5567 + //line php5/php5.y:5569 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5571 + //line php5/php5.y:5573 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5578 + //line php5/php5.y:5580 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8122,7 +8124,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5592 + //line php5/php5.y:5594 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8137,7 +8139,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5605 + //line php5/php5.y:5607 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8152,7 +8154,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5618 + //line php5/php5.y:5620 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8164,7 +8166,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5631 + //line php5/php5.y:5633 { yyVAL.node = yyDollar[1].node @@ -8172,7 +8174,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5637 + //line php5/php5.y:5639 { yyVAL.node = yyDollar[1].node @@ -8180,7 +8182,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5646 + //line php5/php5.y:5648 { yyVAL.node = yyDollar[2].node @@ -8188,7 +8190,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5652 + //line php5/php5.y:5654 { yyVAL.node = yyDollar[2].node @@ -8196,7 +8198,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5662 + //line php5/php5.y:5664 { yyVAL.node = yyDollar[1].node @@ -8204,7 +8206,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5672 + //line php5/php5.y:5674 { yyVAL.node = yyDollar[1].node @@ -8212,7 +8214,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5681 + //line php5/php5.y:5683 { yyVAL.node = yyDollar[1].node @@ -8220,7 +8222,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5690 + //line php5/php5.y:5692 { yyVAL.node = yyDollar[1].node @@ -8274,7 +8276,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5742 + //line php5/php5.y:5744 { yyVAL.node = yyDollar[1].node @@ -8282,7 +8284,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5751 + //line php5/php5.y:5753 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8290,7 +8292,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5757 + //line php5/php5.y:5759 { yyVAL.list = []node.Node{} @@ -8298,7 +8300,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5767 + //line php5/php5.y:5769 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8314,7 +8316,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5784 + //line php5/php5.y:5786 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8330,7 +8332,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5798 + //line php5/php5.y:5800 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8346,7 +8348,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5815 + //line php5/php5.y:5817 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8357,7 +8359,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5827 + //line php5/php5.y:5829 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8365,7 +8367,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5833 + //line php5/php5.y:5835 { yyVAL.list = yyDollar[1].list @@ -8373,7 +8375,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5839 + //line php5/php5.y:5841 { yyVAL.list = nil @@ -8381,7 +8383,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5848 + //line php5/php5.y:5850 { yyVAL.node = yyDollar[1].node @@ -8389,7 +8391,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5854 + //line php5/php5.y:5856 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8403,7 +8405,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5869 + //line php5/php5.y:5871 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8417,7 +8419,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5881 + //line php5/php5.y:5883 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8431,7 +8433,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5896 + //line php5/php5.y:5898 { yyVAL.node = yyDollar[1].node @@ -8439,7 +8441,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5905 + //line php5/php5.y:5907 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8454,7 +8456,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5918 + //line php5/php5.y:5920 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8469,7 +8471,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5934 + //line php5/php5.y:5936 { yyVAL.node = yyDollar[1].node @@ -8477,7 +8479,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5940 + //line php5/php5.y:5942 { yyVAL.node = yyDollar[1].node @@ -8485,7 +8487,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5946 + //line php5/php5.y:5948 { yyVAL.node = yyDollar[1].node @@ -8493,7 +8495,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5956 + //line php5/php5.y:5958 { yyVAL.node = yyDollar[1].node @@ -8501,7 +8503,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5962 + //line php5/php5.y:5964 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8515,7 +8517,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5974 + //line php5/php5.y:5976 { yyVAL.node = yyDollar[1].node @@ -8523,7 +8525,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5983 + //line php5/php5.y:5985 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8538,7 +8540,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5996 + //line php5/php5.y:5998 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8553,7 +8555,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6009 + //line php5/php5.y:6011 { yyVAL.node = yyDollar[1].node @@ -8561,7 +8563,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6019 + //line php5/php5.y:6021 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8577,7 +8579,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6033 + //line php5/php5.y:6035 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -8593,7 +8595,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6050 + //line php5/php5.y:6052 { yyVAL.node = nil @@ -8601,7 +8603,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6056 + //line php5/php5.y:6058 { yyVAL.node = yyDollar[1].node @@ -8609,7 +8611,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6066 + //line php5/php5.y:6068 { yyVAL.list = yyDollar[1].list @@ -8617,7 +8619,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6072 + //line php5/php5.y:6074 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8629,7 +8631,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6085 + //line php5/php5.y:6087 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8645,7 +8647,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6099 + //line php5/php5.y:6101 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8661,7 +8663,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6113 + //line php5/php5.y:6115 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8673,7 +8675,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6126 + //line php5/php5.y:6128 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -8687,7 +8689,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6138 + //line php5/php5.y:6140 { yyVAL.node = yyDollar[2].node @@ -8702,7 +8704,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6154 + //line php5/php5.y:6156 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -8717,7 +8719,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6167 + //line php5/php5.y:6169 { n := expr.NewVariable(nil) @@ -8736,7 +8738,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6187 + //line php5/php5.y:6189 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{nil} @@ -8753,7 +8755,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6202 + //line php5/php5.y:6204 { if yyDollar[1].node == nil { yyVAL.list = []node.Node{} @@ -8765,7 +8767,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6216 + //line php5/php5.y:6218 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -8776,7 +8778,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6225 + //line php5/php5.y:6227 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) @@ -8794,7 +8796,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6241 + //line php5/php5.y:6243 { yyVAL.node = nil @@ -8802,7 +8804,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6251 + //line php5/php5.y:6253 { yyVAL.list = []node.Node{} @@ -8810,7 +8812,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6257 + //line php5/php5.y:6259 { yyVAL.list = yyDollar[1].list @@ -8827,7 +8829,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6275 + //line php5/php5.y:6277 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8843,7 +8845,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6289 + //line php5/php5.y:6291 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8858,7 +8860,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6302 + //line php5/php5.y:6304 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8873,7 +8875,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6315 + //line php5/php5.y:6317 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8885,7 +8887,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6325 + //line php5/php5.y:6327 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) @@ -8904,7 +8906,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6342 + //line php5/php5.y:6344 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -8922,7 +8924,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6358 + //line php5/php5.y:6360 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) @@ -8940,7 +8942,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6374 + //line php5/php5.y:6376 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -8957,7 +8959,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6392 + //line php5/php5.y:6394 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8965,7 +8967,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6398 + //line php5/php5.y:6400 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8980,7 +8982,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6411 + //line php5/php5.y:6413 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8988,7 +8990,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6417 + //line php5/php5.y:6419 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9003,7 +9005,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6433 + //line php5/php5.y:6435 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9019,7 +9021,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6447 + //line php5/php5.y:6449 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9039,7 +9041,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6465 + //line php5/php5.y:6467 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9061,7 +9063,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6485 + //line php5/php5.y:6487 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -9076,7 +9078,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6498 + //line php5/php5.y:6500 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -9094,7 +9096,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6514 + //line php5/php5.y:6516 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -9116,7 +9118,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6534 + //line php5/php5.y:6536 { yyVAL.node = yyDollar[2].node @@ -9124,7 +9126,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6543 + //line php5/php5.y:6545 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9138,7 +9140,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6555 + //line php5/php5.y:6557 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9157,7 +9159,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6572 + //line php5/php5.y:6574 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9173,7 +9175,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6589 + //line php5/php5.y:6591 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9189,7 +9191,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6603 + //line php5/php5.y:6605 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9205,7 +9207,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6617 + //line php5/php5.y:6619 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9221,7 +9223,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6631 + //line php5/php5.y:6633 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9235,7 +9237,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6643 + //line php5/php5.y:6645 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9249,7 +9251,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6655 + //line php5/php5.y:6657 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9265,7 +9267,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6669 + //line php5/php5.y:6671 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9279,7 +9281,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6681 + //line php5/php5.y:6683 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9293,7 +9295,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6696 + //line php5/php5.y:6698 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9301,7 +9303,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6702 + //line php5/php5.y:6704 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9312,7 +9314,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6714 + //line php5/php5.y:6716 { yyVAL.node = yyDollar[1].node @@ -9320,7 +9322,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6720 + //line php5/php5.y:6722 { yyVAL.node = yyDollar[1].node @@ -9328,7 +9330,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6729 + //line php5/php5.y:6731 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9344,7 +9346,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6743 + //line php5/php5.y:6745 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9360,7 +9362,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6760 + //line php5/php5.y:6762 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9376,7 +9378,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6777 + //line php5/php5.y:6779 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) diff --git a/php5/php5.y b/php5/php5.y index 1f8add1..fab903c 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -373,6 +373,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yylex.(*Parser).Begin(scanner.HALT_COMPILER) } | T_NAMESPACE namespace_name ';' { diff --git a/php5/php5_test.go b/php5/php5_test.go index 16bebf8..e106b24 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -120,7 +120,6 @@ func TestPhp5(t *testing.T) { function foo() {} function foo() { - __halt_compiler(); function bar() {} class Baz {} return $a; @@ -132,7 +131,6 @@ func TestPhp5(t *testing.T) { global $a, $b, $$c, ${foo()}; a: goto a; - __halt_compiler(); if ($a) {} if ($a) {} elseif ($b) {} if ($a) {} else {} @@ -411,6 +409,10 @@ func TestPhp5(t *testing.T) { ${$a}; $foo::{$bar}(); $foo::bar; + + __halt_compiler(); + + parsing process must be terminated ` expectedParams := []node.Node{ @@ -1093,7 +1095,6 @@ func TestPhp5(t *testing.T) { PhpDocComment: "", FunctionName: &node.Identifier{Value: "foo"}, Stmts: []node.Node{ - &stmt.HaltCompiler{}, &stmt.Function{ ReturnsRef: false, PhpDocComment: "", @@ -1171,7 +1172,6 @@ func TestPhp5(t *testing.T) { &stmt.Goto{ Label: &node.Identifier{Value: "a"}, }, - &stmt.HaltCompiler{}, &stmt.If{ Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Stmt: &stmt.StmtList{Stmts: []node.Node{}}, @@ -3634,6 +3634,7 @@ func TestPhp5(t *testing.T) { ConstantName: &node.Identifier{Value: "bar"}, }, }, + &stmt.HaltCompiler{}, }, } diff --git a/php7/php7.go b/php7/php7.go index 9eaf737..d3d8518 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:5346 +//line php7/php7.y:5348 //line yacctab:1 var yyExca = [...]int{ @@ -2733,10 +2733,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yylex.(*Parser).Begin(scanner.HALT_COMPILER) } case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:477 + //line php7/php7.y:479 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2753,7 +2755,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:492 + //line php7/php7.y:494 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2771,7 +2773,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:508 + //line php7/php7.y:510 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2787,7 +2789,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:522 + //line php7/php7.y:524 { yyVAL.node = yyDollar[2].node @@ -2802,7 +2804,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:535 + //line php7/php7.y:537 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2817,7 +2819,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:548 + //line php7/php7.y:550 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2832,7 +2834,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:561 + //line php7/php7.y:563 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2847,7 +2849,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:574 + //line php7/php7.y:576 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2862,7 +2864,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:590 + //line php7/php7.y:592 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2876,7 +2878,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:602 + //line php7/php7.y:604 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2890,7 +2892,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:617 + //line php7/php7.y:619 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2911,7 +2913,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:636 + //line php7/php7.y:638 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2933,7 +2935,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:659 + //line php7/php7.y:661 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2954,7 +2956,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:678 + //line php7/php7.y:680 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2976,19 +2978,19 @@ yydefault: } case 106: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:701 + //line php7/php7.y:703 { yyVAL.token = nil } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:705 + //line php7/php7.y:707 { yyVAL.token = yyDollar[1].token } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:712 + //line php7/php7.y:714 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2999,7 +3001,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:721 + //line php7/php7.y:723 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3007,7 +3009,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:730 + //line php7/php7.y:732 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3018,7 +3020,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:739 + //line php7/php7.y:741 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3026,7 +3028,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:748 + //line php7/php7.y:750 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3037,7 +3039,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:757 + //line php7/php7.y:759 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3045,7 +3047,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:766 + //line php7/php7.y:768 { yyVAL.node = yyDollar[1].node @@ -3053,7 +3055,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:772 + //line php7/php7.y:774 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) @@ -3061,7 +3063,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:781 + //line php7/php7.y:783 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3074,7 +3076,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:792 + //line php7/php7.y:794 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3093,7 +3095,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:812 + //line php7/php7.y:814 { yyVAL.node = yyDollar[1].node @@ -3101,7 +3103,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:818 + //line php7/php7.y:820 { yyVAL.node = yyDollar[2].node @@ -3112,7 +3114,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:830 + //line php7/php7.y:832 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3123,7 +3125,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:839 + //line php7/php7.y:841 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3131,7 +3133,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:848 + //line php7/php7.y:850 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3141,7 +3143,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:856 + //line php7/php7.y:858 { yyVAL.list = []node.Node{} @@ -3149,7 +3151,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:865 + //line php7/php7.y:867 { // error yyVAL.node = nil @@ -3158,7 +3160,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:872 + //line php7/php7.y:874 { yyVAL.node = yyDollar[1].node @@ -3166,7 +3168,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:878 + //line php7/php7.y:880 { yyVAL.node = yyDollar[1].node @@ -3174,7 +3176,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:884 + //line php7/php7.y:886 { yyVAL.node = yyDollar[1].node @@ -3182,7 +3184,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:890 + //line php7/php7.y:892 { yyVAL.node = yyDollar[1].node @@ -3190,7 +3192,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:896 + //line php7/php7.y:898 { yyVAL.node = yyDollar[1].node @@ -3198,7 +3200,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:902 + //line php7/php7.y:904 { yyVAL.node = stmt.NewHaltCompiler() @@ -3215,7 +3217,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:919 + //line php7/php7.y:921 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3230,7 +3232,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:932 + //line php7/php7.y:934 { yyVAL.node = yyDollar[1].node @@ -3238,7 +3240,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:938 + //line php7/php7.y:940 { yyVAL.node = yyDollar[1].node @@ -3246,7 +3248,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:944 + //line php7/php7.y:946 { switch n := yyDollar[5].node.(type) { case *stmt.While: @@ -3269,7 +3271,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:965 + //line php7/php7.y:967 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3287,7 +3289,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:981 + //line php7/php7.y:983 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3316,7 +3318,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1008 + //line php7/php7.y:1010 { switch n := yyDollar[5].node.(type) { case *stmt.Switch: @@ -3341,7 +3343,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1031 + //line php7/php7.y:1033 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3356,7 +3358,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1044 + //line php7/php7.y:1046 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3371,7 +3373,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1057 + //line php7/php7.y:1059 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3386,7 +3388,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1070 + //line php7/php7.y:1072 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3401,7 +3403,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1083 + //line php7/php7.y:1085 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3416,7 +3418,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1096 + //line php7/php7.y:1098 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3431,7 +3433,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1109 + //line php7/php7.y:1111 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3445,7 +3447,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1121 + //line php7/php7.y:1123 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3459,7 +3461,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1133 + //line php7/php7.y:1135 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3479,7 +3481,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1151 + //line php7/php7.y:1153 { switch n := yyDollar[7].node.(type) { case *stmt.Foreach: @@ -3505,7 +3507,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1175 + //line php7/php7.y:1177 { switch n := yyDollar[9].node.(type) { case *stmt.Foreach: @@ -3534,7 +3536,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1202 + //line php7/php7.y:1204 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3550,7 +3552,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1216 + //line php7/php7.y:1218 { yyVAL.node = stmt.NewNop() @@ -3564,7 +3566,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1228 + //line php7/php7.y:1230 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3583,7 +3585,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1245 + //line php7/php7.y:1247 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3598,7 +3600,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1258 + //line php7/php7.y:1260 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3616,7 +3618,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1274 + //line php7/php7.y:1276 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3633,7 +3635,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1291 + //line php7/php7.y:1293 { yyVAL.list = []node.Node{} @@ -3641,7 +3643,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1297 + //line php7/php7.y:1299 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3665,7 +3667,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1321 + //line php7/php7.y:1323 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3673,7 +3675,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1327 + //line php7/php7.y:1329 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3684,7 +3686,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1339 + //line php7/php7.y:1341 { yyVAL.node = nil @@ -3692,7 +3694,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1345 + //line php7/php7.y:1347 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3708,7 +3710,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1362 + //line php7/php7.y:1364 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3716,7 +3718,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1368 + //line php7/php7.y:1370 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3727,7 +3729,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1380 + //line php7/php7.y:1382 { yyVAL.node = yyDollar[1].node @@ -3735,7 +3737,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1389 + //line php7/php7.y:1391 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3759,31 +3761,31 @@ yydefault: } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1415 + //line php7/php7.y:1417 { yyVAL.token = nil } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1419 + //line php7/php7.y:1421 { yyVAL.token = yyDollar[1].token } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1426 + //line php7/php7.y:1428 { yyVAL.token = nil } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1430 + //line php7/php7.y:1432 { yyVAL.token = yyDollar[1].token } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1437 + //line php7/php7.y:1439 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list, yyDollar[6].str) @@ -3802,7 +3804,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1454 + //line php7/php7.y:1456 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -3821,7 +3823,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1474 + //line php7/php7.y:1476 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3829,7 +3831,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1480 + //line php7/php7.y:1482 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3837,7 +3839,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1489 + //line php7/php7.y:1491 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3851,7 +3853,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1501 + //line php7/php7.y:1503 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3865,7 +3867,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1516 + //line php7/php7.y:1518 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3884,7 +3886,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1536 + //line php7/php7.y:1538 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3903,7 +3905,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1556 + //line php7/php7.y:1558 { yyVAL.ClassExtends = nil @@ -3911,7 +3913,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1562 + //line php7/php7.y:1564 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3925,7 +3927,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1577 + //line php7/php7.y:1579 { yyVAL.InterfaceExtends = nil @@ -3933,7 +3935,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1583 + //line php7/php7.y:1585 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3947,7 +3949,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1598 + //line php7/php7.y:1600 { yyVAL.ClassImplements = nil @@ -3955,7 +3957,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1604 + //line php7/php7.y:1606 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3969,7 +3971,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1619 + //line php7/php7.y:1621 { yyVAL.node = yyDollar[1].node @@ -3977,7 +3979,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1625 + //line php7/php7.y:1627 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3991,7 +3993,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1637 + //line php7/php7.y:1639 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4007,7 +4009,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1651 + //line php7/php7.y:1653 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4022,7 +4024,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1667 + //line php7/php7.y:1669 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4033,7 +4035,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1676 + //line php7/php7.y:1678 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4051,7 +4053,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1695 + //line php7/php7.y:1697 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4062,7 +4064,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1704 + //line php7/php7.y:1706 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4080,7 +4082,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1723 + //line php7/php7.y:1725 { yyVAL.node = yyDollar[1].node @@ -4088,7 +4090,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1729 + //line php7/php7.y:1731 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -4104,7 +4106,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1746 + //line php7/php7.y:1748 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4121,7 +4123,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1761 + //line php7/php7.y:1763 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4139,7 +4141,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1777 + //line php7/php7.y:1779 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4157,7 +4159,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1793 + //line php7/php7.y:1795 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4177,7 +4179,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1814 + //line php7/php7.y:1816 { yyVAL.list = []node.Node{} @@ -4185,7 +4187,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1820 + //line php7/php7.y:1822 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4201,7 +4203,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1834 + //line php7/php7.y:1836 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4217,19 +4219,19 @@ yydefault: } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1851 + //line php7/php7.y:1853 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1855 + //line php7/php7.y:1857 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1862 + //line php7/php7.y:1864 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4240,7 +4242,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1871 + //line php7/php7.y:1873 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4258,7 +4260,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1890 + //line php7/php7.y:1892 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4274,7 +4276,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1904 + //line php7/php7.y:1906 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4292,7 +4294,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1923 + //line php7/php7.y:1925 { yyVAL.node = yyDollar[1].node @@ -4300,7 +4302,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1929 + //line php7/php7.y:1931 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4316,7 +4318,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1946 + //line php7/php7.y:1948 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4335,7 +4337,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1963 + //line php7/php7.y:1965 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4355,7 +4357,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1984 + //line php7/php7.y:1986 { yyVAL.node = yyDollar[1].node @@ -4370,7 +4372,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1997 + //line php7/php7.y:1999 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4391,7 +4393,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2019 + //line php7/php7.y:2021 { yyVAL.list = yyDollar[1].list @@ -4399,7 +4401,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2025 + //line php7/php7.y:2027 { yyVAL.list = nil @@ -4407,7 +4409,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2034 + //line php7/php7.y:2036 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4415,7 +4417,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2040 + //line php7/php7.y:2042 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4426,7 +4428,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2052 + //line php7/php7.y:2054 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4458,7 +4460,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2082 + //line php7/php7.y:2084 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4491,7 +4493,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2116 + //line php7/php7.y:2118 { yyVAL.node = nil @@ -4499,7 +4501,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2122 + //line php7/php7.y:2124 { yyVAL.node = yyDollar[1].node @@ -4507,7 +4509,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2131 + //line php7/php7.y:2133 { yyVAL.node = yyDollar[1].node @@ -4515,7 +4517,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2137 + //line php7/php7.y:2139 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4529,7 +4531,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2152 + //line php7/php7.y:2154 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4543,7 +4545,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2164 + //line php7/php7.y:2166 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4557,7 +4559,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2176 + //line php7/php7.y:2178 { yyVAL.node = yyDollar[1].node @@ -4565,7 +4567,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2185 + //line php7/php7.y:2187 { yyVAL.node = nil @@ -4573,7 +4575,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2191 + //line php7/php7.y:2193 { yyVAL.node = yyDollar[2].node @@ -4584,7 +4586,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2203 + //line php7/php7.y:2205 { yyVAL.node = node.NewArgumentList(nil) @@ -4599,7 +4601,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2216 + //line php7/php7.y:2218 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4617,7 +4619,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2235 + //line php7/php7.y:2237 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4625,7 +4627,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2241 + //line php7/php7.y:2243 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4636,7 +4638,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2253 + //line php7/php7.y:2255 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4647,7 +4649,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2262 + //line php7/php7.y:2264 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4661,7 +4663,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2277 + //line php7/php7.y:2279 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4672,7 +4674,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2286 + //line php7/php7.y:2288 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4680,7 +4682,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2295 + //line php7/php7.y:2297 { yyVAL.node = yyDollar[1].node @@ -4688,7 +4690,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2304 + //line php7/php7.y:2306 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4699,7 +4701,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2313 + //line php7/php7.y:2315 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4707,7 +4709,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2322 + //line php7/php7.y:2324 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4725,7 +4727,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2338 + //line php7/php7.y:2340 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4744,7 +4746,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2358 + //line php7/php7.y:2360 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4752,7 +4754,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2364 + //line php7/php7.y:2366 { yyVAL.list = []node.Node{} @@ -4760,7 +4762,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2373 + //line php7/php7.y:2375 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4774,7 +4776,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2385 + //line php7/php7.y:2387 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4789,7 +4791,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2398 + //line php7/php7.y:2400 { var adaptationList *stmt.TraitAdaptationList @@ -4813,7 +4815,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2420 + //line php7/php7.y:2422 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) @@ -4839,7 +4841,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2447 + //line php7/php7.y:2449 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4847,7 +4849,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2453 + //line php7/php7.y:2455 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4858,7 +4860,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2465 + //line php7/php7.y:2467 { yyVAL.node = stmt.NewNop() @@ -4871,7 +4873,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2477 + //line php7/php7.y:2479 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -4885,7 +4887,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2489 + //line php7/php7.y:2491 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4899,7 +4901,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2504 + //line php7/php7.y:2506 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4907,7 +4909,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2510 + //line php7/php7.y:2512 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4915,7 +4917,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2519 + //line php7/php7.y:2521 { yyVAL.node = yyDollar[1].node @@ -4926,7 +4928,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2528 + //line php7/php7.y:2530 { yyVAL.node = yyDollar[1].node @@ -4937,7 +4939,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2540 + //line php7/php7.y:2542 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4951,7 +4953,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2555 + //line php7/php7.y:2557 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4968,7 +4970,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2570 + //line php7/php7.y:2572 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4985,7 +4987,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2585 + //line php7/php7.y:2587 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5002,7 +5004,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2600 + //line php7/php7.y:2602 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5016,7 +5018,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2615 + //line php7/php7.y:2617 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5032,7 +5034,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2629 + //line php7/php7.y:2631 { yyVAL.node = yyDollar[1].node @@ -5040,7 +5042,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2638 + //line php7/php7.y:2640 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5057,7 +5059,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2656 + //line php7/php7.y:2658 { yyVAL.node = stmt.NewNop() @@ -5071,7 +5073,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2668 + //line php7/php7.y:2670 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5086,7 +5088,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2684 + //line php7/php7.y:2686 { yyVAL.list = yyDollar[1].list @@ -5094,7 +5096,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2690 + //line php7/php7.y:2692 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5109,7 +5111,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2706 + //line php7/php7.y:2708 { yyVAL.list = nil @@ -5117,7 +5119,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2712 + //line php7/php7.y:2714 { yyVAL.list = yyDollar[1].list @@ -5125,7 +5127,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2721 + //line php7/php7.y:2723 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5133,7 +5135,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2727 + //line php7/php7.y:2729 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5141,7 +5143,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2736 + //line php7/php7.y:2738 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5155,7 +5157,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2748 + //line php7/php7.y:2750 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5169,7 +5171,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2760 + //line php7/php7.y:2762 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5183,7 +5185,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2772 + //line php7/php7.y:2774 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5197,7 +5199,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2784 + //line php7/php7.y:2786 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5211,7 +5213,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2796 + //line php7/php7.y:2798 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5225,7 +5227,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2811 + //line php7/php7.y:2813 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5236,7 +5238,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2820 + //line php7/php7.y:2822 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5244,7 +5246,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2829 + //line php7/php7.y:2831 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5262,7 +5264,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2845 + //line php7/php7.y:2847 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5281,7 +5283,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2865 + //line php7/php7.y:2867 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5292,7 +5294,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2874 + //line php7/php7.y:2876 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5300,7 +5302,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2883 + //line php7/php7.y:2885 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5317,7 +5319,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2901 + //line php7/php7.y:2903 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5334,7 +5336,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2919 + //line php7/php7.y:2921 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5345,7 +5347,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2928 + //line php7/php7.y:2930 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5353,7 +5355,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2937 + //line php7/php7.y:2939 { yyVAL.node = yyDollar[1].node @@ -5361,7 +5363,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2946 + //line php7/php7.y:2948 { yyVAL.list = nil @@ -5369,7 +5371,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2952 + //line php7/php7.y:2954 { yyVAL.list = yyDollar[1].list @@ -5377,7 +5379,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2961 + //line php7/php7.y:2963 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5388,7 +5390,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2970 + //line php7/php7.y:2972 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5396,7 +5398,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:2979 + //line php7/php7.y:2981 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -5416,7 +5418,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3000 + //line php7/php7.y:3002 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5433,7 +5435,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3015 + //line php7/php7.y:3017 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5447,7 +5449,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3030 + //line php7/php7.y:3032 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5466,7 +5468,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3047 + //line php7/php7.y:3049 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5484,7 +5486,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3063 + //line php7/php7.y:3065 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5498,7 +5500,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3075 + //line php7/php7.y:3077 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5513,7 +5515,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3088 + //line php7/php7.y:3090 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5527,7 +5529,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3100 + //line php7/php7.y:3102 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5541,7 +5543,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3112 + //line php7/php7.y:3114 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5555,7 +5557,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3124 + //line php7/php7.y:3126 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5569,7 +5571,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3136 + //line php7/php7.y:3138 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5583,7 +5585,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3148 + //line php7/php7.y:3150 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5597,7 +5599,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3160 + //line php7/php7.y:3162 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5611,7 +5613,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3172 + //line php7/php7.y:3174 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5625,7 +5627,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3184 + //line php7/php7.y:3186 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5639,7 +5641,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3196 + //line php7/php7.y:3198 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5653,7 +5655,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3208 + //line php7/php7.y:3210 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5667,7 +5669,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3220 + //line php7/php7.y:3222 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5681,7 +5683,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3232 + //line php7/php7.y:3234 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5695,7 +5697,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3244 + //line php7/php7.y:3246 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5709,7 +5711,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3256 + //line php7/php7.y:3258 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5723,7 +5725,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3268 + //line php7/php7.y:3270 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5737,7 +5739,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3280 + //line php7/php7.y:3282 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5751,7 +5753,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3292 + //line php7/php7.y:3294 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5765,7 +5767,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3304 + //line php7/php7.y:3306 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5779,7 +5781,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3316 + //line php7/php7.y:3318 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5793,7 +5795,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3328 + //line php7/php7.y:3330 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5807,7 +5809,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3340 + //line php7/php7.y:3342 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5821,7 +5823,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3352 + //line php7/php7.y:3354 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5835,7 +5837,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3364 + //line php7/php7.y:3366 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5849,7 +5851,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3376 + //line php7/php7.y:3378 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5863,7 +5865,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3388 + //line php7/php7.y:3390 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5877,7 +5879,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3400 + //line php7/php7.y:3402 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5891,7 +5893,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3412 + //line php7/php7.y:3414 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5905,7 +5907,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3424 + //line php7/php7.y:3426 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5919,7 +5921,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3436 + //line php7/php7.y:3438 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5933,7 +5935,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3448 + //line php7/php7.y:3450 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5947,7 +5949,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3460 + //line php7/php7.y:3462 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5961,7 +5963,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3472 + //line php7/php7.y:3474 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5975,7 +5977,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3484 + //line php7/php7.y:3486 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5989,7 +5991,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3496 + //line php7/php7.y:3498 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6003,7 +6005,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3508 + //line php7/php7.y:3510 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6017,7 +6019,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3520 + //line php7/php7.y:3522 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6031,7 +6033,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3532 + //line php7/php7.y:3534 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6045,7 +6047,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3544 + //line php7/php7.y:3546 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6059,7 +6061,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3556 + //line php7/php7.y:3558 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6073,7 +6075,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3568 + //line php7/php7.y:3570 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6087,7 +6089,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3580 + //line php7/php7.y:3582 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6101,7 +6103,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3592 + //line php7/php7.y:3594 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6115,7 +6117,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3604 + //line php7/php7.y:3606 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6129,7 +6131,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3616 + //line php7/php7.y:3618 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6143,7 +6145,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3628 + //line php7/php7.y:3630 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6157,7 +6159,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3640 + //line php7/php7.y:3642 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6171,7 +6173,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3652 + //line php7/php7.y:3654 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6185,7 +6187,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3664 + //line php7/php7.y:3666 { yyVAL.node = yyDollar[2].node @@ -6197,7 +6199,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3674 + //line php7/php7.y:3676 { yyVAL.node = yyDollar[1].node @@ -6205,7 +6207,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3680 + //line php7/php7.y:3682 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6220,7 +6222,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3693 + //line php7/php7.y:3695 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6235,7 +6237,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3706 + //line php7/php7.y:3708 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6249,7 +6251,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3718 + //line php7/php7.y:3720 { yyVAL.node = yyDollar[1].node @@ -6257,7 +6259,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3724 + //line php7/php7.y:3726 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6271,7 +6273,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3736 + //line php7/php7.y:3738 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6285,7 +6287,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3748 + //line php7/php7.y:3750 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6299,7 +6301,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3760 + //line php7/php7.y:3762 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6313,7 +6315,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3772 + //line php7/php7.y:3774 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6327,7 +6329,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3784 + //line php7/php7.y:3786 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6341,7 +6343,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3796 + //line php7/php7.y:3798 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6355,7 +6357,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3808 + //line php7/php7.y:3810 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(nil) @@ -6387,7 +6389,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3838 + //line php7/php7.y:3840 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6401,7 +6403,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3850 + //line php7/php7.y:3852 { yyVAL.node = yyDollar[1].node @@ -6409,7 +6411,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3856 + //line php7/php7.y:3858 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6424,7 +6426,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3869 + //line php7/php7.y:3871 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6438,7 +6440,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3881 + //line php7/php7.y:3883 { yyVAL.node = expr.NewYield(nil, nil) @@ -6452,7 +6454,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3893 + //line php7/php7.y:3895 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6466,7 +6468,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3905 + //line php7/php7.y:3907 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6481,7 +6483,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3918 + //line php7/php7.y:3920 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6495,7 +6497,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3930 + //line php7/php7.y:3932 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6516,7 +6518,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:3949 + //line php7/php7.y:3951 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -6538,7 +6540,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3972 + //line php7/php7.y:3974 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" @@ -6547,19 +6549,19 @@ yydefault: } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3982 + //line php7/php7.y:3984 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3986 + //line php7/php7.y:3988 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3993 + //line php7/php7.y:3995 { yyVAL.ClosureUse = nil @@ -6567,7 +6569,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3999 + //line php7/php7.y:4001 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6583,7 +6585,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4016 + //line php7/php7.y:4018 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6594,7 +6596,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4025 + //line php7/php7.y:4027 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -6602,7 +6604,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4034 + //line php7/php7.y:4036 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6618,7 +6620,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4048 + //line php7/php7.y:4050 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6637,7 +6639,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4068 + //line php7/php7.y:4070 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6648,7 +6650,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4077 + //line php7/php7.y:4079 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6662,7 +6664,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4089 + //line php7/php7.y:4091 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6676,7 +6678,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4101 + //line php7/php7.y:4103 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6687,7 +6689,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4113 + //line php7/php7.y:4115 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6701,7 +6703,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4125 + //line php7/php7.y:4127 { yyVAL.node = yyDollar[1].node @@ -6709,7 +6711,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4134 + //line php7/php7.y:4136 { yyVAL.node = yyDollar[1].node @@ -6717,7 +6719,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4140 + //line php7/php7.y:4142 { yyVAL.node = yyDollar[1].node @@ -6725,7 +6727,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4149 + //line php7/php7.y:4151 { yyVAL.node = nil @@ -6733,7 +6735,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4155 + //line php7/php7.y:4157 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6748,7 +6750,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4171 + //line php7/php7.y:4173 { yyVAL.list = []node.Node{} @@ -6756,7 +6758,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4177 + //line php7/php7.y:4179 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -6764,7 +6766,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4183 + //line php7/php7.y:4185 { yyVAL.list = yyDollar[1].list @@ -6772,7 +6774,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4192 + //line php7/php7.y:4194 { yyVAL.node = nil @@ -6780,7 +6782,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4198 + //line php7/php7.y:4200 { yyVAL.node = yyDollar[1].node @@ -6788,7 +6790,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4207 + //line php7/php7.y:4209 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6804,7 +6806,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4221 + //line php7/php7.y:4223 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6819,7 +6821,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4234 + //line php7/php7.y:4236 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6833,7 +6835,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4249 + //line php7/php7.y:4251 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6847,7 +6849,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4261 + //line php7/php7.y:4263 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6861,7 +6863,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4273 + //line php7/php7.y:4275 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6875,7 +6877,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4285 + //line php7/php7.y:4287 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6889,7 +6891,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4297 + //line php7/php7.y:4299 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6903,7 +6905,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4309 + //line php7/php7.y:4311 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6917,7 +6919,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4321 + //line php7/php7.y:4323 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6931,7 +6933,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4333 + //line php7/php7.y:4335 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6945,7 +6947,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4345 + //line php7/php7.y:4347 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6959,7 +6961,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4357 + //line php7/php7.y:4359 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6973,7 +6975,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4369 + //line php7/php7.y:4371 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6989,7 +6991,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4383 + //line php7/php7.y:4385 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7003,7 +7005,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4395 + //line php7/php7.y:4397 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7017,7 +7019,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4407 + //line php7/php7.y:4409 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7031,7 +7033,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4419 + //line php7/php7.y:4421 { yyVAL.node = yyDollar[1].node @@ -7039,7 +7041,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4425 + //line php7/php7.y:4427 { yyVAL.node = yyDollar[1].node @@ -7047,7 +7049,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4434 + //line php7/php7.y:4436 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7058,7 +7060,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4443 + //line php7/php7.y:4445 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7075,7 +7077,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4458 + //line php7/php7.y:4460 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7092,7 +7094,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4476 + //line php7/php7.y:4478 { yyVAL.node = yyDollar[1].node @@ -7100,7 +7102,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4482 + //line php7/php7.y:4484 { yyVAL.node = yyDollar[1].node @@ -7108,7 +7110,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4491 + //line php7/php7.y:4493 { yyVAL.node = nil @@ -7116,7 +7118,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4497 + //line php7/php7.y:4499 { yyVAL.node = yyDollar[1].node @@ -7124,7 +7126,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4506 + //line php7/php7.y:4508 { yyVAL.node = yyDollar[1].node @@ -7132,7 +7134,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4515 + //line php7/php7.y:4517 { yyVAL.node = yyDollar[1].node @@ -7140,7 +7142,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4521 + //line php7/php7.y:4523 { yyVAL.node = yyDollar[2].node @@ -7152,7 +7154,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4531 + //line php7/php7.y:4533 { yyVAL.node = yyDollar[1].node @@ -7160,7 +7162,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4540 + //line php7/php7.y:4542 { yyVAL.node = yyDollar[1].node @@ -7168,7 +7170,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4546 + //line php7/php7.y:4548 { yyVAL.node = yyDollar[2].node @@ -7180,7 +7182,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4556 + //line php7/php7.y:4558 { yyVAL.node = yyDollar[1].node @@ -7188,7 +7190,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4565 + //line php7/php7.y:4567 { yyVAL.node = yyDollar[1].node @@ -7196,7 +7198,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4571 + //line php7/php7.y:4573 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7211,7 +7213,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4584 + //line php7/php7.y:4586 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7226,7 +7228,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4597 + //line php7/php7.y:4599 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7241,7 +7243,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4610 + //line php7/php7.y:4612 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7255,7 +7257,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4622 + //line php7/php7.y:4624 { yyVAL.node = yyDollar[1].node @@ -7263,7 +7265,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4631 + //line php7/php7.y:4633 { yyVAL.node = yyDollar[1].node @@ -7271,7 +7273,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4637 + //line php7/php7.y:4639 { yyVAL.node = yyDollar[1].node @@ -7279,7 +7281,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4643 + //line php7/php7.y:4645 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7293,7 +7295,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4658 + //line php7/php7.y:4660 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7309,7 +7311,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4672 + //line php7/php7.y:4674 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7325,7 +7327,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4686 + //line php7/php7.y:4688 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7339,7 +7341,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4701 + //line php7/php7.y:4703 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7353,7 +7355,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4713 + //line php7/php7.y:4715 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7367,7 +7369,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4728 + //line php7/php7.y:4730 { yyVAL.node = yyDollar[1].node @@ -7375,7 +7377,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4734 + //line php7/php7.y:4736 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7390,7 +7392,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4747 + //line php7/php7.y:4749 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7405,7 +7407,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4760 + //line php7/php7.y:4762 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7419,7 +7421,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4772 + //line php7/php7.y:4774 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7433,7 +7435,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4784 + //line php7/php7.y:4786 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7447,7 +7449,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4799 + //line php7/php7.y:4801 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7461,7 +7463,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4811 + //line php7/php7.y:4813 { yyVAL.node = yyDollar[2].node @@ -7473,7 +7475,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4821 + //line php7/php7.y:4823 { yyVAL.node = yyDollar[1].node @@ -7481,7 +7483,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4830 + //line php7/php7.y:4832 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7495,7 +7497,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4842 + //line php7/php7.y:4844 { yyVAL.node = yyDollar[2].node @@ -7507,7 +7509,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4852 + //line php7/php7.y:4854 { yyVAL.node = yyDollar[1].node @@ -7515,7 +7517,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4861 + //line php7/php7.y:4863 { if len(yyDollar[1].list) == 1 && yyDollar[1].list[0] == nil { yyVAL.list = yyDollar[1].list[:0] @@ -7527,7 +7529,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4874 + //line php7/php7.y:4876 { yyVAL.node = nil @@ -7535,7 +7537,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4880 + //line php7/php7.y:4882 { yyVAL.node = yyDollar[1].node @@ -7543,7 +7545,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4889 + //line php7/php7.y:4891 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7556,7 +7558,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4900 + //line php7/php7.y:4902 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7564,7 +7566,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4909 + //line php7/php7.y:4911 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -7578,7 +7580,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4921 + //line php7/php7.y:4923 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -7589,7 +7591,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4930 + //line php7/php7.y:4932 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -7605,7 +7607,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4944 + //line php7/php7.y:4946 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -7620,7 +7622,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:4957 + //line php7/php7.y:4959 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -7640,7 +7642,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4975 + //line php7/php7.y:4977 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -7659,7 +7661,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4995 + //line php7/php7.y:4997 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7667,7 +7669,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5001 + //line php7/php7.y:5003 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7682,7 +7684,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5014 + //line php7/php7.y:5016 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7690,7 +7692,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5020 + //line php7/php7.y:5022 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7705,7 +7707,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5036 + //line php7/php7.y:5038 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7721,7 +7723,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5050 + //line php7/php7.y:5052 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7741,7 +7743,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5068 + //line php7/php7.y:5070 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7763,7 +7765,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5088 + //line php7/php7.y:5090 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7778,7 +7780,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5101 + //line php7/php7.y:5103 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -7796,7 +7798,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5117 + //line php7/php7.y:5119 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -7818,7 +7820,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5137 + //line php7/php7.y:5139 { yyVAL.node = yyDollar[2].node @@ -7826,7 +7828,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5146 + //line php7/php7.y:5148 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7840,7 +7842,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5158 + //line php7/php7.y:5160 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7859,7 +7861,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5175 + //line php7/php7.y:5177 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -7892,7 +7894,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5206 + //line php7/php7.y:5208 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -7908,7 +7910,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5223 + //line php7/php7.y:5225 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -7927,7 +7929,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5240 + //line php7/php7.y:5242 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -7943,7 +7945,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5254 + //line php7/php7.y:5256 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -7957,7 +7959,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5266 + //line php7/php7.y:5268 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -7971,7 +7973,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5278 + //line php7/php7.y:5280 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -7987,7 +7989,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5292 + //line php7/php7.y:5294 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8001,7 +8003,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5304 + //line php7/php7.y:5306 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8015,7 +8017,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5319 + //line php7/php7.y:5321 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8023,7 +8025,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5325 + //line php7/php7.y:5327 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8034,7 +8036,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5337 + //line php7/php7.y:5339 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index 1dc6b53..a8ba7e6 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -472,6 +472,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yylex.(*Parser).Begin(scanner.HALT_COMPILER) } | T_NAMESPACE namespace_name ';' { diff --git a/php7/php7_test.go b/php7/php7_test.go index 4652811..e262f0a 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -137,7 +137,6 @@ func TestPhp7(t *testing.T) { global $a, $b; a: goto a; - __halt_compiler(); if ($a) {} if ($a) {} elseif ($b) {} if ($a) {} else {} @@ -379,6 +378,10 @@ func TestPhp7(t *testing.T) { $foo->{$bar[0]}; [1=>&$a, 2=>list($b)]; + + __halt_compiler(); + + parsing process must be terminated ` expectedParams := []node.Node{ @@ -1231,7 +1234,6 @@ func TestPhp7(t *testing.T) { &stmt.Goto{ Label: &node.Identifier{Value: "a"}, }, - &stmt.HaltCompiler{}, &stmt.If{ Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Stmt: &stmt.StmtList{Stmts: []node.Node{}}, @@ -3218,6 +3220,7 @@ func TestPhp7(t *testing.T) { }, }, }, + &stmt.HaltCompiler{}, }, } diff --git a/scanner/lexer.go b/scanner/lexer.go index b5680a7..5a3b56e 100644 --- a/scanner/lexer.go +++ b/scanner/lexer.go @@ -521,7 +521,7 @@ func (l *Lexer) popState() { l.StateStack = l.StateStack[:len-1] } -func (l *Lexer) begin(state int) { +func (l *Lexer) Begin(state int) { len := len(l.StateStack) l.StateStack = l.StateStack[:len-1] l.StateStack = append(l.StateStack, state) diff --git a/scanner/scanner.go b/scanner/scanner.go index 2949e43..e096abd 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -25,6 +25,7 @@ const ( NOWDOC HEREDOC BACKQUOTE + HALT_COMPILER ) func isValidFirstVarNameRune(r rune) bool { @@ -65,6 +66,8 @@ yystate0: goto yystart595 case 10: // start condition: BACKQUOTE goto yystart599 + case 11: // start condition: HALT_COMPILER + goto yystart604 } goto yystate0 // silence unused label error @@ -405,6 +408,8 @@ yyAction: goto yyrule166 case 167: goto yyrule167 + case 168: + goto yyrule168 } goto yystate1 // silence unused label error yystate1: @@ -7540,6 +7545,23 @@ yystate603: goto yystate549 } + goto yystate604 // silence unused label error +yystate604: + c = l.Next() +yystart604: + switch { + default: + goto yyabort + case c >= '\x01' && c <= 'ΓΏ': + goto yystate605 + } + +yystate605: + c = l.Next() + yyrule = 168 + l.Mark() + goto yyrule168 + yyrule1: // [ \t\n\r]+ goto yystate0 @@ -7568,17 +7590,17 @@ yyrule2: // . } yyrule3: // \<\?php([ \t]|{NEW_LINE}) { - l.begin(PHP) + l.Begin(PHP) goto yystate0 } yyrule4: // \<\? { - l.begin(PHP) + l.Begin(PHP) goto yystate0 } yyrule5: // \<\?= { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.Token())) return T_ECHO goto yystate0 @@ -7588,14 +7610,14 @@ yyrule6: // [ \t\n\r]+ goto yystate0 yyrule7: // [;][ \t\n\r]*\?\>{NEW_LINE}? { - l.begin(INITIAL) + l.Begin(INITIAL) lval.Token(l.createToken(l.Token())) return Rune2Class(';') goto yystate0 } yyrule8: // \?\>{NEW_LINE}? { - l.begin(INITIAL) + l.Begin(INITIAL) lval.Token(l.createToken(l.Token())) return Rune2Class(';') goto yystate0 @@ -8452,7 +8474,7 @@ yyrule133: // {VAR_NAME} } yyrule134: // -> { - l.begin(PROPERTY) + l.Begin(PROPERTY) lval.Token(l.createToken(l.Token())) return T_OBJECT_OPERATOR goto yystate0 @@ -8468,7 +8490,7 @@ yyrule136: // -> } yyrule137: // {VAR_NAME} { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.Token())) return T_STRING goto yystate0 @@ -8476,7 +8498,7 @@ yyrule137: // {VAR_NAME} yyrule138: // . { l.ungetChars(1) - l.begin(PHP) + l.Begin(PHP) goto yystate0 } yyrule139: // [\']([^\\\']*(\\(.|\n))*)*[\'] @@ -8487,14 +8509,14 @@ yyrule139: // [\']([^\\\']*(\\(.|\n))*)*[\'] } yyrule140: // ` { - l.begin(BACKQUOTE) + l.Begin(BACKQUOTE) lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } yyrule141: // ` { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 @@ -8526,13 +8548,13 @@ yyrule142: // [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])) case '\'': lblFirst++ lblLast-- - l.begin(NOWDOC) + l.Begin(NOWDOC) case '"': lblFirst++ lblLast-- - l.begin(HEREDOC) + l.Begin(HEREDOC) default: - l.begin(HEREDOC) + l.Begin(HEREDOC) } l.heredocLabel = l.tokenString(tb[lblFirst : lblLast+1]) @@ -8549,7 +8571,7 @@ yyrule142: // [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])) ungetCnt++ c = l.Next() if '\n' == rune(c) || '\r' == rune(c) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) } } l.ungetChars(ungetCnt) @@ -8568,12 +8590,12 @@ yyrule143: // .|[ \t\n\r] } if '\n' == rune(c) || '\r' == rune(c) { if l.heredocLabel+";" == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel) + 1) break } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)) break } @@ -8589,14 +8611,14 @@ yyrule143: // .|[ \t\n\r] } yyrule144: // {VAR_NAME}\; { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.ungetChars(1))) return T_END_HEREDOC goto yystate0 } yyrule145: // {VAR_NAME} { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.Token())) return T_END_HEREDOC goto yystate0 @@ -8774,13 +8796,13 @@ yyrule153: // .|[ \t\n\r] fallthrough case '\n': if l.heredocLabel+";" == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel) + 1 + nls) lval.Token(l.createToken(tb)) return T_ENCAPSED_AND_WHITESPACE } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel) + nls) lval.Token(l.createToken(tb)) return T_ENCAPSED_AND_WHITESPACE @@ -8911,6 +8933,11 @@ yyrule167: // . l.pushState(PHP) goto yystate0 } +yyrule168: // .|[ \t\n\r] + { + // do nothing + goto yystate0 + } panic("unreachable") goto yyabort // silence unused label error diff --git a/scanner/scanner.l b/scanner/scanner.l index bbf802c..9c4e872 100644 --- a/scanner/scanner.l +++ b/scanner/scanner.l @@ -13,17 +13,18 @@ import ( ) const ( - INITIAL = iota - PHP - STRING - STRING_VAR - STRING_VAR_INDEX - STRING_VAR_NAME - PROPERTY - HEREDOC_END - NOWDOC - HEREDOC - BACKQUOTE + INITIAL = iota + PHP + STRING + STRING_VAR + STRING_VAR_INDEX + STRING_VAR_NAME + PROPERTY + HEREDOC_END + NOWDOC + HEREDOC + BACKQUOTE + HALT_COMPILER ) func isValidFirstVarNameRune(r rune) bool { @@ -36,7 +37,7 @@ func (l *Lexer) Lex(lval Lval) int { %} -%s PHP STRING STRING_VAR STRING_VAR_INDEX STRING_VAR_NAME PROPERTY HEREDOC_END NOWDOC HEREDOC BACKQUOTE +%s PHP STRING STRING_VAR STRING_VAR_INDEX STRING_VAR_NAME PROPERTY HEREDOC_END NOWDOC HEREDOC BACKQUOTE HALT_COMPILER %yyb last == '\n' || last = '\0' %yyt l.getCurrentState() @@ -84,13 +85,13 @@ NEW_LINE (\r|\n|\r\n) lval.Token(l.createToken(tb)) return T_INLINE_HTML -\<\?php([ \t]|{NEW_LINE}) l.begin(PHP); -\<\? l.begin(PHP); -\<\?= l.begin(PHP);lval.Token(l.createToken(l.Token())); return T_ECHO; +\<\?php([ \t]|{NEW_LINE}) l.Begin(PHP); +\<\? l.Begin(PHP); +\<\?= l.Begin(PHP);lval.Token(l.createToken(l.Token())); return T_ECHO; [ \t\n\r]+ -[;][ \t\n\r]*\?\>{NEW_LINE}? l.begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); -\?\>{NEW_LINE}? l.begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); +[;][ \t\n\r]*\?\>{NEW_LINE}? l.Begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); +\?\>{NEW_LINE}? l.Begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); {DNUM}|{EXPONENT_DNUM} lval.Token(l.createToken(l.Token())); return T_DNUMBER {BNUM} @@ -324,16 +325,16 @@ NEW_LINE (\r|\n|\r\n) \${VAR_NAME} lval.Token(l.createToken(l.Token())); return T_VARIABLE {VAR_NAME} lval.Token(l.createToken(l.Token())); return T_STRING --> l.begin(PROPERTY);lval.Token(l.createToken(l.Token())); return T_OBJECT_OPERATOR; +-> l.Begin(PROPERTY);lval.Token(l.createToken(l.Token())); return T_OBJECT_OPERATOR; [ \t\n\r]+ -> lval.Token(l.createToken(l.Token())); return T_OBJECT_OPERATOR; -{VAR_NAME} l.begin(PHP);lval.Token(l.createToken(l.Token())); return T_STRING; -. l.ungetChars(1);l.begin(PHP) +{VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return T_STRING; +. l.ungetChars(1);l.Begin(PHP) [\']([^\\\']*(\\(.|\n))*)*[\'] lval.Token(l.createToken(l.Token())); return T_CONSTANT_ENCAPSED_STRING; -` l.begin(BACKQUOTE); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) -` l.begin(PHP); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) +` l.Begin(BACKQUOTE); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) +` l.Begin(PHP); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])){NEW_LINE} tb := l.Token() @@ -364,13 +365,13 @@ NEW_LINE (\r|\n|\r\n) case '\'' : lblFirst++ lblLast-- - l.begin(NOWDOC) + l.Begin(NOWDOC) case '"' : lblFirst++ lblLast-- - l.begin(HEREDOC) + l.Begin(HEREDOC) default: - l.begin(HEREDOC) + l.Begin(HEREDOC) } l.heredocLabel = l.tokenString(tb[lblFirst:lblLast+1]) @@ -389,7 +390,7 @@ NEW_LINE (\r|\n|\r\n) ungetCnt++ c = l.Next() if '\n' == rune(c) || '\r' == rune(c) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) } } @@ -409,13 +410,13 @@ NEW_LINE (\r|\n|\r\n) if '\n' == rune(c) || '\r' == rune(c) { if l.heredocLabel + ";" == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)+1) break; } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)) break; } @@ -431,8 +432,8 @@ NEW_LINE (\r|\n|\r\n) lval.Token(l.createToken(tb) ) return T_ENCAPSED_AND_WHITESPACE -{VAR_NAME}\; l.begin(PHP);lval.Token(l.createToken(l.ungetChars(1))); return T_END_HEREDOC -{VAR_NAME} l.begin(PHP);lval.Token(l.createToken(l.Token())); return T_END_HEREDOC +{VAR_NAME}\; l.Begin(PHP);lval.Token(l.createToken(l.ungetChars(1))); return T_END_HEREDOC +{VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return T_END_HEREDOC [b]?[\"] binPrefix := l.Token()[0].Rune == 'b' @@ -589,14 +590,14 @@ NEW_LINE (\r|\n|\r\n) case '\n': if l.heredocLabel + ";" == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)+1+nls) lval.Token(l.createToken(tb)); return T_ENCAPSED_AND_WHITESPACE } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)+nls) lval.Token(l.createToken(tb)); return T_ENCAPSED_AND_WHITESPACE @@ -652,6 +653,8 @@ NEW_LINE (\r|\n|\r\n) {VAR_NAME}[\[\}] l.popState();l.pushState(PHP);lval.Token(l.createToken(l.ungetChars(1))); return T_STRING_VARNAME . l.ungetChars(1);l.popState();l.pushState(PHP) +.|[ \t\n\r] // do nothing + %% if c, ok := l.Abort(); ok { return int(c) } goto yyAction