diff --git a/php5/php5.go b/php5/php5.go index 66811ee..ec7b0b3 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:6801 +//line php5/php5.y:6803 type simpleIndirectReference struct { all []*expr.Variable last *expr.Variable @@ -2434,10 +2434,12 @@ yydefault: addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yylex.(*Parser).Begin(scanner.HALT_COMPILER) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:382 + //line php5/php5.y:384 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2454,7 +2456,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:397 + //line php5/php5.y:399 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2472,7 +2474,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:413 + //line php5/php5.y:415 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2488,7 +2490,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:427 + //line php5/php5.y:429 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2503,7 +2505,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:440 + //line php5/php5.y:442 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2521,7 +2523,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:456 + //line php5/php5.y:458 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2539,7 +2541,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:472 + //line php5/php5.y:474 { yyVAL.node = yyDollar[1].node @@ -2553,7 +2555,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:487 + //line php5/php5.y:489 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2564,7 +2566,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:496 + //line php5/php5.y:498 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2572,7 +2574,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:505 + //line php5/php5.y:507 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2585,7 +2587,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:516 + //line php5/php5.y:518 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2604,7 +2606,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:533 + //line php5/php5.y:535 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2620,7 +2622,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:547 + //line php5/php5.y:549 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2640,7 +2642,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:568 + //line php5/php5.y:570 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2651,7 +2653,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:577 + //line php5/php5.y:579 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2659,7 +2661,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:586 + //line php5/php5.y:588 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2672,7 +2674,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:597 + //line php5/php5.y:599 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2691,7 +2693,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:614 + //line php5/php5.y:616 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2707,7 +2709,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:628 + //line php5/php5.y:630 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2727,7 +2729,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:649 + //line php5/php5.y:651 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2738,7 +2740,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:658 + //line php5/php5.y:660 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2746,7 +2748,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:667 + //line php5/php5.y:669 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2759,7 +2761,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:678 + //line php5/php5.y:680 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2778,7 +2780,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:695 + //line php5/php5.y:697 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2794,7 +2796,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:709 + //line php5/php5.y:711 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2814,7 +2816,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:730 + //line php5/php5.y:732 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -2836,7 +2838,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:750 + //line php5/php5.y:752 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -2857,7 +2859,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:772 + //line php5/php5.y:774 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2867,7 +2869,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:780 + //line php5/php5.y:782 { yyVAL.list = []node.Node{} @@ -2875,7 +2877,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:790 + //line php5/php5.y:792 { // error yyVAL.node = nil @@ -2884,7 +2886,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:797 + //line php5/php5.y:799 { yyVAL.node = yyDollar[1].node @@ -2892,7 +2894,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:803 + //line php5/php5.y:805 { yyVAL.node = yyDollar[1].node @@ -2900,7 +2902,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:809 + //line php5/php5.y:811 { yyVAL.node = yyDollar[1].node @@ -2908,7 +2910,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:815 + //line php5/php5.y:817 { yyVAL.node = stmt.NewHaltCompiler() @@ -2925,7 +2927,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:834 + //line php5/php5.y:836 { yyVAL.node = yyDollar[1].node @@ -2933,7 +2935,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:840 + //line php5/php5.y:842 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -2950,7 +2952,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:858 + //line php5/php5.y:860 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -2965,7 +2967,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:871 + //line php5/php5.y:873 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -2985,7 +2987,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:889 + //line php5/php5.y:891 { stmts := stmt.NewStmtList(yyDollar[4].list) yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) @@ -3004,7 +3006,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:906 + //line php5/php5.y:908 { switch n := yyDollar[3].node.(type) { case *stmt.While: @@ -3025,7 +3027,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:925 + //line php5/php5.y:927 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) @@ -3041,7 +3043,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:939 + //line php5/php5.y:941 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3070,7 +3072,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:966 + //line php5/php5.y:968 { switch n := yyDollar[3].node.(type) { case *stmt.Switch: @@ -3093,7 +3095,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:987 + //line php5/php5.y:989 { yyVAL.node = stmt.NewBreak(nil) @@ -3108,7 +3110,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1000 + //line php5/php5.y:1002 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3123,7 +3125,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1013 + //line php5/php5.y:1015 { yyVAL.node = stmt.NewContinue(nil) @@ -3138,7 +3140,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1026 + //line php5/php5.y:1028 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3153,7 +3155,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1039 + //line php5/php5.y:1041 { yyVAL.node = stmt.NewReturn(nil) @@ -3168,7 +3170,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1052 + //line php5/php5.y:1054 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3183,7 +3185,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1065 + //line php5/php5.y:1067 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3198,7 +3200,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1078 + //line php5/php5.y:1080 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3212,7 +3214,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1090 + //line php5/php5.y:1092 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3227,7 +3229,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1103 + //line php5/php5.y:1105 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3242,7 +3244,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1116 + //line php5/php5.y:1118 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3257,7 +3259,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1129 + //line php5/php5.y:1131 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3271,7 +3273,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1141 + //line php5/php5.y:1143 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3285,7 +3287,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1153 + //line php5/php5.y:1155 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3302,7 +3304,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1168 + //line php5/php5.y:1170 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3341,7 +3343,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1205 + //line php5/php5.y:1207 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3380,7 +3382,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1242 + //line php5/php5.y:1244 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3396,7 +3398,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1256 + //line php5/php5.y:1258 { yyVAL.node = stmt.NewNop() @@ -3410,7 +3412,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1268 + //line php5/php5.y:1270 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3430,7 +3432,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1286 + //line php5/php5.y:1288 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3445,7 +3447,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1299 + //line php5/php5.y:1301 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3463,7 +3465,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1318 + //line php5/php5.y:1320 { yyVAL.list = []node.Node{} @@ -3471,7 +3473,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1324 + //line php5/php5.y:1326 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3495,7 +3497,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1349 + //line php5/php5.y:1351 { yyVAL.node = nil @@ -3503,7 +3505,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1355 + //line php5/php5.y:1357 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3519,7 +3521,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1372 + //line php5/php5.y:1374 { yyVAL.list = yyDollar[1].list @@ -3527,7 +3529,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1378 + //line php5/php5.y:1380 { yyVAL.list = []node.Node{} @@ -3535,7 +3537,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1387 + //line php5/php5.y:1389 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3543,7 +3545,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1393 + //line php5/php5.y:1395 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3551,7 +3553,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1402 + //line php5/php5.y:1404 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3574,7 +3576,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1426 + //line php5/php5.y:1428 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3582,7 +3584,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1432 + //line php5/php5.y:1434 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3593,7 +3595,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1444 + //line php5/php5.y:1446 { yyVAL.node = yyDollar[1].node @@ -3601,7 +3603,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1453 + //line php5/php5.y:1455 { yyVAL.node = yyDollar[1].node @@ -3609,7 +3611,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1462 + //line php5/php5.y:1464 { yyVAL.node = yyDollar[1].node @@ -3617,31 +3619,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1471 + //line php5/php5.y:1473 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1475 + //line php5/php5.y:1477 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1482 + //line php5/php5.y:1484 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1486 + //line php5/php5.y:1488 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1493 + //line php5/php5.y:1495 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") @@ -3665,7 +3667,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1518 + //line php5/php5.y:1520 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3695,7 +3697,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1546 + //line php5/php5.y:1548 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3713,7 +3715,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1566 + //line php5/php5.y:1568 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3727,7 +3729,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1578 + //line php5/php5.y:1580 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3744,7 +3746,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1593 + //line php5/php5.y:1595 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3758,7 +3760,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1605 + //line php5/php5.y:1607 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3775,7 +3777,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1623 + //line php5/php5.y:1625 { yyVAL.ClassExtends = nil @@ -3783,7 +3785,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1629 + //line php5/php5.y:1631 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3797,13 +3799,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1644 + //line php5/php5.y:1646 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1651 + //line php5/php5.y:1653 { yyVAL.InterfaceExtends = nil @@ -3811,7 +3813,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1657 + //line php5/php5.y:1659 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3825,7 +3827,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1672 + //line php5/php5.y:1674 { yyVAL.ClassImplements = nil @@ -3833,7 +3835,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1678 + //line php5/php5.y:1680 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3847,7 +3849,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1693 + //line php5/php5.y:1695 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3855,7 +3857,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1699 + //line php5/php5.y:1701 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3866,7 +3868,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1711 + //line php5/php5.y:1713 { yyVAL.node = nil @@ -3874,7 +3876,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1717 + //line php5/php5.y:1719 { yyVAL.node = yyDollar[2].node @@ -3885,7 +3887,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1729 + //line php5/php5.y:1731 { yyVAL.node = yyDollar[1].node @@ -3893,7 +3895,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1735 + //line php5/php5.y:1737 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3907,7 +3909,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1747 + //line php5/php5.y:1749 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -3923,7 +3925,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1764 + //line php5/php5.y:1766 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -3934,7 +3936,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1773 + //line php5/php5.y:1775 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -3952,7 +3954,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1792 + //line php5/php5.y:1794 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -3963,7 +3965,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1801 + //line php5/php5.y:1803 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -3981,7 +3983,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1821 + //line php5/php5.y:1823 { yyVAL.node = yyDollar[1].node @@ -3989,7 +3991,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1827 + //line php5/php5.y:1829 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -4005,7 +4007,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1845 + //line php5/php5.y:1847 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -4023,7 +4025,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1861 + //line php5/php5.y:1863 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4042,7 +4044,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1882 + //line php5/php5.y:1884 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4059,7 +4061,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1897 + //line php5/php5.y:1899 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4077,7 +4079,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1913 + //line php5/php5.y:1915 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4095,7 +4097,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1929 + //line php5/php5.y:1931 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4115,7 +4117,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1951 + //line php5/php5.y:1953 { yyVAL.list = []node.Node{} @@ -4123,7 +4125,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1957 + //line php5/php5.y:1959 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4139,7 +4141,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1971 + //line php5/php5.y:1973 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4155,19 +4157,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1989 + //line php5/php5.y:1991 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1993 + //line php5/php5.y:1995 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2001 + //line php5/php5.y:2003 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4178,7 +4180,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2010 + //line php5/php5.y:2012 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4196,7 +4198,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2031 + //line php5/php5.y:2033 { yyVAL.list = nil @@ -4204,7 +4206,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2037 + //line php5/php5.y:2039 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4219,7 +4221,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2054 + //line php5/php5.y:2056 { yyVAL.list = nil @@ -4227,7 +4229,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2060 + //line php5/php5.y:2062 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -4245,7 +4247,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2080 + //line php5/php5.y:2082 { yyVAL.node = nil @@ -4253,7 +4255,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2086 + //line php5/php5.y:2088 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -4267,7 +4269,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2102 + //line php5/php5.y:2104 { yyVAL.node = nil @@ -4275,7 +4277,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2108 + //line php5/php5.y:2110 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4292,7 +4294,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2127 + //line php5/php5.y:2129 { yyVAL.list = yyDollar[1].list @@ -4300,7 +4302,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2133 + //line php5/php5.y:2135 { yyVAL.list = nil @@ -4308,7 +4310,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2142 + //line php5/php5.y:2144 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4316,7 +4318,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2148 + //line php5/php5.y:2150 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4327,7 +4329,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2160 + //line php5/php5.y:2162 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4359,7 +4361,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2190 + //line php5/php5.y:2192 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4392,7 +4394,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2225 + //line php5/php5.y:2227 { yyVAL.node = nil @@ -4400,7 +4402,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2231 + //line php5/php5.y:2233 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4414,7 +4416,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2243 + //line php5/php5.y:2245 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4428,7 +4430,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2255 + //line php5/php5.y:2257 { yyVAL.node = yyDollar[1].node @@ -4436,7 +4438,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2265 + //line php5/php5.y:2267 { yyVAL.node = node.NewArgumentList(nil) @@ -4451,7 +4453,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2278 + //line php5/php5.y:2280 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4466,7 +4468,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2291 + //line php5/php5.y:2293 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4483,7 +4485,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2310 + //line php5/php5.y:2312 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4491,7 +4493,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2316 + //line php5/php5.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4502,7 +4504,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2328 + //line php5/php5.y:2330 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4513,7 +4515,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2337 + //line php5/php5.y:2339 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4524,7 +4526,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2346 + //line php5/php5.y:2348 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4538,7 +4540,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2358 + //line php5/php5.y:2360 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4552,7 +4554,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2373 + //line php5/php5.y:2375 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4563,7 +4565,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2382 + //line php5/php5.y:2384 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4571,7 +4573,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2392 + //line php5/php5.y:2394 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4587,7 +4589,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2406 + //line php5/php5.y:2408 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4601,7 +4603,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2418 + //line php5/php5.y:2420 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4617,7 +4619,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2436 + //line php5/php5.y:2438 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4637,7 +4639,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2454 + //line php5/php5.y:2456 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4658,7 +4660,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2473 + //line php5/php5.y:2475 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4677,7 +4679,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2490 + //line php5/php5.y:2492 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4697,7 +4699,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2512 + //line php5/php5.y:2514 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4705,7 +4707,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2518 + //line php5/php5.y:2520 { yyVAL.list = []node.Node{} @@ -4713,7 +4715,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2528 + //line php5/php5.y:2530 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4727,7 +4729,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2540 + //line php5/php5.y:2542 { yyVAL.node = yyDollar[1].node @@ -4741,7 +4743,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2552 + //line php5/php5.y:2554 { yyVAL.node = yyDollar[1].node @@ -4749,7 +4751,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2558 + //line php5/php5.y:2560 { 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, "") @@ -4775,7 +4777,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2585 + //line php5/php5.y:2587 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4789,7 +4791,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2600 + //line php5/php5.y:2602 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4797,7 +4799,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2606 + //line php5/php5.y:2608 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4808,7 +4810,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2618 + //line php5/php5.y:2620 { yyVAL.node = stmt.NewNop() @@ -4821,7 +4823,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2630 + //line php5/php5.y:2632 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4835,7 +4837,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2645 + //line php5/php5.y:2647 { yyVAL.list = nil @@ -4843,7 +4845,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2651 + //line php5/php5.y:2653 { yyVAL.list = yyDollar[1].list @@ -4851,7 +4853,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2660 + //line php5/php5.y:2662 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4859,7 +4861,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2666 + //line php5/php5.y:2668 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4867,7 +4869,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2675 + //line php5/php5.y:2677 { yyVAL.node = yyDollar[1].node @@ -4878,7 +4880,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2684 + //line php5/php5.y:2686 { yyVAL.node = yyDollar[1].node @@ -4889,7 +4891,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2696 + //line php5/php5.y:2698 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4903,7 +4905,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2711 + //line php5/php5.y:2713 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4911,7 +4913,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2717 + //line php5/php5.y:2719 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4922,7 +4924,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2729 + //line php5/php5.y:2731 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4938,7 +4940,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2743 + //line php5/php5.y:2745 { yyVAL.node = yyDollar[1].node @@ -4946,7 +4948,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2752 + //line php5/php5.y:2754 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4963,7 +4965,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2770 + //line php5/php5.y:2772 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4980,7 +4982,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2785 + //line php5/php5.y:2787 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4994,7 +4996,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2800 + //line php5/php5.y:2802 { yyVAL.node = nil @@ -5002,7 +5004,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2806 + //line php5/php5.y:2808 { yyVAL.node = yyDollar[1].node @@ -5010,7 +5012,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2815 + //line php5/php5.y:2817 { yyVAL.node = stmt.NewNop() @@ -5024,7 +5026,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2827 + //line php5/php5.y:2829 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5039,7 +5041,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2843 + //line php5/php5.y:2845 { yyVAL.list = yyDollar[1].list @@ -5047,7 +5049,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2849 + //line php5/php5.y:2851 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5062,7 +5064,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2865 + //line php5/php5.y:2867 { yyVAL.list = nil @@ -5070,7 +5072,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2871 + //line php5/php5.y:2873 { yyVAL.list = yyDollar[1].list @@ -5078,7 +5080,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2880 + //line php5/php5.y:2882 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5086,7 +5088,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2886 + //line php5/php5.y:2888 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5094,7 +5096,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2895 + //line php5/php5.y:2897 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5108,7 +5110,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2907 + //line php5/php5.y:2909 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5122,7 +5124,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2919 + //line php5/php5.y:2921 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5136,7 +5138,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2931 + //line php5/php5.y:2933 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5150,7 +5152,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2943 + //line php5/php5.y:2945 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5164,7 +5166,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2955 + //line php5/php5.y:2957 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5178,7 +5180,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2970 + //line php5/php5.y:2972 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5198,7 +5200,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2988 + //line php5/php5.y:2990 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5219,7 +5221,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3007 + //line php5/php5.y:3009 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5238,7 +5240,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3024 + //line php5/php5.y:3026 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5258,7 +5260,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3045 + //line php5/php5.y:3047 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -5280,7 +5282,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3065 + //line php5/php5.y:3067 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5300,7 +5302,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3086 + //line php5/php5.y:3088 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5311,7 +5313,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3095 + //line php5/php5.y:3097 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5319,7 +5321,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3105 + //line php5/php5.y:3107 { yyVAL.list = nil @@ -5327,7 +5329,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3111 + //line php5/php5.y:3113 { yyVAL.list = yyDollar[1].list @@ -5335,7 +5337,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3120 + //line php5/php5.y:3122 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5346,7 +5348,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3129 + //line php5/php5.y:3131 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5354,7 +5356,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3138 + //line php5/php5.y:3140 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5362,7 +5364,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3144 + //line php5/php5.y:3146 { yyVAL.list = yyDollar[1].list @@ -5370,7 +5372,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3153 + //line php5/php5.y:3155 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5386,7 +5388,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3167 + //line php5/php5.y:3169 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5402,7 +5404,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3184 + //line php5/php5.y:3186 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5410,7 +5412,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3190 + //line php5/php5.y:3192 { yyVAL.list = yyDollar[1].list @@ -5418,7 +5420,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3196 + //line php5/php5.y:3198 { yyVAL.list = yyDollar[1].list @@ -5426,7 +5428,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3205 + //line php5/php5.y:3207 { yyVAL.list = nil @@ -5434,7 +5436,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3211 + //line php5/php5.y:3213 { yyVAL.list = yyDollar[1].list @@ -5442,7 +5444,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3220 + //line php5/php5.y:3222 { if yyDollar[3].node != nil { @@ -5460,7 +5462,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3239 + //line php5/php5.y:3241 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5479,7 +5481,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3256 + //line php5/php5.y:3258 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5493,7 +5495,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3268 + //line php5/php5.y:3270 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5508,7 +5510,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3281 + //line php5/php5.y:3283 { var _new *expr.New @@ -5536,7 +5538,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3307 + //line php5/php5.y:3309 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5550,7 +5552,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3319 + //line php5/php5.y:3321 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5564,7 +5566,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3331 + //line php5/php5.y:3333 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5578,7 +5580,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3343 + //line php5/php5.y:3345 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5592,7 +5594,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3355 + //line php5/php5.y:3357 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5606,7 +5608,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3367 + //line php5/php5.y:3369 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5620,7 +5622,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3379 + //line php5/php5.y:3381 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5634,7 +5636,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3391 + //line php5/php5.y:3393 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5648,7 +5650,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3403 + //line php5/php5.y:3405 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5662,7 +5664,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3415 + //line php5/php5.y:3417 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5676,7 +5678,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3427 + //line php5/php5.y:3429 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5690,7 +5692,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3439 + //line php5/php5.y:3441 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5704,7 +5706,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3451 + //line php5/php5.y:3453 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5718,7 +5720,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3463 + //line php5/php5.y:3465 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5732,7 +5734,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3475 + //line php5/php5.y:3477 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5746,7 +5748,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3487 + //line php5/php5.y:3489 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5760,7 +5762,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3499 + //line php5/php5.y:3501 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5774,7 +5776,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3511 + //line php5/php5.y:3513 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5788,7 +5790,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3523 + //line php5/php5.y:3525 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5802,7 +5804,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3535 + //line php5/php5.y:3537 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5816,7 +5818,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3547 + //line php5/php5.y:3549 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5830,7 +5832,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3559 + //line php5/php5.y:3561 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5844,7 +5846,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3571 + //line php5/php5.y:3573 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5858,7 +5860,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3583 + //line php5/php5.y:3585 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5872,7 +5874,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3595 + //line php5/php5.y:3597 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5886,7 +5888,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3607 + //line php5/php5.y:3609 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5900,7 +5902,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3619 + //line php5/php5.y:3621 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5914,7 +5916,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3631 + //line php5/php5.y:3633 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5928,7 +5930,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3643 + //line php5/php5.y:3645 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5942,7 +5944,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3655 + //line php5/php5.y:3657 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5956,7 +5958,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3667 + //line php5/php5.y:3669 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5970,7 +5972,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3679 + //line php5/php5.y:3681 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5984,7 +5986,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3691 + //line php5/php5.y:3693 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5998,7 +6000,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3703 + //line php5/php5.y:3705 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6012,7 +6014,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3715 + //line php5/php5.y:3717 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6026,7 +6028,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3727 + //line php5/php5.y:3729 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6040,7 +6042,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3739 + //line php5/php5.y:3741 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6054,7 +6056,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3751 + //line php5/php5.y:3753 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6068,7 +6070,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3763 + //line php5/php5.y:3765 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6082,7 +6084,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3775 + //line php5/php5.y:3777 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6096,7 +6098,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3787 + //line php5/php5.y:3789 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6110,7 +6112,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3799 + //line php5/php5.y:3801 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6124,7 +6126,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3811 + //line php5/php5.y:3813 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6138,7 +6140,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3823 + //line php5/php5.y:3825 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6152,7 +6154,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3835 + //line php5/php5.y:3837 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6166,7 +6168,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3847 + //line php5/php5.y:3849 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6180,7 +6182,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3859 + //line php5/php5.y:3861 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6194,7 +6196,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3871 + //line php5/php5.y:3873 { yyVAL.node = yyDollar[1].node @@ -6202,7 +6204,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3877 + //line php5/php5.y:3879 { yyVAL.node = yyDollar[1].node @@ -6210,7 +6212,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3883 + //line php5/php5.y:3885 { yyVAL.node = yyDollar[2].node @@ -6241,7 +6243,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3912 + //line php5/php5.y:3914 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6256,7 +6258,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3925 + //line php5/php5.y:3927 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6271,7 +6273,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3938 + //line php5/php5.y:3940 { yyVAL.node = yyDollar[1].node @@ -6279,7 +6281,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3944 + //line php5/php5.y:3946 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6293,7 +6295,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3956 + //line php5/php5.y:3958 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6307,7 +6309,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3968 + //line php5/php5.y:3970 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6321,7 +6323,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3980 + //line php5/php5.y:3982 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6335,7 +6337,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3992 + //line php5/php5.y:3994 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6349,7 +6351,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4004 + //line php5/php5.y:4006 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6363,7 +6365,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4016 + //line php5/php5.y:4018 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6377,7 +6379,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4028 + //line php5/php5.y:4030 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6406,7 +6408,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4055 + //line php5/php5.y:4057 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6420,7 +6422,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4067 + //line php5/php5.y:4069 { yyVAL.node = yyDollar[1].node @@ -6428,7 +6430,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4073 + //line php5/php5.y:4075 { yyVAL.node = yyDollar[1].node @@ -6436,7 +6438,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4079 + //line php5/php5.y:4081 { yyVAL.node = yyDollar[1].node @@ -6444,7 +6446,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4085 + //line php5/php5.y:4087 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6459,7 +6461,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4098 + //line php5/php5.y:4100 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6473,7 +6475,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4110 + //line php5/php5.y:4112 { yyVAL.node = expr.NewYield(nil, nil) @@ -6487,7 +6489,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4122 + //line php5/php5.y:4124 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6508,7 +6510,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4141 + //line php5/php5.y:4143 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6530,7 +6532,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4164 + //line php5/php5.y:4166 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6544,7 +6546,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4176 + //line php5/php5.y:4178 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6558,7 +6560,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4188 + //line php5/php5.y:4190 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6573,7 +6575,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4201 + //line php5/php5.y:4203 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6588,7 +6590,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4217 + //line php5/php5.y:4219 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6603,7 +6605,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4230 + //line php5/php5.y:4232 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6618,7 +6620,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4243 + //line php5/php5.y:4245 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6635,7 +6637,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4258 + //line php5/php5.y:4260 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6650,7 +6652,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4274 + //line php5/php5.y:4276 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6666,7 +6668,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4288 + //line php5/php5.y:4290 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6681,13 +6683,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4304 + //line php5/php5.y:4306 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4311 + //line php5/php5.y:4313 { yyVAL.ClosureUse = nil @@ -6695,7 +6697,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4317 + //line php5/php5.y:4319 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6705,7 +6707,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4328 + //line php5/php5.y:4330 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6723,7 +6725,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4344 + //line php5/php5.y:4346 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6744,7 +6746,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4363 + //line php5/php5.y:4365 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6761,7 +6763,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4378 + //line php5/php5.y:4380 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6781,7 +6783,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4399 + //line php5/php5.y:4401 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -6794,7 +6796,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4410 + //line php5/php5.y:4412 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -6811,7 +6813,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4425 + //line php5/php5.y:4427 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -6827,7 +6829,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4439 + //line php5/php5.y:4441 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6841,7 +6843,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4451 + //line php5/php5.y:4453 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6855,7 +6857,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4463 + //line php5/php5.y:4465 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6869,7 +6871,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4475 + //line php5/php5.y:4477 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6883,7 +6885,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4487 + //line php5/php5.y:4489 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6894,7 +6896,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4499 + //line php5/php5.y:4501 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6908,7 +6910,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4511 + //line php5/php5.y:4513 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -6919,7 +6921,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4520 + //line php5/php5.y:4522 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6934,7 +6936,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4533 + //line php5/php5.y:4535 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6948,7 +6950,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4548 + //line php5/php5.y:4550 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -6959,7 +6961,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4557 + //line php5/php5.y:4559 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6974,7 +6976,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4570 + //line php5/php5.y:4572 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6988,7 +6990,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4585 + //line php5/php5.y:4587 { yyVAL.node = yyDollar[1].node @@ -6996,7 +6998,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4591 + //line php5/php5.y:4593 { yyVAL.node = yyDollar[1].node @@ -7004,7 +7006,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4600 + //line php5/php5.y:4602 { yyVAL.node = yyDollar[1].node @@ -7043,7 +7045,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4637 + //line php5/php5.y:4639 { yyVAL.node = yyDollar[1].node @@ -7051,7 +7053,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4647 + //line php5/php5.y:4649 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7059,7 +7061,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4653 + //line php5/php5.y:4655 { yyVAL.list = []node.Node{} @@ -7067,7 +7069,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4663 + //line php5/php5.y:4665 { yyVAL.list = yyDollar[2].list @@ -7078,7 +7080,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4675 + //line php5/php5.y:4677 { yyVAL.node = nil @@ -7086,7 +7088,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4681 + //line php5/php5.y:4683 { yyVAL.node = expr.NewExit(nil) @@ -7101,7 +7103,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4694 + //line php5/php5.y:4696 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7116,7 +7118,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4710 + //line php5/php5.y:4712 { yyVAL.list = []node.Node{} @@ -7124,7 +7126,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4716 + //line php5/php5.y:4718 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -7132,7 +7134,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4722 + //line php5/php5.y:4724 { yyVAL.list = yyDollar[1].list @@ -7140,7 +7142,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4731 + //line php5/php5.y:4733 { yyVAL.node = nil @@ -7148,7 +7150,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4737 + //line php5/php5.y:4739 { yyVAL.node = yyDollar[1].node @@ -7156,7 +7158,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4746 + //line php5/php5.y:4748 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7170,7 +7172,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4758 + //line php5/php5.y:4760 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7184,7 +7186,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4770 + //line php5/php5.y:4772 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7198,7 +7200,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4782 + //line php5/php5.y:4784 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7212,7 +7214,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4794 + //line php5/php5.y:4796 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7226,7 +7228,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4806 + //line php5/php5.y:4808 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7240,7 +7242,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4818 + //line php5/php5.y:4820 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7254,7 +7256,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4830 + //line php5/php5.y:4832 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7268,7 +7270,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4842 + //line php5/php5.y:4844 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7282,7 +7284,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4854 + //line php5/php5.y:4856 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7296,7 +7298,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4866 + //line php5/php5.y:4868 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7312,7 +7314,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4880 + //line php5/php5.y:4882 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7326,7 +7328,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4895 + //line php5/php5.y:4897 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7343,7 +7345,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4913 + //line php5/php5.y:4915 { yyVAL.node = yyDollar[1].node @@ -7351,7 +7353,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4922 + //line php5/php5.y:4924 { yyVAL.node = yyDollar[1].node @@ -7359,7 +7361,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4928 + //line php5/php5.y:4930 { yyVAL.node = yyDollar[1].node @@ -7367,7 +7369,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4934 + //line php5/php5.y:4936 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7380,7 +7382,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4945 + //line php5/php5.y:4947 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7397,7 +7399,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4960 + //line php5/php5.y:4962 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7413,7 +7415,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4974 + //line php5/php5.y:4976 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7429,7 +7431,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4988 + //line php5/php5.y:4990 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7444,7 +7446,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5001 + //line php5/php5.y:5003 { yyVAL.node = yyDollar[1].node @@ -7452,7 +7454,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5007 + //line php5/php5.y:5009 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7466,7 +7468,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5019 + //line php5/php5.y:5021 { yyVAL.node = yyDollar[1].node @@ -7474,7 +7476,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5028 + //line php5/php5.y:5030 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7489,7 +7491,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5041 + //line php5/php5.y:5043 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7503,7 +7505,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5053 + //line php5/php5.y:5055 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7517,7 +7519,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5065 + //line php5/php5.y:5067 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7531,7 +7533,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5077 + //line php5/php5.y:5079 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7545,7 +7547,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5089 + //line php5/php5.y:5091 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7559,7 +7561,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5101 + //line php5/php5.y:5103 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7573,7 +7575,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5113 + //line php5/php5.y:5115 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7587,7 +7589,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5125 + //line php5/php5.y:5127 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7601,7 +7603,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5137 + //line php5/php5.y:5139 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7615,7 +7617,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5149 + //line php5/php5.y:5151 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7629,7 +7631,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5161 + //line php5/php5.y:5163 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7643,7 +7645,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5173 + //line php5/php5.y:5175 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -7657,7 +7659,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5185 + //line php5/php5.y:5187 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -7671,7 +7673,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5197 + //line php5/php5.y:5199 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -7685,7 +7687,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5209 + //line php5/php5.y:5211 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -7699,7 +7701,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5221 + //line php5/php5.y:5223 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -7713,7 +7715,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5233 + //line php5/php5.y:5235 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -7727,7 +7729,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5245 + //line php5/php5.y:5247 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -7741,7 +7743,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5257 + //line php5/php5.y:5259 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -7755,7 +7757,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5269 + //line php5/php5.y:5271 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7769,7 +7771,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5281 + //line php5/php5.y:5283 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7783,7 +7785,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5293 + //line php5/php5.y:5295 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -7797,7 +7799,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5305 + //line php5/php5.y:5307 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -7811,7 +7813,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5317 + //line php5/php5.y:5319 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -7825,7 +7827,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5329 + //line php5/php5.y:5331 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -7839,7 +7841,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5341 + //line php5/php5.y:5343 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7853,7 +7855,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5353 + //line php5/php5.y:5355 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7867,7 +7869,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5365 + //line php5/php5.y:5367 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -7882,7 +7884,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5378 + //line php5/php5.y:5380 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -7897,7 +7899,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5391 + //line php5/php5.y:5393 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -7911,7 +7913,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5403 + //line php5/php5.y:5405 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -7925,7 +7927,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5415 + //line php5/php5.y:5417 { yyVAL.node = yyDollar[2].node @@ -7937,7 +7939,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5428 + //line php5/php5.y:5430 { yyVAL.node = yyDollar[1].node @@ -7945,7 +7947,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5434 + //line php5/php5.y:5436 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7958,7 +7960,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5445 + //line php5/php5.y:5447 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7973,7 +7975,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5458 + //line php5/php5.y:5460 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7989,7 +7991,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5475 + //line php5/php5.y:5477 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8005,7 +8007,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5489 + //line php5/php5.y:5491 { yyVAL.node = yyDollar[1].node @@ -8013,7 +8015,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5495 + //line php5/php5.y:5497 { yyVAL.node = yyDollar[1].node @@ -8021,7 +8023,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5501 + //line php5/php5.y:5503 { yyVAL.node = yyDollar[1].node @@ -8029,7 +8031,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5507 + //line php5/php5.y:5509 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8043,7 +8045,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5519 + //line php5/php5.y:5521 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8057,7 +8059,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5531 + //line php5/php5.y:5533 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8071,7 +8073,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5546 + //line php5/php5.y:5548 { yyVAL.list = nil @@ -8079,7 +8081,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5552 + //line php5/php5.y:5554 { yyVAL.list = yyDollar[1].list @@ -8092,19 +8094,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5566 + //line php5/php5.y:5568 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5570 + //line php5/php5.y:5572 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5577 + //line php5/php5.y:5579 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8120,7 +8122,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5591 + //line php5/php5.y:5593 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8135,7 +8137,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5604 + //line php5/php5.y:5606 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8150,7 +8152,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5617 + //line php5/php5.y:5619 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8162,7 +8164,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5630 + //line php5/php5.y:5632 { yyVAL.node = yyDollar[1].node @@ -8170,7 +8172,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5636 + //line php5/php5.y:5638 { yyVAL.node = yyDollar[1].node @@ -8178,7 +8180,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5645 + //line php5/php5.y:5647 { yyVAL.node = yyDollar[2].node @@ -8190,7 +8192,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5655 + //line php5/php5.y:5657 { yyVAL.node = yyDollar[2].node @@ -8202,7 +8204,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5669 + //line php5/php5.y:5671 { yyVAL.node = yyDollar[1].node @@ -8210,7 +8212,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5679 + //line php5/php5.y:5681 { yyVAL.node = yyDollar[1].node @@ -8218,7 +8220,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5688 + //line php5/php5.y:5690 { yyVAL.node = yyDollar[1].node @@ -8226,7 +8228,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5697 + //line php5/php5.y:5699 { yyVAL.node = yyDollar[1].node @@ -8280,7 +8282,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5749 + //line php5/php5.y:5751 { yyVAL.node = yyDollar[1].node @@ -8288,7 +8290,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5758 + //line php5/php5.y:5760 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8296,7 +8298,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5764 + //line php5/php5.y:5766 { yyVAL.list = []node.Node{} @@ -8304,7 +8306,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5774 + //line php5/php5.y:5776 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8320,7 +8322,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5791 + //line php5/php5.y:5793 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8336,7 +8338,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5805 + //line php5/php5.y:5807 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8352,7 +8354,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5822 + //line php5/php5.y:5824 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8363,7 +8365,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5834 + //line php5/php5.y:5836 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8371,7 +8373,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5840 + //line php5/php5.y:5842 { yyVAL.list = yyDollar[1].list @@ -8379,7 +8381,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5846 + //line php5/php5.y:5848 { yyVAL.list = nil @@ -8387,7 +8389,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5855 + //line php5/php5.y:5857 { yyVAL.node = yyDollar[1].node @@ -8395,7 +8397,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5861 + //line php5/php5.y:5863 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8409,7 +8411,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5876 + //line php5/php5.y:5878 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8423,7 +8425,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5888 + //line php5/php5.y:5890 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8437,7 +8439,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5903 + //line php5/php5.y:5905 { yyVAL.node = yyDollar[1].node @@ -8445,7 +8447,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5912 + //line php5/php5.y:5914 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8460,7 +8462,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5925 + //line php5/php5.y:5927 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8475,7 +8477,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5941 + //line php5/php5.y:5943 { yyVAL.node = yyDollar[1].node @@ -8483,7 +8485,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5947 + //line php5/php5.y:5949 { yyVAL.node = yyDollar[1].node @@ -8491,7 +8493,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5953 + //line php5/php5.y:5955 { yyVAL.node = yyDollar[1].node @@ -8499,7 +8501,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5963 + //line php5/php5.y:5965 { yyVAL.node = yyDollar[1].node @@ -8507,7 +8509,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5969 + //line php5/php5.y:5971 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8521,7 +8523,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5981 + //line php5/php5.y:5983 { yyVAL.node = yyDollar[1].node @@ -8529,7 +8531,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5990 + //line php5/php5.y:5992 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8544,7 +8546,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6003 + //line php5/php5.y:6005 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8559,7 +8561,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6016 + //line php5/php5.y:6018 { yyVAL.node = yyDollar[1].node @@ -8567,7 +8569,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6026 + //line php5/php5.y:6028 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8583,7 +8585,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6040 + //line php5/php5.y:6042 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -8599,7 +8601,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6057 + //line php5/php5.y:6059 { yyVAL.node = nil @@ -8607,7 +8609,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6063 + //line php5/php5.y:6065 { yyVAL.node = yyDollar[1].node @@ -8615,7 +8617,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6073 + //line php5/php5.y:6075 { yyVAL.list = yyDollar[1].list @@ -8623,7 +8625,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6079 + //line php5/php5.y:6081 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8635,7 +8637,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6092 + //line php5/php5.y:6094 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8651,7 +8653,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6106 + //line php5/php5.y:6108 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8667,7 +8669,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6120 + //line php5/php5.y:6122 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8679,7 +8681,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6133 + //line php5/php5.y:6135 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -8693,7 +8695,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6145 + //line php5/php5.y:6147 { yyVAL.node = yyDollar[2].node @@ -8708,7 +8710,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6161 + //line php5/php5.y:6163 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -8723,7 +8725,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6174 + //line php5/php5.y:6176 { n := expr.NewVariable(nil) @@ -8742,7 +8744,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6194 + //line php5/php5.y:6196 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -8757,7 +8759,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6207 + //line php5/php5.y:6209 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -8769,7 +8771,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6221 + //line php5/php5.y:6223 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -8780,7 +8782,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6230 + //line php5/php5.y:6232 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) @@ -8798,7 +8800,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6246 + //line php5/php5.y:6248 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -8806,7 +8808,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6256 + //line php5/php5.y:6258 { yyVAL.list = []node.Node{} @@ -8814,7 +8816,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6262 + //line php5/php5.y:6264 { yyVAL.list = yyDollar[1].list @@ -8831,7 +8833,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6280 + //line php5/php5.y:6282 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8847,7 +8849,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6294 + //line php5/php5.y:6296 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8862,7 +8864,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6307 + //line php5/php5.y:6309 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8877,7 +8879,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6320 + //line php5/php5.y:6322 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8889,7 +8891,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6330 + //line php5/php5.y:6332 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) @@ -8908,7 +8910,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6347 + //line php5/php5.y:6349 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -8926,7 +8928,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6363 + //line php5/php5.y:6365 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) @@ -8944,7 +8946,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6379 + //line php5/php5.y:6381 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -8961,7 +8963,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6397 + //line php5/php5.y:6399 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8969,7 +8971,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6403 + //line php5/php5.y:6405 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8984,7 +8986,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6416 + //line php5/php5.y:6418 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8992,7 +8994,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6422 + //line php5/php5.y:6424 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9007,7 +9009,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6438 + //line php5/php5.y:6440 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9023,7 +9025,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6452 + //line php5/php5.y:6454 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9043,7 +9045,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6470 + //line php5/php5.y:6472 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9065,7 +9067,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6490 + //line php5/php5.y:6492 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -9080,7 +9082,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6503 + //line php5/php5.y:6505 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -9098,7 +9100,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6519 + //line php5/php5.y:6521 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -9120,7 +9122,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6539 + //line php5/php5.y:6541 { yyVAL.node = yyDollar[2].node @@ -9128,7 +9130,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6548 + //line php5/php5.y:6550 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9142,7 +9144,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6560 + //line php5/php5.y:6562 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9161,7 +9163,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6577 + //line php5/php5.y:6579 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9177,7 +9179,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6594 + //line php5/php5.y:6596 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9193,7 +9195,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6608 + //line php5/php5.y:6610 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9209,7 +9211,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6622 + //line php5/php5.y:6624 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9225,7 +9227,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6636 + //line php5/php5.y:6638 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9239,7 +9241,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6648 + //line php5/php5.y:6650 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9253,7 +9255,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6660 + //line php5/php5.y:6662 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9269,7 +9271,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6674 + //line php5/php5.y:6676 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9283,7 +9285,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6686 + //line php5/php5.y:6688 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9297,7 +9299,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6701 + //line php5/php5.y:6703 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9305,7 +9307,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6707 + //line php5/php5.y:6709 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9316,7 +9318,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6719 + //line php5/php5.y:6721 { yyVAL.node = yyDollar[1].node @@ -9324,7 +9326,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6725 + //line php5/php5.y:6727 { yyVAL.node = yyDollar[1].node @@ -9332,7 +9334,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6734 + //line php5/php5.y:6736 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9349,7 +9351,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6749 + //line php5/php5.y:6751 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9366,7 +9368,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6767 + //line php5/php5.y:6769 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9383,7 +9385,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6785 + //line php5/php5.y:6787 { 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 bfe5e75..a3b4084 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -377,6 +377,8 @@ top_statement: addMeta($$, $4.Meta, meta.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 3e172db..1610058 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -121,7 +121,6 @@ func TestPhp5(t *testing.T) { function foo() {} function foo() { - __halt_compiler(); function bar() {} class Baz {} return $a; @@ -133,7 +132,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 {} @@ -412,6 +410,10 @@ func TestPhp5(t *testing.T) { ${$a}; $foo::{$bar}(); $foo::bar; + + __halt_compiler(); + + parsing process must be terminated ` expected := &node.Root{ @@ -419,7 +421,7 @@ func TestPhp5(t *testing.T) { StartLine: 2, EndLine: 379, StartPos: 6, - EndPos: 6965, + EndPos: 6944, }, Stmts: []node.Node{ &stmt.Expression{ @@ -567,8 +569,8 @@ func TestPhp5(t *testing.T) { StartPos: 29, EndPos: 30, }, - IsReference: false, Variadic: false, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 3, @@ -700,8 +702,8 @@ func TestPhp5(t *testing.T) { StartPos: 57, EndPos: 61, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 4, @@ -914,8 +916,8 @@ func TestPhp5(t *testing.T) { StartPos: 104, EndPos: 108, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 6, @@ -1044,8 +1046,8 @@ func TestPhp5(t *testing.T) { StartPos: 137, EndPos: 180, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1383,8 +1385,8 @@ func TestPhp5(t *testing.T) { StartPos: 259, EndPos: 271, }, - Variadic: false, ByRef: false, + Variadic: false, VariableType: &name.Name{ Position: &position.Position{ StartLine: 11, @@ -1456,8 +1458,8 @@ func TestPhp5(t *testing.T) { StartPos: 274, EndPos: 285, }, - ByRef: true, Variadic: true, + ByRef: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 11, @@ -4593,9 +4595,9 @@ func TestPhp5(t *testing.T) { &stmt.Function{ Position: &position.Position{ StartLine: 88, - EndLine: 93, + EndLine: 92, StartPos: 2062, - EndPos: 2154, + EndPos: 2132, }, ReturnsRef: false, PhpDocComment: "", @@ -4609,29 +4611,21 @@ func TestPhp5(t *testing.T) { Value: "foo", }, Stmts: []node.Node{ - &stmt.HaltCompiler{ + &stmt.Function{ Position: &position.Position{ StartLine: 89, EndLine: 89, StartPos: 2082, - EndPos: 2099, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 2104, - EndPos: 2120, + EndPos: 2098, }, ReturnsRef: false, PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 2113, - EndPos: 2115, + StartLine: 89, + EndLine: 89, + StartPos: 2091, + EndPos: 2093, }, Value: "bar", }, @@ -4639,18 +4633,18 @@ func TestPhp5(t *testing.T) { }, &stmt.Class{ Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2125, - EndPos: 2136, + StartLine: 90, + EndLine: 90, + StartPos: 2103, + EndPos: 2114, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2131, - EndPos: 2133, + StartLine: 90, + EndLine: 90, + StartPos: 2109, + EndPos: 2111, }, Value: "Baz", }, @@ -4658,24 +4652,24 @@ func TestPhp5(t *testing.T) { }, &stmt.Return{ Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2141, - EndPos: 2150, + StartLine: 91, + EndLine: 91, + StartPos: 2119, + EndPos: 2128, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2148, - EndPos: 2149, + StartLine: 91, + EndLine: 91, + StartPos: 2126, + EndPos: 2127, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2148, - EndPos: 2149, + StartLine: 91, + EndLine: 91, + StartPos: 2126, + EndPos: 2127, }, Value: "a", }, @@ -4683,141 +4677,141 @@ func TestPhp5(t *testing.T) { }, }, }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2139, + EndPos: 2183, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2148, + EndPos: 2150, + }, + Value: "foo", + }, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2152, + EndPos: 2159, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2152, + EndPos: 2156, + }, + Value: "array", + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2158, + EndPos: 2159, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2158, + EndPos: 2159, + }, + Value: "a", + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2162, + EndPos: 2172, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2162, + EndPos: 2169, + }, + Value: "callable", + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2171, + EndPos: 2172, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2171, + EndPos: 2172, + }, + Value: "b", + }, + }, + }, + }, + Stmts: []node.Node{ + &stmt.Return{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2176, + EndPos: 2182, + }, + }, + }, + }, &stmt.Function{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2161, - EndPos: 2205, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2170, - EndPos: 2172, - }, - Value: "foo", - }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2174, - EndPos: 2181, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2174, - EndPos: 2178, - }, - Value: "array", - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2180, - EndPos: 2181, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2180, - EndPos: 2181, - }, - Value: "a", - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2184, - EndPos: 2194, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2184, - EndPos: 2191, - }, - Value: "callable", - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2193, - EndPos: 2194, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2193, - EndPos: 2194, - }, - Value: "b", - }, - }, - }, - }, - Stmts: []node.Node{ - &stmt.Return{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2198, - EndPos: 2204, - }, - }, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2209, - EndPos: 2235, + StartPos: 2187, + EndPos: 2213, }, ReturnsRef: true, PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2219, - EndPos: 2221, + StartLine: 95, + EndLine: 95, + StartPos: 2197, + EndPos: 2199, }, Value: "foo", }, Stmts: []node.Node{ &stmt.Return{ Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2226, - EndPos: 2234, + StartLine: 95, + EndLine: 95, + StartPos: 2204, + EndPos: 2212, }, Expr: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2233, - EndPos: 2233, + StartLine: 95, + EndLine: 95, + StartPos: 2211, + EndPos: 2211, }, Value: "1", }, @@ -4826,19 +4820,19 @@ func TestPhp5(t *testing.T) { }, &stmt.Function{ Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2239, - EndPos: 2256, + StartLine: 96, + EndLine: 96, + StartPos: 2217, + EndPos: 2234, }, ReturnsRef: true, PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2249, - EndPos: 2251, + StartLine: 96, + EndLine: 96, + StartPos: 2227, + EndPos: 2229, }, Value: "foo", }, @@ -4846,66 +4840,66 @@ func TestPhp5(t *testing.T) { }, &stmt.Global{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2260, - EndPos: 2288, + StartLine: 97, + EndLine: 97, + StartPos: 2238, + EndPos: 2266, }, Vars: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2267, - EndPos: 2268, + StartLine: 97, + EndLine: 97, + StartPos: 2245, + EndPos: 2246, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2267, - EndPos: 2268, + StartLine: 97, + EndLine: 97, + StartPos: 2245, + EndPos: 2246, }, Value: "a", }, }, &expr.Variable{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2271, - EndPos: 2272, + StartLine: 97, + EndLine: 97, + StartPos: 2249, + EndPos: 2250, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2271, - EndPos: 2272, + StartLine: 97, + EndLine: 97, + StartPos: 2249, + EndPos: 2250, }, Value: "b", }, }, &expr.Variable{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2275, - EndPos: 2277, + StartLine: 97, + EndLine: 97, + StartPos: 2253, + EndPos: 2255, }, VarName: &expr.Variable{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2276, - EndPos: 2277, + StartLine: 97, + EndLine: 97, + StartPos: 2254, + EndPos: 2255, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2276, - EndPos: 2277, + StartLine: 97, + EndLine: 97, + StartPos: 2254, + EndPos: 2255, }, Value: "c", }, @@ -4913,32 +4907,32 @@ func TestPhp5(t *testing.T) { }, &expr.Variable{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2280, - EndPos: 2287, + StartLine: 97, + EndLine: 97, + StartPos: 2258, + EndPos: 2265, }, VarName: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2282, - EndPos: 2286, + StartLine: 97, + EndLine: 97, + StartPos: 2260, + EndPos: 2264, }, Function: &name.Name{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2282, - EndPos: 2284, + StartLine: 97, + EndLine: 97, + StartPos: 2260, + EndPos: 2262, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2282, - EndPos: 2284, + StartLine: 97, + EndLine: 97, + StartPos: 2260, + EndPos: 2262, }, Value: "foo", }, @@ -4946,10 +4940,10 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2285, - EndPos: 2286, + StartLine: 97, + EndLine: 97, + StartPos: 2263, + EndPos: 2264, }, }, }, @@ -4958,100 +4952,213 @@ func TestPhp5(t *testing.T) { }, &stmt.Label{ Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2292, - EndPos: 2293, + StartLine: 98, + EndLine: 98, + StartPos: 2270, + EndPos: 2271, }, LabelName: &node.Identifier{ Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2292, - EndPos: 2292, + StartLine: 98, + EndLine: 98, + StartPos: 2270, + EndPos: 2270, }, Value: "a", }, }, &stmt.Goto{ Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2298, - EndPos: 2304, + StartLine: 99, + EndLine: 99, + StartPos: 2276, + EndPos: 2282, }, Label: &node.Identifier{ Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2303, - EndPos: 2303, + StartLine: 99, + EndLine: 99, + StartPos: 2281, + EndPos: 2281, }, Value: "a", }, }, - &stmt.HaltCompiler{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2308, - EndPos: 2325, - }, - }, &stmt.If{ Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2329, - EndPos: 2338, + StartLine: 100, + EndLine: 100, + StartPos: 2286, + EndPos: 2295, }, Cond: &expr.Variable{ Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2333, - EndPos: 2334, + StartLine: 100, + EndLine: 100, + StartPos: 2290, + EndPos: 2291, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2333, - EndPos: 2334, + StartLine: 100, + EndLine: 100, + StartPos: 2290, + EndPos: 2291, }, Value: "a", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2337, - EndPos: 2338, + StartLine: 100, + EndLine: 100, + StartPos: 2294, + EndPos: 2295, }, Stmts: []node.Node{}, }, }, + &stmt.If{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2299, + EndPos: 2323, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2303, + EndPos: 2304, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2303, + EndPos: 2304, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2307, + EndPos: 2308, + }, + Stmts: []node.Node{}, + }, + ElseIf: []node.Node{ + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2310, + EndPos: 2323, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2318, + EndPos: 2319, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2318, + EndPos: 2319, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2322, + EndPos: 2323, + }, + Stmts: []node.Node{}, + }, + }, + }, + }, + &stmt.If{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2327, + EndPos: 2344, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2331, + EndPos: 2332, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2331, + EndPos: 2332, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2335, + EndPos: 2336, + }, + Stmts: []node.Node{}, + }, + Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2338, + EndPos: 2344, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2343, + EndPos: 2344, + }, + Stmts: []node.Node{}, + }, + }, + }, &stmt.If{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2342, - EndPos: 2366, + StartPos: 2348, + EndPos: 2395, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2346, - EndPos: 2347, + StartPos: 2352, + EndPos: 2353, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2346, - EndPos: 2347, + StartPos: 2352, + EndPos: 2353, }, Value: "a", }, @@ -5060,8 +5167,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2350, - EndPos: 2351, + StartPos: 2356, + EndPos: 2357, }, Stmts: []node.Node{}, }, @@ -5070,22 +5177,22 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2353, - EndPos: 2366, + StartPos: 2359, + EndPos: 2372, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2361, - EndPos: 2362, + StartPos: 2367, + EndPos: 2368, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2361, - EndPos: 2362, + StartPos: 2367, + EndPos: 2368, }, Value: "b", }, @@ -5094,34 +5201,85 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2365, - EndPos: 2366, + StartPos: 2371, + EndPos: 2372, }, Stmts: []node.Node{}, }, }, + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2374, + EndPos: 2387, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2382, + EndPos: 2383, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2382, + EndPos: 2383, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2386, + EndPos: 2387, + }, + Stmts: []node.Node{}, + }, + }, + }, + Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2389, + EndPos: 2395, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2394, + EndPos: 2395, + }, + Stmts: []node.Node{}, + }, }, }, &stmt.If{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2370, - EndPos: 2387, + StartPos: 2399, + EndPos: 2447, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2374, - EndPos: 2375, + StartPos: 2403, + EndPos: 2404, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2374, - EndPos: 2375, + StartPos: 2403, + EndPos: 2404, }, Value: "a", }, @@ -5130,127 +5288,42 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2378, - EndPos: 2379, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2381, - EndPos: 2387, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2386, - EndPos: 2387, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2391, - EndPos: 2438, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2395, - EndPos: 2396, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2395, - EndPos: 2396, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2399, - EndPos: 2400, + StartPos: 2407, + EndPos: 2408, }, Stmts: []node.Node{}, }, ElseIf: []node.Node{ &stmt.ElseIf{ Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2402, - EndPos: 2415, + StartLine: 104, + EndLine: 104, + StartPos: 2410, + EndPos: 2423, }, Cond: &expr.Variable{ Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2410, - EndPos: 2411, + StartLine: 104, + EndLine: 104, + StartPos: 2418, + EndPos: 2419, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2410, - EndPos: 2411, + StartLine: 104, + EndLine: 104, + StartPos: 2418, + EndPos: 2419, }, Value: "b", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2414, - EndPos: 2415, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2417, - EndPos: 2430, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2425, - EndPos: 2426, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2425, - EndPos: 2426, - }, - Value: "c", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2429, - EndPos: 2430, + StartLine: 104, + EndLine: 104, + StartPos: 2422, + EndPos: 2423, }, Stmts: []node.Node{}, }, @@ -5258,144 +5331,57 @@ func TestPhp5(t *testing.T) { }, Else: &stmt.Else{ Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2432, - EndPos: 2438, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2437, - EndPos: 2438, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2442, - EndPos: 2490, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2446, + StartLine: 104, + EndLine: 104, + StartPos: 2425, EndPos: 2447, }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2446, - EndPos: 2447, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2450, - EndPos: 2451, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2453, - EndPos: 2466, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2461, - EndPos: 2462, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2461, - EndPos: 2462, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2465, - EndPos: 2466, - }, - Stmts: []node.Node{}, - }, - }, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2468, - EndPos: 2490, - }, Stmt: &stmt.If{ Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2473, - EndPos: 2490, + StartLine: 104, + EndLine: 104, + StartPos: 2430, + EndPos: 2447, }, Cond: &expr.Variable{ Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2477, - EndPos: 2478, + StartLine: 104, + EndLine: 104, + StartPos: 2434, + EndPos: 2435, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2477, - EndPos: 2478, + StartLine: 104, + EndLine: 104, + StartPos: 2434, + EndPos: 2435, }, Value: "c", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2481, - EndPos: 2482, + StartLine: 104, + EndLine: 104, + StartPos: 2438, + EndPos: 2439, }, Stmts: []node.Node{}, }, Else: &stmt.Else{ Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2484, - EndPos: 2490, + StartLine: 104, + EndLine: 104, + StartPos: 2441, + EndPos: 2447, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2489, - EndPos: 2490, + StartLine: 104, + EndLine: 104, + StartPos: 2446, + EndPos: 2447, }, Stmts: []node.Node{}, }, @@ -5405,127 +5391,127 @@ func TestPhp5(t *testing.T) { }, &stmt.Nop{ Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2494, - EndPos: 2495, + StartLine: 105, + EndLine: 105, + StartPos: 2451, + EndPos: 2452, }, }, &stmt.InlineHtml{ Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2497, - EndPos: 2508, + StartLine: 105, + EndLine: 105, + StartPos: 2454, + EndPos: 2465, }, Value: "
", }, + &stmt.Interface{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2471, + EndPos: 2486, + }, + PhpDocComment: "", + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2481, + EndPos: 2483, + }, + Value: "Foo", + }, + Stmts: []node.Node{}, + }, + &stmt.Interface{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2490, + EndPos: 2517, + }, + PhpDocComment: "", + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2500, + EndPos: 2502, + }, + Value: "Foo", + }, + Extends: &stmt.InterfaceExtends{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2504, + EndPos: 2514, + }, + InterfaceNames: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2512, + EndPos: 2514, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2512, + EndPos: 2514, + }, + Value: "Bar", + }, + }, + }, + }, + }, + Stmts: []node.Node{}, + }, &stmt.Interface{ Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2514, - EndPos: 2529, + StartPos: 2521, + EndPos: 2553, }, PhpDocComment: "", InterfaceName: &node.Identifier{ Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2524, - EndPos: 2526, - }, - Value: "Foo", - }, - Stmts: []node.Node{}, - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2533, - EndPos: 2560, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2543, - EndPos: 2545, + StartPos: 2531, + EndPos: 2533, }, Value: "Foo", }, Extends: &stmt.InterfaceExtends{ Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2547, - EndPos: 2557, + StartLine: 108, + EndLine: 108, + StartPos: 2535, + EndPos: 2550, }, InterfaceNames: []node.Node{ &name.Name{ Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2555, - EndPos: 2557, + StartLine: 108, + EndLine: 108, + StartPos: 2543, + EndPos: 2545, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2555, - EndPos: 2557, - }, - Value: "Bar", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2564, - EndPos: 2596, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2574, - EndPos: 2576, - }, - Value: "Foo", - }, - Extends: &stmt.InterfaceExtends{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2578, - EndPos: 2593, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2586, - EndPos: 2588, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2586, - EndPos: 2588, + StartLine: 108, + EndLine: 108, + StartPos: 2543, + EndPos: 2545, }, Value: "Bar", }, @@ -5533,18 +5519,18 @@ func TestPhp5(t *testing.T) { }, &name.Name{ Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2591, - EndPos: 2593, + StartLine: 108, + EndLine: 108, + StartPos: 2548, + EndPos: 2550, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2591, - EndPos: 2593, + StartLine: 108, + EndLine: 108, + StartPos: 2548, + EndPos: 2550, }, Value: "Baz", }, @@ -5556,25 +5542,25 @@ func TestPhp5(t *testing.T) { }, &stmt.Namespace{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2600, - EndPos: 2613, + StartLine: 109, + EndLine: 109, + StartPos: 2557, + EndPos: 2570, }, NamespaceName: &name.Name{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2610, - EndPos: 2612, + StartLine: 109, + EndLine: 109, + StartPos: 2567, + EndPos: 2569, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2610, - EndPos: 2612, + StartLine: 109, + EndLine: 109, + StartPos: 2567, + EndPos: 2569, }, Value: "Foo", }, @@ -5583,34 +5569,34 @@ func TestPhp5(t *testing.T) { }, &stmt.Namespace{ Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2617, - EndPos: 2636, + StartLine: 110, + EndLine: 110, + StartPos: 2574, + EndPos: 2593, }, NamespaceName: &name.Name{ Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2627, - EndPos: 2633, + StartLine: 110, + EndLine: 110, + StartPos: 2584, + EndPos: 2590, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2627, - EndPos: 2629, + StartLine: 110, + EndLine: 110, + StartPos: 2584, + EndPos: 2586, }, Value: "Foo", }, &name.NamePart{ Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2631, - EndPos: 2633, + StartLine: 110, + EndLine: 110, + StartPos: 2588, + EndPos: 2590, }, Value: "Bar", }, @@ -5620,27 +5606,205 @@ func TestPhp5(t *testing.T) { }, &stmt.Namespace{ Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2640, - EndPos: 2651, + StartLine: 111, + EndLine: 111, + StartPos: 2597, + EndPos: 2608, }, Stmts: []node.Node{}, }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2612, + EndPos: 2630, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2618, + EndPos: 2620, + }, + Value: "foo", + }, + Stmts: []node.Node{ + &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2623, + EndPos: 2629, + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2623, + EndPos: 2625, + }, + Value: "var", + }, + }, + Properties: []node.Node{ + &stmt.Property{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2627, + EndPos: 2628, + }, + PhpDocComment: "", + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2627, + EndPos: 2628, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2627, + EndPos: 2628, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2634, + EndPos: 2670, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2640, + EndPos: 2642, + }, + Value: "foo", + }, + Stmts: []node.Node{ + &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2645, + EndPos: 2669, + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2645, + EndPos: 2650, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2652, + EndPos: 2657, + }, + Value: "static", + }, + }, + Properties: []node.Node{ + &stmt.Property{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2659, + EndPos: 2660, + }, + PhpDocComment: "", + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2659, + EndPos: 2660, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2659, + EndPos: 2660, + }, + Value: "a", + }, + }, + }, + &stmt.Property{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2663, + EndPos: 2668, + }, + PhpDocComment: "", + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2663, + EndPos: 2664, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2663, + EndPos: 2664, + }, + Value: "b", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2668, + EndPos: 2668, + }, + Value: "1", + }, + }, + }, + }, + }, + }, &stmt.Class{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2655, - EndPos: 2673, + StartPos: 2674, + EndPos: 2710, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2661, - EndPos: 2663, + StartPos: 2680, + EndPos: 2682, }, Value: "foo", }, @@ -5649,18 +5813,27 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2666, - EndPos: 2672, + StartPos: 2685, + EndPos: 2709, }, Modifiers: []node.Node{ &node.Identifier{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2666, - EndPos: 2668, + StartPos: 2685, + EndPos: 2690, }, - Value: "var", + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2692, + EndPos: 2697, + }, + Value: "static", }, }, Properties: []node.Node{ @@ -5668,245 +5841,58 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2670, - EndPos: 2671, + StartPos: 2699, + EndPos: 2704, }, PhpDocComment: "", Variable: &expr.Variable{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2670, - EndPos: 2671, + StartPos: 2699, + EndPos: 2700, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2670, - EndPos: 2671, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2677, - EndPos: 2713, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2683, - EndPos: 2685, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.PropertyList{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2688, - EndPos: 2712, - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2688, - EndPos: 2693, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2695, - EndPos: 2700, - }, - Value: "static", - }, - }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2702, - EndPos: 2703, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2702, - EndPos: 2703, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2702, - EndPos: 2703, - }, - Value: "a", - }, - }, - }, - &stmt.Property{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2706, - EndPos: 2711, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2706, - EndPos: 2707, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2706, - EndPos: 2707, - }, - Value: "b", - }, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2711, - EndPos: 2711, - }, - Value: "1", - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2717, - EndPos: 2753, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2723, - EndPos: 2725, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.PropertyList{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2728, - EndPos: 2752, - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2728, - EndPos: 2733, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2735, - EndPos: 2740, - }, - Value: "static", - }, - }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2742, - EndPos: 2747, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2742, - EndPos: 2743, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2742, - EndPos: 2743, + StartPos: 2699, + EndPos: 2700, }, Value: "a", }, }, Expr: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2747, - EndPos: 2747, + StartLine: 114, + EndLine: 114, + StartPos: 2704, + EndPos: 2704, }, Value: "1", }, }, &stmt.Property{ Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2750, - EndPos: 2751, + StartLine: 114, + EndLine: 114, + StartPos: 2707, + EndPos: 2708, }, PhpDocComment: "", Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2750, - EndPos: 2751, + StartLine: 114, + EndLine: 114, + StartPos: 2707, + EndPos: 2708, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2750, - EndPos: 2751, + StartLine: 114, + EndLine: 114, + StartPos: 2707, + EndPos: 2708, }, Value: "b", }, @@ -5918,32 +5904,32 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2757, - EndPos: 2774, + StartLine: 115, + EndLine: 115, + StartPos: 2714, + EndPos: 2731, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2764, - EndPos: 2765, + StartLine: 115, + EndLine: 115, + StartPos: 2721, + EndPos: 2722, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2764, - EndPos: 2765, + StartLine: 115, + EndLine: 115, + StartPos: 2721, + EndPos: 2722, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2764, - EndPos: 2765, + StartLine: 115, + EndLine: 115, + StartPos: 2721, + EndPos: 2722, }, Value: "a", }, @@ -5951,34 +5937,34 @@ func TestPhp5(t *testing.T) { }, &stmt.StaticVar{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2768, - EndPos: 2773, + StartLine: 115, + EndLine: 115, + StartPos: 2725, + EndPos: 2730, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2768, - EndPos: 2769, + StartLine: 115, + EndLine: 115, + StartPos: 2725, + EndPos: 2726, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2768, - EndPos: 2769, + StartLine: 115, + EndLine: 115, + StartPos: 2725, + EndPos: 2726, }, Value: "b", }, }, Expr: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2773, - EndPos: 2773, + StartLine: 115, + EndLine: 115, + StartPos: 2730, + EndPos: 2730, }, Value: "1", }, @@ -5987,66 +5973,66 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2778, - EndPos: 2795, + StartLine: 116, + EndLine: 116, + StartPos: 2735, + EndPos: 2752, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2785, - EndPos: 2790, + StartLine: 116, + EndLine: 116, + StartPos: 2742, + EndPos: 2747, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2785, - EndPos: 2786, + StartLine: 116, + EndLine: 116, + StartPos: 2742, + EndPos: 2743, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2785, - EndPos: 2786, + StartLine: 116, + EndLine: 116, + StartPos: 2742, + EndPos: 2743, }, Value: "a", }, }, Expr: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2790, - EndPos: 2790, + StartLine: 116, + EndLine: 116, + StartPos: 2747, + EndPos: 2747, }, Value: "1", }, }, &stmt.StaticVar{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2793, - EndPos: 2794, + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2751, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2793, - EndPos: 2794, + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2751, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2793, - EndPos: 2794, + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2751, }, Value: "b", }, @@ -6056,41 +6042,41 @@ func TestPhp5(t *testing.T) { }, &stmt.AltSwitch{ Position: &position.Position{ - StartLine: 120, - EndLine: 124, - StartPos: 2800, - EndPos: 2858, + StartLine: 118, + EndLine: 122, + StartPos: 2757, + EndPos: 2815, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2808, - EndPos: 2808, + StartLine: 118, + EndLine: 118, + StartPos: 2765, + EndPos: 2765, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 121, + StartLine: 119, EndLine: -1, - StartPos: 2816, + StartPos: 2773, EndPos: -1, }, Cases: []node.Node{ &stmt.Case{ Position: &position.Position{ - StartLine: 121, + StartLine: 119, EndLine: -1, - StartPos: 2816, + StartPos: 2773, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2821, - EndPos: 2821, + StartLine: 119, + EndLine: 119, + StartPos: 2778, + EndPos: 2778, }, Value: "1", }, @@ -6098,26 +6084,26 @@ func TestPhp5(t *testing.T) { }, &stmt.Default{ Position: &position.Position{ - StartLine: 122, + StartLine: 120, EndLine: -1, - StartPos: 2827, + StartPos: 2784, EndPos: -1, }, Stmts: []node.Node{}, }, &stmt.Case{ Position: &position.Position{ - StartLine: 123, + StartLine: 121, EndLine: -1, - StartPos: 2839, + StartPos: 2796, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 123, - EndLine: 123, - StartPos: 2844, - EndPos: 2844, + StartLine: 121, + EndLine: 121, + StartPos: 2801, + EndPos: 2801, }, Value: "2", }, @@ -6128,41 +6114,41 @@ func TestPhp5(t *testing.T) { }, &stmt.AltSwitch{ Position: &position.Position{ - StartLine: 126, - EndLine: 129, - StartPos: 2863, - EndPos: 2910, + StartLine: 124, + EndLine: 127, + StartPos: 2820, + EndPos: 2867, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 126, - EndLine: 126, - StartPos: 2871, - EndPos: 2871, + StartLine: 124, + EndLine: 124, + StartPos: 2828, + EndPos: 2828, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 127, + StartLine: 125, EndLine: -1, - StartPos: 2880, + StartPos: 2837, EndPos: -1, }, Cases: []node.Node{ &stmt.Case{ Position: &position.Position{ - StartLine: 127, + StartLine: 125, EndLine: -1, - StartPos: 2880, + StartPos: 2837, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 127, - EndLine: 127, - StartPos: 2885, - EndPos: 2885, + StartLine: 125, + EndLine: 125, + StartPos: 2842, + EndPos: 2842, }, Value: "1", }, @@ -6170,17 +6156,17 @@ func TestPhp5(t *testing.T) { }, &stmt.Case{ Position: &position.Position{ - StartLine: 128, + StartLine: 126, EndLine: -1, - StartPos: 2891, + StartPos: 2848, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 128, - EndLine: 128, - StartPos: 2896, - EndPos: 2896, + StartLine: 126, + EndLine: 126, + StartPos: 2853, + EndPos: 2853, }, Value: "2", }, @@ -6191,78 +6177,78 @@ func TestPhp5(t *testing.T) { }, &stmt.Switch{ Position: &position.Position{ - StartLine: 131, - EndLine: 134, - StartPos: 2917, - EndPos: 2968, + StartLine: 129, + EndLine: 132, + StartPos: 2874, + EndPos: 2925, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2925, + StartLine: 129, + EndLine: 129, + StartPos: 2882, + EndPos: 2882, + }, + Value: "1", + }, + CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 129, + EndLine: 132, + StartPos: 2885, EndPos: 2925, }, - Value: "1", - }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 131, - EndLine: 134, - StartPos: 2928, - EndPos: 2968, - }, Cases: []node.Node{ &stmt.Case{ Position: &position.Position{ - StartLine: 132, - EndLine: 132, - StartPos: 2933, - EndPos: 2946, + StartLine: 130, + EndLine: 130, + StartPos: 2890, + EndPos: 2903, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 132, - EndLine: 132, - StartPos: 2938, - EndPos: 2938, + StartLine: 130, + EndLine: 130, + StartPos: 2895, + EndPos: 2895, }, Value: "1", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ - StartLine: 132, - EndLine: 132, - StartPos: 2941, - EndPos: 2946, + StartLine: 130, + EndLine: 130, + StartPos: 2898, + EndPos: 2903, }, }, }, }, &stmt.Case{ Position: &position.Position{ - StartLine: 133, - EndLine: 133, - StartPos: 2951, - EndPos: 2964, + StartLine: 131, + EndLine: 131, + StartPos: 2908, + EndPos: 2921, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 133, - EndLine: 133, - StartPos: 2956, - EndPos: 2956, + StartLine: 131, + EndLine: 131, + StartPos: 2913, + EndPos: 2913, }, Value: "2", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ - StartLine: 133, - EndLine: 133, - StartPos: 2959, - EndPos: 2964, + StartLine: 131, + EndLine: 131, + StartPos: 2916, + EndPos: 2921, }, }, }, @@ -6272,78 +6258,78 @@ func TestPhp5(t *testing.T) { }, &stmt.Switch{ Position: &position.Position{ - StartLine: 136, - EndLine: 139, - StartPos: 2975, - EndPos: 3027, + StartLine: 134, + EndLine: 137, + StartPos: 2932, + EndPos: 2984, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 2983, - EndPos: 2983, + StartLine: 134, + EndLine: 134, + StartPos: 2940, + EndPos: 2940, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 136, - EndLine: 139, - StartPos: 2986, - EndPos: 3027, + StartLine: 134, + EndLine: 137, + StartPos: 2943, + EndPos: 2984, }, Cases: []node.Node{ &stmt.Case{ Position: &position.Position{ - StartLine: 137, - EndLine: 137, - StartPos: 2992, - EndPos: 3005, + StartLine: 135, + EndLine: 135, + StartPos: 2949, + EndPos: 2962, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 137, - EndLine: 137, - StartPos: 2997, - EndPos: 2997, + StartLine: 135, + EndLine: 135, + StartPos: 2954, + EndPos: 2954, }, Value: "1", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ - StartLine: 137, - EndLine: 137, - StartPos: 3000, - EndPos: 3005, + StartLine: 135, + EndLine: 135, + StartPos: 2957, + EndPos: 2962, }, }, }, }, &stmt.Case{ Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 3010, - EndPos: 3023, + StartLine: 136, + EndLine: 136, + StartPos: 2967, + EndPos: 2980, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 3015, - EndPos: 3015, + StartLine: 136, + EndLine: 136, + StartPos: 2972, + EndPos: 2972, }, Value: "2", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 3018, - EndPos: 3023, + StartLine: 136, + EndLine: 136, + StartPos: 2975, + EndPos: 2980, }, }, }, @@ -6353,24 +6339,24 @@ func TestPhp5(t *testing.T) { }, &stmt.Throw{ Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3031, - EndPos: 3039, + StartLine: 138, + EndLine: 138, + StartPos: 2988, + EndPos: 2996, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3037, - EndPos: 3038, + StartLine: 138, + EndLine: 138, + StartPos: 2994, + EndPos: 2995, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3037, - EndPos: 3038, + StartLine: 138, + EndLine: 138, + StartPos: 2994, + EndPos: 2995, }, Value: "e", }, @@ -6378,18 +6364,18 @@ func TestPhp5(t *testing.T) { }, &stmt.Trait{ Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3043, - EndPos: 3054, + StartLine: 139, + EndLine: 139, + StartPos: 3000, + EndPos: 3011, }, PhpDocComment: "", TraitName: &node.Identifier{ Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3049, - EndPos: 3051, + StartLine: 139, + EndLine: 139, + StartPos: 3006, + EndPos: 3008, }, Value: "Foo", }, @@ -6397,44 +6383,44 @@ func TestPhp5(t *testing.T) { }, &stmt.Class{ Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3058, - EndPos: 3079, + StartLine: 140, + EndLine: 140, + StartPos: 3015, + EndPos: 3036, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3064, - EndPos: 3066, + StartLine: 140, + EndLine: 140, + StartPos: 3021, + EndPos: 3023, }, Value: "Foo", }, Stmts: []node.Node{ &stmt.TraitUse{ Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3070, - EndPos: 3077, + StartLine: 140, + EndLine: 140, + StartPos: 3027, + EndPos: 3034, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3074, - EndPos: 3076, + StartLine: 140, + EndLine: 140, + StartPos: 3031, + EndPos: 3033, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3074, - EndPos: 3076, + StartLine: 140, + EndLine: 140, + StartPos: 3031, + EndPos: 3033, }, Value: "Bar", }, @@ -6442,11 +6428,199 @@ func TestPhp5(t *testing.T) { }, }, TraitAdaptationList: &stmt.Nop{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3034, + EndPos: 3034, + }, + }, + }, + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3040, + EndPos: 3068, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3046, + EndPos: 3048, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3052, + EndPos: 3066, + }, + Traits: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3056, + EndPos: 3058, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3056, + EndPos: 3058, + }, + Value: "Bar", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3061, + EndPos: 3063, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3061, + EndPos: 3063, + }, + Value: "Baz", + }, + }, + }, + }, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3065, + EndPos: 3066, + }, + }, + }, + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3072, + EndPos: 3116, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3078, + EndPos: 3080, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3084, + EndPos: 3114, + }, + Traits: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3088, + EndPos: 3090, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3088, + EndPos: 3090, + }, + Value: "Bar", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3093, + EndPos: 3095, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3093, + EndPos: 3095, + }, + Value: "Baz", + }, + }, + }, + }, + TraitAdaptationList: &stmt.TraitAdaptationList{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3077, - EndPos: 3077, + StartPos: 3097, + EndPos: 3114, + }, + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3099, + EndPos: 3111, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3099, + EndPos: 3101, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3099, + EndPos: 3101, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3106, + EndPos: 3111, + }, + Value: "public", + }, + }, }, }, }, @@ -6456,16 +6630,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3083, - EndPos: 3111, + StartPos: 3120, + EndPos: 3168, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3089, - EndPos: 3091, + StartPos: 3126, + EndPos: 3128, }, Value: "Foo", }, @@ -6474,24 +6648,24 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3095, - EndPos: 3109, + StartPos: 3132, + EndPos: 3166, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3099, - EndPos: 3101, + StartPos: 3136, + EndPos: 3138, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3099, - EndPos: 3101, + StartPos: 3136, + EndPos: 3138, }, Value: "Bar", }, @@ -6501,16 +6675,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3104, - EndPos: 3106, + StartPos: 3141, + EndPos: 3143, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3104, - EndPos: 3106, + StartPos: 3141, + EndPos: 3143, }, Value: "Baz", }, @@ -6521,8 +6695,53 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3108, - EndPos: 3109, + StartPos: 3145, + EndPos: 3166, + }, + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3147, + EndPos: 3163, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3147, + EndPos: 3149, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3147, + EndPos: 3149, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3154, + EndPos: 3159, + }, + Value: "public", + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3161, + EndPos: 3163, + }, + Value: "two", + }, + }, }, }, }, @@ -6532,16 +6751,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3115, - EndPos: 3159, + StartPos: 3172, + EndPos: 3248, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3121, - EndPos: 3123, + StartPos: 3178, + EndPos: 3180, }, Value: "Foo", }, @@ -6550,24 +6769,24 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3127, - EndPos: 3157, + StartPos: 3184, + EndPos: 3246, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3131, - EndPos: 3133, + StartPos: 3188, + EndPos: 3190, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3131, - EndPos: 3133, + StartPos: 3188, + EndPos: 3190, }, Value: "Bar", }, @@ -6577,16 +6796,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3136, - EndPos: 3138, + StartPos: 3193, + EndPos: 3195, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3136, - EndPos: 3138, + StartPos: 3193, + EndPos: 3195, }, Value: "Baz", }, @@ -6597,271 +6816,38 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3140, - EndPos: 3157, - }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3142, - EndPos: 3154, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3142, - EndPos: 3144, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3142, - EndPos: 3144, - }, - Value: "one", - }, - }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3149, - EndPos: 3154, - }, - Value: "public", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3163, - EndPos: 3211, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3169, - EndPos: 3171, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3175, - EndPos: 3209, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3179, - EndPos: 3181, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3179, - EndPos: 3181, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3184, - EndPos: 3186, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3184, - EndPos: 3186, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3188, - EndPos: 3209, - }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3190, - EndPos: 3206, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3190, - EndPos: 3192, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3190, - EndPos: 3192, - }, - Value: "one", - }, - }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3197, - EndPos: 3202, - }, - Value: "public", - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3204, - EndPos: 3206, - }, - Value: "two", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3215, - EndPos: 3291, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3221, - EndPos: 3223, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3227, - EndPos: 3289, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3231, - EndPos: 3233, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3231, - EndPos: 3233, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3236, - EndPos: 3238, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3236, - EndPos: 3238, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3240, - EndPos: 3289, + StartPos: 3197, + EndPos: 3246, }, Adaptations: []node.Node{ &stmt.TraitUsePrecedence{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3242, - EndPos: 3269, + StartLine: 144, + EndLine: 144, + StartPos: 3199, + EndPos: 3226, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3242, - EndPos: 3249, + StartLine: 144, + EndLine: 144, + StartPos: 3199, + EndPos: 3206, }, Trait: &name.Name{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3242, - EndPos: 3244, + StartLine: 144, + EndLine: 144, + StartPos: 3199, + EndPos: 3201, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3242, - EndPos: 3244, + StartLine: 144, + EndLine: 144, + StartPos: 3199, + EndPos: 3201, }, Value: "Bar", }, @@ -6869,10 +6855,10 @@ func TestPhp5(t *testing.T) { }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3247, - EndPos: 3249, + StartLine: 144, + EndLine: 144, + StartPos: 3204, + EndPos: 3206, }, Value: "one", }, @@ -6880,18 +6866,18 @@ func TestPhp5(t *testing.T) { Insteadof: []node.Node{ &name.Name{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3261, - EndPos: 3263, + StartLine: 144, + EndLine: 144, + StartPos: 3218, + EndPos: 3220, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3261, - EndPos: 3263, + StartLine: 144, + EndLine: 144, + StartPos: 3218, + EndPos: 3220, }, Value: "Baz", }, @@ -6899,18 +6885,18 @@ func TestPhp5(t *testing.T) { }, &name.Name{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3266, - EndPos: 3269, + StartLine: 144, + EndLine: 144, + StartPos: 3223, + EndPos: 3226, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3266, - EndPos: 3269, + StartLine: 144, + EndLine: 144, + StartPos: 3223, + EndPos: 3226, }, Value: "Quux", }, @@ -6920,32 +6906,32 @@ func TestPhp5(t *testing.T) { }, &stmt.TraitUseAlias{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3272, - EndPos: 3286, + StartLine: 144, + EndLine: 144, + StartPos: 3229, + EndPos: 3243, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3272, - EndPos: 3279, + StartLine: 144, + EndLine: 144, + StartPos: 3229, + EndPos: 3236, }, Trait: &name.Name{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3272, - EndPos: 3274, + StartLine: 144, + EndLine: 144, + StartPos: 3229, + EndPos: 3231, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3272, - EndPos: 3274, + StartLine: 144, + EndLine: 144, + StartPos: 3229, + EndPos: 3231, }, Value: "Baz", }, @@ -6953,20 +6939,20 @@ func TestPhp5(t *testing.T) { }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3277, - EndPos: 3279, + StartLine: 144, + EndLine: 144, + StartPos: 3234, + EndPos: 3236, }, Value: "one", }, }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3284, - EndPos: 3286, + StartLine: 144, + EndLine: 144, + StartPos: 3241, + EndPos: 3243, }, Value: "two", }, @@ -6978,20 +6964,183 @@ func TestPhp5(t *testing.T) { }, &stmt.Try{ Position: &position.Position{ - StartLine: 148, + StartLine: 146, EndLine: -1, - StartPos: 3296, + StartPos: 3253, EndPos: -1, }, Stmts: []node.Node{}, Catches: []node.Node{}, }, + &stmt.Try{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3262, + EndPos: 3291, + }, + Stmts: []node.Node{}, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3269, + EndPos: 3291, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3276, + EndPos: 3284, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3276, + EndPos: 3284, + }, + Value: "Exception", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3286, + EndPos: 3287, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3286, + EndPos: 3287, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + }, + }, + &stmt.Try{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3295, + EndPos: 3355, + }, + Stmts: []node.Node{}, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3302, + EndPos: 3324, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3309, + EndPos: 3317, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3309, + EndPos: 3317, + }, + Value: "Exception", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3319, + EndPos: 3320, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3319, + EndPos: 3320, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3326, + EndPos: 3355, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3333, + EndPos: 3348, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3333, + EndPos: 3348, + }, + Value: "RuntimeException", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3350, + EndPos: 3351, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3350, + EndPos: 3351, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + }, + }, &stmt.Try{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3305, - EndPos: 3334, + StartPos: 3359, + EndPos: 3462, }, Stmts: []node.Node{}, Catches: []node.Node{ @@ -6999,24 +7148,24 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3312, - EndPos: 3334, + StartPos: 3366, + EndPos: 3388, }, Types: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3319, - EndPos: 3327, + StartPos: 3373, + EndPos: 3381, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3319, - EndPos: 3327, + StartPos: 3373, + EndPos: 3381, }, Value: "Exception", }, @@ -7027,15 +7176,109 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3329, - EndPos: 3330, + StartPos: 3383, + EndPos: 3384, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3329, - EndPos: 3330, + StartPos: 3383, + EndPos: 3384, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3390, + EndPos: 3420, + }, + Types: []node.Node{ + &name.FullyQualified{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3397, + EndPos: 3413, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3398, + EndPos: 3413, + }, + Value: "RuntimeException", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3415, + EndPos: 3416, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3415, + EndPos: 3416, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3422, + EndPos: 3462, + }, + Types: []node.Node{ + &name.Relative{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3429, + EndPos: 3455, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3439, + EndPos: 3455, + }, + Value: "AdditionException", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3457, + EndPos: 3458, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3457, + EndPos: 3458, }, Value: "e", }, @@ -7048,8 +7291,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3338, - EndPos: 3398, + StartPos: 3466, + EndPos: 3506, }, Stmts: []node.Node{}, Catches: []node.Node{ @@ -7057,24 +7300,24 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3345, - EndPos: 3367, + StartPos: 3473, + EndPos: 3495, }, Types: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3352, - EndPos: 3360, + StartPos: 3480, + EndPos: 3488, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3352, - EndPos: 3360, + StartPos: 3480, + EndPos: 3488, }, Value: "Exception", }, @@ -7085,272 +7328,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3362, - EndPos: 3363, + StartPos: 3490, + EndPos: 3491, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3362, - EndPos: 3363, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3369, - EndPos: 3398, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3376, - EndPos: 3391, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3376, - EndPos: 3391, - }, - Value: "RuntimeException", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3393, - EndPos: 3394, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3393, - EndPos: 3394, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3402, - EndPos: 3505, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3409, - EndPos: 3431, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3416, - EndPos: 3424, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3416, - EndPos: 3424, - }, - Value: "Exception", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3426, - EndPos: 3427, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3426, - EndPos: 3427, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3433, - EndPos: 3463, - }, - Types: []node.Node{ - &name.FullyQualified{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3440, - EndPos: 3456, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3441, - EndPos: 3456, - }, - Value: "RuntimeException", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3458, - EndPos: 3459, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3458, - EndPos: 3459, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3465, - EndPos: 3505, - }, - Types: []node.Node{ - &name.Relative{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3472, - EndPos: 3498, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3482, - EndPos: 3498, - }, - Value: "AdditionException", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3500, - EndPos: 3501, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3500, - EndPos: 3501, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3509, - EndPos: 3549, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3516, - EndPos: 3538, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3523, - EndPos: 3531, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3523, - EndPos: 3531, - }, - Value: "Exception", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3533, - EndPos: 3534, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3533, - EndPos: 3534, + StartPos: 3490, + EndPos: 3491, }, Value: "e", }, @@ -7360,52 +7346,52 @@ func TestPhp5(t *testing.T) { }, Finally: &stmt.Finally{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3540, - EndPos: 3549, + StartLine: 150, + EndLine: 150, + StartPos: 3497, + EndPos: 3506, }, Stmts: []node.Node{}, }, }, &stmt.Unset{ Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3554, - EndPos: 3567, + StartLine: 152, + EndLine: 152, + StartPos: 3511, + EndPos: 3524, }, Vars: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3560, - EndPos: 3561, + StartLine: 152, + EndLine: 152, + StartPos: 3517, + EndPos: 3518, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3560, - EndPos: 3561, + StartLine: 152, + EndLine: 152, + StartPos: 3517, + EndPos: 3518, }, Value: "a", }, }, &expr.Variable{ Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3564, - EndPos: 3565, + StartLine: 152, + EndLine: 152, + StartPos: 3521, + EndPos: 3522, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3564, - EndPos: 3565, + StartLine: 152, + EndLine: 152, + StartPos: 3521, + EndPos: 3522, }, Value: "b", }, @@ -7414,33 +7400,33 @@ func TestPhp5(t *testing.T) { }, &stmt.UseList{ Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3572, - EndPos: 3579, + StartLine: 154, + EndLine: 154, + StartPos: 3529, + EndPos: 3536, }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3576, - EndPos: 3578, + StartLine: 154, + EndLine: 154, + StartPos: 3533, + EndPos: 3535, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3576, - EndPos: 3578, + StartLine: 154, + EndLine: 154, + StartPos: 3533, + EndPos: 3535, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3576, - EndPos: 3578, + StartLine: 154, + EndLine: 154, + StartPos: 3533, + EndPos: 3535, }, Value: "Foo", }, @@ -7449,85 +7435,222 @@ func TestPhp5(t *testing.T) { }, }, }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3540, + EndPos: 3548, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3545, + EndPos: 3547, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3545, + EndPos: 3547, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3545, + EndPos: 3547, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3552, + EndPos: 3567, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3557, + EndPos: 3566, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3557, + EndPos: 3559, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3557, + EndPos: 3559, + }, + Value: "Foo", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3564, + EndPos: 3566, + }, + Value: "Bar", + }, + }, + }, + }, &stmt.UseList{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3583, - EndPos: 3591, + StartPos: 3571, + EndPos: 3583, }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3588, - EndPos: 3590, + StartPos: 3575, + EndPos: 3577, }, Use: &name.Name{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3588, - EndPos: 3590, + StartPos: 3575, + EndPos: 3577, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3588, - EndPos: 3590, + StartPos: 3575, + EndPos: 3577, }, Value: "Foo", }, }, }, }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3580, + EndPos: 3582, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3580, + EndPos: 3582, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3580, + EndPos: 3582, + }, + Value: "Bar", + }, + }, + }, + }, }, }, &stmt.UseList{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3595, - EndPos: 3610, + StartPos: 3587, + EndPos: 3606, }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3600, - EndPos: 3609, + StartPos: 3591, + EndPos: 3593, }, Use: &name.Name{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3600, - EndPos: 3602, + StartPos: 3591, + EndPos: 3593, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3600, - EndPos: 3602, + StartPos: 3591, + EndPos: 3593, }, Value: "Foo", }, }, }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3596, + EndPos: 3605, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3596, + EndPos: 3598, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3596, + EndPos: 3598, + }, + Value: "Bar", + }, + }, + }, Alias: &node.Identifier{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3607, - EndPos: 3609, + StartPos: 3603, + EndPos: 3605, }, - Value: "Bar", + Value: "Baz", }, }, }, @@ -7536,37 +7659,19 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3614, - EndPos: 3626, + StartPos: 3610, + EndPos: 3632, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3614, + EndPos: 3621, + }, + Value: "function", }, Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3618, - EndPos: 3620, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3618, - EndPos: 3620, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3618, - EndPos: 3620, - }, - Value: "Foo", - }, - }, - }, - }, &stmt.Use{ Position: &position.Position{ StartLine: 159, @@ -7589,6 +7694,33 @@ func TestPhp5(t *testing.T) { StartPos: 3623, EndPos: 3625, }, + Value: "Foo", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3629, + EndPos: 3631, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3629, + EndPos: 3631, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3629, + EndPos: 3631, + }, Value: "Bar", }, }, @@ -7600,58 +7732,76 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3630, - EndPos: 3649, + StartPos: 3636, + EndPos: 3672, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3640, + EndPos: 3647, + }, + Value: "function", }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3634, - EndPos: 3636, + StartPos: 3649, + EndPos: 3658, }, Use: &name.Name{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3634, - EndPos: 3636, + StartPos: 3649, + EndPos: 3651, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3634, - EndPos: 3636, + StartPos: 3649, + EndPos: 3651, }, Value: "Foo", }, }, }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3656, + EndPos: 3658, + }, + Value: "foo", + }, }, &stmt.Use{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3639, - EndPos: 3648, + StartPos: 3662, + EndPos: 3671, }, Use: &name.Name{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3639, - EndPos: 3641, + StartPos: 3662, + EndPos: 3664, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3639, - EndPos: 3641, + StartPos: 3662, + EndPos: 3664, }, Value: "Bar", }, @@ -7661,10 +7811,10 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3646, - EndPos: 3648, + StartPos: 3669, + EndPos: 3671, }, - Value: "Baz", + Value: "bar", }, }, }, @@ -7673,40 +7823,40 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3653, - EndPos: 3675, + StartPos: 3676, + EndPos: 3695, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3657, - EndPos: 3664, + StartPos: 3680, + EndPos: 3684, }, - Value: "function", + Value: "const", }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3666, - EndPos: 3668, + StartPos: 3686, + EndPos: 3688, }, Use: &name.Name{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3666, - EndPos: 3668, + StartPos: 3686, + EndPos: 3688, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3666, - EndPos: 3668, + StartPos: 3686, + EndPos: 3688, }, Value: "Foo", }, @@ -7717,23 +7867,23 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3672, - EndPos: 3674, + StartPos: 3692, + EndPos: 3694, }, Use: &name.Name{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3672, - EndPos: 3674, + StartPos: 3692, + EndPos: 3694, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3672, - EndPos: 3674, + StartPos: 3692, + EndPos: 3694, }, Value: "Bar", }, @@ -7746,40 +7896,40 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3679, - EndPos: 3715, + StartPos: 3699, + EndPos: 3732, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3683, - EndPos: 3690, + StartPos: 3703, + EndPos: 3707, }, - Value: "function", + Value: "const", }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3692, - EndPos: 3701, + StartPos: 3709, + EndPos: 3718, }, Use: &name.Name{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3692, - EndPos: 3694, + StartPos: 3709, + EndPos: 3711, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3692, - EndPos: 3694, + StartPos: 3709, + EndPos: 3711, }, Value: "Foo", }, @@ -7789,8 +7939,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3699, - EndPos: 3701, + StartPos: 3716, + EndPos: 3718, }, Value: "foo", }, @@ -7799,199 +7949,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3705, - EndPos: 3714, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3705, - EndPos: 3707, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3705, - EndPos: 3707, - }, - Value: "Bar", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3712, - EndPos: 3714, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3719, - EndPos: 3738, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3723, - EndPos: 3727, - }, - Value: "const", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3729, + StartPos: 3722, EndPos: 3731, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 163, - EndLine: 163, + StartLine: 162, + EndLine: 162, + StartPos: 3722, + EndPos: 3724, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3722, + EndPos: 3724, + }, + Value: "Bar", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, StartPos: 3729, EndPos: 3731, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3729, - EndPos: 3731, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3735, - EndPos: 3737, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3735, - EndPos: 3737, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3735, - EndPos: 3737, - }, - Value: "Bar", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3742, - EndPos: 3775, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3746, - EndPos: 3750, - }, - Value: "const", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3752, - EndPos: 3761, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3752, - EndPos: 3754, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3752, - EndPos: 3754, - }, - Value: "Foo", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3759, - EndPos: 3761, - }, - Value: "foo", - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3765, - EndPos: 3774, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3765, - EndPos: 3767, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3765, - EndPos: 3767, - }, - Value: "Bar", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3772, - EndPos: 3774, - }, Value: "bar", }, }, @@ -7999,41 +7985,41 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3780, - EndPos: 3785, + StartLine: 164, + EndLine: 164, + StartPos: 3737, + EndPos: 3742, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3780, - EndPos: 3784, + StartLine: 164, + EndLine: 164, + StartPos: 3737, + EndPos: 3741, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3780, - EndPos: 3781, + StartLine: 164, + EndLine: 164, + StartPos: 3737, + EndPos: 3738, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3780, - EndPos: 3781, + StartLine: 164, + EndLine: 164, + StartPos: 3737, + EndPos: 3738, }, Value: "a", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3783, - EndPos: 3783, + StartLine: 164, + EndLine: 164, + StartPos: 3740, + EndPos: 3740, }, Value: "1", }, @@ -8041,58 +8027,58 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3789, - EndPos: 3797, + StartLine: 165, + EndLine: 165, + StartPos: 3746, + EndPos: 3754, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3789, - EndPos: 3796, + StartLine: 165, + EndLine: 165, + StartPos: 3746, + EndPos: 3753, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3789, - EndPos: 3793, + StartLine: 165, + EndLine: 165, + StartPos: 3746, + EndPos: 3750, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3789, - EndPos: 3790, + StartLine: 165, + EndLine: 165, + StartPos: 3746, + EndPos: 3747, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3789, - EndPos: 3790, + StartLine: 165, + EndLine: 165, + StartPos: 3746, + EndPos: 3747, }, Value: "a", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3792, - EndPos: 3792, + StartLine: 165, + EndLine: 165, + StartPos: 3749, + EndPos: 3749, }, Value: "1", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3795, - EndPos: 3795, + StartLine: 165, + EndLine: 165, + StartPos: 3752, + EndPos: 3752, }, Value: "2", }, @@ -8100,49 +8086,49 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3801, - EndPos: 3808, + StartLine: 166, + EndLine: 166, + StartPos: 3758, + EndPos: 3765, }, Expr: &expr.Array{ Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3801, - EndPos: 3807, + StartLine: 166, + EndLine: 166, + StartPos: 3758, + EndPos: 3764, }, Items: []node.Node{}, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3812, - EndPos: 3820, + StartLine: 167, + EndLine: 167, + StartPos: 3769, + EndPos: 3777, }, Expr: &expr.Array{ Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3812, - EndPos: 3819, + StartLine: 167, + EndLine: 167, + StartPos: 3769, + EndPos: 3776, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3818, - EndPos: 3818, + StartLine: 167, + EndLine: 167, + StartPos: 3775, + EndPos: 3775, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3818, - EndPos: 3818, + StartLine: 167, + EndLine: 167, + StartPos: 3775, + EndPos: 3775, }, Value: "1", }, @@ -8152,72 +8138,72 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3824, - EndPos: 3841, + StartLine: 168, + EndLine: 168, + StartPos: 3781, + EndPos: 3798, }, Expr: &expr.Array{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3824, - EndPos: 3840, + StartLine: 168, + EndLine: 168, + StartPos: 3781, + EndPos: 3797, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3830, - EndPos: 3833, + StartLine: 168, + EndLine: 168, + StartPos: 3787, + EndPos: 3790, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3830, - EndPos: 3830, + StartLine: 168, + EndLine: 168, + StartPos: 3787, + EndPos: 3787, }, Value: "1", }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3833, - EndPos: 3833, + StartLine: 168, + EndLine: 168, + StartPos: 3790, + EndPos: 3790, }, Value: "1", }, }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3836, - EndPos: 3838, + StartLine: 168, + EndLine: 168, + StartPos: 3793, + EndPos: 3795, }, Val: &expr.Reference{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3836, - EndPos: 3838, + StartLine: 168, + EndLine: 168, + StartPos: 3793, + EndPos: 3795, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3837, - EndPos: 3838, + StartLine: 168, + EndLine: 168, + StartPos: 3794, + EndPos: 3795, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3837, - EndPos: 3838, + StartLine: 168, + EndLine: 168, + StartPos: 3794, + EndPos: 3795, }, Value: "b", }, @@ -8230,55 +8216,55 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3845, - EndPos: 3859, + StartLine: 169, + EndLine: 169, + StartPos: 3802, + EndPos: 3816, }, Expr: &expr.Array{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3845, - EndPos: 3858, + StartLine: 169, + EndLine: 169, + StartPos: 3802, + EndPos: 3815, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3851, - EndPos: 3857, + StartLine: 169, + EndLine: 169, + StartPos: 3808, + EndPos: 3814, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3851, - EndPos: 3851, + StartLine: 169, + EndLine: 169, + StartPos: 3808, + EndPos: 3808, }, Value: "3", }, Val: &expr.Reference{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3855, - EndPos: 3857, + StartLine: 169, + EndLine: 169, + StartPos: 3812, + EndPos: 3814, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3856, - EndPos: 3857, + StartLine: 169, + EndLine: 169, + StartPos: 3813, + EndPos: 3814, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3856, - EndPos: 3857, + StartLine: 169, + EndLine: 169, + StartPos: 3813, + EndPos: 3814, }, Value: "b", }, @@ -8288,169 +8274,202 @@ func TestPhp5(t *testing.T) { }, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3820, + EndPos: 3848, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3820, + EndPos: 3847, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3826, + EndPos: 3828, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3826, + EndPos: 3828, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3827, + EndPos: 3828, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3827, + EndPos: 3828, + }, + Value: "b", + }, + }, + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3831, + EndPos: 3834, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3831, + EndPos: 3831, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3834, + EndPos: 3834, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3837, + EndPos: 3837, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3837, + EndPos: 3837, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3840, + EndPos: 3846, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3840, + EndPos: 3840, + }, + Value: "3", + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3844, + EndPos: 3846, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3845, + EndPos: 3846, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3845, + EndPos: 3846, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3852, + EndPos: 3855, + }, + Expr: &expr.BitwiseNot{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3852, + EndPos: 3854, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3853, + EndPos: 3854, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3853, + EndPos: 3854, + }, + Value: "a", + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3863, - EndPos: 3891, + StartPos: 3859, + EndPos: 3862, }, - Expr: &expr.Array{ + Expr: &expr.BooleanNot{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3863, - EndPos: 3890, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3869, - EndPos: 3871, - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3869, - EndPos: 3871, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3871, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3871, - }, - Value: "b", - }, - }, - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3874, - EndPos: 3877, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3874, - EndPos: 3874, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3877, - EndPos: 3877, - }, - Value: "1", - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3880, - EndPos: 3880, - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3880, - EndPos: 3880, - }, - Value: "1", - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3883, - EndPos: 3889, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3883, - EndPos: 3883, - }, - Value: "3", - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3887, - EndPos: 3889, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3888, - EndPos: 3889, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3888, - EndPos: 3889, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3895, - EndPos: 3898, - }, - Expr: &expr.BitwiseNot{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3895, - EndPos: 3897, + StartPos: 3859, + EndPos: 3861, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3896, - EndPos: 3897, + StartLine: 172, + EndLine: 172, + StartPos: 3860, + EndPos: 3861, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3896, - EndPos: 3897, + StartLine: 172, + EndLine: 172, + StartPos: 3860, + EndPos: 3861, }, Value: "a", }, @@ -8461,29 +8480,73 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3902, - EndPos: 3905, + StartPos: 3867, + EndPos: 3875, }, - Expr: &expr.BooleanNot{ + Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3902, - EndPos: 3904, + StartPos: 3867, + EndPos: 3874, }, - Expr: &expr.Variable{ + Class: &name.Name{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3903, - EndPos: 3904, + StartPos: 3867, + EndPos: 3869, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3867, + EndPos: 3869, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3872, + EndPos: 3874, + }, + Value: "Bar", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3879, + EndPos: 3888, + }, + Expr: &expr.Clone{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3879, + EndPos: 3886, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3885, + EndPos: 3886, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3903, - EndPos: 3904, + StartLine: 175, + EndLine: 175, + StartPos: 3885, + EndPos: 3886, }, Value: "a", }, @@ -8494,125 +8557,48 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3910, - EndPos: 3918, + StartPos: 3892, + EndPos: 3900, }, - Expr: &expr.ClassConstFetch{ + Expr: &expr.Clone{ Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3910, - EndPos: 3917, + StartPos: 3892, + EndPos: 3899, }, - Class: &name.Name{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3910, - EndPos: 3912, + StartPos: 3898, + EndPos: 3899, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3910, - EndPos: 3912, - }, - Value: "Foo", + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3898, + EndPos: 3899, }, + Value: "a", }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3915, - EndPos: 3917, - }, - Value: "Bar", - }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3922, - EndPos: 3931, - }, - Expr: &expr.Clone{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3922, - EndPos: 3929, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3928, - EndPos: 3929, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3928, - EndPos: 3929, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3935, - EndPos: 3943, - }, - Expr: &expr.Clone{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3935, - EndPos: 3942, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3941, - EndPos: 3942, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3941, - EndPos: 3942, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3947, - EndPos: 3959, + StartPos: 3904, + EndPos: 3916, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3947, - EndPos: 3958, + StartLine: 177, + EndLine: 177, + StartPos: 3904, + EndPos: 3915, }, ReturnsRef: false, Static: false, @@ -8622,44 +8608,44 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3963, - EndPos: 3996, + StartLine: 178, + EndLine: 178, + StartPos: 3920, + EndPos: 3953, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3963, - EndPos: 3995, + StartLine: 178, + EndLine: 178, + StartPos: 3920, + EndPos: 3952, }, + ReturnsRef: false, Static: false, PhpDocComment: "", - ReturnsRef: false, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3972, - EndPos: 3973, + StartLine: 178, + EndLine: 178, + StartPos: 3929, + EndPos: 3930, }, - ByRef: false, Variadic: false, + ByRef: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3972, - EndPos: 3973, + StartLine: 178, + EndLine: 178, + StartPos: 3929, + EndPos: 3930, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3972, - EndPos: 3973, + StartLine: 178, + EndLine: 178, + StartPos: 3929, + EndPos: 3930, }, Value: "a", }, @@ -8667,26 +8653,26 @@ func TestPhp5(t *testing.T) { }, &node.Parameter{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3976, - EndPos: 3977, + StartLine: 178, + EndLine: 178, + StartPos: 3933, + EndPos: 3934, }, - ByRef: false, Variadic: false, + ByRef: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3976, - EndPos: 3977, + StartLine: 178, + EndLine: 178, + StartPos: 3933, + EndPos: 3934, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3976, - EndPos: 3977, + StartLine: 178, + EndLine: 178, + StartPos: 3933, + EndPos: 3934, }, Value: "b", }, @@ -8695,49 +8681,49 @@ func TestPhp5(t *testing.T) { }, ClosureUse: &expr.ClosureUse{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3980, - EndPos: 3992, + StartLine: 178, + EndLine: 178, + StartPos: 3937, + EndPos: 3949, }, Uses: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3985, - EndPos: 3986, + StartLine: 178, + EndLine: 178, + StartPos: 3942, + EndPos: 3943, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3985, - EndPos: 3986, + StartLine: 178, + EndLine: 178, + StartPos: 3942, + EndPos: 3943, }, Value: "c", }, }, &expr.Reference{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3989, - EndPos: 3991, + StartLine: 178, + EndLine: 178, + StartPos: 3946, + EndPos: 3948, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3990, - EndPos: 3991, + StartLine: 178, + EndLine: 178, + StartPos: 3947, + EndPos: 3948, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3990, - EndPos: 3991, + StartLine: 178, + EndLine: 178, + StartPos: 3947, + EndPos: 3948, }, Value: "d", }, @@ -8750,17 +8736,17 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4000, - EndPos: 4033, + StartLine: 179, + EndLine: 179, + StartPos: 3957, + EndPos: 3990, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4000, - EndPos: 4032, + StartLine: 179, + EndLine: 179, + StartPos: 3957, + EndPos: 3989, }, ReturnsRef: false, Static: false, @@ -8768,26 +8754,26 @@ func TestPhp5(t *testing.T) { Params: []node.Node{ &node.Parameter{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4009, - EndPos: 4010, + StartLine: 179, + EndLine: 179, + StartPos: 3966, + EndPos: 3967, }, ByRef: false, Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4009, - EndPos: 4010, + StartLine: 179, + EndLine: 179, + StartPos: 3966, + EndPos: 3967, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4009, - EndPos: 4010, + StartLine: 179, + EndLine: 179, + StartPos: 3966, + EndPos: 3967, }, Value: "a", }, @@ -8795,26 +8781,26 @@ func TestPhp5(t *testing.T) { }, &node.Parameter{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4013, - EndPos: 4014, + StartLine: 179, + EndLine: 179, + StartPos: 3970, + EndPos: 3971, }, ByRef: false, Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4013, - EndPos: 4014, + StartLine: 179, + EndLine: 179, + StartPos: 3970, + EndPos: 3971, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4013, - EndPos: 4014, + StartLine: 179, + EndLine: 179, + StartPos: 3970, + EndPos: 3971, }, Value: "b", }, @@ -8823,32 +8809,32 @@ func TestPhp5(t *testing.T) { }, ClosureUse: &expr.ClosureUse{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4017, - EndPos: 4029, + StartLine: 179, + EndLine: 179, + StartPos: 3974, + EndPos: 3986, }, Uses: []node.Node{ &expr.Reference{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4022, - EndPos: 4024, + StartLine: 179, + EndLine: 179, + StartPos: 3979, + EndPos: 3981, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4023, - EndPos: 4024, + StartLine: 179, + EndLine: 179, + StartPos: 3980, + EndPos: 3981, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4023, - EndPos: 4024, + StartLine: 179, + EndLine: 179, + StartPos: 3980, + EndPos: 3981, }, Value: "c", }, @@ -8856,17 +8842,17 @@ func TestPhp5(t *testing.T) { }, &expr.Variable{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4027, - EndPos: 4028, + StartLine: 179, + EndLine: 179, + StartPos: 3984, + EndPos: 3985, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4027, - EndPos: 4028, + StartLine: 179, + EndLine: 179, + StartPos: 3984, + EndPos: 3985, }, Value: "d", }, @@ -8878,17 +8864,17 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4037, - EndPos: 4050, + StartLine: 180, + EndLine: 180, + StartPos: 3994, + EndPos: 4007, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4037, - EndPos: 4049, + StartLine: 180, + EndLine: 180, + StartPos: 3994, + EndPos: 4006, }, ReturnsRef: false, Static: false, @@ -8898,32 +8884,32 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4054, - EndPos: 4057, + StartLine: 181, + EndLine: 181, + StartPos: 4011, + EndPos: 4014, }, Expr: &expr.ConstFetch{ Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4054, - EndPos: 4056, + StartLine: 181, + EndLine: 181, + StartPos: 4011, + EndPos: 4013, }, Constant: &name.Name{ Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4054, - EndPos: 4056, + StartLine: 181, + EndLine: 181, + StartPos: 4011, + EndPos: 4013, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4054, - EndPos: 4056, + StartLine: 181, + EndLine: 181, + StartPos: 4011, + EndPos: 4013, }, Value: "foo", }, @@ -8933,32 +8919,67 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4061, - EndPos: 4074, + StartLine: 182, + EndLine: 182, + StartPos: 4018, + EndPos: 4031, }, Expr: &expr.ConstFetch{ Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4061, - EndPos: 4073, + StartLine: 182, + EndLine: 182, + StartPos: 4018, + EndPos: 4030, }, Constant: &name.Relative{ Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4061, - EndPos: 4073, + StartLine: 182, + EndLine: 182, + StartPos: 4018, + EndPos: 4030, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4071, - EndPos: 4073, + StartLine: 182, + EndLine: 182, + StartPos: 4028, + EndPos: 4030, + }, + Value: "foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4035, + EndPos: 4039, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4035, + EndPos: 4038, + }, + Constant: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4035, + EndPos: 4038, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4036, + EndPos: 4038, }, Value: "foo", }, @@ -8970,64 +8991,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4078, - EndPos: 4082, - }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4078, - EndPos: 4081, - }, - Constant: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4078, - EndPos: 4081, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4079, - EndPos: 4081, - }, - Value: "foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4087, - EndPos: 4096, + StartPos: 4044, + EndPos: 4053, }, Expr: &expr.Empty{ Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4087, - EndPos: 4095, + StartLine: 185, + EndLine: 185, + StartPos: 4044, + EndPos: 4052, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4093, - EndPos: 4094, + StartLine: 185, + EndLine: 185, + StartPos: 4050, + EndPos: 4051, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4093, - EndPos: 4094, + StartLine: 185, + EndLine: 185, + StartPos: 4050, + EndPos: 4051, }, Value: "a", }, @@ -9036,39 +9022,39 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4100, - EndPos: 4110, + StartLine: 186, + EndLine: 186, + StartPos: 4057, + EndPos: 4067, }, Expr: &expr.Empty{ Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4100, - EndPos: 4109, + StartLine: 186, + EndLine: 186, + StartPos: 4057, + EndPos: 4066, }, Expr: &expr.ConstFetch{ Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4106, - EndPos: 4108, + StartLine: 186, + EndLine: 186, + StartPos: 4063, + EndPos: 4065, }, Constant: &name.Name{ Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4106, - EndPos: 4108, + StartLine: 186, + EndLine: 186, + StartPos: 4063, + EndPos: 4065, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4106, - EndPos: 4108, + StartLine: 186, + EndLine: 186, + StartPos: 4063, + EndPos: 4065, }, Value: "Foo", }, @@ -9079,31 +9065,31 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4114, - EndPos: 4117, + StartLine: 187, + EndLine: 187, + StartPos: 4071, + EndPos: 4074, }, Expr: &expr.ErrorSuppress{ Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4114, - EndPos: 4116, + StartLine: 187, + EndLine: 187, + StartPos: 4071, + EndPos: 4073, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4115, - EndPos: 4116, + StartLine: 187, + EndLine: 187, + StartPos: 4072, + EndPos: 4073, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4115, - EndPos: 4116, + StartLine: 187, + EndLine: 187, + StartPos: 4072, + EndPos: 4073, }, Value: "a", }, @@ -9112,31 +9098,82 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4121, - EndPos: 4129, + StartLine: 188, + EndLine: 188, + StartPos: 4078, + EndPos: 4086, }, Expr: &expr.Eval{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4078, + EndPos: 4085, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4083, + EndPos: 4084, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4083, + EndPos: 4084, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4090, + EndPos: 4094, + }, + Expr: &expr.Exit{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4090, + EndPos: 4093, + }, + Die: false, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4098, + EndPos: 4106, + }, + Expr: &expr.Exit{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4121, - EndPos: 4128, + StartPos: 4098, + EndPos: 4105, }, + Die: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4126, - EndPos: 4127, + StartPos: 4103, + EndPos: 4104, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4126, - EndPos: 4127, + StartPos: 4103, + EndPos: 4104, }, Value: "a", }, @@ -9147,47 +9184,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4133, - EndPos: 4137, + StartPos: 4110, + EndPos: 4115, }, Expr: &expr.Exit{ - Die: false, Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4133, - EndPos: 4136, + StartPos: 4110, + EndPos: 4114, }, + Die: true, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4141, - EndPos: 4149, + StartPos: 4119, + EndPos: 4126, }, Expr: &expr.Exit{ - Die: false, Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4141, - EndPos: 4148, + StartPos: 4119, + EndPos: 4125, }, + Die: true, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4146, - EndPos: 4147, + StartPos: 4123, + EndPos: 4124, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4146, - EndPos: 4147, + StartPos: 4123, + EndPos: 4124, }, Value: "a", }, @@ -9198,16 +9235,42 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4153, - EndPos: 4158, + StartPos: 4130, + EndPos: 4135, }, - Expr: &expr.Exit{ - Die: true, + Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4153, - EndPos: 4157, + StartPos: 4130, + EndPos: 4134, + }, + Function: &name.Name{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4130, + EndPos: 4132, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4130, + EndPos: 4132, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4133, + EndPos: 4134, + }, }, }, }, @@ -9215,107 +9278,30 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4162, - EndPos: 4169, + StartPos: 4139, + EndPos: 4157, }, - Expr: &expr.Exit{ - Die: true, + Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4162, - EndPos: 4168, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4166, - EndPos: 4167, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4166, - EndPos: 4167, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4173, - EndPos: 4178, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4173, - EndPos: 4177, - }, - Function: &name.Name{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4173, - EndPos: 4175, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4173, - EndPos: 4175, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4176, - EndPos: 4177, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4182, - EndPos: 4200, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4182, - EndPos: 4199, + StartPos: 4139, + EndPos: 4156, }, Function: &name.Relative{ Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4182, - EndPos: 4194, + StartLine: 194, + EndLine: 194, + StartPos: 4139, + EndPos: 4151, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4192, - EndPos: 4194, + StartLine: 194, + EndLine: 194, + StartPos: 4149, + EndPos: 4151, }, Value: "foo", }, @@ -9323,34 +9309,34 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4195, - EndPos: 4199, + StartLine: 194, + EndLine: 194, + StartPos: 4152, + EndPos: 4156, }, Arguments: []node.Node{ &node.Argument{ Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4197, - EndPos: 4198, + StartLine: 194, + EndLine: 194, + StartPos: 4154, + EndPos: 4155, }, Variadic: false, IsReference: true, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4197, - EndPos: 4198, + StartLine: 194, + EndLine: 194, + StartPos: 4154, + EndPos: 4155, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4197, - EndPos: 4198, + StartLine: 194, + EndLine: 194, + StartPos: 4154, + EndPos: 4155, }, Value: "a", }, @@ -9362,32 +9348,32 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4204, - EndPos: 4212, + StartLine: 195, + EndLine: 195, + StartPos: 4161, + EndPos: 4169, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4204, - EndPos: 4211, + StartLine: 195, + EndLine: 195, + StartPos: 4161, + EndPos: 4168, }, Function: &name.FullyQualified{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4204, - EndPos: 4207, + StartLine: 195, + EndLine: 195, + StartPos: 4161, + EndPos: 4164, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4205, - EndPos: 4207, + StartLine: 195, + EndLine: 195, + StartPos: 4162, + EndPos: 4164, }, Value: "foo", }, @@ -9395,27 +9381,27 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4208, - EndPos: 4211, + StartLine: 195, + EndLine: 195, + StartPos: 4165, + EndPos: 4168, }, Arguments: []node.Node{ &node.Argument{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4209, - EndPos: 4210, + StartLine: 195, + EndLine: 195, + StartPos: 4166, + EndPos: 4167, }, Variadic: false, IsReference: false, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4209, - EndPos: 4210, + StartLine: 195, + EndLine: 195, + StartPos: 4166, + EndPos: 4167, }, Items: []node.Node{}, }, @@ -9426,72 +9412,72 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4216, - EndPos: 4230, + StartLine: 196, + EndLine: 196, + StartPos: 4173, + EndPos: 4187, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4216, - EndPos: 4229, + StartLine: 196, + EndLine: 196, + StartPos: 4173, + EndPos: 4186, }, Function: &expr.Variable{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4216, - EndPos: 4219, + StartLine: 196, + EndLine: 196, + StartPos: 4173, + EndPos: 4176, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4216, - EndPos: 4219, + StartLine: 196, + EndLine: 196, + StartPos: 4173, + EndPos: 4176, }, Value: "foo", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4220, - EndPos: 4229, + StartLine: 196, + EndLine: 196, + StartPos: 4177, + EndPos: 4186, }, Arguments: []node.Node{ &node.Argument{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4221, - EndPos: 4228, + StartLine: 196, + EndLine: 196, + StartPos: 4178, + EndPos: 4185, }, Variadic: false, IsReference: false, Expr: &expr.Yield{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4221, - EndPos: 4228, + StartLine: 196, + EndLine: 196, + StartPos: 4178, + EndPos: 4185, }, Value: &expr.Variable{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4227, - EndPos: 4228, + StartLine: 196, + EndLine: 196, + StartPos: 4184, + EndPos: 4185, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4227, - EndPos: 4228, + StartLine: 196, + EndLine: 196, + StartPos: 4184, + EndPos: 4185, }, Value: "a", }, @@ -9504,31 +9490,97 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 4235, - EndPos: 4239, + StartLine: 198, + EndLine: 198, + StartPos: 4192, + EndPos: 4196, }, Expr: &expr.PostDec{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4192, + EndPos: 4195, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4192, + EndPos: 4193, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4192, + EndPos: 4193, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4200, + EndPos: 4204, + }, + Expr: &expr.PostInc{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4200, + EndPos: 4203, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4200, + EndPos: 4201, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4200, + EndPos: 4201, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4208, + EndPos: 4212, + }, + Expr: &expr.PreDec{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4235, - EndPos: 4238, + StartPos: 4208, + EndPos: 4211, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4235, - EndPos: 4236, + StartPos: 4210, + EndPos: 4211, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4235, - EndPos: 4236, + StartPos: 4210, + EndPos: 4211, }, Value: "a", }, @@ -9539,62 +9591,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4243, - EndPos: 4247, + StartPos: 4216, + EndPos: 4220, }, - Expr: &expr.PostInc{ + Expr: &expr.PreInc{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4243, - EndPos: 4246, + StartPos: 4216, + EndPos: 4219, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4243, - EndPos: 4244, + StartPos: 4218, + EndPos: 4219, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4243, - EndPos: 4244, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4251, - EndPos: 4255, - }, - Expr: &expr.PreDec{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4251, - EndPos: 4254, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4253, - EndPos: 4254, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4253, - EndPos: 4254, + StartPos: 4218, + EndPos: 4219, }, Value: "a", }, @@ -9605,29 +9624,62 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4259, - EndPos: 4263, + StartPos: 4225, + EndPos: 4235, }, - Expr: &expr.PreInc{ + Expr: &expr.Include{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4259, - EndPos: 4262, + StartPos: 4225, + EndPos: 4234, }, - Variable: &expr.Variable{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4261, - EndPos: 4262, + StartPos: 4233, + EndPos: 4234, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4261, - EndPos: 4262, + StartPos: 4233, + EndPos: 4234, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4239, + EndPos: 4254, + }, + Expr: &expr.IncludeOnce{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4239, + EndPos: 4253, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4252, + EndPos: 4253, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4252, + EndPos: 4253, }, Value: "a", }, @@ -9638,29 +9690,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4268, - EndPos: 4278, + StartPos: 4258, + EndPos: 4268, }, - Expr: &expr.Include{ + Expr: &expr.Require{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4268, - EndPos: 4277, + StartPos: 4258, + EndPos: 4267, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4276, - EndPos: 4277, + StartPos: 4266, + EndPos: 4267, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4276, - EndPos: 4277, + StartPos: 4266, + EndPos: 4267, }, Value: "a", }, @@ -9671,62 +9723,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4282, - EndPos: 4297, + StartPos: 4272, + EndPos: 4287, }, - Expr: &expr.IncludeOnce{ + Expr: &expr.RequireOnce{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4282, - EndPos: 4296, + StartPos: 4272, + EndPos: 4286, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4295, - EndPos: 4296, + StartPos: 4285, + EndPos: 4286, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4295, - EndPos: 4296, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4301, - EndPos: 4311, - }, - Expr: &expr.Require{ - Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4301, - EndPos: 4310, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4309, - EndPos: 4310, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4309, - EndPos: 4310, + StartPos: 4285, + EndPos: 4286, }, Value: "a", }, @@ -9737,80 +9756,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4315, - EndPos: 4330, + StartPos: 4292, + EndPos: 4309, }, - Expr: &expr.RequireOnce{ + Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4315, - EndPos: 4329, + StartPos: 4292, + EndPos: 4308, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4328, - EndPos: 4329, + StartPos: 4292, + EndPos: 4293, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4328, - EndPos: 4329, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4335, - EndPos: 4352, - }, - Expr: &expr.InstanceOf{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4335, - EndPos: 4351, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4335, - EndPos: 4336, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4335, - EndPos: 4336, + StartPos: 4292, + EndPos: 4293, }, Value: "a", }, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4349, - EndPos: 4351, + StartLine: 208, + EndLine: 208, + StartPos: 4306, + EndPos: 4308, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4349, - EndPos: 4351, + StartLine: 208, + EndLine: 208, + StartPos: 4306, + EndPos: 4308, }, Value: "Foo", }, @@ -9820,49 +9806,101 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4356, - EndPos: 4383, + StartLine: 209, + EndLine: 209, + StartPos: 4313, + EndPos: 4340, }, Expr: &expr.InstanceOf{ Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4356, - EndPos: 4382, + StartLine: 209, + EndLine: 209, + StartPos: 4313, + EndPos: 4339, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4356, - EndPos: 4357, + StartLine: 209, + EndLine: 209, + StartPos: 4313, + EndPos: 4314, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4356, - EndPos: 4357, + StartLine: 209, + EndLine: 209, + StartPos: 4313, + EndPos: 4314, }, Value: "a", }, }, Class: &name.Relative{ Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4370, - EndPos: 4382, + StartLine: 209, + EndLine: 209, + StartPos: 4327, + EndPos: 4339, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4380, - EndPos: 4382, + StartLine: 209, + EndLine: 209, + StartPos: 4337, + EndPos: 4339, + }, + Value: "Foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4344, + EndPos: 4362, + }, + Expr: &expr.InstanceOf{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4344, + EndPos: 4361, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4344, + EndPos: 4345, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4344, + EndPos: 4345, + }, + Value: "a", + }, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4358, + EndPos: 4361, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4359, + EndPos: 4361, }, Value: "Foo", }, @@ -9874,99 +9912,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4387, - EndPos: 4405, - }, - Expr: &expr.InstanceOf{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4387, - EndPos: 4404, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4387, - EndPos: 4388, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4387, - EndPos: 4388, - }, - Value: "a", - }, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4401, - EndPos: 4404, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4402, - EndPos: 4404, - }, - Value: "Foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4410, - EndPos: 4423, + StartPos: 4367, + EndPos: 4380, }, Expr: &expr.Isset{ Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4410, - EndPos: 4422, + StartLine: 212, + EndLine: 212, + StartPos: 4367, + EndPos: 4379, }, Variables: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4416, - EndPos: 4417, + StartLine: 212, + EndLine: 212, + StartPos: 4373, + EndPos: 4374, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4416, - EndPos: 4417, + StartLine: 212, + EndLine: 212, + StartPos: 4373, + EndPos: 4374, }, Value: "a", }, }, &expr.Variable{ Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4420, - EndPos: 4421, + StartLine: 212, + EndLine: 212, + StartPos: 4377, + EndPos: 4378, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4420, - EndPos: 4421, + StartLine: 212, + EndLine: 212, + StartPos: 4377, + EndPos: 4378, }, Value: "b", }, @@ -9976,40 +9962,40 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4427, - EndPos: 4437, + StartLine: 213, + EndLine: 213, + StartPos: 4384, + EndPos: 4394, }, Expr: &expr.Isset{ Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4427, - EndPos: 4436, + StartLine: 213, + EndLine: 213, + StartPos: 4384, + EndPos: 4393, }, Variables: []node.Node{ &expr.ConstFetch{ Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4433, - EndPos: 4435, + StartLine: 213, + EndLine: 213, + StartPos: 4390, + EndPos: 4392, }, Constant: &name.Name{ Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4433, - EndPos: 4435, + StartLine: 213, + EndLine: 213, + StartPos: 4390, + EndPos: 4392, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4433, - EndPos: 4435, + StartLine: 213, + EndLine: 213, + StartPos: 4390, + EndPos: 4392, }, Value: "Foo", }, @@ -10021,40 +10007,40 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4441, - EndPos: 4452, + StartLine: 214, + EndLine: 214, + StartPos: 4398, + EndPos: 4409, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4441, - EndPos: 4451, + StartLine: 214, + EndLine: 214, + StartPos: 4398, + EndPos: 4408, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4441, - EndPos: 4446, + StartLine: 214, + EndLine: 214, + StartPos: 4398, + EndPos: 4403, }, Items: []node.Node{}, }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4450, - EndPos: 4451, + StartLine: 214, + EndLine: 214, + StartPos: 4407, + EndPos: 4408, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4450, - EndPos: 4451, + StartLine: 214, + EndLine: 214, + StartPos: 4407, + EndPos: 4408, }, Value: "b", }, @@ -10063,46 +10049,46 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4456, - EndPos: 4473, + StartLine: 215, + EndLine: 215, + StartPos: 4413, + EndPos: 4430, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4456, - EndPos: 4472, + StartLine: 215, + EndLine: 215, + StartPos: 4413, + EndPos: 4429, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4456, - EndPos: 4467, + StartLine: 215, + EndLine: 215, + StartPos: 4413, + EndPos: 4424, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4461, - EndPos: 4462, + StartLine: 215, + EndLine: 215, + StartPos: 4418, + EndPos: 4419, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4461, - EndPos: 4462, + StartLine: 215, + EndLine: 215, + StartPos: 4418, + EndPos: 4419, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4461, - EndPos: 4462, + StartLine: 215, + EndLine: 215, + StartPos: 4418, + EndPos: 4419, }, Value: "a", }, @@ -10110,24 +10096,24 @@ func TestPhp5(t *testing.T) { }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4465, - EndPos: 4466, + StartLine: 215, + EndLine: 215, + StartPos: 4422, + EndPos: 4423, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4465, - EndPos: 4466, + StartLine: 215, + EndLine: 215, + StartPos: 4422, + EndPos: 4423, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4465, - EndPos: 4466, + StartLine: 215, + EndLine: 215, + StartPos: 4422, + EndPos: 4423, }, Value: "b", }, @@ -10137,17 +10123,17 @@ func TestPhp5(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4471, - EndPos: 4472, + StartLine: 215, + EndLine: 215, + StartPos: 4428, + EndPos: 4429, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4471, - EndPos: 4472, + StartLine: 215, + EndLine: 215, + StartPos: 4428, + EndPos: 4429, }, Value: "b", }, @@ -10156,53 +10142,53 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4477, - EndPos: 4492, + StartLine: 216, + EndLine: 216, + StartPos: 4434, + EndPos: 4449, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4477, - EndPos: 4491, + StartLine: 216, + EndLine: 216, + StartPos: 4434, + EndPos: 4448, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4477, - EndPos: 4486, + StartLine: 216, + EndLine: 216, + StartPos: 4434, + EndPos: 4443, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4482, - EndPos: 4485, + StartLine: 216, + EndLine: 216, + StartPos: 4439, + EndPos: 4442, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4482, - EndPos: 4485, + StartLine: 216, + EndLine: 216, + StartPos: 4439, + EndPos: 4442, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4482, - EndPos: 4483, + StartLine: 216, + EndLine: 216, + StartPos: 4439, + EndPos: 4440, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4482, - EndPos: 4483, + StartLine: 216, + EndLine: 216, + StartPos: 4439, + EndPos: 4440, }, Value: "a", }, @@ -10213,17 +10199,17 @@ func TestPhp5(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4490, - EndPos: 4491, + StartLine: 216, + EndLine: 216, + StartPos: 4447, + EndPos: 4448, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4490, - EndPos: 4491, + StartLine: 216, + EndLine: 216, + StartPos: 4447, + EndPos: 4448, }, Value: "b", }, @@ -10232,61 +10218,61 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4496, - EndPos: 4515, + StartLine: 217, + EndLine: 217, + StartPos: 4453, + EndPos: 4472, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4496, - EndPos: 4514, + StartLine: 217, + EndLine: 217, + StartPos: 4453, + EndPos: 4471, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4496, - EndPos: 4509, + StartLine: 217, + EndLine: 217, + StartPos: 4453, + EndPos: 4466, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4501, - EndPos: 4508, + StartLine: 217, + EndLine: 217, + StartPos: 4458, + EndPos: 4465, }, Val: &expr.List{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4501, - EndPos: 4508, + StartLine: 217, + EndLine: 217, + StartPos: 4458, + EndPos: 4465, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4506, - EndPos: 4507, + StartLine: 217, + EndLine: 217, + StartPos: 4463, + EndPos: 4464, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4506, - EndPos: 4507, + StartLine: 217, + EndLine: 217, + StartPos: 4463, + EndPos: 4464, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4506, - EndPos: 4507, + StartLine: 217, + EndLine: 217, + StartPos: 4463, + EndPos: 4464, }, Value: "a", }, @@ -10299,17 +10285,17 @@ func TestPhp5(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4513, - EndPos: 4514, + StartLine: 217, + EndLine: 217, + StartPos: 4470, + EndPos: 4471, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4513, - EndPos: 4514, + StartLine: 217, + EndLine: 217, + StartPos: 4470, + EndPos: 4471, }, Value: "b", }, @@ -10318,50 +10304,128 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4520, - EndPos: 4529, + StartLine: 219, + EndLine: 219, + StartPos: 4477, + EndPos: 4486, }, Expr: &expr.MethodCall{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4520, - EndPos: 4528, + StartLine: 219, + EndLine: 219, + StartPos: 4477, + EndPos: 4485, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4520, - EndPos: 4521, + StartLine: 219, + EndLine: 219, + StartPos: 4477, + EndPos: 4478, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4520, - EndPos: 4521, + StartLine: 219, + EndLine: 219, + StartPos: 4477, + EndPos: 4478, }, Value: "a", }, }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4524, - EndPos: 4526, + StartLine: 219, + EndLine: 219, + StartPos: 4481, + EndPos: 4483, }, Value: "foo", }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4484, + EndPos: 4485, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4490, + EndPos: 4497, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4490, + EndPos: 4496, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4494, + EndPos: 4496, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4494, + EndPos: 4496, + }, + Value: "Foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4501, + EndPos: 4520, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4501, + EndPos: 4519, + }, + Class: &name.Relative{ Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4527, - EndPos: 4528, + StartPos: 4505, + EndPos: 4517, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4515, + EndPos: 4517, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4518, + EndPos: 4519, }, }, }, @@ -10370,76 +10434,74 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4533, - EndPos: 4540, + StartPos: 4524, + EndPos: 4534, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4533, - EndPos: 4539, + StartPos: 4524, + EndPos: 4533, }, - Class: &name.Name{ + Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4537, - EndPos: 4539, + StartPos: 4528, + EndPos: 4531, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4537, - EndPos: 4539, + StartPos: 4529, + EndPos: 4531, }, Value: "Foo", }, }, }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4532, + EndPos: 4533, + }, + }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, - EndPos: 4563, + StartPos: 4538, + EndPos: 4547, }, - Expr: &expr.New{ + Expr: &expr.Print{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, - EndPos: 4562, + StartPos: 4538, + EndPos: 4545, }, - Class: &name.Relative{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4548, - EndPos: 4560, + StartPos: 4544, + EndPos: 4545, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4558, - EndPos: 4560, - }, - Value: "Foo", + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4545, }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4561, - EndPos: 4562, + Value: "a", }, }, }, @@ -10448,115 +10510,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4567, - EndPos: 4577, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4567, - EndPos: 4576, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4571, - EndPos: 4574, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4572, - EndPos: 4574, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4575, - EndPos: 4576, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4581, - EndPos: 4590, - }, - Expr: &expr.Print{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4581, - EndPos: 4588, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4587, - EndPos: 4588, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4587, - EndPos: 4588, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4594, - EndPos: 4601, + StartPos: 4551, + EndPos: 4558, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4594, - EndPos: 4600, + StartLine: 224, + EndLine: 224, + StartPos: 4551, + EndPos: 4557, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4594, - EndPos: 4595, + StartLine: 224, + EndLine: 224, + StartPos: 4551, + EndPos: 4552, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4594, - EndPos: 4595, + StartLine: 224, + EndLine: 224, + StartPos: 4551, + EndPos: 4552, }, Value: "a", }, }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4598, - EndPos: 4600, + StartLine: 224, + EndLine: 224, + StartPos: 4555, + EndPos: 4557, }, Value: "foo", }, @@ -10564,58 +10550,260 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4605, - EndPos: 4615, + StartLine: 225, + EndLine: 225, + StartPos: 4562, + EndPos: 4572, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4605, - EndPos: 4613, + StartLine: 225, + EndLine: 225, + StartPos: 4562, + EndPos: 4570, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4605, - EndPos: 4611, + StartLine: 225, + EndLine: 225, + StartPos: 4562, + EndPos: 4568, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4605, - EndPos: 4606, + StartLine: 225, + EndLine: 225, + StartPos: 4562, + EndPos: 4563, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4605, - EndPos: 4606, + StartLine: 225, + EndLine: 225, + StartPos: 4562, + EndPos: 4563, }, Value: "a", }, }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4609, - EndPos: 4611, + StartLine: 225, + EndLine: 225, + StartPos: 4566, + EndPos: 4568, }, Value: "foo", }, }, Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4570, + EndPos: 4570, + }, + Value: "1", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4604, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4602, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4600, + }, + Variable: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4594, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4587, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4582, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4577, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4576, + EndPos: 4577, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4580, + EndPos: 4582, + }, + Value: "foo", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4585, + EndPos: 4587, + }, + Value: "bar", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4590, + EndPos: 4592, + }, + Value: "baz", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4593, + EndPos: 4594, + }, + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4597, + EndPos: 4600, + }, + Value: "quux", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4602, + EndPos: 4602, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4608, + EndPos: 4623, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4608, + EndPos: 4621, + }, + Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4613, - EndPos: 4613, + StartPos: 4608, + EndPos: 4618, + }, + Variable: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4608, + EndPos: 4616, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4608, + EndPos: 4609, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4608, + EndPos: 4609, + }, + Value: "a", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4612, + EndPos: 4614, + }, + Value: "foo", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4615, + EndPos: 4616, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4618, + EndPos: 4618, + }, + Value: "1", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4621, + EndPos: 4621, }, Value: "1", }, @@ -10625,241 +10813,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4619, - EndPos: 4647, - }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4645, - }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4643, - }, - Variable: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4637, - }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4630, - }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4625, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4620, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4620, - }, - Value: "a", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4623, - EndPos: 4625, - }, - Value: "foo", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4628, - EndPos: 4630, - }, - Value: "bar", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4633, - EndPos: 4635, - }, - Value: "baz", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4636, - EndPos: 4637, - }, - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4640, - EndPos: 4643, - }, - Value: "quux", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4645, - EndPos: 4645, - }, - Value: "0", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4651, - EndPos: 4666, - }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4651, - EndPos: 4664, - }, - Variable: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4651, - EndPos: 4661, - }, - Variable: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4651, - EndPos: 4659, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4651, - EndPos: 4652, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4651, - EndPos: 4652, - }, - Value: "a", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4655, - EndPos: 4657, - }, - Value: "foo", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4658, - EndPos: 4659, - }, - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4661, - EndPos: 4661, - }, - Value: "1", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4664, - EndPos: 4664, - }, - Value: "1", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4670, - EndPos: 4678, + StartPos: 4627, + EndPos: 4635, }, Expr: &expr.ShellExec{ Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4670, - EndPos: 4677, + StartLine: 228, + EndLine: 228, + StartPos: 4627, + EndPos: 4634, }, Parts: []node.Node{ &scalar.EncapsedStringPart{ Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4671, - EndPos: 4674, + StartLine: 228, + EndLine: 228, + StartPos: 4628, + EndPos: 4631, }, Value: "cmd ", }, &expr.Variable{ Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4675, - EndPos: 4676, + StartLine: 228, + EndLine: 228, + StartPos: 4632, + EndPos: 4633, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4675, - EndPos: 4676, + StartLine: 228, + EndLine: 228, + StartPos: 4632, + EndPos: 4633, }, Value: "a", }, @@ -10869,17 +10855,17 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4682, - EndPos: 4687, + StartLine: 229, + EndLine: 229, + StartPos: 4639, + EndPos: 4644, }, Expr: &expr.ShellExec{ Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4682, - EndPos: 4686, + StartLine: 229, + EndLine: 229, + StartPos: 4639, + EndPos: 4643, }, Parts: []node.Node{ &scalar.EncapsedStringPart{ @@ -10890,66 +10876,66 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4691, - EndPos: 4693, + StartLine: 230, + EndLine: 230, + StartPos: 4648, + EndPos: 4650, }, Expr: &expr.ShellExec{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4691, - EndPos: 4692, + StartLine: 230, + EndLine: 230, + StartPos: 4648, + EndPos: 4649, }, Parts: []node.Node{}, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4697, - EndPos: 4699, + StartLine: 231, + EndLine: 231, + StartPos: 4654, + EndPos: 4656, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4697, - EndPos: 4698, + StartLine: 231, + EndLine: 231, + StartPos: 4654, + EndPos: 4655, }, Items: []node.Node{}, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4703, - EndPos: 4706, + StartLine: 232, + EndLine: 232, + StartPos: 4660, + EndPos: 4663, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4703, - EndPos: 4705, + StartLine: 232, + EndLine: 232, + StartPos: 4660, + EndPos: 4662, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4704, - EndPos: 4704, + StartLine: 232, + EndLine: 232, + StartPos: 4661, + EndPos: 4661, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4704, - EndPos: 4704, + StartLine: 232, + EndLine: 232, + StartPos: 4661, + EndPos: 4661, }, Value: "1", }, @@ -10959,72 +10945,72 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4710, - EndPos: 4722, + StartLine: 233, + EndLine: 233, + StartPos: 4667, + EndPos: 4679, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4710, - EndPos: 4721, + StartLine: 233, + EndLine: 233, + StartPos: 4667, + EndPos: 4678, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4711, - EndPos: 4714, + StartLine: 233, + EndLine: 233, + StartPos: 4668, + EndPos: 4671, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4711, - EndPos: 4711, + StartLine: 233, + EndLine: 233, + StartPos: 4668, + EndPos: 4668, }, Value: "1", }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4714, - EndPos: 4714, + StartLine: 233, + EndLine: 233, + StartPos: 4671, + EndPos: 4671, }, Value: "1", }, }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4717, - EndPos: 4719, + StartLine: 233, + EndLine: 233, + StartPos: 4674, + EndPos: 4676, }, Val: &expr.Reference{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4717, - EndPos: 4719, + StartLine: 233, + EndLine: 233, + StartPos: 4674, + EndPos: 4676, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4718, - EndPos: 4719, + StartLine: 233, + EndLine: 233, + StartPos: 4675, + EndPos: 4676, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4718, - EndPos: 4719, + StartLine: 233, + EndLine: 233, + StartPos: 4675, + EndPos: 4676, }, Value: "b", }, @@ -11035,34 +11021,138 @@ func TestPhp5(t *testing.T) { }, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4684, + EndPos: 4694, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4684, + EndPos: 4693, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4684, + EndPos: 4686, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4684, + EndPos: 4686, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4689, + EndPos: 4691, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4692, + EndPos: 4693, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4698, + EndPos: 4718, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4698, + EndPos: 4717, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4698, + EndPos: 4710, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4708, + EndPos: 4710, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4713, + EndPos: 4715, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4716, + EndPos: 4717, + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4727, - EndPos: 4737, + StartPos: 4722, + EndPos: 4733, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4727, - EndPos: 4736, + StartPos: 4722, + EndPos: 4732, }, - Class: &name.Name{ + Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4727, - EndPos: 4729, + StartPos: 4722, + EndPos: 4725, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4727, - EndPos: 4729, + StartPos: 4723, + EndPos: 4725, }, Value: "Foo", }, @@ -11072,8 +11162,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4732, - EndPos: 4734, + StartPos: 4728, + EndPos: 4730, }, Value: "bar", }, @@ -11081,8 +11171,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4735, - EndPos: 4736, + StartPos: 4731, + EndPos: 4732, }, }, }, @@ -11091,50 +11181,58 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4741, - EndPos: 4761, + StartPos: 4737, + EndPos: 4748, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4741, - EndPos: 4760, + StartPos: 4737, + EndPos: 4747, }, - Class: &name.Relative{ + Class: &name.Name{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4741, - EndPos: 4753, + StartPos: 4737, + EndPos: 4739, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4751, - EndPos: 4753, + StartPos: 4737, + EndPos: 4739, }, Value: "Foo", }, }, }, - Call: &node.Identifier{ + Call: &expr.Variable{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4756, - EndPos: 4758, + StartPos: 4742, + EndPos: 4745, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4742, + EndPos: 4745, + }, + Value: "bar", }, - Value: "bar", }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4759, - EndPos: 4760, + StartPos: 4746, + EndPos: 4747, }, }, }, @@ -11143,50 +11241,56 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4765, - EndPos: 4776, + StartPos: 4752, + EndPos: 4764, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4765, - EndPos: 4775, + StartPos: 4752, + EndPos: 4763, }, - Class: &name.FullyQualified{ + Class: &expr.Variable{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4765, - EndPos: 4768, + StartPos: 4752, + EndPos: 4755, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4766, - EndPos: 4768, - }, - Value: "Foo", + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4752, + EndPos: 4755, }, + Value: "foo", }, }, - Call: &node.Identifier{ + Call: &expr.Variable{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4771, - EndPos: 4773, + StartPos: 4758, + EndPos: 4761, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4758, + EndPos: 4761, + }, + Value: "bar", }, - Value: "bar", }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4774, - EndPos: 4775, + StartPos: 4762, + EndPos: 4763, }, }, }, @@ -11195,148 +11299,134 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4780, - EndPos: 4791, + StartPos: 4768, + EndPos: 4777, }, - Expr: &expr.StaticCall{ + Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4780, - EndPos: 4790, + StartPos: 4768, + EndPos: 4776, }, Class: &name.Name{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4780, - EndPos: 4782, + StartPos: 4768, + EndPos: 4770, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4780, - EndPos: 4782, + StartPos: 4768, + EndPos: 4770, }, Value: "Foo", }, }, }, - Call: &expr.Variable{ + Property: &expr.Variable{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4785, - EndPos: 4788, + StartPos: 4773, + EndPos: 4776, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4785, - EndPos: 4788, + StartPos: 4773, + EndPos: 4776, }, Value: "bar", }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4789, - EndPos: 4790, - }, - }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4795, - EndPos: 4807, + StartPos: 4781, + EndPos: 4800, }, - Expr: &expr.StaticCall{ + Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4795, - EndPos: 4806, + StartPos: 4781, + EndPos: 4799, }, - Class: &expr.Variable{ + Class: &name.Relative{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4795, - EndPos: 4798, + StartPos: 4781, + EndPos: 4793, }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4795, - EndPos: 4798, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4791, + EndPos: 4793, + }, + Value: "Foo", }, - Value: "foo", }, }, - Call: &expr.Variable{ + Property: &expr.Variable{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4801, - EndPos: 4804, + StartPos: 4796, + EndPos: 4799, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4801, - EndPos: 4804, + StartPos: 4796, + EndPos: 4799, }, Value: "bar", }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4805, - EndPos: 4806, - }, - }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4811, - EndPos: 4820, + StartPos: 4804, + EndPos: 4814, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4811, - EndPos: 4819, + StartPos: 4804, + EndPos: 4813, }, - Class: &name.Name{ + Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4811, - EndPos: 4813, + StartPos: 4804, + EndPos: 4807, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4811, - EndPos: 4813, + StartPos: 4805, + EndPos: 4807, }, Value: "Foo", }, @@ -11346,15 +11436,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4816, - EndPos: 4819, + StartPos: 4810, + EndPos: 4813, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4816, - EndPos: 4819, + StartPos: 4810, + EndPos: 4813, }, Value: "bar", }, @@ -11365,50 +11455,65 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4824, - EndPos: 4843, + StartPos: 4818, + EndPos: 4830, }, - Expr: &expr.StaticPropertyFetch{ + Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4824, - EndPos: 4842, + StartPos: 4818, + EndPos: 4829, }, - Class: &name.Relative{ + Condition: &expr.Variable{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4824, - EndPos: 4836, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4834, - EndPos: 4836, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4839, - EndPos: 4842, + StartPos: 4818, + EndPos: 4819, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4839, - EndPos: 4842, + StartPos: 4818, + EndPos: 4819, }, - Value: "bar", + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4823, + EndPos: 4824, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4823, + EndPos: 4824, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4828, + EndPos: 4829, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4828, + EndPos: 4829, + }, + Value: "c", }, }, }, @@ -11417,50 +11522,48 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4847, - EndPos: 4857, + StartPos: 4834, + EndPos: 4843, }, - Expr: &expr.StaticPropertyFetch{ + Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4847, - EndPos: 4856, + StartPos: 4834, + EndPos: 4842, }, - Class: &name.FullyQualified{ + Condition: &expr.Variable{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4847, - EndPos: 4850, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4848, - EndPos: 4850, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4853, - EndPos: 4856, + StartPos: 4834, + EndPos: 4835, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4853, - EndPos: 4856, + StartPos: 4834, + EndPos: 4835, }, - Value: "bar", + Value: "a", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4841, + EndPos: 4842, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4841, + EndPos: 4842, + }, + Value: "c", }, }, }, @@ -11469,65 +11572,107 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4861, - EndPos: 4873, + StartPos: 4847, + EndPos: 4869, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4861, - EndPos: 4872, + StartPos: 4847, + EndPos: 4868, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4861, - EndPos: 4862, + StartPos: 4847, + EndPos: 4848, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4861, - EndPos: 4862, + StartPos: 4847, + EndPos: 4848, }, Value: "a", }, }, - IfTrue: &expr.Variable{ + IfTrue: &expr.Ternary{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4866, - EndPos: 4867, + StartPos: 4852, + EndPos: 4863, }, - VarName: &node.Identifier{ + Condition: &expr.Variable{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4866, - EndPos: 4867, + StartPos: 4852, + EndPos: 4853, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4852, + EndPos: 4853, + }, + Value: "b", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4857, + EndPos: 4858, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4857, + EndPos: 4858, + }, + Value: "c", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4862, + EndPos: 4863, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4862, + EndPos: 4863, + }, + Value: "d", }, - Value: "b", }, }, IfFalse: &expr.Variable{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4871, - EndPos: 4872, + StartPos: 4867, + EndPos: 4868, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4871, - EndPos: 4872, + StartPos: 4867, + EndPos: 4868, }, - Value: "c", + Value: "e", }, }, }, @@ -11536,48 +11681,107 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4877, - EndPos: 4886, + StartPos: 4873, + EndPos: 4895, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4877, - EndPos: 4885, + StartPos: 4873, + EndPos: 4894, }, - Condition: &expr.Variable{ + Condition: &expr.Ternary{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4877, - EndPos: 4878, + StartPos: 4873, + EndPos: 4884, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4873, + EndPos: 4874, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4873, + EndPos: 4874, + }, + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4878, + EndPos: 4879, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4878, + EndPos: 4879, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4883, + EndPos: 4884, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4883, + EndPos: 4884, + }, + Value: "c", + }, + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4888, + EndPos: 4889, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4877, - EndPos: 4878, + StartPos: 4888, + EndPos: 4889, }, - Value: "a", + Value: "d", }, }, IfFalse: &expr.Variable{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4884, - EndPos: 4885, + StartPos: 4893, + EndPos: 4894, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4884, - EndPos: 4885, + StartPos: 4893, + EndPos: 4894, }, - Value: "c", + Value: "e", }, }, }, @@ -11586,107 +11790,31 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4890, - EndPos: 4912, + StartPos: 4899, + EndPos: 4902, }, - Expr: &expr.Ternary{ + Expr: &expr.UnaryMinus{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4890, - EndPos: 4911, + StartPos: 4899, + EndPos: 4901, }, - Condition: &expr.Variable{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4890, - EndPos: 4891, + StartPos: 4900, + EndPos: 4901, }, VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4890, - EndPos: 4891, - }, - Value: "a", - }, - }, - IfTrue: &expr.Ternary{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4895, - EndPos: 4906, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4895, - EndPos: 4896, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4895, - EndPos: 4896, - }, - Value: "b", - }, - }, - IfTrue: &expr.Variable{ Position: &position.Position{ StartLine: 247, EndLine: 247, StartPos: 4900, EndPos: 4901, }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4900, - EndPos: 4901, - }, - Value: "c", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4905, - EndPos: 4906, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4905, - EndPos: 4906, - }, - Value: "d", - }, - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4910, - EndPos: 4911, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4910, - EndPos: 4911, - }, - Value: "e", + Value: "a", }, }, }, @@ -11695,107 +11823,31 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4916, - EndPos: 4938, + StartPos: 4906, + EndPos: 4909, }, - Expr: &expr.Ternary{ + Expr: &expr.UnaryPlus{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4916, - EndPos: 4937, + StartPos: 4906, + EndPos: 4908, }, - Condition: &expr.Ternary{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4916, - EndPos: 4927, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4916, - EndPos: 4917, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4916, - EndPos: 4917, - }, - Value: "a", - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4921, - EndPos: 4922, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4921, - EndPos: 4922, - }, - Value: "b", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4926, - EndPos: 4927, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4926, - EndPos: 4927, - }, - Value: "c", - }, - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4931, - EndPos: 4932, + StartPos: 4907, + EndPos: 4908, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4931, - EndPos: 4932, + StartPos: 4907, + EndPos: 4908, }, - Value: "d", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4936, - EndPos: 4937, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4936, - EndPos: 4937, - }, - Value: "e", + Value: "a", }, }, }, @@ -11804,29 +11856,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4942, - EndPos: 4945, + StartPos: 4913, + EndPos: 4916, }, - Expr: &expr.UnaryMinus{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4942, - EndPos: 4944, + StartPos: 4913, + EndPos: 4915, }, - Expr: &expr.Variable{ + VarName: &expr.Variable{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4943, - EndPos: 4944, + StartPos: 4914, + EndPos: 4915, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4943, - EndPos: 4944, + StartPos: 4914, + EndPos: 4915, }, Value: "a", }, @@ -11837,102 +11889,36 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4949, - EndPos: 4952, + StartPos: 4920, + EndPos: 4924, }, - Expr: &expr.UnaryPlus{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4949, - EndPos: 4951, + StartPos: 4920, + EndPos: 4923, }, - Expr: &expr.Variable{ + VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4950, - EndPos: 4951, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4950, - EndPos: 4951, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4956, - EndPos: 4959, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4956, - EndPos: 4958, - }, - VarName: &expr.Variable{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4957, - EndPos: 4958, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4957, - EndPos: 4958, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4963, - EndPos: 4967, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4963, - EndPos: 4966, - }, - VarName: &expr.Variable{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4964, - EndPos: 4966, + StartPos: 4921, + EndPos: 4923, }, VarName: &expr.Variable{ Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4965, - EndPos: 4966, + StartLine: 250, + EndLine: 250, + StartPos: 4922, + EndPos: 4923, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4965, - EndPos: 4966, + StartLine: 250, + EndLine: 250, + StartPos: 4922, + EndPos: 4923, }, Value: "a", }, @@ -11940,99 +11926,99 @@ func TestPhp5(t *testing.T) { }, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4928, + EndPos: 4933, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4928, + EndPos: 4932, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4937, + EndPos: 4945, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4937, + EndPos: 4944, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4943, + EndPos: 4944, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4943, + EndPos: 4944, + }, + Value: "a", + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4971, - EndPos: 4976, + StartPos: 4949, + EndPos: 4963, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4971, - EndPos: 4975, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4980, - EndPos: 4988, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4980, - EndPos: 4987, - }, - Value: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4986, - EndPos: 4987, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4986, - EndPos: 4987, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4992, - EndPos: 5006, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4992, - EndPos: 5005, + StartPos: 4949, + EndPos: 4962, }, Key: &expr.Variable{ Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4998, - EndPos: 4999, + StartLine: 253, + EndLine: 253, + StartPos: 4955, + EndPos: 4956, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4998, - EndPos: 4999, + StartLine: 253, + EndLine: 253, + StartPos: 4955, + EndPos: 4956, }, Value: "a", }, }, Value: &expr.Variable{ Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5004, - EndPos: 5005, + StartLine: 253, + EndLine: 253, + StartPos: 4961, + EndPos: 4962, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5004, - EndPos: 5005, + StartLine: 253, + EndLine: 253, + StartPos: 4961, + EndPos: 4962, }, Value: "b", }, @@ -12041,39 +12027,39 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5010, - EndPos: 5026, + StartLine: 254, + EndLine: 254, + StartPos: 4967, + EndPos: 4983, }, Expr: &expr.Yield{ Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5010, - EndPos: 5025, + StartLine: 254, + EndLine: 254, + StartPos: 4967, + EndPos: 4982, }, Value: &expr.ClassConstFetch{ Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5016, - EndPos: 5025, + StartLine: 254, + EndLine: 254, + StartPos: 4973, + EndPos: 4982, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5016, - EndPos: 5018, + StartLine: 254, + EndLine: 254, + StartPos: 4973, + EndPos: 4975, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5016, - EndPos: 5018, + StartLine: 254, + EndLine: 254, + StartPos: 4973, + EndPos: 4975, }, Value: "Foo", }, @@ -12081,10 +12067,79 @@ func TestPhp5(t *testing.T) { }, ConstantName: &node.Identifier{ Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5021, - EndPos: 5025, + StartLine: 254, + EndLine: 254, + StartPos: 4978, + EndPos: 4982, + }, + Value: "class", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4987, + EndPos: 5009, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4987, + EndPos: 5008, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4993, + EndPos: 4994, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4993, + EndPos: 4994, + }, + Value: "a", + }, + }, + Value: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4999, + EndPos: 5008, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4999, + EndPos: 5001, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4999, + EndPos: 5001, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5004, + EndPos: 5008, }, Value: "class", }, @@ -12095,67 +12150,64 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5030, - EndPos: 5052, + StartPos: 5016, + EndPos: 5025, }, - Expr: &expr.Yield{ + Expr: &cast.Array{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5030, - EndPos: 5051, + StartPos: 5016, + EndPos: 5024, }, - Key: &expr.Variable{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5036, - EndPos: 5037, + StartPos: 5023, + EndPos: 5024, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5036, - EndPos: 5037, + StartPos: 5023, + EndPos: 5024, }, Value: "a", }, }, - Value: &expr.ClassConstFetch{ + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5029, + EndPos: 5040, + }, + Expr: &cast.Bool{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5029, + EndPos: 5039, + }, + Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5042, - EndPos: 5051, + StartLine: 258, + EndLine: 258, + StartPos: 5038, + EndPos: 5039, }, - Class: &name.Name{ + VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5042, - EndPos: 5044, + StartLine: 258, + EndLine: 258, + StartPos: 5038, + EndPos: 5039, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5042, - EndPos: 5044, - }, - Value: "Foo", - }, - }, - }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5047, - EndPos: 5051, - }, - Value: "class", + Value: "a", }, }, }, @@ -12164,29 +12216,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5059, - EndPos: 5068, + StartPos: 5044, + EndPos: 5052, }, - Expr: &cast.Array{ + Expr: &cast.Bool{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5059, - EndPos: 5067, + StartPos: 5044, + EndPos: 5051, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5066, - EndPos: 5067, + StartPos: 5050, + EndPos: 5051, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5066, - EndPos: 5067, + StartPos: 5050, + EndPos: 5051, }, Value: "a", }, @@ -12197,29 +12249,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5072, - EndPos: 5083, + StartPos: 5056, + EndPos: 5066, }, - Expr: &cast.Bool{ + Expr: &cast.Double{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5072, - EndPos: 5082, + StartPos: 5056, + EndPos: 5065, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5081, - EndPos: 5082, + StartPos: 5064, + EndPos: 5065, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5081, - EndPos: 5082, + StartPos: 5064, + EndPos: 5065, }, Value: "a", }, @@ -12230,29 +12282,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5087, - EndPos: 5095, + StartPos: 5070, + EndPos: 5079, }, - Expr: &cast.Bool{ + Expr: &cast.Double{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5087, - EndPos: 5094, + StartPos: 5070, + EndPos: 5078, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5093, - EndPos: 5094, + StartPos: 5077, + EndPos: 5078, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5093, - EndPos: 5094, + StartPos: 5077, + EndPos: 5078, }, Value: "a", }, @@ -12263,29 +12315,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5099, - EndPos: 5109, + StartPos: 5083, + EndPos: 5094, }, - Expr: &cast.Double{ + Expr: &cast.Int{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5099, - EndPos: 5108, + StartPos: 5083, + EndPos: 5093, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5107, - EndPos: 5108, + StartPos: 5092, + EndPos: 5093, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5107, - EndPos: 5108, + StartPos: 5092, + EndPos: 5093, }, Value: "a", }, @@ -12296,29 +12348,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5113, - EndPos: 5122, + StartPos: 5098, + EndPos: 5105, }, - Expr: &cast.Double{ + Expr: &cast.Int{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5113, - EndPos: 5121, + StartPos: 5098, + EndPos: 5104, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5120, - EndPos: 5121, + StartPos: 5103, + EndPos: 5104, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5120, - EndPos: 5121, + StartPos: 5103, + EndPos: 5104, }, Value: "a", }, @@ -12329,29 +12381,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5126, - EndPos: 5137, + StartPos: 5109, + EndPos: 5119, }, - Expr: &cast.Int{ + Expr: &cast.Object{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5126, - EndPos: 5136, + StartPos: 5109, + EndPos: 5118, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5135, - EndPos: 5136, + StartPos: 5117, + EndPos: 5118, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5135, - EndPos: 5136, + StartPos: 5117, + EndPos: 5118, }, Value: "a", }, @@ -12362,29 +12414,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5141, - EndPos: 5148, + StartPos: 5123, + EndPos: 5133, }, - Expr: &cast.Int{ + Expr: &cast.String{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5141, - EndPos: 5147, + StartPos: 5123, + EndPos: 5132, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5146, - EndPos: 5147, + StartPos: 5131, + EndPos: 5132, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5146, - EndPos: 5147, + StartPos: 5131, + EndPos: 5132, }, Value: "a", }, @@ -12395,62 +12447,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5152, - EndPos: 5162, + StartPos: 5137, + EndPos: 5146, }, - Expr: &cast.Object{ + Expr: &cast.Unset{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5152, - EndPos: 5161, + StartPos: 5137, + EndPos: 5145, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5160, - EndPos: 5161, + StartPos: 5144, + EndPos: 5145, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5160, - EndPos: 5161, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5166, - EndPos: 5176, - }, - Expr: &cast.String{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5166, - EndPos: 5175, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5174, - EndPos: 5175, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5174, - EndPos: 5175, + StartPos: 5144, + EndPos: 5145, }, Value: "a", }, @@ -12461,62 +12480,129 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5180, - EndPos: 5189, + StartPos: 5151, + EndPos: 5158, }, - Expr: &cast.Unset{ + Expr: &binary.BitwiseAnd{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5180, - EndPos: 5188, + StartPos: 5151, + EndPos: 5157, }, - Expr: &expr.Variable{ + Left: &expr.Variable{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5187, - EndPos: 5188, + StartPos: 5151, + EndPos: 5152, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5187, - EndPos: 5188, + StartPos: 5151, + EndPos: 5152, }, Value: "a", }, }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5156, + EndPos: 5157, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5156, + EndPos: 5157, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5162, + EndPos: 5169, + }, + Expr: &binary.BitwiseOr{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5162, + EndPos: 5168, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5162, + EndPos: 5163, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5162, + EndPos: 5163, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5167, + EndPos: 5168, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5167, + EndPos: 5168, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5194, - EndPos: 5201, + StartPos: 5173, + EndPos: 5180, }, - Expr: &binary.BitwiseAnd{ + Expr: &binary.BitwiseXor{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5194, - EndPos: 5200, + StartPos: 5173, + EndPos: 5179, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5194, - EndPos: 5195, + StartPos: 5173, + EndPos: 5174, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5194, - EndPos: 5195, + StartPos: 5173, + EndPos: 5174, }, Value: "a", }, @@ -12525,15 +12611,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5199, - EndPos: 5200, + StartPos: 5178, + EndPos: 5179, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5199, - EndPos: 5200, + StartPos: 5178, + EndPos: 5179, }, Value: "b", }, @@ -12544,29 +12630,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5205, - EndPos: 5212, + StartPos: 5184, + EndPos: 5192, }, - Expr: &binary.BitwiseOr{ + Expr: &binary.BooleanAnd{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5205, - EndPos: 5211, + StartPos: 5184, + EndPos: 5191, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5205, - EndPos: 5206, + StartPos: 5184, + EndPos: 5185, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5205, - EndPos: 5206, + StartPos: 5184, + EndPos: 5185, }, Value: "a", }, @@ -12575,15 +12661,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5210, - EndPos: 5211, + StartPos: 5190, + EndPos: 5191, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5210, - EndPos: 5211, + StartPos: 5190, + EndPos: 5191, }, Value: "b", }, @@ -12594,29 +12680,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5216, - EndPos: 5223, + StartPos: 5196, + EndPos: 5204, }, - Expr: &binary.BitwiseXor{ + Expr: &binary.BooleanOr{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5216, - EndPos: 5222, + StartPos: 5196, + EndPos: 5203, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5216, - EndPos: 5217, + StartPos: 5196, + EndPos: 5197, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5216, - EndPos: 5217, + StartPos: 5196, + EndPos: 5197, }, Value: "a", }, @@ -12625,15 +12711,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5221, - EndPos: 5222, + StartPos: 5202, + EndPos: 5203, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5221, - EndPos: 5222, + StartPos: 5202, + EndPos: 5203, }, Value: "b", }, @@ -12644,29 +12730,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5227, - EndPos: 5235, + StartPos: 5208, + EndPos: 5215, }, - Expr: &binary.BooleanAnd{ + Expr: &binary.Concat{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5227, - EndPos: 5234, + StartPos: 5208, + EndPos: 5214, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5227, - EndPos: 5228, + StartPos: 5208, + EndPos: 5209, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5227, - EndPos: 5228, + StartPos: 5208, + EndPos: 5209, }, Value: "a", }, @@ -12675,15 +12761,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5233, - EndPos: 5234, + StartPos: 5213, + EndPos: 5214, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5233, - EndPos: 5234, + StartPos: 5213, + EndPos: 5214, }, Value: "b", }, @@ -12694,29 +12780,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5239, - EndPos: 5247, + StartPos: 5219, + EndPos: 5226, }, - Expr: &binary.BooleanOr{ + Expr: &binary.Div{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5239, - EndPos: 5246, + StartPos: 5219, + EndPos: 5225, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5239, - EndPos: 5240, + StartPos: 5219, + EndPos: 5220, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5239, - EndPos: 5240, + StartPos: 5219, + EndPos: 5220, }, Value: "a", }, @@ -12725,15 +12811,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5245, - EndPos: 5246, + StartPos: 5224, + EndPos: 5225, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5245, - EndPos: 5246, + StartPos: 5224, + EndPos: 5225, }, Value: "b", }, @@ -12744,29 +12830,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5251, - EndPos: 5258, + StartPos: 5230, + EndPos: 5238, }, - Expr: &binary.Concat{ + Expr: &binary.Equal{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5251, - EndPos: 5257, + StartPos: 5230, + EndPos: 5237, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5251, - EndPos: 5252, + StartPos: 5230, + EndPos: 5231, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5251, - EndPos: 5252, + StartPos: 5230, + EndPos: 5231, }, Value: "a", }, @@ -12775,15 +12861,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5256, - EndPos: 5257, + StartPos: 5236, + EndPos: 5237, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5256, - EndPos: 5257, + StartPos: 5236, + EndPos: 5237, }, Value: "b", }, @@ -12794,29 +12880,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5262, - EndPos: 5269, + StartPos: 5242, + EndPos: 5250, }, - Expr: &binary.Div{ + Expr: &binary.GreaterOrEqual{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5262, - EndPos: 5268, + StartPos: 5242, + EndPos: 5249, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5262, - EndPos: 5263, + StartPos: 5242, + EndPos: 5243, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5262, - EndPos: 5263, + StartPos: 5242, + EndPos: 5243, }, Value: "a", }, @@ -12825,15 +12911,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5267, - EndPos: 5268, + StartPos: 5248, + EndPos: 5249, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5267, - EndPos: 5268, + StartPos: 5248, + EndPos: 5249, }, Value: "b", }, @@ -12844,29 +12930,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5273, - EndPos: 5281, + StartPos: 5254, + EndPos: 5261, }, - Expr: &binary.Equal{ + Expr: &binary.Greater{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5273, - EndPos: 5280, + StartPos: 5254, + EndPos: 5260, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5273, - EndPos: 5274, + StartPos: 5254, + EndPos: 5255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5273, - EndPos: 5274, + StartPos: 5254, + EndPos: 5255, }, Value: "a", }, @@ -12875,15 +12961,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5279, - EndPos: 5280, + StartPos: 5259, + EndPos: 5260, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5279, - EndPos: 5280, + StartPos: 5259, + EndPos: 5260, }, Value: "b", }, @@ -12894,29 +12980,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5285, - EndPos: 5293, + StartPos: 5265, + EndPos: 5274, }, - Expr: &binary.GreaterOrEqual{ + Expr: &binary.Identical{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5285, - EndPos: 5292, + StartPos: 5265, + EndPos: 5273, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5285, - EndPos: 5286, + StartPos: 5265, + EndPos: 5266, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5285, - EndPos: 5286, + StartPos: 5265, + EndPos: 5266, }, Value: "a", }, @@ -12925,15 +13011,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5291, - EndPos: 5292, + StartPos: 5272, + EndPos: 5273, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5291, - EndPos: 5292, + StartPos: 5272, + EndPos: 5273, }, Value: "b", }, @@ -12944,29 +13030,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5297, - EndPos: 5304, + StartPos: 5278, + EndPos: 5287, }, - Expr: &binary.Greater{ + Expr: &binary.LogicalAnd{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5297, - EndPos: 5303, + StartPos: 5278, + EndPos: 5286, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5297, - EndPos: 5298, + StartPos: 5278, + EndPos: 5279, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5297, - EndPos: 5298, + StartPos: 5278, + EndPos: 5279, }, Value: "a", }, @@ -12975,15 +13061,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5302, - EndPos: 5303, + StartPos: 5285, + EndPos: 5286, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5302, - EndPos: 5303, + StartPos: 5285, + EndPos: 5286, }, Value: "b", }, @@ -12994,29 +13080,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5308, - EndPos: 5317, + StartPos: 5291, + EndPos: 5299, }, - Expr: &binary.Identical{ + Expr: &binary.LogicalOr{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5308, - EndPos: 5316, + StartPos: 5291, + EndPos: 5298, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5308, - EndPos: 5309, + StartPos: 5291, + EndPos: 5292, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5308, - EndPos: 5309, + StartPos: 5291, + EndPos: 5292, }, Value: "a", }, @@ -13025,15 +13111,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5315, - EndPos: 5316, + StartPos: 5297, + EndPos: 5298, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5315, - EndPos: 5316, + StartPos: 5297, + EndPos: 5298, }, Value: "b", }, @@ -13044,29 +13130,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5321, - EndPos: 5330, + StartPos: 5303, + EndPos: 5312, }, - Expr: &binary.LogicalAnd{ + Expr: &binary.LogicalXor{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5321, - EndPos: 5329, + StartPos: 5303, + EndPos: 5311, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5321, - EndPos: 5322, + StartPos: 5303, + EndPos: 5304, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5321, - EndPos: 5322, + StartPos: 5303, + EndPos: 5304, }, Value: "a", }, @@ -13075,15 +13161,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5328, - EndPos: 5329, + StartPos: 5310, + EndPos: 5311, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5328, - EndPos: 5329, + StartPos: 5310, + EndPos: 5311, }, Value: "b", }, @@ -13094,29 +13180,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5334, - EndPos: 5342, + StartPos: 5316, + EndPos: 5323, }, - Expr: &binary.LogicalOr{ + Expr: &binary.Minus{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5334, - EndPos: 5341, + StartPos: 5316, + EndPos: 5322, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5334, - EndPos: 5335, + StartPos: 5316, + EndPos: 5317, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5334, - EndPos: 5335, + StartPos: 5316, + EndPos: 5317, }, Value: "a", }, @@ -13125,15 +13211,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5340, - EndPos: 5341, + StartPos: 5321, + EndPos: 5322, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5340, - EndPos: 5341, + StartPos: 5321, + EndPos: 5322, }, Value: "b", }, @@ -13144,29 +13230,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5346, - EndPos: 5355, + StartPos: 5327, + EndPos: 5334, }, - Expr: &binary.LogicalXor{ + Expr: &binary.Mod{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5346, - EndPos: 5354, + StartPos: 5327, + EndPos: 5333, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5346, - EndPos: 5347, + StartPos: 5327, + EndPos: 5328, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5346, - EndPos: 5347, + StartPos: 5327, + EndPos: 5328, }, Value: "a", }, @@ -13175,15 +13261,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5353, - EndPos: 5354, + StartPos: 5332, + EndPos: 5333, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5353, - EndPos: 5354, + StartPos: 5332, + EndPos: 5333, }, Value: "b", }, @@ -13194,29 +13280,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5359, - EndPos: 5366, + StartPos: 5338, + EndPos: 5345, }, - Expr: &binary.Minus{ + Expr: &binary.Mul{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5359, - EndPos: 5365, + StartPos: 5338, + EndPos: 5344, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5359, - EndPos: 5360, + StartPos: 5338, + EndPos: 5339, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5359, - EndPos: 5360, + StartPos: 5338, + EndPos: 5339, }, Value: "a", }, @@ -13225,15 +13311,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5364, - EndPos: 5365, + StartPos: 5343, + EndPos: 5344, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5364, - EndPos: 5365, + StartPos: 5343, + EndPos: 5344, }, Value: "b", }, @@ -13244,29 +13330,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5370, - EndPos: 5377, + StartPos: 5349, + EndPos: 5357, }, - Expr: &binary.Mod{ + Expr: &binary.NotEqual{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5370, - EndPos: 5376, + StartPos: 5349, + EndPos: 5356, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5370, - EndPos: 5371, + StartPos: 5349, + EndPos: 5350, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5370, - EndPos: 5371, + StartPos: 5349, + EndPos: 5350, }, Value: "a", }, @@ -13275,15 +13361,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5375, - EndPos: 5376, + StartPos: 5355, + EndPos: 5356, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5375, - EndPos: 5376, + StartPos: 5355, + EndPos: 5356, }, Value: "b", }, @@ -13294,29 +13380,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5381, - EndPos: 5388, + StartPos: 5361, + EndPos: 5370, }, - Expr: &binary.Mul{ + Expr: &binary.NotIdentical{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5381, - EndPos: 5387, + StartPos: 5361, + EndPos: 5369, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5381, - EndPos: 5382, + StartPos: 5361, + EndPos: 5362, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5381, - EndPos: 5382, + StartPos: 5361, + EndPos: 5362, }, Value: "a", }, @@ -13325,15 +13411,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5386, - EndPos: 5387, + StartPos: 5368, + EndPos: 5369, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5386, - EndPos: 5387, + StartPos: 5368, + EndPos: 5369, }, Value: "b", }, @@ -13344,29 +13430,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5400, + StartPos: 5374, + EndPos: 5381, }, - Expr: &binary.NotEqual{ + Expr: &binary.Plus{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5399, + StartPos: 5374, + EndPos: 5380, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5393, + StartPos: 5374, + EndPos: 5375, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5393, + StartPos: 5374, + EndPos: 5375, }, Value: "a", }, @@ -13375,15 +13461,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5398, - EndPos: 5399, + StartPos: 5379, + EndPos: 5380, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5398, - EndPos: 5399, + StartPos: 5379, + EndPos: 5380, }, Value: "b", }, @@ -13394,29 +13480,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5404, - EndPos: 5413, + StartPos: 5385, + EndPos: 5393, }, - Expr: &binary.NotIdentical{ + Expr: &binary.Pow{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5404, - EndPos: 5412, + StartPos: 5385, + EndPos: 5392, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5404, - EndPos: 5405, + StartPos: 5385, + EndPos: 5386, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5404, - EndPos: 5405, + StartPos: 5385, + EndPos: 5386, }, Value: "a", }, @@ -13425,15 +13511,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5411, - EndPos: 5412, + StartPos: 5391, + EndPos: 5392, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5411, - EndPos: 5412, + StartPos: 5391, + EndPos: 5392, }, Value: "b", }, @@ -13444,29 +13530,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5424, + StartPos: 5397, + EndPos: 5405, }, - Expr: &binary.Plus{ + Expr: &binary.ShiftLeft{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5423, + StartPos: 5397, + EndPos: 5404, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5418, + StartPos: 5397, + EndPos: 5398, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5418, + StartPos: 5397, + EndPos: 5398, }, Value: "a", }, @@ -13475,15 +13561,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5422, - EndPos: 5423, + StartPos: 5403, + EndPos: 5404, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5422, - EndPos: 5423, + StartPos: 5403, + EndPos: 5404, }, Value: "b", }, @@ -13494,29 +13580,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5428, - EndPos: 5436, + StartPos: 5409, + EndPos: 5417, }, - Expr: &binary.Pow{ + Expr: &binary.ShiftRight{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5428, - EndPos: 5435, + StartPos: 5409, + EndPos: 5416, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5428, - EndPos: 5429, + StartPos: 5409, + EndPos: 5410, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5428, - EndPos: 5429, + StartPos: 5409, + EndPos: 5410, }, Value: "a", }, @@ -13525,15 +13611,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5434, - EndPos: 5435, + StartPos: 5415, + EndPos: 5416, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5434, - EndPos: 5435, + StartPos: 5415, + EndPos: 5416, }, Value: "b", }, @@ -13544,29 +13630,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5440, - EndPos: 5448, + StartPos: 5421, + EndPos: 5429, }, - Expr: &binary.ShiftLeft{ + Expr: &binary.SmallerOrEqual{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5440, - EndPos: 5447, + StartPos: 5421, + EndPos: 5428, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5440, - EndPos: 5441, + StartPos: 5421, + EndPos: 5422, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5440, - EndPos: 5441, + StartPos: 5421, + EndPos: 5422, }, Value: "a", }, @@ -13575,15 +13661,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5446, - EndPos: 5447, + StartPos: 5427, + EndPos: 5428, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5446, - EndPos: 5447, + StartPos: 5427, + EndPos: 5428, }, Value: "b", }, @@ -13594,29 +13680,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5460, + StartPos: 5433, + EndPos: 5440, }, - Expr: &binary.ShiftRight{ + Expr: &binary.Smaller{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5459, + StartPos: 5433, + EndPos: 5439, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5453, + StartPos: 5433, + EndPos: 5434, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5453, + StartPos: 5433, + EndPos: 5434, }, Value: "a", }, @@ -13625,65 +13711,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5458, - EndPos: 5459, + StartPos: 5438, + EndPos: 5439, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5458, - EndPos: 5459, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5464, - EndPos: 5472, - }, - Expr: &binary.SmallerOrEqual{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5464, - EndPos: 5471, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5464, - EndPos: 5465, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5464, - EndPos: 5465, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5470, - EndPos: 5471, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5470, - EndPos: 5471, + StartPos: 5438, + EndPos: 5439, }, Value: "b", }, @@ -13694,98 +13730,205 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5476, - EndPos: 5483, + StartPos: 5445, + EndPos: 5453, }, - Expr: &binary.Smaller{ + Expr: &assign.Reference{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5476, - EndPos: 5482, + StartPos: 5445, + EndPos: 5452, }, - Left: &expr.Variable{ + Variable: &expr.Variable{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5476, - EndPos: 5477, + StartPos: 5445, + EndPos: 5446, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5476, - EndPos: 5477, + StartPos: 5445, + EndPos: 5446, }, Value: "a", }, }, - Right: &expr.Variable{ + Expression: &expr.Variable{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5481, - EndPos: 5482, + StartPos: 5451, + EndPos: 5452, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5481, - EndPos: 5482, + StartPos: 5451, + EndPos: 5452, }, Value: "b", }, }, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5457, + EndPos: 5470, + }, + Expr: &assign.Reference{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5457, + EndPos: 5469, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5457, + EndPos: 5458, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5457, + EndPos: 5458, + }, + Value: "a", + }, + }, + Expression: &expr.New{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5463, + EndPos: 5469, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5467, + EndPos: 5469, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5467, + EndPos: 5469, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, - EndPos: 5496, + StartPos: 5474, + EndPos: 5491, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, - EndPos: 5495, + StartPos: 5474, + EndPos: 5490, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, - EndPos: 5489, + StartPos: 5474, + EndPos: 5475, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, - EndPos: 5489, + StartPos: 5474, + EndPos: 5475, }, Value: "a", }, }, - Expression: &expr.Variable{ + Expression: &expr.New{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5494, - EndPos: 5495, + StartPos: 5480, + EndPos: 5490, }, - VarName: &node.Identifier{ + Class: &name.Name{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5494, - EndPos: 5495, + StartPos: 5484, + EndPos: 5486, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5484, + EndPos: 5486, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5487, + EndPos: 5490, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5489, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5489, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5489, + }, + Value: "b", + }, + }, + }, }, - Value: "b", }, }, }, @@ -13794,17 +13937,34 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5500, - EndPos: 5513, + StartPos: 5495, + EndPos: 5502, }, - Expr: &assign.Reference{ + Expr: &assign.Assign{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5500, - EndPos: 5512, + StartPos: 5495, + EndPos: 5501, }, Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5495, + EndPos: 5496, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5495, + EndPos: 5496, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ Position: &position.Position{ StartLine: 297, EndLine: 297, @@ -13818,34 +13978,7 @@ func TestPhp5(t *testing.T) { StartPos: 5500, EndPos: 5501, }, - Value: "a", - }, - }, - Expression: &expr.New{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5506, - EndPos: 5512, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5510, - EndPos: 5512, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5510, - EndPos: 5512, - }, - Value: "Foo", - }, - }, + Value: "b", }, }, }, @@ -13854,95 +13987,48 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5517, - EndPos: 5534, + StartPos: 5506, + EndPos: 5514, }, - Expr: &assign.Reference{ + Expr: &assign.BitwiseAnd{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5517, - EndPos: 5533, + StartPos: 5506, + EndPos: 5513, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5517, - EndPos: 5518, + StartPos: 5506, + EndPos: 5507, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5517, - EndPos: 5518, + StartPos: 5506, + EndPos: 5507, }, Value: "a", }, }, - Expression: &expr.New{ + Expression: &expr.Variable{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5523, - EndPos: 5533, + StartPos: 5512, + EndPos: 5513, }, - Class: &name.Name{ + VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5527, - EndPos: 5529, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5527, - EndPos: 5529, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5530, - EndPos: 5533, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5531, - EndPos: 5532, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5531, - EndPos: 5532, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5531, - EndPos: 5532, - }, - Value: "b", - }, - }, - }, + StartPos: 5512, + EndPos: 5513, }, + Value: "b", }, }, }, @@ -13951,29 +14037,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5538, - EndPos: 5545, + StartPos: 5518, + EndPos: 5526, }, - Expr: &assign.Assign{ + Expr: &assign.BitwiseOr{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5538, - EndPos: 5544, + StartPos: 5518, + EndPos: 5525, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5538, - EndPos: 5539, + StartPos: 5518, + EndPos: 5519, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5538, - EndPos: 5539, + StartPos: 5518, + EndPos: 5519, }, Value: "a", }, @@ -13982,15 +14068,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5543, - EndPos: 5544, + StartPos: 5524, + EndPos: 5525, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5543, - EndPos: 5544, + StartPos: 5524, + EndPos: 5525, }, Value: "b", }, @@ -14001,29 +14087,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5549, - EndPos: 5557, + StartPos: 5530, + EndPos: 5538, }, - Expr: &assign.BitwiseAnd{ + Expr: &assign.BitwiseXor{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5549, - EndPos: 5556, + StartPos: 5530, + EndPos: 5537, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5549, - EndPos: 5550, + StartPos: 5530, + EndPos: 5531, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5549, - EndPos: 5550, + StartPos: 5530, + EndPos: 5531, }, Value: "a", }, @@ -14032,15 +14118,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5555, - EndPos: 5556, + StartPos: 5536, + EndPos: 5537, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5555, - EndPos: 5556, + StartPos: 5536, + EndPos: 5537, }, Value: "b", }, @@ -14051,29 +14137,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5561, - EndPos: 5569, + StartPos: 5542, + EndPos: 5550, }, - Expr: &assign.BitwiseOr{ + Expr: &assign.Concat{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5561, - EndPos: 5568, + StartPos: 5542, + EndPos: 5549, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5561, - EndPos: 5562, + StartPos: 5542, + EndPos: 5543, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5561, - EndPos: 5562, + StartPos: 5542, + EndPos: 5543, }, Value: "a", }, @@ -14082,15 +14168,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5567, - EndPos: 5568, + StartPos: 5548, + EndPos: 5549, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5567, - EndPos: 5568, + StartPos: 5548, + EndPos: 5549, }, Value: "b", }, @@ -14101,29 +14187,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5573, - EndPos: 5581, + StartPos: 5554, + EndPos: 5562, }, - Expr: &assign.BitwiseXor{ + Expr: &assign.Div{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5573, - EndPos: 5580, + StartPos: 5554, + EndPos: 5561, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5573, - EndPos: 5574, + StartPos: 5554, + EndPos: 5555, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5573, - EndPos: 5574, + StartPos: 5554, + EndPos: 5555, }, Value: "a", }, @@ -14132,15 +14218,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5579, - EndPos: 5580, + StartPos: 5560, + EndPos: 5561, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5579, - EndPos: 5580, + StartPos: 5560, + EndPos: 5561, }, Value: "b", }, @@ -14151,29 +14237,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5585, - EndPos: 5593, + StartPos: 5566, + EndPos: 5574, }, - Expr: &assign.Concat{ + Expr: &assign.Minus{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5585, - EndPos: 5592, + StartPos: 5566, + EndPos: 5573, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5585, - EndPos: 5586, + StartPos: 5566, + EndPos: 5567, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5585, - EndPos: 5586, + StartPos: 5566, + EndPos: 5567, }, Value: "a", }, @@ -14182,15 +14268,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5591, - EndPos: 5592, + StartPos: 5572, + EndPos: 5573, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5591, - EndPos: 5592, + StartPos: 5572, + EndPos: 5573, }, Value: "b", }, @@ -14201,29 +14287,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5597, - EndPos: 5605, + StartPos: 5578, + EndPos: 5586, }, - Expr: &assign.Div{ + Expr: &assign.Mod{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5597, - EndPos: 5604, + StartPos: 5578, + EndPos: 5585, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5597, - EndPos: 5598, + StartPos: 5578, + EndPos: 5579, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5597, - EndPos: 5598, + StartPos: 5578, + EndPos: 5579, }, Value: "a", }, @@ -14232,15 +14318,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5603, - EndPos: 5604, + StartPos: 5584, + EndPos: 5585, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5603, - EndPos: 5604, + StartPos: 5584, + EndPos: 5585, }, Value: "b", }, @@ -14251,29 +14337,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5609, - EndPos: 5617, + StartPos: 5590, + EndPos: 5598, }, - Expr: &assign.Minus{ + Expr: &assign.Mul{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5609, - EndPos: 5616, + StartPos: 5590, + EndPos: 5597, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5609, - EndPos: 5610, + StartPos: 5590, + EndPos: 5591, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5609, - EndPos: 5610, + StartPos: 5590, + EndPos: 5591, }, Value: "a", }, @@ -14282,15 +14368,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5615, - EndPos: 5616, + StartPos: 5596, + EndPos: 5597, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5615, - EndPos: 5616, + StartPos: 5596, + EndPos: 5597, }, Value: "b", }, @@ -14301,29 +14387,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5621, - EndPos: 5629, + StartPos: 5602, + EndPos: 5610, }, - Expr: &assign.Mod{ + Expr: &assign.Plus{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5621, - EndPos: 5628, + StartPos: 5602, + EndPos: 5609, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5621, - EndPos: 5622, + StartPos: 5602, + EndPos: 5603, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5621, - EndPos: 5622, + StartPos: 5602, + EndPos: 5603, }, Value: "a", }, @@ -14332,15 +14418,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5627, - EndPos: 5628, + StartPos: 5608, + EndPos: 5609, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5627, - EndPos: 5628, + StartPos: 5608, + EndPos: 5609, }, Value: "b", }, @@ -14351,29 +14437,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5633, - EndPos: 5641, + StartPos: 5614, + EndPos: 5623, }, - Expr: &assign.Mul{ + Expr: &assign.Pow{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5633, - EndPos: 5640, + StartPos: 5614, + EndPos: 5622, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5633, - EndPos: 5634, + StartPos: 5614, + EndPos: 5615, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5633, - EndPos: 5634, + StartPos: 5614, + EndPos: 5615, }, Value: "a", }, @@ -14382,15 +14468,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5639, - EndPos: 5640, + StartPos: 5621, + EndPos: 5622, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5639, - EndPos: 5640, + StartPos: 5621, + EndPos: 5622, }, Value: "b", }, @@ -14401,29 +14487,29 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5645, - EndPos: 5653, + StartPos: 5627, + EndPos: 5636, }, - Expr: &assign.Plus{ + Expr: &assign.ShiftLeft{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5645, - EndPos: 5652, + StartPos: 5627, + EndPos: 5635, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5645, - EndPos: 5646, + StartPos: 5627, + EndPos: 5628, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5645, - EndPos: 5646, + StartPos: 5627, + EndPos: 5628, }, Value: "a", }, @@ -14432,15 +14518,15 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5651, - EndPos: 5652, + StartPos: 5634, + EndPos: 5635, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5651, - EndPos: 5652, + StartPos: 5634, + EndPos: 5635, }, Value: "b", }, @@ -14451,146 +14537,46 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5657, - EndPos: 5666, - }, - Expr: &assign.Pow{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5657, - EndPos: 5665, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5657, - EndPos: 5658, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5657, - EndPos: 5658, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5664, - EndPos: 5665, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5664, - EndPos: 5665, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5670, - EndPos: 5679, - }, - Expr: &assign.ShiftLeft{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5670, - EndPos: 5678, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5670, - EndPos: 5671, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5670, - EndPos: 5671, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5677, - EndPos: 5678, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5677, - EndPos: 5678, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5683, - EndPos: 5692, + StartPos: 5640, + EndPos: 5649, }, Expr: &assign.ShiftRight{ Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5683, - EndPos: 5691, + StartLine: 309, + EndLine: 309, + StartPos: 5640, + EndPos: 5648, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5683, - EndPos: 5684, + StartLine: 309, + EndLine: 309, + StartPos: 5640, + EndPos: 5641, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5683, - EndPos: 5684, + StartLine: 309, + EndLine: 309, + StartPos: 5640, + EndPos: 5641, }, Value: "a", }, }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5690, - EndPos: 5691, + StartLine: 309, + EndLine: 309, + StartPos: 5647, + EndPos: 5648, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5690, - EndPos: 5691, + StartLine: 309, + EndLine: 309, + StartPos: 5647, + EndPos: 5648, }, Value: "b", }, @@ -14599,32 +14585,32 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5699, - EndPos: 5710, + StartLine: 312, + EndLine: 312, + StartPos: 5656, + EndPos: 5667, }, Expr: &expr.New{ Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5699, - EndPos: 5708, + StartLine: 312, + EndLine: 312, + StartPos: 5656, + EndPos: 5665, }, Class: &name.FullyQualified{ Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5703, - EndPos: 5706, + StartLine: 312, + EndLine: 312, + StartPos: 5660, + EndPos: 5663, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5704, - EndPos: 5706, + StartLine: 312, + EndLine: 312, + StartPos: 5661, + EndPos: 5663, }, Value: "Foo", }, @@ -14632,56 +14618,56 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5707, - EndPos: 5708, + StartLine: 312, + EndLine: 312, + StartPos: 5664, + EndPos: 5665, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5735, - EndPos: 5738, + StartLine: 313, + EndLine: 313, + StartPos: 5692, + EndPos: 5695, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5735, - EndPos: 5737, + StartLine: 313, + EndLine: 313, + StartPos: 5692, + EndPos: 5694, }, Variable: &expr.MethodCall{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5731, - EndPos: 5732, + StartLine: 313, + EndLine: 313, + StartPos: 5688, + EndPos: 5689, }, Variable: &expr.New{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5715, - EndPos: 5724, + StartLine: 313, + EndLine: 313, + StartPos: 5672, + EndPos: 5681, }, Class: &name.FullyQualified{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5719, - EndPos: 5722, + StartLine: 313, + EndLine: 313, + StartPos: 5676, + EndPos: 5679, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5720, - EndPos: 5722, + StartLine: 313, + EndLine: 313, + StartPos: 5677, + EndPos: 5679, }, Value: "Foo", }, @@ -14689,37 +14675,37 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5723, - EndPos: 5724, + StartLine: 313, + EndLine: 313, + StartPos: 5680, + EndPos: 5681, }, }, }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5728, - EndPos: 5730, + StartLine: 313, + EndLine: 313, + StartPos: 5685, + EndPos: 5687, }, Value: "bar", }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5731, - EndPos: 5732, + StartLine: 313, + EndLine: 313, + StartPos: 5688, + EndPos: 5689, }, }, }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5735, - EndPos: 5737, + StartLine: 313, + EndLine: 313, + StartPos: 5692, + EndPos: 5694, }, Value: "baz", }, @@ -14727,46 +14713,46 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5758, - EndPos: 5760, + StartLine: 314, + EndLine: 314, + StartPos: 5715, + EndPos: 5717, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5758, - EndPos: 5758, + StartLine: 314, + EndLine: 314, + StartPos: 5715, + EndPos: 5715, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5755, - EndPos: 5755, + StartLine: 314, + EndLine: 314, + StartPos: 5712, + EndPos: 5712, }, Variable: &expr.New{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5743, - EndPos: 5752, + StartLine: 314, + EndLine: 314, + StartPos: 5700, + EndPos: 5709, }, Class: &name.FullyQualified{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5747, - EndPos: 5750, + StartLine: 314, + EndLine: 314, + StartPos: 5704, + EndPos: 5707, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5748, - EndPos: 5750, + StartLine: 314, + EndLine: 314, + StartPos: 5705, + EndPos: 5707, }, Value: "Foo", }, @@ -14774,29 +14760,29 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5751, - EndPos: 5752, + StartLine: 314, + EndLine: 314, + StartPos: 5708, + EndPos: 5709, }, }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5755, - EndPos: 5755, + StartLine: 314, + EndLine: 314, + StartPos: 5712, + EndPos: 5712, }, Value: "0", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5758, - EndPos: 5758, + StartLine: 314, + EndLine: 314, + StartPos: 5715, + EndPos: 5715, }, Value: "0", }, @@ -14804,46 +14790,46 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5784, - EndPos: 5786, + StartLine: 315, + EndLine: 315, + StartPos: 5741, + EndPos: 5743, }, Expr: &expr.MethodCall{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5784, - EndPos: 5785, + StartLine: 315, + EndLine: 315, + StartPos: 5741, + EndPos: 5742, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5777, - EndPos: 5777, + StartLine: 315, + EndLine: 315, + StartPos: 5734, + EndPos: 5734, }, Variable: &expr.New{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5765, - EndPos: 5774, + StartLine: 315, + EndLine: 315, + StartPos: 5722, + EndPos: 5731, }, Class: &name.FullyQualified{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5769, - EndPos: 5772, + StartLine: 315, + EndLine: 315, + StartPos: 5726, + EndPos: 5729, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5770, - EndPos: 5772, + StartLine: 315, + EndLine: 315, + StartPos: 5727, + EndPos: 5729, }, Value: "Foo", }, @@ -14851,99 +14837,99 @@ func TestPhp5(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5773, - EndPos: 5774, + StartLine: 315, + EndLine: 315, + StartPos: 5730, + EndPos: 5731, }, }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5777, - EndPos: 5777, + StartLine: 315, + EndLine: 315, + StartPos: 5734, + EndPos: 5734, }, Value: "0", }, }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5781, - EndPos: 5783, + StartLine: 315, + EndLine: 315, + StartPos: 5738, + EndPos: 5740, }, Value: "bar", }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5784, - EndPos: 5785, + StartLine: 315, + EndLine: 315, + StartPos: 5741, + EndPos: 5742, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5791, - EndPos: 5807, + StartLine: 317, + EndLine: 317, + StartPos: 5748, + EndPos: 5764, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5791, - EndPos: 5806, + StartLine: 317, + EndLine: 317, + StartPos: 5748, + EndPos: 5763, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5791, - EndPos: 5803, + StartLine: 317, + EndLine: 317, + StartPos: 5748, + EndPos: 5760, }, Variable: &expr.Array{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5791, - EndPos: 5800, + StartLine: 317, + EndLine: 317, + StartPos: 5748, + EndPos: 5757, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5797, - EndPos: 5799, + StartLine: 317, + EndLine: 317, + StartPos: 5754, + EndPos: 5756, }, Val: &expr.ShortArray{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5797, - EndPos: 5799, + StartLine: 317, + EndLine: 317, + StartPos: 5754, + EndPos: 5756, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5798, - EndPos: 5798, + StartLine: 317, + EndLine: 317, + StartPos: 5755, + EndPos: 5755, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5798, - EndPos: 5798, + StartLine: 317, + EndLine: 317, + StartPos: 5755, + EndPos: 5755, }, Value: "0", }, @@ -14955,20 +14941,106 @@ func TestPhp5(t *testing.T) { }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5802, - EndPos: 5802, + StartLine: 317, + EndLine: 317, + StartPos: 5759, + EndPos: 5759, }, Value: "0", }, }, Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5762, + EndPos: 5762, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5768, + EndPos: 5776, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5768, + EndPos: 5775, + }, + Variable: &scalar.String{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5768, + EndPos: 5772, + }, + Value: "\"foo\"", + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5774, + EndPos: 5774, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5780, + EndPos: 5786, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5780, + EndPos: 5785, + }, + Variable: &expr.ConstFetch{ Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5805, - EndPos: 5805, + StartPos: 5780, + EndPos: 5782, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5780, + EndPos: 5782, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5780, + EndPos: 5782, + }, + Value: "foo", + }, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5784, + EndPos: 5784, }, Value: "0", }, @@ -14978,117 +15050,31 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5811, - EndPos: 5819, - }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5811, - EndPos: 5818, - }, - Variable: &scalar.String{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5811, - EndPos: 5815, - }, - Value: "\"foo\"", - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5817, - EndPos: 5817, - }, - Value: "0", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5823, - EndPos: 5829, - }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5823, - EndPos: 5828, - }, - Variable: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5823, - EndPos: 5825, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5823, - EndPos: 5825, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5823, - EndPos: 5825, - }, - Value: "foo", - }, - }, - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5827, - EndPos: 5827, - }, - Value: "0", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5833, - EndPos: 5844, + StartPos: 5790, + EndPos: 5801, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5833, - EndPos: 5843, + StartLine: 320, + EndLine: 320, + StartPos: 5790, + EndPos: 5800, }, Class: &node.Identifier{ Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5833, - EndPos: 5838, + StartLine: 320, + EndLine: 320, + StartPos: 5790, + EndPos: 5795, }, Value: "static", }, ConstantName: &node.Identifier{ Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5841, - EndPos: 5843, + StartLine: 320, + EndLine: 320, + StartPos: 5798, + EndPos: 5800, }, Value: "foo", }, @@ -15096,31 +15082,31 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5849, - EndPos: 5857, + StartLine: 322, + EndLine: 322, + StartPos: 5806, + EndPos: 5814, }, Expr: &expr.New{ Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5849, - EndPos: 5856, + StartLine: 322, + EndLine: 322, + StartPos: 5806, + EndPos: 5813, }, Class: &expr.Variable{ Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5853, - EndPos: 5856, + StartLine: 322, + EndLine: 322, + StartPos: 5810, + EndPos: 5813, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5853, - EndPos: 5856, + StartLine: 322, + EndLine: 322, + StartPos: 5810, + EndPos: 5813, }, Value: "foo", }, @@ -15129,55 +15115,55 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5861, - EndPos: 5875, + StartLine: 323, + EndLine: 323, + StartPos: 5818, + EndPos: 5832, }, Expr: &expr.New{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5861, - EndPos: 5874, + StartLine: 323, + EndLine: 323, + StartPos: 5818, + EndPos: 5831, }, Class: &expr.StaticPropertyFetch{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5865, - EndPos: 5874, + StartLine: 323, + EndLine: 323, + StartPos: 5822, + EndPos: 5831, }, Class: &expr.Variable{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5865, - EndPos: 5868, + StartLine: 323, + EndLine: 323, + StartPos: 5822, + EndPos: 5825, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5865, - EndPos: 5868, + StartLine: 323, + EndLine: 323, + StartPos: 5822, + EndPos: 5825, }, Value: "foo", }, }, Property: &expr.Variable{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5871, - EndPos: 5874, + StartLine: 323, + EndLine: 323, + StartPos: 5828, + EndPos: 5831, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5871, - EndPos: 5874, + StartLine: 323, + EndLine: 323, + StartPos: 5828, + EndPos: 5831, }, Value: "bar", }, @@ -15187,65 +15173,65 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5879, - EndPos: 5891, + StartLine: 324, + EndLine: 324, + StartPos: 5836, + EndPos: 5848, }, Expr: &expr.New{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5879, - EndPos: 5889, + StartLine: 324, + EndLine: 324, + StartPos: 5836, + EndPos: 5846, }, Class: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5889, - EndPos: 5889, + StartLine: 324, + EndLine: 324, + StartPos: 5846, + EndPos: 5846, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5887, - EndPos: 5889, + StartLine: 324, + EndLine: 324, + StartPos: 5844, + EndPos: 5846, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5883, - EndPos: 5887, + StartLine: 324, + EndLine: 324, + StartPos: 5840, + EndPos: 5844, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5883, - EndPos: 5884, + StartLine: 324, + EndLine: 324, + StartPos: 5840, + EndPos: 5841, }, Value: "a", }, }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5887, - EndPos: 5887, + StartLine: 324, + EndLine: 324, + StartPos: 5844, + EndPos: 5844, }, Value: "b", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5889, - EndPos: 5889, + StartLine: 324, + EndLine: 324, + StartPos: 5846, + EndPos: 5846, }, Value: "0", }, @@ -15254,125 +15240,125 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5895, - EndPos: 5926, + StartLine: 325, + EndLine: 325, + StartPos: 5852, + EndPos: 5883, }, Expr: &expr.New{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5895, - EndPos: 5924, + StartLine: 325, + EndLine: 325, + StartPos: 5852, + EndPos: 5881, }, Class: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5924, - EndPos: 5924, + StartLine: 325, + EndLine: 325, + StartPos: 5881, + EndPos: 5881, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5922, - EndPos: 5924, + StartLine: 325, + EndLine: 325, + StartPos: 5879, + EndPos: 5881, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5918, - EndPos: 5922, + StartLine: 325, + EndLine: 325, + StartPos: 5875, + EndPos: 5879, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5905, - EndPos: 5919, + StartLine: 325, + EndLine: 325, + StartPos: 5862, + EndPos: 5876, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5903, - EndPos: 5914, + StartLine: 325, + EndLine: 325, + StartPos: 5860, + EndPos: 5871, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5899, - EndPos: 5903, + StartLine: 325, + EndLine: 325, + StartPos: 5856, + EndPos: 5860, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5899, - EndPos: 5900, + StartLine: 325, + EndLine: 325, + StartPos: 5856, + EndPos: 5857, }, Value: "a", }, }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5903, - EndPos: 5903, + StartLine: 325, + EndLine: 325, + StartPos: 5860, + EndPos: 5860, }, Value: "b", }, }, Dim: &expr.Ternary{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5905, - EndPos: 5914, + StartLine: 325, + EndLine: 325, + StartPos: 5862, + EndPos: 5871, }, Condition: &expr.Variable{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5905, - EndPos: 5906, + StartLine: 325, + EndLine: 325, + StartPos: 5862, + EndPos: 5863, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5905, - EndPos: 5906, + StartLine: 325, + EndLine: 325, + StartPos: 5862, + EndPos: 5863, }, Value: "b", }, }, IfFalse: &expr.ConstFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5911, - EndPos: 5914, + StartLine: 325, + EndLine: 325, + StartPos: 5868, + EndPos: 5871, }, Constant: &name.Name{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5911, - EndPos: 5914, + StartLine: 325, + EndLine: 325, + StartPos: 5868, + EndPos: 5871, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5911, - EndPos: 5914, + StartLine: 325, + EndLine: 325, + StartPos: 5868, + EndPos: 5871, }, Value: "null", }, @@ -15383,17 +15369,17 @@ func TestPhp5(t *testing.T) { }, Property: &expr.Variable{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5918, - EndPos: 5919, + StartLine: 325, + EndLine: 325, + StartPos: 5875, + EndPos: 5876, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5918, - EndPos: 5919, + StartLine: 325, + EndLine: 325, + StartPos: 5875, + EndPos: 5876, }, Value: "c", }, @@ -15401,20 +15387,20 @@ func TestPhp5(t *testing.T) { }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5922, - EndPos: 5922, + StartLine: 325, + EndLine: 325, + StartPos: 5879, + EndPos: 5879, }, Value: "d", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5924, - EndPos: 5924, + StartLine: 325, + EndLine: 325, + StartPos: 5881, + EndPos: 5881, }, Value: "0", }, @@ -15423,64 +15409,64 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5927, - EndPos: 5945, + StartLine: 325, + EndLine: 325, + StartPos: 5884, + EndPos: 5902, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5934, - EndPos: 5944, + StartLine: 325, + EndLine: 325, + StartPos: 5891, + EndPos: 5901, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5934, - EndPos: 5935, + StartLine: 325, + EndLine: 325, + StartPos: 5891, + EndPos: 5892, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5934, - EndPos: 5935, + StartLine: 325, + EndLine: 325, + StartPos: 5891, + EndPos: 5892, }, Value: "a", }, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5939, - EndPos: 5944, + StartLine: 325, + EndLine: 325, + StartPos: 5896, + EndPos: 5901, }, Variable: &expr.ShortArray{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5939, - EndPos: 5941, + StartLine: 325, + EndLine: 325, + StartPos: 5896, + EndPos: 5898, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5940, - EndPos: 5940, + StartLine: 325, + EndLine: 325, + StartPos: 5897, + EndPos: 5897, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5940, - EndPos: 5940, + StartLine: 325, + EndLine: 325, + StartPos: 5897, + EndPos: 5897, }, Value: "1", }, @@ -15489,10 +15475,10 @@ func TestPhp5(t *testing.T) { }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5943, - EndPos: 5943, + StartLine: 325, + EndLine: 325, + StartPos: 5900, + EndPos: 5900, }, Value: "0", }, @@ -15502,49 +15488,153 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5950, - EndPos: 5964, + StartLine: 327, + EndLine: 327, + StartPos: 5907, + EndPos: 5921, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5957, - EndPos: 5963, + StartLine: 327, + EndLine: 327, + StartPos: 5914, + EndPos: 5920, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5957, - EndPos: 5958, + StartLine: 327, + EndLine: 327, + StartPos: 5914, + EndPos: 5915, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5957, - EndPos: 5958, + StartLine: 327, + EndLine: 327, + StartPos: 5914, + EndPos: 5915, }, Value: "a", }, }, Expr: &expr.BooleanNot{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5919, + EndPos: 5920, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5920, + EndPos: 5920, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5925, + EndPos: 5939, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5932, + EndPos: 5938, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5932, + EndPos: 5933, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5932, + EndPos: 5933, + }, + Value: "a", + }, + }, + Expr: &expr.BitwiseNot{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5937, + EndPos: 5938, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5938, + EndPos: 5938, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5943, + EndPos: 5957, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5950, + EndPos: 5956, + }, + Variable: &expr.Variable{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5962, - EndPos: 5963, + StartPos: 5950, + EndPos: 5951, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5950, + EndPos: 5951, + }, + Value: "a", + }, + }, + Expr: &expr.UnaryPlus{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5955, + EndPos: 5956, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5963, - EndPos: 5963, + StartPos: 5956, + EndPos: 5956, }, Value: "1", }, @@ -15556,47 +15646,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5968, - EndPos: 5982, + StartPos: 5961, + EndPos: 5975, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5975, - EndPos: 5981, + StartPos: 5968, + EndPos: 5974, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5975, - EndPos: 5976, + StartPos: 5968, + EndPos: 5969, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5975, - EndPos: 5976, + StartPos: 5968, + EndPos: 5969, }, Value: "a", }, }, - Expr: &expr.BitwiseNot{ + Expr: &expr.UnaryMinus{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5980, - EndPos: 5981, + StartPos: 5973, + EndPos: 5974, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5981, - EndPos: 5981, + StartPos: 5974, + EndPos: 5974, }, Value: "1", }, @@ -15608,50 +15698,42 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5986, - EndPos: 6000, + StartPos: 5979, + EndPos: 5994, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5993, - EndPos: 5999, + StartPos: 5986, + EndPos: 5992, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5993, - EndPos: 5994, + StartPos: 5986, + EndPos: 5987, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5993, - EndPos: 5994, + StartPos: 5986, + EndPos: 5987, }, Value: "a", }, }, - Expr: &expr.UnaryPlus{ + Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5998, - EndPos: 5999, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5999, - EndPos: 5999, - }, - Value: "1", + StartPos: 5992, + EndPos: 5992, }, + Value: "1", }, }, }, @@ -15660,50 +15742,59 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6004, - EndPos: 6018, + StartPos: 5998, + EndPos: 6016, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6011, - EndPos: 6017, + StartPos: 6005, + EndPos: 6015, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6011, - EndPos: 6012, + StartPos: 6005, + EndPos: 6006, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6011, - EndPos: 6012, + StartPos: 6005, + EndPos: 6006, }, Value: "a", }, }, - Expr: &expr.UnaryMinus{ + Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6016, - EndPos: 6017, + StartPos: 6010, + EndPos: 6015, }, - Expr: &scalar.Lnumber{ + Condition: &scalar.Lnumber{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6017, - EndPos: 6017, + StartPos: 6010, + EndPos: 6010, }, Value: "1", }, + IfFalse: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6015, + EndPos: 6015, + }, + Value: "2", + }, }, }, }, @@ -15712,42 +15803,68 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6022, - EndPos: 6037, + StartPos: 6020, + EndPos: 6041, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6029, - EndPos: 6035, + StartPos: 6027, + EndPos: 6040, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6029, - EndPos: 6030, + StartPos: 6027, + EndPos: 6028, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6029, - EndPos: 6030, + StartPos: 6027, + EndPos: 6028, }, Value: "a", }, }, - Expr: &scalar.Lnumber{ + Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6035, - EndPos: 6035, + StartPos: 6032, + EndPos: 6040, + }, + Condition: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6032, + EndPos: 6032, + }, + Value: "1", + }, + IfTrue: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6036, + EndPos: 6036, + }, + Value: "2", + }, + IfFalse: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6040, + EndPos: 6040, + }, + Value: "3", }, - Value: "1", }, }, }, @@ -15756,56 +15873,56 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6041, - EndPos: 6059, + StartPos: 6045, + EndPos: 6062, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6048, - EndPos: 6058, + StartPos: 6052, + EndPos: 6061, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6048, - EndPos: 6049, + StartPos: 6052, + EndPos: 6053, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6048, - EndPos: 6049, + StartPos: 6052, + EndPos: 6053, }, Value: "a", }, }, - Expr: &expr.Ternary{ + Expr: &binary.BitwiseAnd{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6053, - EndPos: 6058, + StartPos: 6057, + EndPos: 6061, }, - Condition: &scalar.Lnumber{ + Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6053, - EndPos: 6053, + StartPos: 6057, + EndPos: 6057, }, Value: "1", }, - IfFalse: &scalar.Lnumber{ + Right: &scalar.Lnumber{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6058, - EndPos: 6058, + StartPos: 6061, + EndPos: 6061, }, Value: "2", }, @@ -15817,68 +15934,59 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6063, - EndPos: 6084, + StartPos: 6066, + EndPos: 6083, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6070, - EndPos: 6083, + StartPos: 6073, + EndPos: 6082, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6070, - EndPos: 6071, + StartPos: 6073, + EndPos: 6074, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6070, - EndPos: 6071, + StartPos: 6073, + EndPos: 6074, }, Value: "a", }, }, - Expr: &expr.Ternary{ + Expr: &binary.BitwiseOr{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6075, - EndPos: 6083, + StartPos: 6078, + EndPos: 6082, }, - Condition: &scalar.Lnumber{ + Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6075, - EndPos: 6075, + StartPos: 6078, + EndPos: 6078, }, Value: "1", }, - IfTrue: &scalar.Lnumber{ + Right: &scalar.Lnumber{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6079, - EndPos: 6079, + StartPos: 6082, + EndPos: 6082, }, Value: "2", }, - IfFalse: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6083, - EndPos: 6083, - }, - Value: "3", - }, }, }, }, @@ -15887,47 +15995,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6088, - EndPos: 6105, + StartPos: 6087, + EndPos: 6104, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6095, - EndPos: 6104, + StartPos: 6094, + EndPos: 6103, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6095, - EndPos: 6096, + StartPos: 6094, + EndPos: 6095, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6095, - EndPos: 6096, + StartPos: 6094, + EndPos: 6095, }, Value: "a", }, }, - Expr: &binary.BitwiseAnd{ + Expr: &binary.BitwiseXor{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6100, - EndPos: 6104, + StartPos: 6099, + EndPos: 6103, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6100, - EndPos: 6100, + StartPos: 6099, + EndPos: 6099, }, Value: "1", }, @@ -15935,8 +16043,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6104, - EndPos: 6104, + StartPos: 6103, + EndPos: 6103, }, Value: "2", }, @@ -15948,7 +16056,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6109, + StartPos: 6108, EndPos: 6126, }, Vars: []node.Node{ @@ -15956,39 +16064,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6116, + StartPos: 6115, EndPos: 6125, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6116, - EndPos: 6117, + StartPos: 6115, + EndPos: 6116, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6116, - EndPos: 6117, + StartPos: 6115, + EndPos: 6116, }, Value: "a", }, }, - Expr: &binary.BitwiseOr{ + Expr: &binary.BooleanAnd{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6121, + StartPos: 6120, EndPos: 6125, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6121, - EndPos: 6121, + StartPos: 6120, + EndPos: 6120, }, Value: "1", }, @@ -16010,7 +16118,7 @@ func TestPhp5(t *testing.T) { StartLine: 338, EndLine: 338, StartPos: 6130, - EndPos: 6147, + EndPos: 6148, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -16018,7 +16126,7 @@ func TestPhp5(t *testing.T) { StartLine: 338, EndLine: 338, StartPos: 6137, - EndPos: 6146, + EndPos: 6147, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -16037,12 +16145,12 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.BitwiseXor{ + Expr: &binary.BooleanOr{ Position: &position.Position{ StartLine: 338, EndLine: 338, StartPos: 6142, - EndPos: 6146, + EndPos: 6147, }, Left: &scalar.Lnumber{ Position: &position.Position{ @@ -16057,8 +16165,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6146, - EndPos: 6146, + StartPos: 6147, + EndPos: 6147, }, Value: "2", }, @@ -16070,7 +16178,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6151, + StartPos: 6152, EndPos: 6169, }, Vars: []node.Node{ @@ -16078,39 +16186,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6158, + StartPos: 6159, EndPos: 6168, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6158, - EndPos: 6159, + StartPos: 6159, + EndPos: 6160, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6158, - EndPos: 6159, + StartPos: 6159, + EndPos: 6160, }, Value: "a", }, }, - Expr: &binary.BooleanAnd{ + Expr: &binary.Concat{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6163, + StartPos: 6164, EndPos: 6168, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6163, - EndPos: 6163, + StartPos: 6164, + EndPos: 6164, }, Value: "1", }, @@ -16132,7 +16240,7 @@ func TestPhp5(t *testing.T) { StartLine: 340, EndLine: 340, StartPos: 6173, - EndPos: 6191, + EndPos: 6190, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -16140,7 +16248,7 @@ func TestPhp5(t *testing.T) { StartLine: 340, EndLine: 340, StartPos: 6180, - EndPos: 6190, + EndPos: 6189, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -16159,12 +16267,12 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.BooleanOr{ + Expr: &binary.Div{ Position: &position.Position{ StartLine: 340, EndLine: 340, StartPos: 6185, - EndPos: 6190, + EndPos: 6189, }, Left: &scalar.Lnumber{ Position: &position.Position{ @@ -16179,8 +16287,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6190, - EndPos: 6190, + StartPos: 6189, + EndPos: 6189, }, Value: "2", }, @@ -16192,7 +16300,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6195, + StartPos: 6194, EndPos: 6212, }, Vars: []node.Node{ @@ -16200,39 +16308,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6202, + StartPos: 6201, EndPos: 6211, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6202, - EndPos: 6203, + StartPos: 6201, + EndPos: 6202, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6202, - EndPos: 6203, + StartPos: 6201, + EndPos: 6202, }, Value: "a", }, }, - Expr: &binary.Concat{ + Expr: &binary.Equal{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6207, + StartPos: 6206, EndPos: 6211, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6207, - EndPos: 6207, + StartPos: 6206, + EndPos: 6206, }, Value: "1", }, @@ -16254,7 +16362,7 @@ func TestPhp5(t *testing.T) { StartLine: 342, EndLine: 342, StartPos: 6216, - EndPos: 6233, + EndPos: 6234, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -16262,7 +16370,7 @@ func TestPhp5(t *testing.T) { StartLine: 342, EndLine: 342, StartPos: 6223, - EndPos: 6232, + EndPos: 6233, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -16281,12 +16389,12 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.Div{ + Expr: &binary.GreaterOrEqual{ Position: &position.Position{ StartLine: 342, EndLine: 342, StartPos: 6228, - EndPos: 6232, + EndPos: 6233, }, Left: &scalar.Lnumber{ Position: &position.Position{ @@ -16301,8 +16409,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6232, - EndPos: 6232, + StartPos: 6233, + EndPos: 6233, }, Value: "2", }, @@ -16314,7 +16422,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6237, + StartPos: 6238, EndPos: 6255, }, Vars: []node.Node{ @@ -16322,39 +16430,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6244, + StartPos: 6245, EndPos: 6254, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6244, - EndPos: 6245, + StartPos: 6245, + EndPos: 6246, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6244, - EndPos: 6245, + StartPos: 6245, + EndPos: 6246, }, Value: "a", }, }, - Expr: &binary.Equal{ + Expr: &binary.Greater{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6249, + StartPos: 6250, EndPos: 6254, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6249, - EndPos: 6249, + StartPos: 6250, + EndPos: 6250, }, Value: "1", }, @@ -16376,7 +16484,7 @@ func TestPhp5(t *testing.T) { StartLine: 344, EndLine: 344, StartPos: 6259, - EndPos: 6277, + EndPos: 6278, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -16384,7 +16492,7 @@ func TestPhp5(t *testing.T) { StartLine: 344, EndLine: 344, StartPos: 6266, - EndPos: 6276, + EndPos: 6277, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -16403,12 +16511,12 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.GreaterOrEqual{ + Expr: &binary.Identical{ Position: &position.Position{ StartLine: 344, EndLine: 344, StartPos: 6271, - EndPos: 6276, + EndPos: 6277, }, Left: &scalar.Lnumber{ Position: &position.Position{ @@ -16423,8 +16531,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6276, - EndPos: 6276, + StartPos: 6277, + EndPos: 6277, }, Value: "2", }, @@ -16436,47 +16544,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6281, - EndPos: 6298, + StartPos: 6282, + EndPos: 6301, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6288, - EndPos: 6297, + StartPos: 6289, + EndPos: 6300, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6288, - EndPos: 6289, + StartPos: 6289, + EndPos: 6290, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6288, - EndPos: 6289, + StartPos: 6289, + EndPos: 6290, }, Value: "a", }, }, - Expr: &binary.Greater{ + Expr: &binary.LogicalAnd{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6293, - EndPos: 6297, + StartPos: 6294, + EndPos: 6300, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6293, - EndPos: 6293, + StartPos: 6294, + EndPos: 6294, }, Value: "1", }, @@ -16484,8 +16592,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6297, - EndPos: 6297, + StartPos: 6300, + EndPos: 6300, }, Value: "2", }, @@ -16497,47 +16605,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6302, - EndPos: 6321, + StartPos: 6305, + EndPos: 6323, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6309, - EndPos: 6320, + StartPos: 6312, + EndPos: 6322, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6309, - EndPos: 6310, + StartPos: 6312, + EndPos: 6313, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6309, - EndPos: 6310, + StartPos: 6312, + EndPos: 6313, }, Value: "a", }, }, - Expr: &binary.Identical{ + Expr: &binary.LogicalOr{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6314, - EndPos: 6320, + StartPos: 6317, + EndPos: 6322, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6314, - EndPos: 6314, + StartPos: 6317, + EndPos: 6317, }, Value: "1", }, @@ -16545,8 +16653,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6320, - EndPos: 6320, + StartPos: 6322, + EndPos: 6322, }, Value: "2", }, @@ -16558,47 +16666,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6325, - EndPos: 6344, + StartPos: 6327, + EndPos: 6346, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6332, - EndPos: 6343, + StartPos: 6334, + EndPos: 6345, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6332, - EndPos: 6333, + StartPos: 6334, + EndPos: 6335, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6332, - EndPos: 6333, + StartPos: 6334, + EndPos: 6335, }, Value: "a", }, }, - Expr: &binary.LogicalAnd{ + Expr: &binary.LogicalXor{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6337, - EndPos: 6343, + StartPos: 6339, + EndPos: 6345, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6337, - EndPos: 6337, + StartPos: 6339, + EndPos: 6339, }, Value: "1", }, @@ -16606,8 +16714,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6343, - EndPos: 6343, + StartPos: 6345, + EndPos: 6345, }, Value: "2", }, @@ -16619,47 +16727,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6348, - EndPos: 6366, + StartPos: 6350, + EndPos: 6367, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6355, - EndPos: 6365, + StartPos: 6357, + EndPos: 6366, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6355, - EndPos: 6356, + StartPos: 6357, + EndPos: 6358, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6355, - EndPos: 6356, + StartPos: 6357, + EndPos: 6358, }, Value: "a", }, }, - Expr: &binary.LogicalOr{ + Expr: &binary.Minus{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6360, - EndPos: 6365, + StartPos: 6362, + EndPos: 6366, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6360, - EndPos: 6360, + StartPos: 6362, + EndPos: 6362, }, Value: "1", }, @@ -16667,8 +16775,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6365, - EndPos: 6365, + StartPos: 6366, + EndPos: 6366, }, Value: "2", }, @@ -16680,47 +16788,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6370, - EndPos: 6389, + StartPos: 6371, + EndPos: 6388, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6377, - EndPos: 6388, + StartPos: 6378, + EndPos: 6387, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6377, - EndPos: 6378, + StartPos: 6378, + EndPos: 6379, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6377, - EndPos: 6378, + StartPos: 6378, + EndPos: 6379, }, Value: "a", }, }, - Expr: &binary.LogicalXor{ + Expr: &binary.Mod{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6382, - EndPos: 6388, + StartPos: 6383, + EndPos: 6387, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6382, - EndPos: 6382, + StartPos: 6383, + EndPos: 6383, }, Value: "1", }, @@ -16728,8 +16836,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6388, - EndPos: 6388, + StartPos: 6387, + EndPos: 6387, }, Value: "2", }, @@ -16741,47 +16849,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6393, - EndPos: 6410, + StartPos: 6392, + EndPos: 6409, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6400, - EndPos: 6409, + StartPos: 6399, + EndPos: 6408, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6400, - EndPos: 6401, + StartPos: 6399, + EndPos: 6400, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6400, - EndPos: 6401, + StartPos: 6399, + EndPos: 6400, }, Value: "a", }, }, - Expr: &binary.Minus{ + Expr: &binary.Mul{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6405, - EndPos: 6409, + StartPos: 6404, + EndPos: 6408, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6405, - EndPos: 6405, + StartPos: 6404, + EndPos: 6404, }, Value: "1", }, @@ -16789,8 +16897,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6409, - EndPos: 6409, + StartPos: 6408, + EndPos: 6408, }, Value: "2", }, @@ -16802,7 +16910,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6414, + StartPos: 6413, EndPos: 6431, }, Vars: []node.Node{ @@ -16810,39 +16918,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6421, + StartPos: 6420, EndPos: 6430, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6421, - EndPos: 6422, + StartPos: 6420, + EndPos: 6421, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6421, - EndPos: 6422, + StartPos: 6420, + EndPos: 6421, }, Value: "a", }, }, - Expr: &binary.Mod{ + Expr: &binary.NotEqual{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6426, + StartPos: 6425, EndPos: 6430, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6426, - EndPos: 6426, + StartPos: 6425, + EndPos: 6425, }, Value: "1", }, @@ -16864,7 +16972,7 @@ func TestPhp5(t *testing.T) { StartLine: 352, EndLine: 352, StartPos: 6435, - EndPos: 6452, + EndPos: 6454, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -16872,7 +16980,7 @@ func TestPhp5(t *testing.T) { StartLine: 352, EndLine: 352, StartPos: 6442, - EndPos: 6451, + EndPos: 6453, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -16891,12 +16999,12 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.Mul{ + Expr: &binary.NotIdentical{ Position: &position.Position{ StartLine: 352, EndLine: 352, StartPos: 6447, - EndPos: 6451, + EndPos: 6453, }, Left: &scalar.Lnumber{ Position: &position.Position{ @@ -16911,8 +17019,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6451, - EndPos: 6451, + StartPos: 6453, + EndPos: 6453, }, Value: "2", }, @@ -16924,47 +17032,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6456, - EndPos: 6474, + StartPos: 6458, + EndPos: 6475, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6463, - EndPos: 6473, + StartPos: 6465, + EndPos: 6474, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6463, - EndPos: 6464, + StartPos: 6465, + EndPos: 6466, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6463, - EndPos: 6464, + StartPos: 6465, + EndPos: 6466, }, Value: "a", }, }, - Expr: &binary.NotEqual{ + Expr: &binary.Plus{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6468, - EndPos: 6473, + StartPos: 6470, + EndPos: 6474, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6468, - EndPos: 6468, + StartPos: 6470, + EndPos: 6470, }, Value: "1", }, @@ -16972,8 +17080,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6473, - EndPos: 6473, + StartPos: 6474, + EndPos: 6474, }, Value: "2", }, @@ -16985,7 +17093,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6478, + StartPos: 6479, EndPos: 6497, }, Vars: []node.Node{ @@ -16993,39 +17101,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6485, + StartPos: 6486, EndPos: 6496, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6485, - EndPos: 6486, + StartPos: 6486, + EndPos: 6487, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6485, - EndPos: 6486, + StartPos: 6486, + EndPos: 6487, }, Value: "a", }, }, - Expr: &binary.NotIdentical{ + Expr: &binary.Pow{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6490, + StartPos: 6491, EndPos: 6496, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6490, - EndPos: 6490, + StartPos: 6491, + EndPos: 6491, }, Value: "1", }, @@ -17047,7 +17155,7 @@ func TestPhp5(t *testing.T) { StartLine: 355, EndLine: 355, StartPos: 6501, - EndPos: 6518, + EndPos: 6519, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -17055,7 +17163,7 @@ func TestPhp5(t *testing.T) { StartLine: 355, EndLine: 355, StartPos: 6508, - EndPos: 6517, + EndPos: 6518, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -17074,12 +17182,12 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.Plus{ + Expr: &binary.ShiftLeft{ Position: &position.Position{ StartLine: 355, EndLine: 355, StartPos: 6513, - EndPos: 6517, + EndPos: 6518, }, Left: &scalar.Lnumber{ Position: &position.Position{ @@ -17094,8 +17202,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6517, - EndPos: 6517, + StartPos: 6518, + EndPos: 6518, }, Value: "2", }, @@ -17107,47 +17215,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6522, - EndPos: 6540, + StartPos: 6523, + EndPos: 6541, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6529, - EndPos: 6539, + StartPos: 6530, + EndPos: 6540, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6529, - EndPos: 6530, + StartPos: 6530, + EndPos: 6531, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6529, - EndPos: 6530, + StartPos: 6530, + EndPos: 6531, }, Value: "a", }, }, - Expr: &binary.Pow{ + Expr: &binary.ShiftRight{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6534, - EndPos: 6539, + StartPos: 6535, + EndPos: 6540, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6534, - EndPos: 6534, + StartPos: 6535, + EndPos: 6535, }, Value: "1", }, @@ -17155,8 +17263,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6539, - EndPos: 6539, + StartPos: 6540, + EndPos: 6540, }, Value: "2", }, @@ -17168,47 +17276,47 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6544, - EndPos: 6562, + StartPos: 6545, + EndPos: 6563, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6551, - EndPos: 6561, + StartPos: 6552, + EndPos: 6562, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6551, - EndPos: 6552, + StartPos: 6552, + EndPos: 6553, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6551, - EndPos: 6552, + StartPos: 6552, + EndPos: 6553, }, Value: "a", }, }, - Expr: &binary.ShiftLeft{ + Expr: &binary.SmallerOrEqual{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6556, - EndPos: 6561, + StartPos: 6557, + EndPos: 6562, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6556, - EndPos: 6556, + StartPos: 6557, + EndPos: 6557, }, Value: "1", }, @@ -17216,8 +17324,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6561, - EndPos: 6561, + StartPos: 6562, + EndPos: 6562, }, Value: "2", }, @@ -17229,7 +17337,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6566, + StartPos: 6567, EndPos: 6584, }, Vars: []node.Node{ @@ -17237,39 +17345,39 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6573, + StartPos: 6574, EndPos: 6583, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6573, - EndPos: 6574, + StartPos: 6574, + EndPos: 6575, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6573, - EndPos: 6574, + StartPos: 6574, + EndPos: 6575, }, Value: "a", }, }, - Expr: &binary.ShiftRight{ + Expr: &binary.Smaller{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6578, + StartPos: 6579, EndPos: 6583, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6578, - EndPos: 6578, + StartPos: 6579, + EndPos: 6579, }, Value: "1", }, @@ -17291,7 +17399,7 @@ func TestPhp5(t *testing.T) { StartLine: 359, EndLine: 359, StartPos: 6588, - EndPos: 6606, + EndPos: 6608, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -17299,7 +17407,7 @@ func TestPhp5(t *testing.T) { StartLine: 359, EndLine: 359, StartPos: 6595, - EndPos: 6605, + EndPos: 6607, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -17318,149 +17426,27 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &binary.SmallerOrEqual{ + Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 359, EndLine: 359, StartPos: 6600, - EndPos: 6605, + EndPos: 6607, }, - Left: &scalar.Lnumber{ + Class: &name.Name{ Position: &position.Position{ StartLine: 359, EndLine: 359, StartPos: 6600, - EndPos: 6600, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 6605, - EndPos: 6605, - }, - Value: "2", - }, - }, - }, - }, - }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6610, - EndPos: 6627, - }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6617, - EndPos: 6626, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6617, - EndPos: 6618, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6617, - EndPos: 6618, - }, - Value: "a", - }, - }, - Expr: &binary.Smaller{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6622, - EndPos: 6626, - }, - Left: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6622, - EndPos: 6622, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6626, - EndPos: 6626, - }, - Value: "2", - }, - }, - }, - }, - }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6631, - EndPos: 6651, - }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6638, - EndPos: 6650, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6638, - EndPos: 6639, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6638, - EndPos: 6639, - }, - Value: "a", - }, - }, - Expr: &expr.ClassConstFetch{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6643, - EndPos: 6650, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6643, - EndPos: 6645, + EndPos: 6602, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6643, - EndPos: 6645, + StartLine: 359, + EndLine: 359, + StartPos: 6600, + EndPos: 6602, }, Value: "Foo", }, @@ -17468,10 +17454,10 @@ func TestPhp5(t *testing.T) { }, ConstantName: &node.Identifier{ Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6648, - EndPos: 6650, + StartLine: 359, + EndLine: 359, + StartPos: 6605, + EndPos: 6607, }, Value: "bar", }, @@ -17481,57 +17467,57 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6655, - EndPos: 6677, + StartLine: 360, + EndLine: 360, + StartPos: 6612, + EndPos: 6634, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6662, - EndPos: 6676, + StartLine: 360, + EndLine: 360, + StartPos: 6619, + EndPos: 6633, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6662, - EndPos: 6663, + StartLine: 360, + EndLine: 360, + StartPos: 6619, + EndPos: 6620, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6662, - EndPos: 6663, + StartLine: 360, + EndLine: 360, + StartPos: 6619, + EndPos: 6620, }, Value: "a", }, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6667, - EndPos: 6676, + StartLine: 360, + EndLine: 360, + StartPos: 6624, + EndPos: 6633, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6667, - EndPos: 6669, + StartLine: 360, + EndLine: 360, + StartPos: 6624, + EndPos: 6626, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6667, - EndPos: 6669, + StartLine: 360, + EndLine: 360, + StartPos: 6624, + EndPos: 6626, }, Value: "Foo", }, @@ -17539,10 +17525,10 @@ func TestPhp5(t *testing.T) { }, ConstantName: &node.Identifier{ Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6672, - EndPos: 6676, + StartLine: 360, + EndLine: 360, + StartPos: 6629, + EndPos: 6633, }, Value: "class", }, @@ -17552,76 +17538,200 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6681, - EndPos: 6702, + StartLine: 361, + EndLine: 361, + StartPos: 6638, + EndPos: 6659, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6688, - EndPos: 6701, + StartLine: 361, + EndLine: 361, + StartPos: 6645, + EndPos: 6658, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6688, - EndPos: 6689, + StartLine: 361, + EndLine: 361, + StartPos: 6645, + EndPos: 6646, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6688, - EndPos: 6689, + StartLine: 361, + EndLine: 361, + StartPos: 6645, + EndPos: 6646, }, Value: "a", }, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6693, - EndPos: 6701, + StartLine: 361, + EndLine: 361, + StartPos: 6650, + EndPos: 6658, }, Value: "__CLASS__", }, }, }, }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6663, + EndPos: 6678, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6670, + EndPos: 6677, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6670, + EndPos: 6671, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6670, + EndPos: 6671, + }, + Value: "a", + }, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6675, + EndPos: 6677, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6675, + EndPos: 6677, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6675, + EndPos: 6677, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6682, + EndPos: 6707, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6689, + EndPos: 6706, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6689, + EndPos: 6690, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6689, + EndPos: 6690, + }, + Value: "a", + }, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6694, + EndPos: 6706, + }, + Constant: &name.Relative{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6694, + EndPos: 6706, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6704, + EndPos: 6706, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + }, &stmt.Static{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6706, - EndPos: 6721, + StartPos: 6711, + EndPos: 6727, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6713, - EndPos: 6720, + StartPos: 6718, + EndPos: 6726, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6713, - EndPos: 6714, + StartPos: 6718, + EndPos: 6719, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6713, - EndPos: 6714, + StartPos: 6718, + EndPos: 6719, }, Value: "a", }, @@ -17630,23 +17740,23 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6718, - EndPos: 6720, + StartPos: 6723, + EndPos: 6726, }, - Constant: &name.Name{ + Constant: &name.FullyQualified{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6718, - EndPos: 6720, + StartPos: 6723, + EndPos: 6726, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6718, - EndPos: 6720, + StartPos: 6724, + EndPos: 6726, }, Value: "Foo", }, @@ -17660,7 +17770,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6725, + StartPos: 6731, EndPos: 6750, }, Vars: []node.Node{ @@ -17668,52 +17778,33 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6732, + StartPos: 6738, EndPos: 6749, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6732, - EndPos: 6733, + StartPos: 6738, + EndPos: 6739, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6732, - EndPos: 6733, + StartPos: 6738, + EndPos: 6739, }, Value: "a", }, }, - Expr: &expr.ConstFetch{ + Expr: &expr.Array{ Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6737, + StartPos: 6743, EndPos: 6749, }, - Constant: &name.Relative{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6737, - EndPos: 6749, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6747, - EndPos: 6749, - }, - Value: "Foo", - }, - }, - }, }, }, }, @@ -17723,7 +17814,7 @@ func TestPhp5(t *testing.T) { StartLine: 366, EndLine: 366, StartPos: 6754, - EndPos: 6770, + EndPos: 6782, }, Vars: []node.Node{ &stmt.StaticVar{ @@ -17731,7 +17822,7 @@ func TestPhp5(t *testing.T) { StartLine: 366, EndLine: 366, StartPos: 6761, - EndPos: 6769, + EndPos: 6781, }, Variable: &expr.Variable{ Position: &position.Position{ @@ -17750,158 +17841,53 @@ func TestPhp5(t *testing.T) { Value: "a", }, }, - Expr: &expr.ConstFetch{ + Expr: &expr.Array{ Position: &position.Position{ StartLine: 366, EndLine: 366, StartPos: 6766, - EndPos: 6769, - }, - Constant: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6766, - EndPos: 6769, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6767, - EndPos: 6769, - }, - Value: "Foo", - }, - }, - }, - }, - }, - }, - }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6774, - EndPos: 6793, - }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6781, - EndPos: 6792, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6781, - EndPos: 6782, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6781, - EndPos: 6782, - }, - Value: "a", - }, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6786, - EndPos: 6792, - }, - }, - }, - }, - }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6797, - EndPos: 6825, - }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6804, - EndPos: 6824, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6804, - EndPos: 6805, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6804, - EndPos: 6805, - }, - Value: "a", - }, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6809, - EndPos: 6824, + EndPos: 6781, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6815, - EndPos: 6820, + StartLine: 366, + EndLine: 366, + StartPos: 6772, + EndPos: 6777, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6815, - EndPos: 6815, + StartLine: 366, + EndLine: 366, + StartPos: 6772, + EndPos: 6772, }, Value: "1", }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6820, - EndPos: 6820, + StartLine: 366, + EndLine: 366, + StartPos: 6777, + EndPos: 6777, }, Value: "1", }, }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6823, - EndPos: 6823, + StartLine: 366, + EndLine: 366, + StartPos: 6780, + EndPos: 6780, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 368, - EndLine: 368, - StartPos: 6823, - EndPos: 6823, + StartLine: 366, + EndLine: 366, + StartPos: 6780, + EndPos: 6780, }, Value: "2", }, @@ -17913,90 +17899,90 @@ func TestPhp5(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6829, - EndPos: 6855, + StartLine: 367, + EndLine: 367, + StartPos: 6786, + EndPos: 6812, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6836, - EndPos: 6854, + StartLine: 367, + EndLine: 367, + StartPos: 6793, + EndPos: 6811, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6836, - EndPos: 6837, + StartLine: 367, + EndLine: 367, + StartPos: 6793, + EndPos: 6794, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6836, - EndPos: 6837, + StartLine: 367, + EndLine: 367, + StartPos: 6793, + EndPos: 6794, }, Value: "a", }, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6841, - EndPos: 6854, + StartLine: 367, + EndLine: 367, + StartPos: 6798, + EndPos: 6811, }, Variable: &expr.ShortArray{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6841, - EndPos: 6851, + StartLine: 367, + EndLine: 367, + StartPos: 6798, + EndPos: 6808, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6842, - EndPos: 6842, + StartLine: 367, + EndLine: 367, + StartPos: 6799, + EndPos: 6799, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6842, - EndPos: 6842, + StartLine: 367, + EndLine: 367, + StartPos: 6799, + EndPos: 6799, }, Value: "1", }, }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6845, - EndPos: 6850, + StartLine: 367, + EndLine: 367, + StartPos: 6802, + EndPos: 6807, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6845, - EndPos: 6845, + StartLine: 367, + EndLine: 367, + StartPos: 6802, + EndPos: 6802, }, Value: "2", }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6850, - EndPos: 6850, + StartLine: 367, + EndLine: 367, + StartPos: 6807, + EndPos: 6807, }, Value: "2", }, @@ -18005,10 +17991,10 @@ func TestPhp5(t *testing.T) { }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6853, - EndPos: 6853, + StartLine: 367, + EndLine: 367, + StartPos: 6810, + EndPos: 6810, }, Value: "0", }, @@ -18018,66 +18004,66 @@ func TestPhp5(t *testing.T) { }, &stmt.If{ Position: &position.Position{ - StartLine: 371, - EndLine: 371, - StartPos: 6860, - EndPos: 6874, + StartLine: 369, + EndLine: 369, + StartPos: 6817, + EndPos: 6831, }, Cond: &expr.Yield{ Position: &position.Position{ - StartLine: 371, - EndLine: 371, - StartPos: 6864, - EndPos: 6870, + StartLine: 369, + EndLine: 369, + StartPos: 6821, + EndPos: 6827, }, Value: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 371, - EndLine: 371, - StartPos: 6870, - EndPos: 6870, + StartLine: 369, + EndLine: 369, + StartPos: 6827, + EndPos: 6827, }, Value: "1", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 371, - EndLine: 371, - StartPos: 6873, - EndPos: 6874, + StartLine: 369, + EndLine: 369, + StartPos: 6830, + EndPos: 6831, }, Stmts: []node.Node{}, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6878, - EndPos: 6888, + StartLine: 370, + EndLine: 370, + StartPos: 6835, + EndPos: 6845, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6878, - EndPos: 6887, + StartLine: 370, + EndLine: 370, + StartPos: 6835, + EndPos: 6844, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6878, - EndPos: 6880, + StartLine: 370, + EndLine: 370, + StartPos: 6835, + EndPos: 6837, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6878, - EndPos: 6880, + StartLine: 370, + EndLine: 370, + StartPos: 6835, + EndPos: 6837, }, Value: "Foo", }, @@ -18085,24 +18071,24 @@ func TestPhp5(t *testing.T) { }, Property: &expr.Variable{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6883, - EndPos: 6887, + StartLine: 370, + EndLine: 370, + StartPos: 6840, + EndPos: 6844, }, VarName: &expr.Variable{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6884, - EndPos: 6887, + StartLine: 370, + EndLine: 370, + StartPos: 6841, + EndPos: 6844, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6884, - EndPos: 6887, + StartLine: 370, + EndLine: 370, + StartPos: 6841, + EndPos: 6844, }, Value: "bar", }, @@ -18112,115 +18098,115 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6893, - EndPos: 6899, + StartLine: 372, + EndLine: 372, + StartPos: 6850, + EndPos: 6856, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6893, - EndPos: 6898, + StartLine: 372, + EndLine: 372, + StartPos: 6850, + EndPos: 6855, }, Function: &expr.Variable{ Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6893, - EndPos: 6896, + StartLine: 372, + EndLine: 372, + StartPos: 6850, + EndPos: 6853, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6893, - EndPos: 6896, + StartLine: 372, + EndLine: 372, + StartPos: 6850, + EndPos: 6853, }, Value: "foo", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6897, - EndPos: 6898, + StartLine: 372, + EndLine: 372, + StartPos: 6854, + EndPos: 6855, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6903, - EndPos: 6915, + StartLine: 373, + EndLine: 373, + StartPos: 6860, + EndPos: 6872, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6903, - EndPos: 6914, + StartLine: 373, + EndLine: 373, + StartPos: 6860, + EndPos: 6871, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6903, - EndPos: 6911, + StartLine: 373, + EndLine: 373, + StartPos: 6860, + EndPos: 6868, }, Variable: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6903, - EndPos: 6908, + StartLine: 373, + EndLine: 373, + StartPos: 6860, + EndPos: 6865, }, Function: &expr.Variable{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6903, - EndPos: 6906, + StartLine: 373, + EndLine: 373, + StartPos: 6860, + EndPos: 6863, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6903, - EndPos: 6906, + StartLine: 373, + EndLine: 373, + StartPos: 6860, + EndPos: 6863, }, Value: "foo", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6907, - EndPos: 6908, + StartLine: 373, + EndLine: 373, + StartPos: 6864, + EndPos: 6865, }, }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6910, - EndPos: 6910, + StartLine: 373, + EndLine: 373, + StartPos: 6867, + EndPos: 6867, }, Value: "0", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6913, - EndPos: 6913, + StartLine: 373, + EndLine: 373, + StartPos: 6870, + EndPos: 6870, }, Value: "0", }, @@ -18228,48 +18214,48 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6919, - EndPos: 6925, + StartLine: 374, + EndLine: 374, + StartPos: 6876, + EndPos: 6882, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6919, - EndPos: 6924, + StartLine: 374, + EndLine: 374, + StartPos: 6876, + EndPos: 6881, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6919, - EndPos: 6920, + StartLine: 374, + EndLine: 374, + StartPos: 6876, + EndPos: 6877, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6919, - EndPos: 6920, + StartLine: 374, + EndLine: 374, + StartPos: 6876, + EndPos: 6877, }, Value: "a", }, }, Dim: &expr.Variable{ Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6922, - EndPos: 6923, + StartLine: 374, + EndLine: 374, + StartPos: 6879, + EndPos: 6880, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6922, - EndPos: 6923, + StartLine: 374, + EndLine: 374, + StartPos: 6879, + EndPos: 6880, }, Value: "b", }, @@ -18278,31 +18264,31 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6929, - EndPos: 6934, + StartLine: 375, + EndLine: 375, + StartPos: 6886, + EndPos: 6891, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6929, - EndPos: 6933, + StartLine: 375, + EndLine: 375, + StartPos: 6886, + EndPos: 6890, }, VarName: &expr.Variable{ Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6931, - EndPos: 6932, + StartLine: 375, + EndLine: 375, + StartPos: 6888, + EndPos: 6889, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6931, - EndPos: 6932, + StartLine: 375, + EndLine: 375, + StartPos: 6888, + EndPos: 6889, }, Value: "a", }, @@ -18311,104 +18297,112 @@ func TestPhp5(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6938, - EndPos: 6952, + StartLine: 376, + EndLine: 376, + StartPos: 6895, + EndPos: 6909, }, Expr: &expr.StaticCall{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6938, - EndPos: 6951, + StartLine: 376, + EndLine: 376, + StartPos: 6895, + EndPos: 6908, }, Class: &expr.Variable{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6938, - EndPos: 6941, + StartLine: 376, + EndLine: 376, + StartPos: 6895, + EndPos: 6898, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6938, - EndPos: 6941, + StartLine: 376, + EndLine: 376, + StartPos: 6895, + EndPos: 6898, }, Value: "foo", }, }, Call: &expr.Variable{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6944, - EndPos: 6949, + StartLine: 376, + EndLine: 376, + StartPos: 6901, + EndPos: 6906, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6945, - EndPos: 6948, + StartLine: 376, + EndLine: 376, + StartPos: 6902, + EndPos: 6905, }, Value: "bar", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 378, - EndLine: 378, - StartPos: 6950, - EndPos: 6951, + StartLine: 376, + EndLine: 376, + StartPos: 6907, + EndPos: 6908, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6956, - EndPos: 6965, + StartLine: 377, + EndLine: 377, + StartPos: 6913, + EndPos: 6922, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6956, - EndPos: 6964, + StartLine: 377, + EndLine: 377, + StartPos: 6913, + EndPos: 6921, }, Class: &expr.Variable{ Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6956, - EndPos: 6959, + StartLine: 377, + EndLine: 377, + StartPos: 6913, + EndPos: 6916, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6956, - EndPos: 6959, + StartLine: 377, + EndLine: 377, + StartPos: 6913, + EndPos: 6916, }, Value: "foo", }, }, ConstantName: &node.Identifier{ Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6962, - EndPos: 6964, + StartLine: 377, + EndLine: 377, + StartPos: 6919, + EndPos: 6921, }, Value: "bar", }, }, }, + &stmt.HaltCompiler{ + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6927, + EndPos: 6944, + }, + }, }, } diff --git a/php7/php7.go b/php7/php7.go index 6645ba6..0b25bc0 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:5341 +//line php7/php7.y:5344 //line yacctab:1 var yyExca = [...]int{ @@ -2737,10 +2737,12 @@ yydefault: addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yylex.(*Parser).Begin(scanner.HALT_COMPILER) } case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:481 + //line php7/php7.y:483 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2757,7 +2759,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:496 + //line php7/php7.y:498 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2775,7 +2777,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:512 + //line php7/php7.y:514 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2791,7 +2793,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:526 + //line php7/php7.y:528 { yyVAL.node = yyDollar[2].node @@ -2806,7 +2808,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:539 + //line php7/php7.y:541 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2821,7 +2823,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:552 + //line php7/php7.y:554 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2836,7 +2838,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:565 + //line php7/php7.y:567 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2851,7 +2853,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:578 + //line php7/php7.y:580 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2866,7 +2868,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:594 + //line php7/php7.y:596 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2880,7 +2882,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:606 + //line php7/php7.y:608 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2894,7 +2896,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:621 + //line php7/php7.y:623 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2915,7 +2917,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:640 + //line php7/php7.y:642 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2937,7 +2939,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:663 + //line php7/php7.y:665 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2958,7 +2960,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:682 + //line php7/php7.y:684 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2980,19 +2982,19 @@ yydefault: } case 106: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:705 + //line php7/php7.y:707 { yyVAL.token = nil } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:709 + //line php7/php7.y:711 { yyVAL.token = yyDollar[1].token } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:716 + //line php7/php7.y:718 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3003,7 +3005,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:725 + //line php7/php7.y:727 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3011,7 +3013,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:734 + //line php7/php7.y:736 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3022,7 +3024,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:743 + //line php7/php7.y:745 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3030,7 +3032,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:752 + //line php7/php7.y:754 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3041,7 +3043,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:761 + //line php7/php7.y:763 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3049,7 +3051,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:770 + //line php7/php7.y:772 { yyVAL.node = yyDollar[1].node @@ -3057,7 +3059,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:776 + //line php7/php7.y:778 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) @@ -3065,7 +3067,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:785 + //line php7/php7.y:787 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3078,7 +3080,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:796 + //line php7/php7.y:798 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3097,7 +3099,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:816 + //line php7/php7.y:818 { yyVAL.node = yyDollar[1].node @@ -3105,7 +3107,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:822 + //line php7/php7.y:824 { yyVAL.node = yyDollar[2].node @@ -3116,7 +3118,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:834 + //line php7/php7.y:836 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3127,7 +3129,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:843 + //line php7/php7.y:845 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3135,7 +3137,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:852 + //line php7/php7.y:854 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3145,7 +3147,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:860 + //line php7/php7.y:862 { yyVAL.list = []node.Node{} @@ -3153,7 +3155,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:869 + //line php7/php7.y:871 { // error yyVAL.node = nil @@ -3162,7 +3164,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:876 + //line php7/php7.y:878 { yyVAL.node = yyDollar[1].node @@ -3170,7 +3172,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:882 + //line php7/php7.y:884 { yyVAL.node = yyDollar[1].node @@ -3178,7 +3180,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:888 + //line php7/php7.y:890 { yyVAL.node = yyDollar[1].node @@ -3186,7 +3188,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:894 + //line php7/php7.y:896 { yyVAL.node = yyDollar[1].node @@ -3194,7 +3196,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:900 + //line php7/php7.y:902 { yyVAL.node = yyDollar[1].node @@ -3202,7 +3204,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:906 + //line php7/php7.y:908 { yyVAL.node = stmt.NewHaltCompiler() @@ -3219,7 +3221,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:923 + //line php7/php7.y:925 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3234,7 +3236,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:936 + //line php7/php7.y:938 { yyVAL.node = yyDollar[1].node @@ -3242,7 +3244,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:942 + //line php7/php7.y:944 { yyVAL.node = yyDollar[1].node @@ -3250,7 +3252,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:948 + //line php7/php7.y:950 { switch n := yyDollar[5].node.(type) { case *stmt.While: @@ -3273,7 +3275,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:969 + //line php7/php7.y:971 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3291,7 +3293,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:985 + //line php7/php7.y:987 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3320,7 +3322,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1012 + //line php7/php7.y:1014 { switch n := yyDollar[5].node.(type) { case *stmt.Switch: @@ -3345,7 +3347,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1035 + //line php7/php7.y:1037 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3360,7 +3362,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1048 + //line php7/php7.y:1050 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3375,7 +3377,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1061 + //line php7/php7.y:1063 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3390,7 +3392,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1074 + //line php7/php7.y:1076 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3405,7 +3407,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1087 + //line php7/php7.y:1089 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3420,7 +3422,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1100 + //line php7/php7.y:1102 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3435,7 +3437,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1113 + //line php7/php7.y:1115 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3449,7 +3451,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1125 + //line php7/php7.y:1127 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3463,7 +3465,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1137 + //line php7/php7.y:1139 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3483,7 +3485,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1155 + //line php7/php7.y:1157 { switch n := yyDollar[7].node.(type) { case *stmt.Foreach: @@ -3509,7 +3511,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1179 + //line php7/php7.y:1181 { switch n := yyDollar[9].node.(type) { case *stmt.Foreach: @@ -3538,7 +3540,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1206 + //line php7/php7.y:1208 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3554,7 +3556,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1220 + //line php7/php7.y:1222 { yyVAL.node = stmt.NewNop() @@ -3568,7 +3570,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1232 + //line php7/php7.y:1234 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3587,7 +3589,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1249 + //line php7/php7.y:1251 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3602,7 +3604,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1262 + //line php7/php7.y:1264 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3620,7 +3622,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1278 + //line php7/php7.y:1280 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3637,7 +3639,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1295 + //line php7/php7.y:1297 { yyVAL.list = []node.Node{} @@ -3645,7 +3647,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1301 + //line php7/php7.y:1303 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3669,7 +3671,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1325 + //line php7/php7.y:1327 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3677,7 +3679,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1331 + //line php7/php7.y:1333 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3688,7 +3690,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1343 + //line php7/php7.y:1345 { yyVAL.node = nil @@ -3696,7 +3698,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1349 + //line php7/php7.y:1351 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3712,7 +3714,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1366 + //line php7/php7.y:1368 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3720,7 +3722,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1372 + //line php7/php7.y:1374 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3731,7 +3733,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1384 + //line php7/php7.y:1386 { yyVAL.node = yyDollar[1].node @@ -3739,7 +3741,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1393 + //line php7/php7.y:1395 { 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) @@ -3763,31 +3765,31 @@ yydefault: } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1419 + //line php7/php7.y:1421 { yyVAL.token = nil } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1423 + //line php7/php7.y:1425 { yyVAL.token = yyDollar[1].token } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1430 + //line php7/php7.y:1432 { yyVAL.token = nil } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1434 + //line php7/php7.y:1436 { yyVAL.token = yyDollar[1].token } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1441 + //line php7/php7.y:1443 { 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) @@ -3806,7 +3808,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1458 + //line php7/php7.y:1460 { 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) @@ -3825,7 +3827,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1478 + //line php7/php7.y:1480 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3833,7 +3835,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1484 + //line php7/php7.y:1486 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3841,7 +3843,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1493 + //line php7/php7.y:1495 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3855,7 +3857,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1505 + //line php7/php7.y:1507 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3869,7 +3871,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1520 + //line php7/php7.y:1522 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3888,7 +3890,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1540 + //line php7/php7.y:1542 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3907,7 +3909,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1560 + //line php7/php7.y:1562 { yyVAL.ClassExtends = nil @@ -3915,7 +3917,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1566 + //line php7/php7.y:1568 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3929,7 +3931,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1581 + //line php7/php7.y:1583 { yyVAL.InterfaceExtends = nil @@ -3937,7 +3939,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1587 + //line php7/php7.y:1589 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3951,7 +3953,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1602 + //line php7/php7.y:1604 { yyVAL.ClassImplements = nil @@ -3959,7 +3961,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1608 + //line php7/php7.y:1610 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3973,7 +3975,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1623 + //line php7/php7.y:1625 { yyVAL.node = yyDollar[1].node @@ -3981,7 +3983,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1629 + //line php7/php7.y:1631 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3995,7 +3997,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1641 + //line php7/php7.y:1643 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4011,7 +4013,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1655 + //line php7/php7.y:1657 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4026,7 +4028,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1671 + //line php7/php7.y:1673 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4037,7 +4039,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1680 + //line php7/php7.y:1682 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4055,7 +4057,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1699 + //line php7/php7.y:1701 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4066,7 +4068,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1708 + //line php7/php7.y:1710 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4084,7 +4086,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1727 + //line php7/php7.y:1729 { yyVAL.node = yyDollar[1].node @@ -4092,7 +4094,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1733 + //line php7/php7.y:1735 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -4108,7 +4110,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1750 + //line php7/php7.y:1752 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4125,7 +4127,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1765 + //line php7/php7.y:1767 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4143,7 +4145,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1781 + //line php7/php7.y:1783 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4161,7 +4163,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1797 + //line php7/php7.y:1799 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4181,7 +4183,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1818 + //line php7/php7.y:1820 { yyVAL.list = []node.Node{} @@ -4189,7 +4191,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1824 + //line php7/php7.y:1826 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4205,7 +4207,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1838 + //line php7/php7.y:1840 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4221,19 +4223,19 @@ yydefault: } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1855 + //line php7/php7.y:1857 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1859 + //line php7/php7.y:1861 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1866 + //line php7/php7.y:1868 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4244,7 +4246,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1875 + //line php7/php7.y:1877 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4262,7 +4264,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1894 + //line php7/php7.y:1896 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4278,7 +4280,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1908 + //line php7/php7.y:1910 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4296,7 +4298,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1927 + //line php7/php7.y:1929 { yyVAL.node = yyDollar[1].node @@ -4304,7 +4306,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1933 + //line php7/php7.y:1935 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4320,7 +4322,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1950 + //line php7/php7.y:1952 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4339,7 +4341,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1967 + //line php7/php7.y:1969 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4359,7 +4361,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1988 + //line php7/php7.y:1990 { yyVAL.node = yyDollar[1].node @@ -4374,7 +4376,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2001 + //line php7/php7.y:2003 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4395,7 +4397,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2023 + //line php7/php7.y:2025 { yyVAL.list = yyDollar[1].list @@ -4403,7 +4405,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2029 + //line php7/php7.y:2031 { yyVAL.list = nil @@ -4411,7 +4413,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2038 + //line php7/php7.y:2040 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4419,7 +4421,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2044 + //line php7/php7.y:2046 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4430,7 +4432,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2056 + //line php7/php7.y:2058 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4462,7 +4464,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2086 + //line php7/php7.y:2088 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4495,7 +4497,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2120 + //line php7/php7.y:2122 { yyVAL.node = nil @@ -4503,7 +4505,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2126 + //line php7/php7.y:2128 { yyVAL.node = yyDollar[1].node @@ -4511,7 +4513,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2135 + //line php7/php7.y:2137 { yyVAL.node = yyDollar[1].node @@ -4519,7 +4521,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2141 + //line php7/php7.y:2143 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4533,7 +4535,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2156 + //line php7/php7.y:2158 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4547,7 +4549,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2168 + //line php7/php7.y:2170 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4561,7 +4563,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2180 + //line php7/php7.y:2182 { yyVAL.node = yyDollar[1].node @@ -4569,7 +4571,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2189 + //line php7/php7.y:2191 { yyVAL.node = nil @@ -4577,7 +4579,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2195 + //line php7/php7.y:2197 { yyVAL.node = yyDollar[2].node @@ -4588,7 +4590,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2207 + //line php7/php7.y:2209 { yyVAL.node = node.NewArgumentList(nil) @@ -4603,7 +4605,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2220 + //line php7/php7.y:2222 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4621,7 +4623,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2239 + //line php7/php7.y:2241 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4629,7 +4631,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2245 + //line php7/php7.y:2247 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4640,7 +4642,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2257 + //line php7/php7.y:2259 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4651,7 +4653,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2266 + //line php7/php7.y:2268 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4665,7 +4667,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2281 + //line php7/php7.y:2283 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4676,7 +4678,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2290 + //line php7/php7.y:2292 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4684,7 +4686,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2299 + //line php7/php7.y:2301 { yyVAL.node = yyDollar[1].node @@ -4692,7 +4694,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2308 + //line php7/php7.y:2310 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4703,7 +4705,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2317 + //line php7/php7.y:2319 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4711,7 +4713,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2326 + //line php7/php7.y:2328 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4729,7 +4731,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2342 + //line php7/php7.y:2344 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4748,7 +4750,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2362 + //line php7/php7.y:2364 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4756,7 +4758,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2368 + //line php7/php7.y:2370 { yyVAL.list = []node.Node{} @@ -4764,7 +4766,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2377 + //line php7/php7.y:2379 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4778,7 +4780,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2389 + //line php7/php7.y:2391 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4793,7 +4795,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2402 + //line php7/php7.y:2404 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4807,7 +4809,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2414 + //line php7/php7.y:2416 { 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) @@ -4833,7 +4835,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2441 + //line php7/php7.y:2443 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4841,7 +4843,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2447 + //line php7/php7.y:2449 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4852,7 +4854,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2459 + //line php7/php7.y:2461 { yyVAL.node = stmt.NewNop() @@ -4865,7 +4867,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2471 + //line php7/php7.y:2473 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -4879,7 +4881,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2483 + //line php7/php7.y:2485 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4893,7 +4895,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2498 + //line php7/php7.y:2500 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4901,7 +4903,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2504 + //line php7/php7.y:2506 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4909,7 +4911,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2513 + //line php7/php7.y:2515 { yyVAL.node = yyDollar[1].node @@ -4920,7 +4922,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2522 + //line php7/php7.y:2524 { yyVAL.node = yyDollar[1].node @@ -4931,7 +4933,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2534 + //line php7/php7.y:2536 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4945,7 +4947,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2549 + //line php7/php7.y:2551 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4962,7 +4964,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2564 + //line php7/php7.y:2566 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4979,7 +4981,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2579 + //line php7/php7.y:2581 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4996,7 +4998,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2594 + //line php7/php7.y:2596 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5010,7 +5012,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2609 + //line php7/php7.y:2612 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5026,7 +5028,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2623 + //line php7/php7.y:2626 { yyVAL.node = yyDollar[1].node @@ -5034,7 +5036,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2632 + //line php7/php7.y:2635 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5051,7 +5053,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2650 + //line php7/php7.y:2653 { yyVAL.node = stmt.NewNop() @@ -5065,7 +5067,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2662 + //line php7/php7.y:2665 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5080,7 +5082,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2678 + //line php7/php7.y:2681 { yyVAL.list = yyDollar[1].list @@ -5088,7 +5090,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2684 + //line php7/php7.y:2687 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5103,7 +5105,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2700 + //line php7/php7.y:2703 { yyVAL.list = nil @@ -5111,7 +5113,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2706 + //line php7/php7.y:2709 { yyVAL.list = yyDollar[1].list @@ -5119,7 +5121,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2715 + //line php7/php7.y:2718 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5127,7 +5129,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2721 + //line php7/php7.y:2724 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5135,7 +5137,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2730 + //line php7/php7.y:2733 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5149,7 +5151,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2742 + //line php7/php7.y:2745 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5163,7 +5165,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2754 + //line php7/php7.y:2757 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5177,7 +5179,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2766 + //line php7/php7.y:2769 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5191,7 +5193,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2778 + //line php7/php7.y:2781 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5205,7 +5207,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2790 + //line php7/php7.y:2793 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5219,7 +5221,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2805 + //line php7/php7.y:2808 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5230,7 +5232,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2814 + //line php7/php7.y:2817 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5238,7 +5240,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2823 + //line php7/php7.y:2826 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5256,7 +5258,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2839 + //line php7/php7.y:2842 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5275,7 +5277,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2859 + //line php7/php7.y:2862 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5286,7 +5288,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2868 + //line php7/php7.y:2871 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5294,7 +5296,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2877 + //line php7/php7.y:2880 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5311,7 +5313,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2895 + //line php7/php7.y:2898 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5328,7 +5330,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2913 + //line php7/php7.y:2916 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5339,7 +5341,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2922 + //line php7/php7.y:2925 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5347,7 +5349,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2931 + //line php7/php7.y:2934 { yyVAL.node = yyDollar[1].node @@ -5355,7 +5357,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2940 + //line php7/php7.y:2943 { yyVAL.list = nil @@ -5363,7 +5365,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2946 + //line php7/php7.y:2949 { yyVAL.list = yyDollar[1].list @@ -5371,7 +5373,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2955 + //line php7/php7.y:2958 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5382,7 +5384,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2964 + //line php7/php7.y:2967 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5390,7 +5392,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:2973 + //line php7/php7.y:2976 { 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) @@ -5410,7 +5412,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2994 + //line php7/php7.y:2997 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5427,7 +5429,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3009 + //line php7/php7.y:3012 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5441,7 +5443,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3024 + //line php7/php7.y:3027 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5460,7 +5462,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3041 + //line php7/php7.y:3044 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5478,7 +5480,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3057 + //line php7/php7.y:3060 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5492,7 +5494,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3069 + //line php7/php7.y:3072 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5507,7 +5509,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3082 + //line php7/php7.y:3085 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5521,7 +5523,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3094 + //line php7/php7.y:3097 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5535,7 +5537,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3106 + //line php7/php7.y:3109 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5549,7 +5551,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3118 + //line php7/php7.y:3121 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5563,7 +5565,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3130 + //line php7/php7.y:3133 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5577,7 +5579,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3142 + //line php7/php7.y:3145 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5591,7 +5593,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3154 + //line php7/php7.y:3157 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5605,7 +5607,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3166 + //line php7/php7.y:3169 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5619,7 +5621,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3178 + //line php7/php7.y:3181 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5633,7 +5635,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3190 + //line php7/php7.y:3193 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5647,7 +5649,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3202 + //line php7/php7.y:3205 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5661,7 +5663,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3214 + //line php7/php7.y:3217 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5675,7 +5677,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3226 + //line php7/php7.y:3229 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5689,7 +5691,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3238 + //line php7/php7.y:3241 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5703,7 +5705,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3250 + //line php7/php7.y:3253 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5717,7 +5719,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3262 + //line php7/php7.y:3265 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5731,7 +5733,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3274 + //line php7/php7.y:3277 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5745,7 +5747,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3286 + //line php7/php7.y:3289 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5759,7 +5761,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3298 + //line php7/php7.y:3301 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5773,7 +5775,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3310 + //line php7/php7.y:3313 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5787,7 +5789,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3322 + //line php7/php7.y:3325 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5801,7 +5803,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3334 + //line php7/php7.y:3337 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5815,7 +5817,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3346 + //line php7/php7.y:3349 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5829,7 +5831,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3358 + //line php7/php7.y:3361 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5843,7 +5845,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3370 + //line php7/php7.y:3373 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5857,7 +5859,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3382 + //line php7/php7.y:3385 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5871,7 +5873,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3394 + //line php7/php7.y:3397 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5885,7 +5887,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3406 + //line php7/php7.y:3409 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5899,7 +5901,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3418 + //line php7/php7.y:3421 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5913,7 +5915,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3430 + //line php7/php7.y:3433 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5927,7 +5929,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3442 + //line php7/php7.y:3445 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5941,7 +5943,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3454 + //line php7/php7.y:3457 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5955,7 +5957,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3466 + //line php7/php7.y:3469 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5969,7 +5971,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3478 + //line php7/php7.y:3481 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5983,7 +5985,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3490 + //line php7/php7.y:3493 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -5997,7 +5999,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3502 + //line php7/php7.y:3505 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6011,7 +6013,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3514 + //line php7/php7.y:3517 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6025,7 +6027,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3526 + //line php7/php7.y:3529 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6039,7 +6041,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3538 + //line php7/php7.y:3541 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6053,7 +6055,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3550 + //line php7/php7.y:3553 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6067,7 +6069,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3562 + //line php7/php7.y:3565 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6081,7 +6083,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3574 + //line php7/php7.y:3577 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6095,7 +6097,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3586 + //line php7/php7.y:3589 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6109,7 +6111,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3598 + //line php7/php7.y:3601 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6123,7 +6125,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3610 + //line php7/php7.y:3613 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6137,7 +6139,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3622 + //line php7/php7.y:3625 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6151,7 +6153,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3634 + //line php7/php7.y:3637 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6165,7 +6167,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3646 + //line php7/php7.y:3649 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6179,7 +6181,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3658 + //line php7/php7.y:3661 { yyVAL.node = yyDollar[2].node @@ -6191,7 +6193,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3668 + //line php7/php7.y:3671 { yyVAL.node = yyDollar[1].node @@ -6199,7 +6201,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3674 + //line php7/php7.y:3677 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6214,7 +6216,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3687 + //line php7/php7.y:3690 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6229,7 +6231,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3700 + //line php7/php7.y:3703 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6243,7 +6245,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3712 + //line php7/php7.y:3715 { yyVAL.node = yyDollar[1].node @@ -6251,7 +6253,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3718 + //line php7/php7.y:3721 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6265,7 +6267,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3730 + //line php7/php7.y:3733 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6279,7 +6281,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3742 + //line php7/php7.y:3745 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6293,7 +6295,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3754 + //line php7/php7.y:3757 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6307,7 +6309,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3766 + //line php7/php7.y:3769 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6321,7 +6323,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3778 + //line php7/php7.y:3781 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6335,7 +6337,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3790 + //line php7/php7.y:3793 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6349,7 +6351,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3802 + //line php7/php7.y:3805 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6378,7 +6380,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3829 + //line php7/php7.y:3832 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6392,7 +6394,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3841 + //line php7/php7.y:3844 { yyVAL.node = yyDollar[1].node @@ -6400,7 +6402,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3847 + //line php7/php7.y:3850 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6415,7 +6417,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3860 + //line php7/php7.y:3863 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6429,7 +6431,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3872 + //line php7/php7.y:3875 { yyVAL.node = expr.NewYield(nil, nil) @@ -6443,7 +6445,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3884 + //line php7/php7.y:3887 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6457,7 +6459,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3896 + //line php7/php7.y:3899 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6472,7 +6474,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3909 + //line php7/php7.y:3912 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6486,7 +6488,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3921 + //line php7/php7.y:3924 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6507,7 +6509,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:3940 + //line php7/php7.y:3943 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -6529,7 +6531,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3963 + //line php7/php7.y:3966 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" @@ -6538,19 +6540,19 @@ yydefault: } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3973 + //line php7/php7.y:3976 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3977 + //line php7/php7.y:3980 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3984 + //line php7/php7.y:3987 { yyVAL.ClosureUse = nil @@ -6558,7 +6560,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3990 + //line php7/php7.y:3993 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6574,7 +6576,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4007 + //line php7/php7.y:4010 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6585,7 +6587,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4016 + //line php7/php7.y:4019 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -6593,7 +6595,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4025 + //line php7/php7.y:4028 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6609,7 +6611,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4039 + //line php7/php7.y:4042 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6628,7 +6630,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4059 + //line php7/php7.y:4062 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6639,7 +6641,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4068 + //line php7/php7.y:4071 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6653,7 +6655,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4080 + //line php7/php7.y:4083 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6667,7 +6669,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4092 + //line php7/php7.y:4095 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6678,7 +6680,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4104 + //line php7/php7.y:4107 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6692,7 +6694,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4116 + //line php7/php7.y:4119 { yyVAL.node = yyDollar[1].node @@ -6700,7 +6702,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4125 + //line php7/php7.y:4128 { yyVAL.node = yyDollar[1].node @@ -6708,7 +6710,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4131 + //line php7/php7.y:4134 { yyVAL.node = yyDollar[1].node @@ -6716,7 +6718,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4140 + //line php7/php7.y:4143 { yyVAL.node = nil @@ -6724,7 +6726,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4146 + //line php7/php7.y:4149 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6739,7 +6741,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4162 + //line php7/php7.y:4165 { yyVAL.list = []node.Node{} @@ -6747,7 +6749,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4168 + //line php7/php7.y:4171 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -6755,7 +6757,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4174 + //line php7/php7.y:4177 { yyVAL.list = yyDollar[1].list @@ -6763,7 +6765,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4183 + //line php7/php7.y:4186 { yyVAL.node = nil @@ -6771,7 +6773,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4189 + //line php7/php7.y:4192 { yyVAL.node = yyDollar[1].node @@ -6779,7 +6781,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4198 + //line php7/php7.y:4201 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6795,7 +6797,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4212 + //line php7/php7.y:4215 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6810,7 +6812,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4225 + //line php7/php7.y:4228 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6824,7 +6826,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4240 + //line php7/php7.y:4243 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6838,7 +6840,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4252 + //line php7/php7.y:4255 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6852,7 +6854,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4264 + //line php7/php7.y:4267 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6866,7 +6868,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4276 + //line php7/php7.y:4279 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6880,7 +6882,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4288 + //line php7/php7.y:4291 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6894,7 +6896,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4300 + //line php7/php7.y:4303 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6908,7 +6910,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4312 + //line php7/php7.y:4315 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6922,7 +6924,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4324 + //line php7/php7.y:4327 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6936,7 +6938,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4336 + //line php7/php7.y:4339 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6950,7 +6952,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4348 + //line php7/php7.y:4351 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6964,7 +6966,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4360 + //line php7/php7.y:4363 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6980,7 +6982,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4374 + //line php7/php7.y:4377 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -6994,7 +6996,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4386 + //line php7/php7.y:4389 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7008,7 +7010,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4398 + //line php7/php7.y:4401 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7022,7 +7024,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4410 + //line php7/php7.y:4413 { yyVAL.node = yyDollar[1].node @@ -7030,7 +7032,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4416 + //line php7/php7.y:4419 { yyVAL.node = yyDollar[1].node @@ -7038,7 +7040,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4425 + //line php7/php7.y:4428 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7049,7 +7051,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4434 + //line php7/php7.y:4437 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7066,7 +7068,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4449 + //line php7/php7.y:4452 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7083,7 +7085,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4467 + //line php7/php7.y:4470 { yyVAL.node = yyDollar[1].node @@ -7091,7 +7093,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4473 + //line php7/php7.y:4476 { yyVAL.node = yyDollar[1].node @@ -7099,7 +7101,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4482 + //line php7/php7.y:4485 { yyVAL.node = nil @@ -7107,7 +7109,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4488 + //line php7/php7.y:4491 { yyVAL.node = yyDollar[1].node @@ -7115,7 +7117,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4497 + //line php7/php7.y:4500 { yyVAL.node = yyDollar[1].node @@ -7123,7 +7125,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4506 + //line php7/php7.y:4509 { yyVAL.node = yyDollar[1].node @@ -7131,7 +7133,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4512 + //line php7/php7.y:4515 { yyVAL.node = yyDollar[2].node @@ -7143,7 +7145,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4522 + //line php7/php7.y:4525 { yyVAL.node = yyDollar[1].node @@ -7151,7 +7153,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4531 + //line php7/php7.y:4534 { yyVAL.node = yyDollar[1].node @@ -7159,7 +7161,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4537 + //line php7/php7.y:4540 { yyVAL.node = yyDollar[2].node @@ -7171,7 +7173,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4547 + //line php7/php7.y:4550 { yyVAL.node = yyDollar[1].node @@ -7179,7 +7181,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4556 + //line php7/php7.y:4559 { yyVAL.node = yyDollar[1].node @@ -7187,7 +7189,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4562 + //line php7/php7.y:4565 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7202,7 +7204,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4575 + //line php7/php7.y:4578 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7217,7 +7219,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4588 + //line php7/php7.y:4591 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7232,7 +7234,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4601 + //line php7/php7.y:4604 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7246,7 +7248,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4613 + //line php7/php7.y:4616 { yyVAL.node = yyDollar[1].node @@ -7254,7 +7256,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4622 + //line php7/php7.y:4625 { yyVAL.node = yyDollar[1].node @@ -7262,7 +7264,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4628 + //line php7/php7.y:4631 { yyVAL.node = yyDollar[1].node @@ -7270,7 +7272,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4634 + //line php7/php7.y:4637 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7284,7 +7286,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4649 + //line php7/php7.y:4652 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7300,7 +7302,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4663 + //line php7/php7.y:4666 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7316,7 +7318,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4677 + //line php7/php7.y:4680 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7330,7 +7332,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4692 + //line php7/php7.y:4695 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7344,7 +7346,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4704 + //line php7/php7.y:4707 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7358,7 +7360,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4719 + //line php7/php7.y:4722 { yyVAL.node = yyDollar[1].node @@ -7366,7 +7368,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4725 + //line php7/php7.y:4728 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7381,7 +7383,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4738 + //line php7/php7.y:4741 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7396,7 +7398,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4751 + //line php7/php7.y:4754 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7410,7 +7412,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4763 + //line php7/php7.y:4766 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7424,7 +7426,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4775 + //line php7/php7.y:4778 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7438,7 +7440,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4790 + //line php7/php7.y:4793 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7452,7 +7454,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4802 + //line php7/php7.y:4805 { yyVAL.node = yyDollar[2].node @@ -7464,7 +7466,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4812 + //line php7/php7.y:4815 { yyVAL.node = yyDollar[1].node @@ -7472,7 +7474,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4821 + //line php7/php7.y:4824 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7486,7 +7488,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4833 + //line php7/php7.y:4836 { yyVAL.node = yyDollar[2].node @@ -7498,7 +7500,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4843 + //line php7/php7.y:4846 { yyVAL.node = yyDollar[1].node @@ -7506,7 +7508,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4852 + //line php7/php7.y:4855 { yyVAL.list = yyDollar[1].list @@ -7514,7 +7516,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4861 + //line php7/php7.y:4864 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -7522,7 +7524,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4867 + //line php7/php7.y:4870 { yyVAL.node = yyDollar[1].node @@ -7530,7 +7532,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4876 + //line php7/php7.y:4879 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -7545,7 +7547,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4889 + //line php7/php7.y:4892 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7557,7 +7559,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4902 + //line php7/php7.y:4905 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -7571,7 +7573,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4914 + //line php7/php7.y:4917 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -7582,7 +7584,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4923 + //line php7/php7.y:4926 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -7599,7 +7601,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4938 + //line php7/php7.y:4941 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -7615,7 +7617,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:4952 + //line php7/php7.y:4955 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -7635,7 +7637,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4970 + //line php7/php7.y:4973 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -7654,7 +7656,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4990 + //line php7/php7.y:4993 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7662,7 +7664,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4996 + //line php7/php7.y:4999 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7677,7 +7679,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5009 + //line php7/php7.y:5012 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7685,7 +7687,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5015 + //line php7/php7.y:5018 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7700,7 +7702,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5031 + //line php7/php7.y:5034 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7716,7 +7718,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5045 + //line php7/php7.y:5048 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7736,7 +7738,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5063 + //line php7/php7.y:5066 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7758,7 +7760,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5083 + //line php7/php7.y:5086 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7773,7 +7775,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5096 + //line php7/php7.y:5099 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -7791,7 +7793,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5112 + //line php7/php7.y:5115 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -7813,7 +7815,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5132 + //line php7/php7.y:5135 { yyVAL.node = yyDollar[2].node @@ -7821,7 +7823,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5141 + //line php7/php7.y:5144 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7835,7 +7837,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5153 + //line php7/php7.y:5156 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7854,7 +7856,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5170 + //line php7/php7.y:5173 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -7887,7 +7889,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5201 + //line php7/php7.y:5204 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -7903,7 +7905,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5218 + //line php7/php7.y:5221 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -7922,7 +7924,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5235 + //line php7/php7.y:5238 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -7938,7 +7940,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5249 + //line php7/php7.y:5252 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -7952,7 +7954,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5261 + //line php7/php7.y:5264 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -7966,7 +7968,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5273 + //line php7/php7.y:5276 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -7982,7 +7984,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5287 + //line php7/php7.y:5290 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -7996,7 +7998,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5299 + //line php7/php7.y:5302 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8010,7 +8012,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5314 + //line php7/php7.y:5317 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8018,7 +8020,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5320 + //line php7/php7.y:5323 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8029,7 +8031,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5332 + //line php7/php7.y:5335 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index 1cc8b95..e96ae93 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -476,6 +476,8 @@ top_statement: addMeta($$, $4.Meta, meta.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 07bb196..53875e1 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,14 +378,18 @@ func TestPhp7(t *testing.T) { $foo->{$bar[0]}; [1=>&$a, 2=>list($b)]; + + __halt_compiler(); + + parsing process must be terminated ` expected := &node.Root{ Position: &position.Position{ StartLine: 2, - EndLine: 347, + EndLine: 348, StartPos: 6, - EndPos: 6318, + EndPos: 6319, }, Stmts: []node.Node{ &stmt.Expression{ @@ -561,8 +564,8 @@ func TestPhp7(t *testing.T) { StartPos: 33, EndPos: 37, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 3, @@ -775,8 +778,8 @@ func TestPhp7(t *testing.T) { StartPos: 80, EndPos: 84, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 5, @@ -1068,8 +1071,8 @@ func TestPhp7(t *testing.T) { StartPos: 176, EndPos: 180, }, - Variadic: true, IsReference: false, + Variadic: true, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 9, @@ -1623,8 +1626,8 @@ func TestPhp7(t *testing.T) { StartPos: 385, EndPos: 398, }, - ByRef: false, Variadic: false, + ByRef: false, VariableType: &node.Nullable{ Position: &position.Position{ StartLine: 19, @@ -1770,9 +1773,9 @@ func TestPhp7(t *testing.T) { StartPos: 421, EndPos: 461, }, + PhpDocComment: "", ReturnsRef: false, Static: false, - PhpDocComment: "", Params: []node.Node{ &node.Parameter{ Position: &position.Position{ @@ -2011,8 +2014,8 @@ func TestPhp7(t *testing.T) { StartPos: 498, EndPos: 509, }, - ByRef: true, Variadic: true, + ByRef: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 21, @@ -3811,8 +3814,8 @@ func TestPhp7(t *testing.T) { StartPos: 1597, EndPos: 1634, }, - PhpDocComment: "", ReturnsRef: true, + PhpDocComment: "", MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 74, @@ -5377,8 +5380,8 @@ func TestPhp7(t *testing.T) { StartPos: 2398, EndPos: 2421, }, - ReturnsRef: true, PhpDocComment: "", + ReturnsRef: true, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 102, @@ -5487,34 +5490,60 @@ func TestPhp7(t *testing.T) { Value: "a", }, }, - &stmt.HaltCompiler{ + &stmt.If{ Position: &position.Position{ StartLine: 106, EndLine: 106, StartPos: 2458, - EndPos: 2475, + EndPos: 2467, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2462, + EndPos: 2463, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2462, + EndPos: 2463, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2466, + EndPos: 2467, + }, + Stmts: []node.Node{}, }, }, &stmt.If{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2479, - EndPos: 2488, + StartPos: 2471, + EndPos: 2495, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2483, - EndPos: 2484, + StartPos: 2475, + EndPos: 2476, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2483, - EndPos: 2484, + StartPos: 2475, + EndPos: 2476, }, Value: "a", }, @@ -5523,88 +5552,105 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2487, - EndPos: 2488, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2492, - EndPos: 2516, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2496, - EndPos: 2497, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2496, - EndPos: 2497, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2500, - EndPos: 2501, + StartPos: 2479, + EndPos: 2480, }, Stmts: []node.Node{}, }, ElseIf: []node.Node{ &stmt.ElseIf{ Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2503, - EndPos: 2516, + StartLine: 107, + EndLine: 107, + StartPos: 2482, + EndPos: 2495, }, Cond: &expr.Variable{ Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2511, - EndPos: 2512, + StartLine: 107, + EndLine: 107, + StartPos: 2490, + EndPos: 2491, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2511, - EndPos: 2512, + StartLine: 107, + EndLine: 107, + StartPos: 2490, + EndPos: 2491, }, Value: "b", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2515, - EndPos: 2516, + StartLine: 107, + EndLine: 107, + StartPos: 2494, + EndPos: 2495, }, Stmts: []node.Node{}, }, }, }, }, + &stmt.If{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2499, + EndPos: 2516, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2503, + EndPos: 2504, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2503, + EndPos: 2504, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2507, + EndPos: 2508, + }, + Stmts: []node.Node{}, + }, + Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2510, + EndPos: 2516, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2515, + EndPos: 2516, + }, + Stmts: []node.Node{}, + }, + }, + }, &stmt.If{ Position: &position.Position{ StartLine: 109, EndLine: 109, StartPos: 2520, - EndPos: 2537, + EndPos: 2567, }, Cond: &expr.Variable{ Position: &position.Position{ @@ -5632,19 +5678,89 @@ func TestPhp7(t *testing.T) { }, Stmts: []node.Node{}, }, + ElseIf: []node.Node{ + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2531, + EndPos: 2544, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2539, + EndPos: 2540, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2539, + EndPos: 2540, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2543, + EndPos: 2544, + }, + Stmts: []node.Node{}, + }, + }, + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2546, + EndPos: 2559, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2554, + EndPos: 2555, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2554, + EndPos: 2555, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2558, + EndPos: 2559, + }, + Stmts: []node.Node{}, + }, + }, + }, Else: &stmt.Else{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2531, - EndPos: 2537, + StartPos: 2561, + EndPos: 2567, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2536, - EndPos: 2537, + StartPos: 2566, + EndPos: 2567, }, Stmts: []node.Node{}, }, @@ -5654,22 +5770,22 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2541, - EndPos: 2588, + StartPos: 2571, + EndPos: 2619, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2545, - EndPos: 2546, + StartPos: 2575, + EndPos: 2576, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2545, - EndPos: 2546, + StartPos: 2575, + EndPos: 2576, }, Value: "a", }, @@ -5678,8 +5794,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2549, - EndPos: 2550, + StartPos: 2579, + EndPos: 2580, }, Stmts: []node.Node{}, }, @@ -5688,22 +5804,22 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2552, - EndPos: 2565, + StartPos: 2582, + EndPos: 2595, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2560, - EndPos: 2561, + StartPos: 2590, + EndPos: 2591, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2560, - EndPos: 2561, + StartPos: 2590, + EndPos: 2591, }, Value: "b", }, @@ -5712,42 +5828,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2564, - EndPos: 2565, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2567, - EndPos: 2580, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2575, - EndPos: 2576, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2575, - EndPos: 2576, - }, - Value: "c", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2579, - EndPos: 2580, + StartPos: 2594, + EndPos: 2595, }, Stmts: []node.Node{}, }, @@ -5757,142 +5839,55 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2582, - EndPos: 2588, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2587, - EndPos: 2588, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2592, - EndPos: 2640, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2596, - EndPos: 2597, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2596, - EndPos: 2597, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2600, - EndPos: 2601, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2603, - EndPos: 2616, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2611, - EndPos: 2612, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2611, - EndPos: 2612, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2615, - EndPos: 2616, - }, - Stmts: []node.Node{}, - }, - }, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2618, - EndPos: 2640, + StartPos: 2597, + EndPos: 2619, }, Stmt: &stmt.If{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2623, - EndPos: 2640, + StartLine: 110, + EndLine: 110, + StartPos: 2602, + EndPos: 2619, }, Cond: &expr.Variable{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2627, - EndPos: 2628, + StartLine: 110, + EndLine: 110, + StartPos: 2606, + EndPos: 2607, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2627, - EndPos: 2628, + StartLine: 110, + EndLine: 110, + StartPos: 2606, + EndPos: 2607, }, Value: "c", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2631, - EndPos: 2632, + StartLine: 110, + EndLine: 110, + StartPos: 2610, + EndPos: 2611, }, Stmts: []node.Node{}, }, Else: &stmt.Else{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2634, - EndPos: 2640, + StartLine: 110, + EndLine: 110, + StartPos: 2613, + EndPos: 2619, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2639, - EndPos: 2640, + StartLine: 110, + EndLine: 110, + StartPos: 2618, + EndPos: 2619, }, Stmts: []node.Node{}, }, @@ -5902,54 +5897,102 @@ func TestPhp7(t *testing.T) { }, &stmt.Nop{ Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2644, - EndPos: 2645, + StartLine: 111, + EndLine: 111, + StartPos: 2623, + EndPos: 2624, }, }, &stmt.InlineHtml{ Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2647, - EndPos: 2658, + StartLine: 111, + EndLine: 111, + StartPos: 2626, + EndPos: 2637, }, Value: "
", }, + &stmt.Interface{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2643, + EndPos: 2658, + }, + PhpDocComment: "", + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2653, + EndPos: 2655, + }, + Value: "Foo", + }, + Stmts: []node.Node{}, + }, &stmt.Interface{ Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2664, - EndPos: 2679, + StartPos: 2662, + EndPos: 2689, }, PhpDocComment: "", InterfaceName: &node.Identifier{ Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2674, - EndPos: 2676, + StartPos: 2672, + EndPos: 2674, }, Value: "Foo", }, + Extends: &stmt.InterfaceExtends{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2676, + EndPos: 2686, + }, + InterfaceNames: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2684, + EndPos: 2686, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2684, + EndPos: 2686, + }, + Value: "Bar", + }, + }, + }, + }, + }, Stmts: []node.Node{}, }, &stmt.Interface{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2683, - EndPos: 2710, + StartPos: 2693, + EndPos: 2725, }, PhpDocComment: "", InterfaceName: &node.Identifier{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2693, - EndPos: 2695, + StartPos: 2703, + EndPos: 2705, }, Value: "Foo", }, @@ -5957,72 +6000,24 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2697, - EndPos: 2707, + StartPos: 2707, + EndPos: 2722, }, InterfaceNames: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2705, - EndPos: 2707, + StartPos: 2715, + EndPos: 2717, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2705, - EndPos: 2707, - }, - Value: "Bar", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2714, - EndPos: 2746, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2724, - EndPos: 2726, - }, - Value: "Foo", - }, - Extends: &stmt.InterfaceExtends{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2728, - EndPos: 2743, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2736, - EndPos: 2738, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2736, - EndPos: 2738, + StartPos: 2715, + EndPos: 2717, }, Value: "Bar", }, @@ -6030,18 +6025,18 @@ func TestPhp7(t *testing.T) { }, &name.Name{ Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2741, - EndPos: 2743, + StartLine: 114, + EndLine: 114, + StartPos: 2720, + EndPos: 2722, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2741, - EndPos: 2743, + StartLine: 114, + EndLine: 114, + StartPos: 2720, + EndPos: 2722, }, Value: "Baz", }, @@ -6051,84 +6046,151 @@ func TestPhp7(t *testing.T) { }, Stmts: []node.Node{}, }, + &stmt.Namespace{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2729, + EndPos: 2742, + }, + NamespaceName: &name.Name{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2739, + EndPos: 2741, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2739, + EndPos: 2741, + }, + Value: "Foo", + }, + }, + }, + }, &stmt.Namespace{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2750, - EndPos: 2763, + StartPos: 2746, + EndPos: 2761, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2760, - EndPos: 2762, + StartPos: 2756, + EndPos: 2758, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2760, - EndPos: 2762, + StartPos: 2756, + EndPos: 2758, }, Value: "Foo", }, }, }, + Stmts: []node.Node{}, }, &stmt.Namespace{ Position: &position.Position{ StartLine: 117, EndLine: 117, - StartPos: 2767, - EndPos: 2782, - }, - NamespaceName: &name.Name{ - Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2777, - EndPos: 2779, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2777, - EndPos: 2779, - }, - Value: "Foo", - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2786, - EndPos: 2797, + StartPos: 2765, + EndPos: 2776, }, Stmts: []node.Node{}, }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2780, + EndPos: 2798, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2786, + EndPos: 2788, + }, + Value: "foo", + }, + Stmts: []node.Node{ + &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2791, + EndPos: 2797, + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2791, + EndPos: 2793, + }, + Value: "var", + }, + }, + Properties: []node.Node{ + &stmt.Property{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2795, + EndPos: 2796, + }, + PhpDocComment: "", + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2795, + EndPos: 2796, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2795, + EndPos: 2796, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, &stmt.Class{ Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2801, - EndPos: 2819, + StartPos: 2802, + EndPos: 2838, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2807, - EndPos: 2809, + StartPos: 2808, + EndPos: 2810, }, Value: "foo", }, @@ -6137,92 +6199,25 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2812, - EndPos: 2818, + StartPos: 2813, + EndPos: 2837, }, Modifiers: []node.Node{ &node.Identifier{ Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2812, - EndPos: 2814, - }, - Value: "var", - }, - }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2816, - EndPos: 2817, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2816, - EndPos: 2817, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2816, - EndPos: 2817, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2823, - EndPos: 2859, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2829, - EndPos: 2831, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.PropertyList{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2834, - EndPos: 2858, - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2834, - EndPos: 2839, + StartPos: 2813, + EndPos: 2818, }, Value: "public", }, &node.Identifier{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2841, - EndPos: 2846, + StartLine: 119, + EndLine: 119, + StartPos: 2820, + EndPos: 2825, }, Value: "static", }, @@ -6230,25 +6225,25 @@ func TestPhp7(t *testing.T) { Properties: []node.Node{ &stmt.Property{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2848, - EndPos: 2849, + StartLine: 119, + EndLine: 119, + StartPos: 2827, + EndPos: 2828, }, PhpDocComment: "", Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2848, - EndPos: 2849, + StartLine: 119, + EndLine: 119, + StartPos: 2827, + EndPos: 2828, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2848, - EndPos: 2849, + StartLine: 119, + EndLine: 119, + StartPos: 2827, + EndPos: 2828, }, Value: "a", }, @@ -6256,35 +6251,35 @@ func TestPhp7(t *testing.T) { }, &stmt.Property{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2852, - EndPos: 2857, + StartLine: 119, + EndLine: 119, + StartPos: 2831, + EndPos: 2836, }, PhpDocComment: "", Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2852, - EndPos: 2853, + StartLine: 119, + EndLine: 119, + StartPos: 2831, + EndPos: 2832, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2852, - EndPos: 2853, + StartLine: 119, + EndLine: 119, + StartPos: 2831, + EndPos: 2832, }, Value: "b", }, }, Expr: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2857, - EndPos: 2857, + StartLine: 119, + EndLine: 119, + StartPos: 2836, + EndPos: 2836, }, Value: "1", }, @@ -6295,32 +6290,32 @@ func TestPhp7(t *testing.T) { }, &stmt.Static{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2863, - EndPos: 2880, + StartLine: 120, + EndLine: 120, + StartPos: 2842, + EndPos: 2859, }, Vars: []node.Node{ &stmt.StaticVar{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2870, - EndPos: 2871, + StartLine: 120, + EndLine: 120, + StartPos: 2849, + EndPos: 2850, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2870, - EndPos: 2871, + StartLine: 120, + EndLine: 120, + StartPos: 2849, + EndPos: 2850, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2870, - EndPos: 2871, + StartLine: 120, + EndLine: 120, + StartPos: 2849, + EndPos: 2850, }, Value: "a", }, @@ -6328,34 +6323,34 @@ func TestPhp7(t *testing.T) { }, &stmt.StaticVar{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2874, - EndPos: 2879, + StartLine: 120, + EndLine: 120, + StartPos: 2853, + EndPos: 2858, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2874, - EndPos: 2875, + StartLine: 120, + EndLine: 120, + StartPos: 2853, + EndPos: 2854, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2874, - EndPos: 2875, + StartLine: 120, + EndLine: 120, + StartPos: 2853, + EndPos: 2854, }, Value: "b", }, }, Expr: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2879, - EndPos: 2879, + StartLine: 120, + EndLine: 120, + StartPos: 2858, + EndPos: 2858, }, Value: "1", }, @@ -6364,41 +6359,41 @@ func TestPhp7(t *testing.T) { }, &stmt.AltSwitch{ Position: &position.Position{ - StartLine: 123, - EndLine: 127, - StartPos: 2885, - EndPos: 2943, + StartLine: 122, + EndLine: 126, + StartPos: 2864, + EndPos: 2922, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 123, - EndLine: 123, - StartPos: 2893, - EndPos: 2893, + StartLine: 122, + EndLine: 122, + StartPos: 2872, + EndPos: 2872, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 124, + StartLine: 123, EndLine: -1, - StartPos: 2901, + StartPos: 2880, EndPos: -1, }, Cases: []node.Node{ &stmt.Case{ Position: &position.Position{ - StartLine: 124, + StartLine: 123, EndLine: -1, - StartPos: 2901, + StartPos: 2880, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 124, - EndLine: 124, - StartPos: 2906, - EndPos: 2906, + StartLine: 123, + EndLine: 123, + StartPos: 2885, + EndPos: 2885, }, Value: "1", }, @@ -6406,26 +6401,26 @@ func TestPhp7(t *testing.T) { }, &stmt.Default{ Position: &position.Position{ - StartLine: 125, + StartLine: 124, EndLine: -1, - StartPos: 2912, + StartPos: 2891, EndPos: -1, }, Stmts: []node.Node{}, }, &stmt.Case{ Position: &position.Position{ - StartLine: 126, + StartLine: 125, EndLine: -1, - StartPos: 2924, + StartPos: 2903, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 126, - EndLine: 126, - StartPos: 2929, - EndPos: 2929, + StartLine: 125, + EndLine: 125, + StartPos: 2908, + EndPos: 2908, }, Value: "2", }, @@ -6436,59 +6431,59 @@ func TestPhp7(t *testing.T) { }, &stmt.AltSwitch{ Position: &position.Position{ - StartLine: 129, - EndLine: 132, - StartPos: 2948, - EndPos: 2995, + StartLine: 128, + EndLine: 131, + StartPos: 2927, + EndPos: 2974, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 129, - EndLine: 129, - StartPos: 2956, - EndPos: 2956, + StartLine: 128, + EndLine: 128, + StartPos: 2935, + EndPos: 2935, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 130, + StartLine: 129, EndLine: -1, - StartPos: 2965, + StartPos: 2944, EndPos: -1, }, Cases: []node.Node{ + &stmt.Case{ + Position: &position.Position{ + StartLine: 129, + EndLine: -1, + StartPos: 2944, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 129, + EndLine: 129, + StartPos: 2949, + EndPos: 2949, + }, + Value: "1", + }, + Stmts: []node.Node{}, + }, &stmt.Case{ Position: &position.Position{ StartLine: 130, EndLine: -1, - StartPos: 2965, + StartPos: 2955, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2970, - EndPos: 2970, - }, - Value: "1", - }, - Stmts: []node.Node{}, - }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 131, - EndLine: -1, - StartPos: 2976, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2981, - EndPos: 2981, + StartPos: 2960, + EndPos: 2960, }, Value: "2", }, @@ -6499,78 +6494,78 @@ func TestPhp7(t *testing.T) { }, &stmt.Switch{ Position: &position.Position{ - StartLine: 134, - EndLine: 137, - StartPos: 3002, - EndPos: 3053, + StartLine: 133, + EndLine: 136, + StartPos: 2981, + EndPos: 3032, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 3010, - EndPos: 3010, + StartLine: 133, + EndLine: 133, + StartPos: 2989, + EndPos: 2989, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 134, - EndLine: 137, - StartPos: 3013, - EndPos: 3053, + StartLine: 133, + EndLine: 136, + StartPos: 2992, + EndPos: 3032, }, Cases: []node.Node{ + &stmt.Case{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 2997, + EndPos: 3010, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 3002, + EndPos: 3002, + }, + Value: "1", + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 3005, + EndPos: 3010, + }, + }, + }, + }, &stmt.Case{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3018, - EndPos: 3031, + StartPos: 3015, + EndPos: 3028, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3023, - EndPos: 3023, + StartPos: 3020, + EndPos: 3020, }, - Value: "1", + Value: "2", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3026, - EndPos: 3031, - }, - }, - }, - }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 3036, - EndPos: 3049, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 3041, - EndPos: 3041, - }, - Value: "2", - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 3044, - EndPos: 3049, + StartPos: 3023, + EndPos: 3028, }, }, }, @@ -6580,78 +6575,78 @@ func TestPhp7(t *testing.T) { }, &stmt.Switch{ Position: &position.Position{ - StartLine: 139, - EndLine: 142, - StartPos: 3060, - EndPos: 3112, + StartLine: 138, + EndLine: 141, + StartPos: 3039, + EndPos: 3091, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 3068, - EndPos: 3068, + StartLine: 138, + EndLine: 138, + StartPos: 3047, + EndPos: 3047, }, Value: "1", }, CaseList: &stmt.CaseList{ Position: &position.Position{ - StartLine: 139, - EndLine: 142, - StartPos: 3071, - EndPos: 3112, + StartLine: 138, + EndLine: 141, + StartPos: 3050, + EndPos: 3091, }, Cases: []node.Node{ &stmt.Case{ Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3077, - EndPos: 3090, + StartLine: 139, + EndLine: 139, + StartPos: 3056, + EndPos: 3069, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3082, - EndPos: 3082, + StartLine: 139, + EndLine: 139, + StartPos: 3061, + EndPos: 3061, }, Value: "1", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3085, - EndPos: 3090, + StartLine: 139, + EndLine: 139, + StartPos: 3064, + EndPos: 3069, }, }, }, }, &stmt.Case{ Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3095, - EndPos: 3108, + StartLine: 140, + EndLine: 140, + StartPos: 3074, + EndPos: 3087, }, Cond: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3100, - EndPos: 3100, + StartLine: 140, + EndLine: 140, + StartPos: 3079, + EndPos: 3079, }, Value: "2", }, Stmts: []node.Node{ &stmt.Break{ Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3103, - EndPos: 3108, + StartLine: 140, + EndLine: 140, + StartPos: 3082, + EndPos: 3087, }, }, }, @@ -6661,24 +6656,24 @@ func TestPhp7(t *testing.T) { }, &stmt.Throw{ Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3117, - EndPos: 3125, + StartLine: 143, + EndLine: 143, + StartPos: 3096, + EndPos: 3104, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3123, - EndPos: 3124, + StartLine: 143, + EndLine: 143, + StartPos: 3102, + EndPos: 3103, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3123, - EndPos: 3124, + StartLine: 143, + EndLine: 143, + StartPos: 3102, + EndPos: 3103, }, Value: "e", }, @@ -6686,18 +6681,18 @@ func TestPhp7(t *testing.T) { }, &stmt.Trait{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3130, - EndPos: 3141, + StartLine: 145, + EndLine: 145, + StartPos: 3109, + EndPos: 3120, }, PhpDocComment: "", TraitName: &node.Identifier{ Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3136, - EndPos: 3138, + StartLine: 145, + EndLine: 145, + StartPos: 3115, + EndPos: 3117, }, Value: "Foo", }, @@ -6705,44 +6700,44 @@ func TestPhp7(t *testing.T) { }, &stmt.Class{ Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3145, - EndPos: 3166, + StartLine: 146, + EndLine: 146, + StartPos: 3124, + EndPos: 3145, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3151, - EndPos: 3153, + StartLine: 146, + EndLine: 146, + StartPos: 3130, + EndPos: 3132, }, Value: "Foo", }, Stmts: []node.Node{ &stmt.TraitUse{ Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3157, - EndPos: 3164, + StartLine: 146, + EndLine: 146, + StartPos: 3136, + EndPos: 3143, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3161, - EndPos: 3163, + StartLine: 146, + EndLine: 146, + StartPos: 3140, + EndPos: 3142, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3161, - EndPos: 3163, + StartLine: 146, + EndLine: 146, + StartPos: 3140, + EndPos: 3142, }, Value: "Bar", }, @@ -6750,11 +6745,87 @@ func TestPhp7(t *testing.T) { }, }, TraitAdaptationList: &stmt.Nop{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3143, + EndPos: 3143, + }, + }, + }, + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3149, + EndPos: 3177, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3155, + EndPos: 3157, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3161, + EndPos: 3175, + }, + Traits: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3165, + EndPos: 3167, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3165, + EndPos: 3167, + }, + Value: "Bar", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3170, + EndPos: 3172, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3170, + EndPos: 3172, + }, + Value: "Baz", + }, + }, + }, + }, + TraitAdaptationList: &stmt.TraitAdaptationList{ Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3164, - EndPos: 3164, + StartPos: 3174, + EndPos: 3175, }, }, }, @@ -6764,16 +6835,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3170, - EndPos: 3198, + StartPos: 3181, + EndPos: 3226, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3176, - EndPos: 3178, + StartPos: 3187, + EndPos: 3189, }, Value: "Foo", }, @@ -6782,24 +6853,24 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3182, - EndPos: 3196, + StartPos: 3193, + EndPos: 3224, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3186, - EndPos: 3188, + StartPos: 3197, + EndPos: 3199, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3186, - EndPos: 3188, + StartPos: 3197, + EndPos: 3199, }, Value: "Bar", }, @@ -6809,16 +6880,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3191, - EndPos: 3193, + StartPos: 3202, + EndPos: 3204, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3191, - EndPos: 3193, + StartPos: 3202, + EndPos: 3204, }, Value: "Baz", }, @@ -6829,116 +6900,40 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3195, - EndPos: 3196, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3202, - EndPos: 3247, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3208, - EndPos: 3210, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3214, - EndPos: 3245, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3218, - EndPos: 3220, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3218, - EndPos: 3220, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3223, - EndPos: 3225, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3223, - EndPos: 3225, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3227, - EndPos: 3245, + StartPos: 3206, + EndPos: 3224, }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3229, - EndPos: 3242, + StartLine: 148, + EndLine: 148, + StartPos: 3208, + EndPos: 3221, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3229, - EndPos: 3231, + StartLine: 148, + EndLine: 148, + StartPos: 3208, + EndPos: 3210, }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3229, - EndPos: 3231, + StartLine: 148, + EndLine: 148, + StartPos: 3208, + EndPos: 3210, }, Value: "one", }, }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3236, - EndPos: 3242, + StartLine: 148, + EndLine: 148, + StartPos: 3215, + EndPos: 3221, }, Value: "include", }, @@ -6948,20 +6943,132 @@ func TestPhp7(t *testing.T) { }, }, }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3230, + EndPos: 3274, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3236, + EndPos: 3238, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3242, + EndPos: 3272, + }, + Traits: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3246, + EndPos: 3248, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3246, + EndPos: 3248, + }, + Value: "Bar", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3251, + EndPos: 3253, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3251, + EndPos: 3253, + }, + Value: "Baz", + }, + }, + }, + }, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3255, + EndPos: 3272, + }, + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3257, + EndPos: 3269, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3257, + EndPos: 3259, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3257, + EndPos: 3259, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3264, + EndPos: 3269, + }, + Value: "public", + }, + }, + }, + }, + }, + }, + }, &stmt.Class{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3251, - EndPos: 3295, + StartPos: 3278, + EndPos: 3326, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3257, - EndPos: 3259, + StartPos: 3284, + EndPos: 3286, }, Value: "Foo", }, @@ -6970,24 +7077,24 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3263, - EndPos: 3293, + StartPos: 3290, + EndPos: 3324, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3267, - EndPos: 3269, + StartPos: 3294, + EndPos: 3296, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3267, - EndPos: 3269, + StartPos: 3294, + EndPos: 3296, }, Value: "Bar", }, @@ -6997,16 +7104,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3272, - EndPos: 3274, + StartPos: 3299, + EndPos: 3301, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3272, - EndPos: 3274, + StartPos: 3299, + EndPos: 3301, }, Value: "Baz", }, @@ -7017,30 +7124,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3276, - EndPos: 3293, + StartPos: 3303, + EndPos: 3324, }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3278, - EndPos: 3290, + StartPos: 3305, + EndPos: 3321, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3278, - EndPos: 3280, + StartPos: 3305, + EndPos: 3307, }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3278, - EndPos: 3280, + StartPos: 3305, + EndPos: 3307, }, Value: "one", }, @@ -7049,11 +7156,20 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3285, - EndPos: 3290, + StartPos: 3312, + EndPos: 3317, }, Value: "public", }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3319, + EndPos: 3321, + }, + Value: "two", + }, }, }, }, @@ -7064,16 +7180,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3299, - EndPos: 3347, + StartPos: 3330, + EndPos: 3406, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3305, - EndPos: 3307, + StartPos: 3336, + EndPos: 3338, }, Value: "Foo", }, @@ -7082,24 +7198,24 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3311, - EndPos: 3345, + StartPos: 3342, + EndPos: 3404, }, Traits: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3315, - EndPos: 3317, + StartPos: 3346, + EndPos: 3348, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3315, - EndPos: 3317, + StartPos: 3346, + EndPos: 3348, }, Value: "Bar", }, @@ -7109,16 +7225,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3320, - EndPos: 3322, + StartPos: 3351, + EndPos: 3353, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3320, - EndPos: 3322, + StartPos: 3351, + EndPos: 3353, }, Value: "Baz", }, @@ -7129,159 +7245,38 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3324, - EndPos: 3345, - }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3326, - EndPos: 3342, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3326, - EndPos: 3328, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3326, - EndPos: 3328, - }, - Value: "one", - }, - }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3333, - EndPos: 3338, - }, - Value: "public", - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3340, - EndPos: 3342, - }, - Value: "two", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3351, - EndPos: 3427, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3357, - EndPos: 3359, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3363, - EndPos: 3425, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3367, - EndPos: 3369, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3367, - EndPos: 3369, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3372, - EndPos: 3374, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3372, - EndPos: 3374, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3376, - EndPos: 3425, + StartPos: 3355, + EndPos: 3404, }, Adaptations: []node.Node{ &stmt.TraitUsePrecedence{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3378, - EndPos: 3405, + StartLine: 151, + EndLine: 151, + StartPos: 3357, + EndPos: 3384, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3378, - EndPos: 3385, + StartLine: 151, + EndLine: 151, + StartPos: 3357, + EndPos: 3364, }, Trait: &name.Name{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3378, - EndPos: 3380, + StartLine: 151, + EndLine: 151, + StartPos: 3357, + EndPos: 3359, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3378, - EndPos: 3380, + StartLine: 151, + EndLine: 151, + StartPos: 3357, + EndPos: 3359, }, Value: "Bar", }, @@ -7289,10 +7284,10 @@ func TestPhp7(t *testing.T) { }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3383, - EndPos: 3385, + StartLine: 151, + EndLine: 151, + StartPos: 3362, + EndPos: 3364, }, Value: "one", }, @@ -7300,18 +7295,18 @@ func TestPhp7(t *testing.T) { Insteadof: []node.Node{ &name.Name{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3397, - EndPos: 3399, + StartLine: 151, + EndLine: 151, + StartPos: 3376, + EndPos: 3378, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3397, - EndPos: 3399, + StartLine: 151, + EndLine: 151, + StartPos: 3376, + EndPos: 3378, }, Value: "Baz", }, @@ -7319,18 +7314,18 @@ func TestPhp7(t *testing.T) { }, &name.Name{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3402, - EndPos: 3405, + StartLine: 151, + EndLine: 151, + StartPos: 3381, + EndPos: 3384, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3402, - EndPos: 3405, + StartLine: 151, + EndLine: 151, + StartPos: 3381, + EndPos: 3384, }, Value: "Quux", }, @@ -7340,32 +7335,32 @@ func TestPhp7(t *testing.T) { }, &stmt.TraitUseAlias{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3408, - EndPos: 3422, + StartLine: 151, + EndLine: 151, + StartPos: 3387, + EndPos: 3401, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3408, - EndPos: 3415, + StartLine: 151, + EndLine: 151, + StartPos: 3387, + EndPos: 3394, }, Trait: &name.Name{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3408, - EndPos: 3410, + StartLine: 151, + EndLine: 151, + StartPos: 3387, + EndPos: 3389, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3408, - EndPos: 3410, + StartLine: 151, + EndLine: 151, + StartPos: 3387, + EndPos: 3389, }, Value: "Baz", }, @@ -7373,20 +7368,20 @@ func TestPhp7(t *testing.T) { }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3413, - EndPos: 3415, + StartLine: 151, + EndLine: 151, + StartPos: 3392, + EndPos: 3394, }, Value: "one", }, }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3420, - EndPos: 3422, + StartLine: 151, + EndLine: 151, + StartPos: 3399, + EndPos: 3401, }, Value: "two", }, @@ -7398,9 +7393,9 @@ func TestPhp7(t *testing.T) { }, &stmt.Try{ Position: &position.Position{ - StartLine: 154, + StartLine: 153, EndLine: -1, - StartPos: 3432, + StartPos: 3411, EndPos: -1, }, Stmts: []node.Node{}, @@ -7408,54 +7403,131 @@ func TestPhp7(t *testing.T) { }, &stmt.Try{ Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3441, - EndPos: 3470, + StartLine: 154, + EndLine: 154, + StartPos: 3420, + EndPos: 3449, }, Stmts: []node.Node{}, Catches: []node.Node{ &stmt.Catch{ Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3448, - EndPos: 3470, + StartLine: 154, + EndLine: 154, + StartPos: 3427, + EndPos: 3449, }, Types: []node.Node{ &name.Name{ Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3455, - EndPos: 3463, + StartLine: 154, + EndLine: 154, + StartPos: 3434, + EndPos: 3442, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3455, - EndPos: 3463, + StartLine: 154, + EndLine: 154, + StartPos: 3434, + EndPos: 3442, }, Value: "Exception", }, }, }, }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3444, + EndPos: 3445, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3444, + EndPos: 3445, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + }, + }, + &stmt.Try{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3453, + EndPos: 3499, + }, + Stmts: []node.Node{}, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3460, + EndPos: 3499, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3467, + EndPos: 3475, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3467, + EndPos: 3475, + }, + Value: "Exception", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3477, + EndPos: 3492, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3477, + EndPos: 3492, + }, + Value: "RuntimeException", + }, + }, + }, + }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3465, - EndPos: 3466, + StartPos: 3494, + EndPos: 3495, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3465, - EndPos: 3466, + StartPos: 3494, + EndPos: 3495, }, Value: "e", }, @@ -7468,8 +7540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3474, - EndPos: 3520, + StartPos: 3503, + EndPos: 3563, }, Stmts: []node.Node{}, Catches: []node.Node{ @@ -7477,43 +7549,71 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3481, - EndPos: 3520, + StartPos: 3510, + EndPos: 3532, }, Types: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3488, - EndPos: 3496, + StartPos: 3517, + EndPos: 3525, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3488, - EndPos: 3496, + StartPos: 3517, + EndPos: 3525, }, Value: "Exception", }, }, }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3527, + EndPos: 3528, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3527, + EndPos: 3528, + }, + Value: "e", + }, + }, + Stmts: []node.Node{}, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3534, + EndPos: 3563, + }, + Types: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3498, - EndPos: 3513, + StartPos: 3541, + EndPos: 3556, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3498, - EndPos: 3513, + StartPos: 3541, + EndPos: 3556, }, Value: "RuntimeException", }, @@ -7524,15 +7624,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3515, - EndPos: 3516, + StartPos: 3558, + EndPos: 3559, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3515, - EndPos: 3516, + StartPos: 3558, + EndPos: 3559, }, Value: "e", }, @@ -7545,8 +7645,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3524, - EndPos: 3584, + StartPos: 3567, + EndPos: 3607, }, Stmts: []node.Node{}, Catches: []node.Node{ @@ -7554,24 +7654,24 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3531, - EndPos: 3553, + StartPos: 3574, + EndPos: 3596, }, Types: []node.Node{ &name.Name{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3538, - EndPos: 3546, + StartPos: 3581, + EndPos: 3589, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3538, - EndPos: 3546, + StartPos: 3581, + EndPos: 3589, }, Value: "Exception", }, @@ -7582,120 +7682,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3548, - EndPos: 3549, + StartPos: 3591, + EndPos: 3592, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3548, - EndPos: 3549, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3555, - EndPos: 3584, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3562, - EndPos: 3577, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3562, - EndPos: 3577, - }, - Value: "RuntimeException", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3579, - EndPos: 3580, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3579, - EndPos: 3580, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3588, - EndPos: 3628, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3595, - EndPos: 3617, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3602, - EndPos: 3610, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3602, - EndPos: 3610, - }, - Value: "Exception", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3612, - EndPos: 3613, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3612, - EndPos: 3613, + StartPos: 3591, + EndPos: 3592, }, Value: "e", }, @@ -7705,87 +7700,124 @@ func TestPhp7(t *testing.T) { }, Finally: &stmt.Finally{ Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3619, - EndPos: 3628, + StartLine: 157, + EndLine: 157, + StartPos: 3598, + EndPos: 3607, }, Stmts: []node.Node{}, }, }, &stmt.Unset{ Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3633, - EndPos: 3647, + StartLine: 159, + EndLine: 159, + StartPos: 3612, + EndPos: 3626, }, Vars: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3639, - EndPos: 3640, + StartLine: 159, + EndLine: 159, + StartPos: 3618, + EndPos: 3619, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3639, - EndPos: 3640, + StartLine: 159, + EndLine: 159, + StartPos: 3618, + EndPos: 3619, }, Value: "a", }, }, &expr.Variable{ Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3643, - EndPos: 3644, + StartLine: 159, + EndLine: 159, + StartPos: 3622, + EndPos: 3623, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3643, - EndPos: 3644, + StartLine: 159, + EndLine: 159, + StartPos: 3622, + EndPos: 3623, }, Value: "b", }, }, }, }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3631, + EndPos: 3638, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3635, + EndPos: 3637, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3635, + EndPos: 3637, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3635, + EndPos: 3637, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, &stmt.UseList{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3652, - EndPos: 3659, + StartPos: 3642, + EndPos: 3650, }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3656, - EndPos: 3658, + StartPos: 3647, + EndPos: 3649, }, Use: &name.Name{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3656, - EndPos: 3658, + StartPos: 3647, + EndPos: 3649, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3656, - EndPos: 3658, + StartPos: 3647, + EndPos: 3649, }, Value: "Foo", }, @@ -7798,68 +7830,31 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3663, - EndPos: 3671, + StartPos: 3654, + EndPos: 3669, }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3668, - EndPos: 3670, + StartPos: 3659, + EndPos: 3668, }, Use: &name.Name{ Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3668, - EndPos: 3670, + StartPos: 3659, + EndPos: 3661, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3668, - EndPos: 3670, - }, - Value: "Foo", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3675, - EndPos: 3690, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3680, - EndPos: 3689, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3680, - EndPos: 3682, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3680, - EndPos: 3682, + StartPos: 3659, + EndPos: 3661, }, Value: "Foo", }, @@ -7867,30 +7862,121 @@ func TestPhp7(t *testing.T) { }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3687, - EndPos: 3689, + StartLine: 163, + EndLine: 163, + StartPos: 3666, + EndPos: 3668, }, Value: "Bar", }, }, }, }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3673, + EndPos: 3685, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3677, + EndPos: 3679, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3677, + EndPos: 3679, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3677, + EndPos: 3679, + }, + Value: "Foo", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3682, + EndPos: 3684, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3682, + EndPos: 3684, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3682, + EndPos: 3684, + }, + Value: "Bar", + }, + }, + }, + }, + }, + }, &stmt.UseList{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3694, - EndPos: 3706, + StartPos: 3689, + EndPos: 3708, }, Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3693, + EndPos: 3695, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3693, + EndPos: 3695, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3693, + EndPos: 3695, + }, + Value: "Foo", + }, + }, + }, + }, &stmt.Use{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3698, - EndPos: 3700, + EndPos: 3707, }, Use: &name.Name{ Position: &position.Position{ @@ -7907,107 +7993,16 @@ func TestPhp7(t *testing.T) { StartPos: 3698, EndPos: 3700, }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3703, - EndPos: 3705, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3703, - EndPos: 3705, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3703, - EndPos: 3705, - }, - Value: "Bar", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3710, - EndPos: 3729, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3714, - EndPos: 3716, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3714, - EndPos: 3716, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3714, - EndPos: 3716, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3719, - EndPos: 3728, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3719, - EndPos: 3721, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3719, - EndPos: 3721, - }, Value: "Bar", }, }, }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3726, - EndPos: 3728, + StartLine: 165, + EndLine: 165, + StartPos: 3705, + EndPos: 3707, }, Value: "Baz", }, @@ -8016,74 +8011,165 @@ func TestPhp7(t *testing.T) { }, &stmt.UseList{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3733, - EndPos: 3755, + StartLine: 166, + EndLine: 166, + StartPos: 3712, + EndPos: 3734, }, UseType: &node.Identifier{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3737, - EndPos: 3744, + StartLine: 166, + EndLine: 166, + StartPos: 3716, + EndPos: 3723, }, Value: "function", }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3746, - EndPos: 3748, + StartLine: 166, + EndLine: 166, + StartPos: 3725, + EndPos: 3727, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3746, - EndPos: 3748, + StartLine: 166, + EndLine: 166, + StartPos: 3725, + EndPos: 3727, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3746, - EndPos: 3748, + StartLine: 166, + EndLine: 166, + StartPos: 3725, + EndPos: 3727, }, Value: "Foo", }, }, }, }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3731, + EndPos: 3733, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3731, + EndPos: 3733, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3731, + EndPos: 3733, + }, + Value: "Bar", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3738, + EndPos: 3774, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3742, + EndPos: 3749, + }, + Value: "function", + }, + Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3752, - EndPos: 3754, + StartPos: 3751, + EndPos: 3760, }, Use: &name.Name{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3752, - EndPos: 3754, + StartPos: 3751, + EndPos: 3753, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3752, - EndPos: 3754, + StartPos: 3751, + EndPos: 3753, + }, + Value: "Foo", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3758, + EndPos: 3760, + }, + Value: "foo", + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3764, + EndPos: 3773, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3764, + EndPos: 3766, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3764, + EndPos: 3766, }, Value: "Bar", }, }, }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3771, + EndPos: 3773, + }, + Value: "bar", + }, }, }, }, @@ -8091,90 +8177,72 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3759, - EndPos: 3795, + StartPos: 3778, + EndPos: 3797, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3763, - EndPos: 3770, + StartPos: 3782, + EndPos: 3786, }, - Value: "function", + Value: "const", }, Uses: []node.Node{ &stmt.Use{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3772, - EndPos: 3781, + StartPos: 3788, + EndPos: 3790, }, Use: &name.Name{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3772, - EndPos: 3774, + StartPos: 3788, + EndPos: 3790, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3772, - EndPos: 3774, + StartPos: 3788, + EndPos: 3790, }, Value: "Foo", }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3779, - EndPos: 3781, - }, - Value: "foo", - }, }, &stmt.Use{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3785, - EndPos: 3794, + StartPos: 3794, + EndPos: 3796, }, Use: &name.Name{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3785, - EndPos: 3787, + StartPos: 3794, + EndPos: 3796, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3785, - EndPos: 3787, + StartPos: 3794, + EndPos: 3796, }, Value: "Bar", }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3792, - EndPos: 3794, - }, - Value: "bar", - }, }, }, }, @@ -8182,15 +8250,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3799, - EndPos: 3818, + StartPos: 3801, + EndPos: 3834, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3803, - EndPos: 3807, + StartPos: 3805, + EndPos: 3809, }, Value: "const", }, @@ -8199,96 +8267,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3809, - EndPos: 3811, + StartPos: 3811, + EndPos: 3820, }, Use: &name.Name{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3809, - EndPos: 3811, + StartPos: 3811, + EndPos: 3813, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3809, - EndPos: 3811, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3815, - EndPos: 3817, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3815, - EndPos: 3817, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3815, - EndPos: 3817, - }, - Value: "Bar", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3822, - EndPos: 3855, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3826, - EndPos: 3830, - }, - Value: "const", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3832, - EndPos: 3841, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3832, - EndPos: 3834, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3832, - EndPos: 3834, + StartPos: 3811, + EndPos: 3813, }, Value: "Foo", }, @@ -8296,35 +8291,35 @@ func TestPhp7(t *testing.T) { }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3839, - EndPos: 3841, + StartLine: 169, + EndLine: 169, + StartPos: 3818, + EndPos: 3820, }, Value: "foo", }, }, &stmt.Use{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3845, - EndPos: 3854, + StartLine: 169, + EndLine: 169, + StartPos: 3824, + EndPos: 3833, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3845, - EndPos: 3847, + StartLine: 169, + EndLine: 169, + StartPos: 3824, + EndPos: 3826, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3845, - EndPos: 3847, + StartLine: 169, + EndLine: 169, + StartPos: 3824, + EndPos: 3826, }, Value: "Bar", }, @@ -8332,10 +8327,10 @@ func TestPhp7(t *testing.T) { }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3852, - EndPos: 3854, + StartLine: 169, + EndLine: 169, + StartPos: 3831, + EndPos: 3833, }, Value: "bar", }, @@ -8344,25 +8339,25 @@ func TestPhp7(t *testing.T) { }, &stmt.GroupUse{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3860, - EndPos: 3879, + StartLine: 171, + EndLine: 171, + StartPos: 3839, + EndPos: 3858, }, Prefix: &name.Name{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3865, - EndPos: 3867, + StartLine: 171, + EndLine: 171, + StartPos: 3844, + EndPos: 3846, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3865, - EndPos: 3867, + StartLine: 171, + EndLine: 171, + StartPos: 3844, + EndPos: 3846, }, Value: "Foo", }, @@ -8371,25 +8366,25 @@ func TestPhp7(t *testing.T) { UseList: []node.Node{ &stmt.Use{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3872, + StartLine: 171, + EndLine: 171, + StartPos: 3849, + EndPos: 3851, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3872, + StartLine: 171, + EndLine: 171, + StartPos: 3849, + EndPos: 3851, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3872, + StartLine: 171, + EndLine: 171, + StartPos: 3849, + EndPos: 3851, }, Value: "Bar", }, @@ -8398,25 +8393,25 @@ func TestPhp7(t *testing.T) { }, &stmt.Use{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3875, - EndPos: 3877, + StartLine: 171, + EndLine: 171, + StartPos: 3854, + EndPos: 3856, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3875, - EndPos: 3877, + StartLine: 171, + EndLine: 171, + StartPos: 3854, + EndPos: 3856, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3875, - EndPos: 3877, + StartLine: 171, + EndLine: 171, + StartPos: 3854, + EndPos: 3856, }, Value: "Baz", }, @@ -8427,25 +8422,25 @@ func TestPhp7(t *testing.T) { }, &stmt.GroupUse{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3883, - EndPos: 3909, + StartLine: 172, + EndLine: 172, + StartPos: 3862, + EndPos: 3888, }, Prefix: &name.Name{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3887, - EndPos: 3889, + StartLine: 172, + EndLine: 172, + StartPos: 3866, + EndPos: 3868, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3887, - EndPos: 3889, + StartLine: 172, + EndLine: 172, + StartPos: 3866, + EndPos: 3868, }, Value: "Foo", }, @@ -8454,25 +8449,25 @@ func TestPhp7(t *testing.T) { UseList: []node.Node{ &stmt.Use{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3892, - EndPos: 3894, + StartLine: 172, + EndLine: 172, + StartPos: 3871, + EndPos: 3873, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3892, - EndPos: 3894, + StartLine: 172, + EndLine: 172, + StartPos: 3871, + EndPos: 3873, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3892, - EndPos: 3894, + StartLine: 172, + EndLine: 172, + StartPos: 3871, + EndPos: 3873, }, Value: "Bar", }, @@ -8481,25 +8476,25 @@ func TestPhp7(t *testing.T) { }, &stmt.Use{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3897, - EndPos: 3907, + StartLine: 172, + EndLine: 172, + StartPos: 3876, + EndPos: 3886, }, Use: &name.Name{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3897, - EndPos: 3899, + StartLine: 172, + EndLine: 172, + StartPos: 3876, + EndPos: 3878, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3897, - EndPos: 3899, + StartLine: 172, + EndLine: 172, + StartPos: 3876, + EndPos: 3878, }, Value: "Baz", }, @@ -8507,10 +8502,10 @@ func TestPhp7(t *testing.T) { }, Alias: &node.Identifier{ Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3904, - EndPos: 3907, + StartLine: 172, + EndLine: 172, + StartPos: 3883, + EndPos: 3886, }, Value: "quux", }, @@ -8519,34 +8514,126 @@ func TestPhp7(t *testing.T) { }, &stmt.GroupUse{ Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3913, - EndPos: 3940, + StartLine: 173, + EndLine: 173, + StartPos: 3892, + EndPos: 3919, }, UseType: &node.Identifier{ Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3917, - EndPos: 3924, + StartLine: 173, + EndLine: 173, + StartPos: 3896, + EndPos: 3903, }, Value: "function", }, Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3905, + EndPos: 3907, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3905, + EndPos: 3907, + }, + Value: "Foo", + }, + }, + }, + UseList: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3910, + EndPos: 3912, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3910, + EndPos: 3912, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3910, + EndPos: 3912, + }, + Value: "Bar", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3915, + EndPos: 3917, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3915, + EndPos: 3917, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3915, + EndPos: 3917, + }, + Value: "Baz", + }, + }, + }, + }, + }, + }, + &stmt.GroupUse{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3923, + EndPos: 3948, + }, + UseType: &node.Identifier{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3926, - EndPos: 3928, + StartPos: 3927, + EndPos: 3931, + }, + Value: "const", + }, + Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3934, + EndPos: 3936, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3926, - EndPos: 3928, + StartPos: 3934, + EndPos: 3936, }, Value: "Foo", }, @@ -8557,23 +8644,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3931, - EndPos: 3933, + StartPos: 3939, + EndPos: 3941, }, Use: &name.Name{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3931, - EndPos: 3933, + StartPos: 3939, + EndPos: 3941, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3931, - EndPos: 3933, + StartPos: 3939, + EndPos: 3941, }, Value: "Bar", }, @@ -8584,23 +8671,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3936, - EndPos: 3938, + StartPos: 3944, + EndPos: 3946, }, Use: &name.Name{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3936, - EndPos: 3938, + StartPos: 3944, + EndPos: 3946, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3936, - EndPos: 3938, + StartPos: 3944, + EndPos: 3946, }, Value: "Baz", }, @@ -8613,32 +8700,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3944, - EndPos: 3969, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3948, - EndPos: 3952, - }, - Value: "const", + StartPos: 3952, + EndPos: 3985, }, Prefix: &name.Name{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3955, - EndPos: 3957, + StartPos: 3956, + EndPos: 3958, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3955, - EndPos: 3957, + StartPos: 3956, + EndPos: 3958, }, Value: "Foo", }, @@ -8649,115 +8727,32 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3960, - EndPos: 3962, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3960, - EndPos: 3962, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3960, - EndPos: 3962, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3965, - EndPos: 3967, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3965, - EndPos: 3967, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3965, - EndPos: 3967, - }, - Value: "Baz", - }, - }, - }, - }, - }, - }, - &stmt.GroupUse{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3973, - EndPos: 4006, - }, - Prefix: &name.Name{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3977, - EndPos: 3979, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3977, - EndPos: 3979, - }, - Value: "Foo", - }, - }, - }, - UseList: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3988, - EndPos: 3990, + StartPos: 3967, + EndPos: 3969, }, UseType: &node.Identifier{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3982, - EndPos: 3986, + StartLine: 175, + EndLine: 175, + StartPos: 3961, + EndPos: 3965, }, Value: "const", }, Use: &name.Name{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3988, - EndPos: 3990, + StartLine: 175, + EndLine: 175, + StartPos: 3967, + EndPos: 3969, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3988, - EndPos: 3990, + StartLine: 175, + EndLine: 175, + StartPos: 3967, + EndPos: 3969, }, Value: "Bar", }, @@ -8766,34 +8761,34 @@ func TestPhp7(t *testing.T) { }, &stmt.Use{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 4002, - EndPos: 4004, + StartLine: 175, + EndLine: 175, + StartPos: 3981, + EndPos: 3983, }, UseType: &node.Identifier{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3993, - EndPos: 4000, + StartLine: 175, + EndLine: 175, + StartPos: 3972, + EndPos: 3979, }, Value: "function", }, Use: &name.Name{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 4002, - EndPos: 4004, + StartLine: 175, + EndLine: 175, + StartPos: 3981, + EndPos: 3983, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 4002, - EndPos: 4004, + StartLine: 175, + EndLine: 175, + StartPos: 3981, + EndPos: 3983, }, Value: "Baz", }, @@ -8804,41 +8799,41 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4011, - EndPos: 4016, + StartLine: 177, + EndLine: 177, + StartPos: 3990, + EndPos: 3995, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4011, - EndPos: 4015, + StartLine: 177, + EndLine: 177, + StartPos: 3990, + EndPos: 3994, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4011, - EndPos: 4012, + StartLine: 177, + EndLine: 177, + StartPos: 3990, + EndPos: 3991, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4011, - EndPos: 4012, + StartLine: 177, + EndLine: 177, + StartPos: 3990, + EndPos: 3991, }, Value: "a", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4014, - EndPos: 4014, + StartLine: 177, + EndLine: 177, + StartPos: 3993, + EndPos: 3993, }, Value: "1", }, @@ -8846,58 +8841,58 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4020, - EndPos: 4028, + StartLine: 178, + EndLine: 178, + StartPos: 3999, + EndPos: 4007, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4020, - EndPos: 4027, + StartLine: 178, + EndLine: 178, + StartPos: 3999, + EndPos: 4006, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4020, - EndPos: 4024, + StartLine: 178, + EndLine: 178, + StartPos: 3999, + EndPos: 4003, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4020, - EndPos: 4021, + StartLine: 178, + EndLine: 178, + StartPos: 3999, + EndPos: 4000, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4020, - EndPos: 4021, + StartLine: 178, + EndLine: 178, + StartPos: 3999, + EndPos: 4000, }, Value: "a", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4023, - EndPos: 4023, + StartLine: 178, + EndLine: 178, + StartPos: 4002, + EndPos: 4002, }, Value: "1", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4026, - EndPos: 4026, + StartLine: 178, + EndLine: 178, + StartPos: 4005, + EndPos: 4005, }, Value: "2", }, @@ -8905,33 +8900,68 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 4032, - EndPos: 4039, + StartLine: 179, + EndLine: 179, + StartPos: 4011, + EndPos: 4018, }, Expr: &expr.Array{ Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 4032, - EndPos: 4038, + StartLine: 179, + EndLine: 179, + StartPos: 4011, + EndPos: 4017, }, Items: []node.Node{}, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4022, + EndPos: 4030, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4022, + EndPos: 4029, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4028, + EndPos: 4028, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4028, + EndPos: 4028, + }, + Value: "1", + }, + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4043, + StartPos: 4034, EndPos: 4051, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4043, + StartPos: 4034, EndPos: 4050, }, Items: []node.Node{ @@ -8939,90 +8969,55 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4049, - EndPos: 4049, + StartPos: 4040, + EndPos: 4043, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4040, + EndPos: 4040, + }, + Value: "1", }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4049, - EndPos: 4049, - }, - Value: "1", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4055, - EndPos: 4072, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4055, - EndPos: 4071, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4061, - EndPos: 4064, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4061, - EndPos: 4061, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4064, - EndPos: 4064, + StartPos: 4043, + EndPos: 4043, }, Value: "1", }, }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4067, - EndPos: 4069, + StartLine: 181, + EndLine: 181, + StartPos: 4046, + EndPos: 4048, }, Val: &expr.Reference{ Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4067, - EndPos: 4069, + StartLine: 181, + EndLine: 181, + StartPos: 4046, + EndPos: 4048, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4068, - EndPos: 4069, + StartLine: 181, + EndLine: 181, + StartPos: 4047, + EndPos: 4048, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4068, - EndPos: 4069, + StartLine: 181, + EndLine: 181, + StartPos: 4047, + EndPos: 4048, }, Value: "b", }, @@ -9035,31 +9030,64 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4076, - EndPos: 4079, + StartLine: 182, + EndLine: 182, + StartPos: 4055, + EndPos: 4058, }, Expr: &expr.BitwiseNot{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4055, + EndPos: 4057, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4056, + EndPos: 4057, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4056, + EndPos: 4057, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4062, + EndPos: 4065, + }, + Expr: &expr.BooleanNot{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4076, - EndPos: 4078, + StartPos: 4062, + EndPos: 4064, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4077, - EndPos: 4078, + StartPos: 4063, + EndPos: 4064, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4077, - EndPos: 4078, + StartPos: 4063, + EndPos: 4064, }, Value: "a", }, @@ -9068,76 +9096,85 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4083, - EndPos: 4086, - }, - Expr: &expr.BooleanNot{ - Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4083, - EndPos: 4085, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4084, - EndPos: 4085, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 184, - EndLine: 184, - StartPos: 4084, - EndPos: 4085, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4091, - EndPos: 4099, + StartLine: 185, + EndLine: 185, + StartPos: 4070, + EndPos: 4078, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4091, - EndPos: 4098, + StartLine: 185, + EndLine: 185, + StartPos: 4070, + EndPos: 4077, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4091, - EndPos: 4093, + StartLine: 185, + EndLine: 185, + StartPos: 4070, + EndPos: 4072, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4091, - EndPos: 4093, + StartLine: 185, + EndLine: 185, + StartPos: 4070, + EndPos: 4072, }, Value: "Foo", }, }, }, ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4075, + EndPos: 4077, + }, + Value: "Bar", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4082, + EndPos: 4091, + }, + Expr: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4082, + EndPos: 4090, + }, + Class: &expr.Variable{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4096, - EndPos: 4098, + StartPos: 4082, + EndPos: 4085, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4082, + EndPos: 4085, + }, + Value: "foo", + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4088, + EndPos: 4090, }, Value: "Bar", }, @@ -9147,71 +9184,62 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4103, - EndPos: 4112, + StartPos: 4095, + EndPos: 4104, }, - Expr: &expr.ClassConstFetch{ + Expr: &expr.Clone{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4103, - EndPos: 4111, + StartPos: 4095, + EndPos: 4102, }, - Class: &expr.Variable{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4103, - EndPos: 4106, + StartPos: 4101, + EndPos: 4102, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4103, - EndPos: 4106, + StartPos: 4101, + EndPos: 4102, }, - Value: "foo", + Value: "a", }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4109, - EndPos: 4111, - }, - Value: "Bar", - }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4116, - EndPos: 4125, + StartPos: 4108, + EndPos: 4116, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4116, - EndPos: 4123, + StartPos: 4108, + EndPos: 4115, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4122, - EndPos: 4123, + StartPos: 4114, + EndPos: 4115, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4122, - EndPos: 4123, + StartPos: 4114, + EndPos: 4115, }, Value: "a", }, @@ -9222,48 +9250,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4129, - EndPos: 4137, - }, - Expr: &expr.Clone{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4129, - EndPos: 4136, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4135, - EndPos: 4136, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4135, - EndPos: 4136, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4141, - EndPos: 4153, + StartPos: 4120, + EndPos: 4132, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4141, - EndPos: 4152, + StartLine: 189, + EndLine: 189, + StartPos: 4120, + EndPos: 4131, }, ReturnsRef: false, Static: false, @@ -9273,17 +9268,17 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4157, - EndPos: 4190, + StartLine: 190, + EndLine: 190, + StartPos: 4136, + EndPos: 4169, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4157, - EndPos: 4189, + StartLine: 190, + EndLine: 190, + StartPos: 4136, + EndPos: 4168, }, ReturnsRef: false, Static: false, @@ -9291,26 +9286,26 @@ func TestPhp7(t *testing.T) { Params: []node.Node{ &node.Parameter{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4166, - EndPos: 4167, + StartLine: 190, + EndLine: 190, + StartPos: 4145, + EndPos: 4146, }, ByRef: false, Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4166, - EndPos: 4167, + StartLine: 190, + EndLine: 190, + StartPos: 4145, + EndPos: 4146, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4166, - EndPos: 4167, + StartLine: 190, + EndLine: 190, + StartPos: 4145, + EndPos: 4146, }, Value: "a", }, @@ -9318,26 +9313,26 @@ func TestPhp7(t *testing.T) { }, &node.Parameter{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4170, - EndPos: 4171, + StartLine: 190, + EndLine: 190, + StartPos: 4149, + EndPos: 4150, }, ByRef: false, Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4170, - EndPos: 4171, + StartLine: 190, + EndLine: 190, + StartPos: 4149, + EndPos: 4150, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4170, - EndPos: 4171, + StartLine: 190, + EndLine: 190, + StartPos: 4149, + EndPos: 4150, }, Value: "b", }, @@ -9346,49 +9341,49 @@ func TestPhp7(t *testing.T) { }, ClosureUse: &expr.ClosureUse{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4174, - EndPos: 4186, + StartLine: 190, + EndLine: 190, + StartPos: 4153, + EndPos: 4165, }, Uses: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4179, - EndPos: 4180, + StartLine: 190, + EndLine: 190, + StartPos: 4158, + EndPos: 4159, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4179, - EndPos: 4180, + StartLine: 190, + EndLine: 190, + StartPos: 4158, + EndPos: 4159, }, Value: "c", }, }, &expr.Reference{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4183, - EndPos: 4185, + StartLine: 190, + EndLine: 190, + StartPos: 4162, + EndPos: 4164, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4184, - EndPos: 4185, + StartLine: 190, + EndLine: 190, + StartPos: 4163, + EndPos: 4164, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4184, - EndPos: 4185, + StartLine: 190, + EndLine: 190, + StartPos: 4163, + EndPos: 4164, }, Value: "d", }, @@ -9401,35 +9396,35 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4194, - EndPos: 4213, + StartLine: 191, + EndLine: 191, + StartPos: 4173, + EndPos: 4192, }, Expr: &expr.Closure{ Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4194, - EndPos: 4212, + StartLine: 191, + EndLine: 191, + StartPos: 4173, + EndPos: 4191, }, ReturnsRef: false, Static: false, PhpDocComment: "", ReturnType: &name.Name{ Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4206, - EndPos: 4209, + StartLine: 191, + EndLine: 191, + StartPos: 4185, + EndPos: 4188, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4206, - EndPos: 4209, + StartLine: 191, + EndLine: 191, + StartPos: 4185, + EndPos: 4188, }, Value: "void", }, @@ -9438,34 +9433,69 @@ func TestPhp7(t *testing.T) { Stmts: []node.Node{}, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4196, + EndPos: 4199, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4196, + EndPos: 4198, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4196, + EndPos: 4198, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4196, + EndPos: 4198, + }, + Value: "foo", + }, + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4217, - EndPos: 4220, + StartPos: 4203, + EndPos: 4216, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4217, - EndPos: 4219, + StartPos: 4203, + EndPos: 4215, }, - Constant: &name.Name{ + Constant: &name.Relative{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4217, - EndPos: 4219, + StartPos: 4203, + EndPos: 4215, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4217, - EndPos: 4219, + StartPos: 4213, + EndPos: 4215, }, Value: "foo", }, @@ -9477,30 +9507,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4224, - EndPos: 4237, + StartPos: 4220, + EndPos: 4224, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4224, - EndPos: 4236, + StartPos: 4220, + EndPos: 4223, }, - Constant: &name.Relative{ + Constant: &name.FullyQualified{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4224, - EndPos: 4236, + StartPos: 4220, + EndPos: 4223, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4234, - EndPos: 4236, + StartPos: 4221, + EndPos: 4223, }, Value: "foo", }, @@ -9510,35 +9540,33 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4241, - EndPos: 4245, + StartLine: 196, + EndLine: 196, + StartPos: 4229, + EndPos: 4238, }, - Expr: &expr.ConstFetch{ + Expr: &expr.Empty{ Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4241, - EndPos: 4244, + StartLine: 196, + EndLine: 196, + StartPos: 4229, + EndPos: 4237, }, - Constant: &name.FullyQualified{ + Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4241, - EndPos: 4244, + StartLine: 196, + EndLine: 196, + StartPos: 4235, + EndPos: 4236, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4242, - EndPos: 4244, - }, - Value: "foo", + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4235, + EndPos: 4236, }, + Value: "a", }, }, }, @@ -9547,29 +9575,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4250, - EndPos: 4259, + StartPos: 4242, + EndPos: 4245, }, - Expr: &expr.Empty{ + Expr: &expr.ErrorSuppress{ Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4250, - EndPos: 4258, + StartPos: 4242, + EndPos: 4244, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4256, - EndPos: 4257, + StartPos: 4243, + EndPos: 4244, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4256, - EndPos: 4257, + StartPos: 4243, + EndPos: 4244, }, Value: "a", }, @@ -9580,29 +9608,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4263, - EndPos: 4266, + StartPos: 4249, + EndPos: 4257, }, - Expr: &expr.ErrorSuppress{ + Expr: &expr.Eval{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4263, - EndPos: 4265, + StartPos: 4249, + EndPos: 4256, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4264, - EndPos: 4265, + StartPos: 4254, + EndPos: 4255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4264, - EndPos: 4265, + StartPos: 4254, + EndPos: 4255, }, Value: "a", }, @@ -9613,49 +9641,50 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4270, - EndPos: 4278, + StartPos: 4261, + EndPos: 4265, }, - Expr: &expr.Eval{ + Expr: &expr.Exit{ Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4270, - EndPos: 4277, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 4275, - EndPos: 4276, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 4275, - EndPos: 4276, - }, - Value: "a", - }, + StartPos: 4261, + EndPos: 4264, }, + Die: false, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4282, - EndPos: 4286, + StartPos: 4269, + EndPos: 4277, }, Expr: &expr.Exit{ - Die: false, Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4282, - EndPos: 4285, + StartPos: 4269, + EndPos: 4276, + }, + Die: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4274, + EndPos: 4275, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4274, + EndPos: 4275, + }, + Value: "a", + }, }, }, }, @@ -9663,50 +9692,50 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4290, - EndPos: 4298, + StartPos: 4281, + EndPos: 4284, }, Expr: &expr.Exit{ - Die: false, Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4290, - EndPos: 4297, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 4295, - EndPos: 4296, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 4295, - EndPos: 4296, - }, - Value: "a", - }, + StartPos: 4281, + EndPos: 4283, }, + Die: true, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4302, - EndPos: 4305, + StartPos: 4288, + EndPos: 4295, }, Expr: &expr.Exit{ - Die: true, Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4302, - EndPos: 4304, + StartPos: 4288, + EndPos: 4294, + }, + Die: true, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4292, + EndPos: 4293, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4292, + EndPos: 4293, + }, + Value: "a", + }, }, }, }, @@ -9714,32 +9743,41 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4309, - EndPos: 4316, + StartPos: 4299, + EndPos: 4304, }, - Expr: &expr.Exit{ - Die: true, + Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4309, - EndPos: 4315, + StartPos: 4299, + EndPos: 4303, }, - Expr: &expr.Variable{ + Function: &name.Name{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4313, - EndPos: 4314, + StartPos: 4299, + EndPos: 4301, }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4313, - EndPos: 4314, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4299, + EndPos: 4301, + }, + Value: "foo", }, - Value: "a", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4302, + EndPos: 4303, }, }, }, @@ -9748,30 +9786,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4320, - EndPos: 4325, + StartPos: 4308, + EndPos: 4323, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4320, - EndPos: 4324, + StartPos: 4308, + EndPos: 4322, }, - Function: &name.Name{ + Function: &name.Relative{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4320, - EndPos: 4322, + StartPos: 4308, + EndPos: 4320, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4320, - EndPos: 4322, + StartPos: 4318, + EndPos: 4320, }, Value: "foo", }, @@ -9781,8 +9819,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4323, - EndPos: 4324, + StartPos: 4321, + EndPos: 4322, }, }, }, @@ -9791,30 +9829,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4329, - EndPos: 4344, + StartPos: 4327, + EndPos: 4333, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4329, - EndPos: 4343, + StartPos: 4327, + EndPos: 4332, }, - Function: &name.Relative{ + Function: &name.FullyQualified{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4329, - EndPos: 4341, + StartPos: 4327, + EndPos: 4330, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4339, - EndPos: 4341, + StartPos: 4328, + EndPos: 4330, }, Value: "foo", }, @@ -9824,8 +9862,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4342, - EndPos: 4343, + StartPos: 4331, + EndPos: 4332, }, }, }, @@ -9834,82 +9872,72 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4348, - EndPos: 4354, + StartPos: 4337, + EndPos: 4343, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4348, - EndPos: 4353, - }, - Function: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4348, - EndPos: 4351, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4349, - EndPos: 4351, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4352, - EndPos: 4353, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4358, - EndPos: 4364, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4358, - EndPos: 4363, + StartPos: 4337, + EndPos: 4342, }, Function: &expr.Variable{ Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4358, - EndPos: 4361, + StartLine: 206, + EndLine: 206, + StartPos: 4337, + EndPos: 4340, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4358, - EndPos: 4361, + StartLine: 206, + EndLine: 206, + StartPos: 4337, + EndPos: 4340, }, Value: "foo", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 207, - EndLine: 207, - StartPos: 4362, - EndPos: 4363, + StartLine: 206, + EndLine: 206, + StartPos: 4341, + EndPos: 4342, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4348, + EndPos: 4352, + }, + Expr: &expr.PostDec{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4348, + EndPos: 4351, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4348, + EndPos: 4349, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4348, + EndPos: 4349, + }, + Value: "a", }, }, }, @@ -9918,29 +9946,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4369, - EndPos: 4373, + StartPos: 4356, + EndPos: 4360, }, - Expr: &expr.PostDec{ + Expr: &expr.PostInc{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4369, - EndPos: 4372, + StartPos: 4356, + EndPos: 4359, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4369, - EndPos: 4370, + StartPos: 4356, + EndPos: 4357, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4369, - EndPos: 4370, + StartPos: 4356, + EndPos: 4357, }, Value: "a", }, @@ -9951,29 +9979,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4377, - EndPos: 4381, + StartPos: 4364, + EndPos: 4368, }, - Expr: &expr.PostInc{ + Expr: &expr.PreDec{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4377, - EndPos: 4380, + StartPos: 4364, + EndPos: 4367, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4377, - EndPos: 4378, + StartPos: 4366, + EndPos: 4367, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4377, - EndPos: 4378, + StartPos: 4366, + EndPos: 4367, }, Value: "a", }, @@ -9984,29 +10012,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4385, - EndPos: 4389, + StartPos: 4372, + EndPos: 4376, }, - Expr: &expr.PreDec{ + Expr: &expr.PreInc{ Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4385, - EndPos: 4388, + StartPos: 4372, + EndPos: 4375, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4387, - EndPos: 4388, + StartPos: 4374, + EndPos: 4375, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4387, - EndPos: 4388, + StartPos: 4374, + EndPos: 4375, }, Value: "a", }, @@ -10015,31 +10043,31 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4393, - EndPos: 4397, + StartLine: 213, + EndLine: 213, + StartPos: 4381, + EndPos: 4391, }, - Expr: &expr.PreInc{ + Expr: &expr.Include{ Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4393, - EndPos: 4396, + StartLine: 213, + EndLine: 213, + StartPos: 4381, + EndPos: 4390, }, - Variable: &expr.Variable{ + Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4395, - EndPos: 4396, + StartLine: 213, + EndLine: 213, + StartPos: 4389, + EndPos: 4390, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4395, - EndPos: 4396, + StartLine: 213, + EndLine: 213, + StartPos: 4389, + EndPos: 4390, }, Value: "a", }, @@ -10050,29 +10078,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4402, - EndPos: 4412, + StartPos: 4395, + EndPos: 4410, }, - Expr: &expr.Include{ + Expr: &expr.IncludeOnce{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4402, - EndPos: 4411, + StartPos: 4395, + EndPos: 4409, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4410, - EndPos: 4411, + StartPos: 4408, + EndPos: 4409, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4410, - EndPos: 4411, + StartPos: 4408, + EndPos: 4409, }, Value: "a", }, @@ -10083,29 +10111,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4416, - EndPos: 4431, + StartPos: 4414, + EndPos: 4424, }, - Expr: &expr.IncludeOnce{ + Expr: &expr.Require{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4416, - EndPos: 4430, + StartPos: 4414, + EndPos: 4423, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4429, - EndPos: 4430, + StartPos: 4422, + EndPos: 4423, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4429, - EndPos: 4430, + StartPos: 4422, + EndPos: 4423, }, Value: "a", }, @@ -10116,29 +10144,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4435, - EndPos: 4445, + StartPos: 4428, + EndPos: 4443, }, - Expr: &expr.Require{ + Expr: &expr.RequireOnce{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4435, - EndPos: 4444, + StartPos: 4428, + EndPos: 4442, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4443, - EndPos: 4444, + StartPos: 4441, + EndPos: 4442, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4443, - EndPos: 4444, + StartPos: 4441, + EndPos: 4442, }, Value: "a", }, @@ -10147,35 +10175,54 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4449, - EndPos: 4464, + StartLine: 218, + EndLine: 218, + StartPos: 4448, + EndPos: 4465, }, - Expr: &expr.RequireOnce{ + Expr: &expr.InstanceOf{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4449, - EndPos: 4463, + StartLine: 218, + EndLine: 218, + StartPos: 4448, + EndPos: 4464, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4462, - EndPos: 4463, + StartLine: 218, + EndLine: 218, + StartPos: 4448, + EndPos: 4449, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4462, - EndPos: 4463, + StartLine: 218, + EndLine: 218, + StartPos: 4448, + EndPos: 4449, }, Value: "a", }, }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4462, + EndPos: 4464, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4462, + EndPos: 4464, + }, + Value: "Foo", + }, + }, + }, }, }, &stmt.Expression{ @@ -10183,14 +10230,14 @@ func TestPhp7(t *testing.T) { StartLine: 219, EndLine: 219, StartPos: 4469, - EndPos: 4486, + EndPos: 4496, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 219, EndLine: 219, StartPos: 4469, - EndPos: 4485, + EndPos: 4495, }, Expr: &expr.Variable{ Position: &position.Position{ @@ -10209,20 +10256,20 @@ func TestPhp7(t *testing.T) { Value: "a", }, }, - Class: &name.Name{ + Class: &name.Relative{ Position: &position.Position{ StartLine: 219, EndLine: 219, StartPos: 4483, - EndPos: 4485, + EndPos: 4495, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4483, - EndPos: 4485, + StartPos: 4493, + EndPos: 4495, }, Value: "Foo", }, @@ -10234,99 +10281,47 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4490, - EndPos: 4517, + StartPos: 4500, + EndPos: 4518, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4490, - EndPos: 4516, + StartPos: 4500, + EndPos: 4517, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4490, - EndPos: 4491, + StartPos: 4500, + EndPos: 4501, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4490, - EndPos: 4491, - }, - Value: "a", - }, - }, - Class: &name.Relative{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4504, - EndPos: 4516, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4514, - EndPos: 4516, - }, - Value: "Foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4521, - EndPos: 4539, - }, - Expr: &expr.InstanceOf{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4521, - EndPos: 4538, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4521, - EndPos: 4522, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4521, - EndPos: 4522, + StartPos: 4500, + EndPos: 4501, }, Value: "a", }, }, Class: &name.FullyQualified{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4535, - EndPos: 4538, + StartLine: 220, + EndLine: 220, + StartPos: 4514, + EndPos: 4517, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4536, - EndPos: 4538, + StartLine: 220, + EndLine: 220, + StartPos: 4515, + EndPos: 4517, }, Value: "Foo", }, @@ -10336,49 +10331,49 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4544, - EndPos: 4557, + StartLine: 222, + EndLine: 222, + StartPos: 4523, + EndPos: 4536, }, Expr: &expr.Isset{ Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4544, - EndPos: 4556, + StartLine: 222, + EndLine: 222, + StartPos: 4523, + EndPos: 4535, }, Variables: []node.Node{ &expr.Variable{ Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4550, - EndPos: 4551, + StartLine: 222, + EndLine: 222, + StartPos: 4529, + EndPos: 4530, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4550, - EndPos: 4551, + StartLine: 222, + EndLine: 222, + StartPos: 4529, + EndPos: 4530, }, Value: "a", }, }, &expr.Variable{ Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4554, - EndPos: 4555, + StartLine: 222, + EndLine: 222, + StartPos: 4533, + EndPos: 4534, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4554, - EndPos: 4555, + StartLine: 222, + EndLine: 222, + StartPos: 4533, + EndPos: 4534, }, Value: "b", }, @@ -10388,46 +10383,46 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4574, + StartLine: 223, + EndLine: 223, + StartPos: 4540, + EndPos: 4553, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4573, + StartLine: 223, + EndLine: 223, + StartPos: 4540, + EndPos: 4552, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4568, + StartLine: 223, + EndLine: 223, + StartPos: 4540, + EndPos: 4547, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4566, - EndPos: 4567, + StartLine: 223, + EndLine: 223, + StartPos: 4545, + EndPos: 4546, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4566, - EndPos: 4567, + StartLine: 223, + EndLine: 223, + StartPos: 4545, + EndPos: 4546, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4566, - EndPos: 4567, + StartLine: 223, + EndLine: 223, + StartPos: 4545, + EndPos: 4546, }, Value: "a", }, @@ -10437,17 +10432,17 @@ func TestPhp7(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4572, - EndPos: 4573, + StartLine: 223, + EndLine: 223, + StartPos: 4551, + EndPos: 4552, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4572, - EndPos: 4573, + StartLine: 223, + EndLine: 223, + StartPos: 4551, + EndPos: 4552, }, Value: "b", }, @@ -10456,53 +10451,53 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4578, - EndPos: 4593, + StartLine: 224, + EndLine: 224, + StartPos: 4557, + EndPos: 4572, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4578, - EndPos: 4592, + StartLine: 224, + EndLine: 224, + StartPos: 4557, + EndPos: 4571, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4578, - EndPos: 4587, + StartLine: 224, + EndLine: 224, + StartPos: 4557, + EndPos: 4566, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4583, - EndPos: 4586, + StartLine: 224, + EndLine: 224, + StartPos: 4562, + EndPos: 4565, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4583, - EndPos: 4586, + StartLine: 224, + EndLine: 224, + StartPos: 4562, + EndPos: 4565, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4583, - EndPos: 4584, + StartLine: 224, + EndLine: 224, + StartPos: 4562, + EndPos: 4563, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4583, - EndPos: 4584, + StartLine: 224, + EndLine: 224, + StartPos: 4562, + EndPos: 4563, }, Value: "a", }, @@ -10513,17 +10508,17 @@ func TestPhp7(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4591, - EndPos: 4592, + StartLine: 224, + EndLine: 224, + StartPos: 4570, + EndPos: 4571, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4591, - EndPos: 4592, + StartLine: 224, + EndLine: 224, + StartPos: 4570, + EndPos: 4571, }, Value: "b", }, @@ -10532,61 +10527,61 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4597, - EndPos: 4616, + StartLine: 225, + EndLine: 225, + StartPos: 4576, + EndPos: 4595, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4597, - EndPos: 4615, + StartLine: 225, + EndLine: 225, + StartPos: 4576, + EndPos: 4594, }, Variable: &expr.List{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4597, - EndPos: 4610, + StartLine: 225, + EndLine: 225, + StartPos: 4576, + EndPos: 4589, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4602, - EndPos: 4609, + StartLine: 225, + EndLine: 225, + StartPos: 4581, + EndPos: 4588, }, Val: &expr.List{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4602, - EndPos: 4609, + StartLine: 225, + EndLine: 225, + StartPos: 4581, + EndPos: 4588, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4607, - EndPos: 4608, + StartLine: 225, + EndLine: 225, + StartPos: 4586, + EndPos: 4587, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4607, - EndPos: 4608, + StartLine: 225, + EndLine: 225, + StartPos: 4586, + EndPos: 4587, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4607, - EndPos: 4608, + StartLine: 225, + EndLine: 225, + StartPos: 4586, + EndPos: 4587, }, Value: "a", }, @@ -10599,17 +10594,17 @@ func TestPhp7(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4614, - EndPos: 4615, + StartLine: 225, + EndLine: 225, + StartPos: 4593, + EndPos: 4594, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4614, - EndPos: 4615, + StartLine: 225, + EndLine: 225, + StartPos: 4593, + EndPos: 4594, }, Value: "b", }, @@ -10618,50 +10613,93 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4621, - EndPos: 4630, + StartLine: 227, + EndLine: 227, + StartPos: 4600, + EndPos: 4609, }, Expr: &expr.MethodCall{ Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4621, - EndPos: 4629, + StartLine: 227, + EndLine: 227, + StartPos: 4600, + EndPos: 4608, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4621, - EndPos: 4622, + StartLine: 227, + EndLine: 227, + StartPos: 4600, + EndPos: 4601, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4621, - EndPos: 4622, + StartLine: 227, + EndLine: 227, + StartPos: 4600, + EndPos: 4601, }, Value: "a", }, }, Method: &node.Identifier{ Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4625, - EndPos: 4627, + StartLine: 227, + EndLine: 227, + StartPos: 4604, + EndPos: 4606, }, Value: "foo", }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4607, + EndPos: 4608, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4613, + EndPos: 4622, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4613, + EndPos: 4621, + }, + Class: &name.Name{ Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4628, - EndPos: 4629, + StartPos: 4617, + EndPos: 4619, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4617, + EndPos: 4619, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4620, + EndPos: 4621, }, }, }, @@ -10670,30 +10708,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4634, - EndPos: 4643, + StartPos: 4626, + EndPos: 4645, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4634, - EndPos: 4642, + StartPos: 4626, + EndPos: 4644, }, - Class: &name.Name{ + Class: &name.Relative{ Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4638, - EndPos: 4640, + StartPos: 4630, + EndPos: 4642, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4638, - EndPos: 4640, + StartPos: 4640, + EndPos: 4642, }, Value: "Foo", }, @@ -10703,8 +10741,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4641, - EndPos: 4642, + StartPos: 4643, + EndPos: 4644, }, }, }, @@ -10713,30 +10751,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4647, - EndPos: 4666, + StartPos: 4649, + EndPos: 4659, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4647, - EndPos: 4665, + StartPos: 4649, + EndPos: 4658, }, - Class: &name.Relative{ + Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4651, - EndPos: 4663, + StartPos: 4653, + EndPos: 4656, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4661, - EndPos: 4663, + StartPos: 4654, + EndPos: 4656, }, Value: "Foo", }, @@ -10746,8 +10784,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4664, - EndPos: 4665, + StartPos: 4657, + EndPos: 4658, }, }, }, @@ -10756,97 +10794,54 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4670, - EndPos: 4680, + StartPos: 4663, + EndPos: 4687, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4670, - EndPos: 4679, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4674, - EndPos: 4677, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4675, - EndPos: 4677, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4678, - EndPos: 4679, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4684, - EndPos: 4708, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4684, - EndPos: 4707, + StartPos: 4663, + EndPos: 4686, }, Class: &stmt.Class{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4688, - EndPos: 4707, + StartLine: 231, + EndLine: 231, + StartPos: 4667, + EndPos: 4686, }, PhpDocComment: "", ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4694, - EndPos: 4704, + StartLine: 231, + EndLine: 231, + StartPos: 4673, + EndPos: 4683, }, Arguments: []node.Node{ &node.Argument{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4695, - EndPos: 4696, + StartLine: 231, + EndLine: 231, + StartPos: 4674, + EndPos: 4675, }, Variadic: false, IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4695, - EndPos: 4696, + StartLine: 231, + EndLine: 231, + StartPos: 4674, + EndPos: 4675, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4695, - EndPos: 4696, + StartLine: 231, + EndLine: 231, + StartPos: 4674, + EndPos: 4675, }, Value: "a", }, @@ -10854,26 +10849,26 @@ func TestPhp7(t *testing.T) { }, &node.Argument{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4699, - EndPos: 4703, + StartLine: 231, + EndLine: 231, + StartPos: 4678, + EndPos: 4682, }, - Variadic: true, IsReference: false, + Variadic: true, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4702, - EndPos: 4703, + StartLine: 231, + EndLine: 231, + StartPos: 4681, + EndPos: 4682, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4702, - EndPos: 4703, + StartLine: 231, + EndLine: 231, + StartPos: 4681, + EndPos: 4682, }, Value: "b", }, @@ -10887,31 +10882,31 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4712, - EndPos: 4721, + StartLine: 232, + EndLine: 232, + StartPos: 4691, + EndPos: 4700, }, Expr: &expr.Print{ Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4712, - EndPos: 4719, + StartLine: 232, + EndLine: 232, + StartPos: 4691, + EndPos: 4698, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4718, - EndPos: 4719, + StartLine: 232, + EndLine: 232, + StartPos: 4697, + EndPos: 4698, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4718, - EndPos: 4719, + StartLine: 232, + EndLine: 232, + StartPos: 4697, + EndPos: 4698, }, Value: "a", }, @@ -10920,41 +10915,41 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4725, - EndPos: 4732, + StartLine: 233, + EndLine: 233, + StartPos: 4704, + EndPos: 4711, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4725, - EndPos: 4731, + StartLine: 233, + EndLine: 233, + StartPos: 4704, + EndPos: 4710, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4725, - EndPos: 4726, + StartLine: 233, + EndLine: 233, + StartPos: 4704, + EndPos: 4705, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4725, - EndPos: 4726, + StartLine: 233, + EndLine: 233, + StartPos: 4704, + EndPos: 4705, }, Value: "a", }, }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4729, - EndPos: 4731, + StartLine: 233, + EndLine: 233, + StartPos: 4708, + EndPos: 4710, }, Value: "foo", }, @@ -10962,41 +10957,41 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4736, - EndPos: 4744, + StartLine: 234, + EndLine: 234, + StartPos: 4715, + EndPos: 4723, }, Expr: &expr.ShellExec{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4736, - EndPos: 4743, + StartLine: 234, + EndLine: 234, + StartPos: 4715, + EndPos: 4722, }, Parts: []node.Node{ &scalar.EncapsedStringPart{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4737, - EndPos: 4740, + StartLine: 234, + EndLine: 234, + StartPos: 4716, + EndPos: 4719, }, Value: "cmd ", }, &expr.Variable{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4741, - EndPos: 4742, + StartLine: 234, + EndLine: 234, + StartPos: 4720, + EndPos: 4721, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4741, - EndPos: 4742, + StartLine: 234, + EndLine: 234, + StartPos: 4720, + EndPos: 4721, }, Value: "a", }, @@ -11006,17 +11001,17 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4748, - EndPos: 4753, + StartLine: 235, + EndLine: 235, + StartPos: 4727, + EndPos: 4732, }, Expr: &expr.ShellExec{ Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4748, - EndPos: 4752, + StartLine: 235, + EndLine: 235, + StartPos: 4727, + EndPos: 4731, }, Parts: []node.Node{ &scalar.EncapsedStringPart{ @@ -11027,66 +11022,66 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4757, - EndPos: 4759, + StartLine: 236, + EndLine: 236, + StartPos: 4736, + EndPos: 4738, }, Expr: &expr.ShellExec{ Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4757, - EndPos: 4758, + StartLine: 236, + EndLine: 236, + StartPos: 4736, + EndPos: 4737, }, Parts: []node.Node{}, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4763, - EndPos: 4765, + StartLine: 237, + EndLine: 237, + StartPos: 4742, + EndPos: 4744, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4763, - EndPos: 4764, + StartLine: 237, + EndLine: 237, + StartPos: 4742, + EndPos: 4743, }, Items: []node.Node{}, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4769, - EndPos: 4772, + StartLine: 238, + EndLine: 238, + StartPos: 4748, + EndPos: 4751, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4769, - EndPos: 4771, + StartLine: 238, + EndLine: 238, + StartPos: 4748, + EndPos: 4750, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4770, - EndPos: 4770, + StartLine: 238, + EndLine: 238, + StartPos: 4749, + EndPos: 4749, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4770, - EndPos: 4770, + StartLine: 238, + EndLine: 238, + StartPos: 4749, + EndPos: 4749, }, Value: "1", }, @@ -11096,72 +11091,72 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4776, - EndPos: 4788, + StartLine: 239, + EndLine: 239, + StartPos: 4755, + EndPos: 4767, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4776, - EndPos: 4787, + StartLine: 239, + EndLine: 239, + StartPos: 4755, + EndPos: 4766, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4777, - EndPos: 4780, + StartLine: 239, + EndLine: 239, + StartPos: 4756, + EndPos: 4759, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4777, - EndPos: 4777, + StartLine: 239, + EndLine: 239, + StartPos: 4756, + EndPos: 4756, }, Value: "1", }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4780, - EndPos: 4780, + StartLine: 239, + EndLine: 239, + StartPos: 4759, + EndPos: 4759, }, Value: "1", }, }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4783, - EndPos: 4785, + StartLine: 239, + EndLine: 239, + StartPos: 4762, + EndPos: 4764, }, Val: &expr.Reference{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4783, - EndPos: 4785, + StartLine: 239, + EndLine: 239, + StartPos: 4762, + EndPos: 4764, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4784, - EndPos: 4785, + StartLine: 239, + EndLine: 239, + StartPos: 4763, + EndPos: 4764, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4784, - EndPos: 4785, + StartLine: 239, + EndLine: 239, + StartPos: 4763, + EndPos: 4764, }, Value: "b", }, @@ -11174,46 +11169,46 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4793, - EndPos: 4802, + StartLine: 241, + EndLine: 241, + StartPos: 4772, + EndPos: 4781, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4793, - EndPos: 4801, + StartLine: 241, + EndLine: 241, + StartPos: 4772, + EndPos: 4780, }, Variable: &expr.ShortList{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4793, - EndPos: 4796, + StartLine: 241, + EndLine: 241, + StartPos: 4772, + EndPos: 4775, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4794, - EndPos: 4795, + StartLine: 241, + EndLine: 241, + StartPos: 4773, + EndPos: 4774, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4794, - EndPos: 4795, + StartLine: 241, + EndLine: 241, + StartPos: 4773, + EndPos: 4774, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4794, - EndPos: 4795, + StartLine: 241, + EndLine: 241, + StartPos: 4773, + EndPos: 4774, }, Value: "a", }, @@ -11223,17 +11218,17 @@ func TestPhp7(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4800, - EndPos: 4801, + StartLine: 241, + EndLine: 241, + StartPos: 4779, + EndPos: 4780, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4800, - EndPos: 4801, + StartLine: 241, + EndLine: 241, + StartPos: 4779, + EndPos: 4780, }, Value: "b", }, @@ -11242,53 +11237,53 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4806, - EndPos: 4817, + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4796, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4806, - EndPos: 4816, + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4795, }, Variable: &expr.ShortList{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4806, - EndPos: 4811, + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4790, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4807, - EndPos: 4810, + StartLine: 242, + EndLine: 242, + StartPos: 4786, + EndPos: 4789, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4807, - EndPos: 4810, + StartLine: 242, + EndLine: 242, + StartPos: 4786, + EndPos: 4789, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4807, - EndPos: 4808, + StartLine: 242, + EndLine: 242, + StartPos: 4786, + EndPos: 4787, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4807, - EndPos: 4808, + StartLine: 242, + EndLine: 242, + StartPos: 4786, + EndPos: 4787, }, Value: "a", }, @@ -11299,17 +11294,17 @@ func TestPhp7(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4815, - EndPos: 4816, + StartLine: 242, + EndLine: 242, + StartPos: 4794, + EndPos: 4795, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4815, - EndPos: 4816, + StartLine: 242, + EndLine: 242, + StartPos: 4794, + EndPos: 4795, }, Value: "b", }, @@ -11318,61 +11313,61 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4821, - EndPos: 4836, + StartLine: 243, + EndLine: 243, + StartPos: 4800, + EndPos: 4815, }, Expr: &assign.Assign{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4821, - EndPos: 4835, + StartLine: 243, + EndLine: 243, + StartPos: 4800, + EndPos: 4814, }, Variable: &expr.ShortList{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4821, - EndPos: 4830, + StartLine: 243, + EndLine: 243, + StartPos: 4800, + EndPos: 4809, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4822, - EndPos: 4829, + StartLine: 243, + EndLine: 243, + StartPos: 4801, + EndPos: 4808, }, Val: &expr.List{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4822, - EndPos: 4829, + StartLine: 243, + EndLine: 243, + StartPos: 4801, + EndPos: 4808, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4827, - EndPos: 4828, + StartLine: 243, + EndLine: 243, + StartPos: 4806, + EndPos: 4807, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4827, - EndPos: 4828, + StartLine: 243, + EndLine: 243, + StartPos: 4806, + EndPos: 4807, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4827, - EndPos: 4828, + StartLine: 243, + EndLine: 243, + StartPos: 4806, + EndPos: 4807, }, Value: "a", }, @@ -11385,51 +11380,103 @@ func TestPhp7(t *testing.T) { }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4834, - EndPos: 4835, + StartLine: 243, + EndLine: 243, + StartPos: 4813, + EndPos: 4814, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4834, - EndPos: 4835, + StartLine: 243, + EndLine: 243, + StartPos: 4813, + EndPos: 4814, }, Value: "b", }, }, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4819, + EndPos: 4829, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4819, + EndPos: 4828, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4819, + EndPos: 4821, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4819, + EndPos: 4821, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4824, + EndPos: 4826, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4827, + EndPos: 4828, + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4840, - EndPos: 4850, + StartPos: 4833, + EndPos: 4853, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4840, - EndPos: 4849, + StartPos: 4833, + EndPos: 4852, }, - Class: &name.Name{ + Class: &name.Relative{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4840, - EndPos: 4842, + StartPos: 4833, + EndPos: 4845, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4840, - EndPos: 4842, + StartPos: 4843, + EndPos: 4845, }, Value: "Foo", }, @@ -11439,8 +11486,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4845, - EndPos: 4847, + StartPos: 4848, + EndPos: 4850, }, Value: "bar", }, @@ -11448,8 +11495,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4848, - EndPos: 4849, + StartPos: 4851, + EndPos: 4852, }, }, }, @@ -11458,30 +11505,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4854, - EndPos: 4874, + StartPos: 4857, + EndPos: 4868, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4854, - EndPos: 4873, + StartPos: 4857, + EndPos: 4867, }, - Class: &name.Relative{ + Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4854, - EndPos: 4866, + StartPos: 4857, + EndPos: 4860, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4864, - EndPos: 4866, + StartPos: 4858, + EndPos: 4860, }, Value: "Foo", }, @@ -11491,8 +11538,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4869, - EndPos: 4871, + StartPos: 4863, + EndPos: 4865, }, Value: "bar", }, @@ -11500,8 +11547,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4872, - EndPos: 4873, + StartPos: 4866, + EndPos: 4867, }, }, }, @@ -11510,50 +11557,50 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4878, - EndPos: 4889, + StartPos: 4872, + EndPos: 4881, }, - Expr: &expr.StaticCall{ + Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4878, - EndPos: 4888, + StartPos: 4872, + EndPos: 4880, }, - Class: &name.FullyQualified{ + Class: &name.Name{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4878, - EndPos: 4881, + StartPos: 4872, + EndPos: 4874, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4879, - EndPos: 4881, + StartPos: 4872, + EndPos: 4874, }, Value: "Foo", }, }, }, - Call: &node.Identifier{ + Property: &expr.Variable{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4884, - EndPos: 4886, + StartPos: 4877, + EndPos: 4880, }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4887, - EndPos: 4888, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4877, + EndPos: 4880, + }, + Value: "bar", }, }, }, @@ -11562,48 +11609,46 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4893, - EndPos: 4902, + StartPos: 4885, + EndPos: 4895, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4893, - EndPos: 4901, + StartPos: 4885, + EndPos: 4894, }, - Class: &name.Name{ + Class: &expr.Variable{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4893, - EndPos: 4895, + StartPos: 4885, + EndPos: 4888, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4893, - EndPos: 4895, - }, - Value: "Foo", + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4885, + EndPos: 4888, }, + Value: "foo", }, }, Property: &expr.Variable{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4898, - EndPos: 4901, + StartPos: 4891, + EndPos: 4894, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4898, - EndPos: 4901, + StartPos: 4891, + EndPos: 4894, }, Value: "bar", }, @@ -11614,46 +11659,48 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4906, - EndPos: 4916, + StartPos: 4899, + EndPos: 4918, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4906, - EndPos: 4915, + StartPos: 4899, + EndPos: 4917, }, - Class: &expr.Variable{ + Class: &name.Relative{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4906, - EndPos: 4909, + StartPos: 4899, + EndPos: 4911, }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4906, - EndPos: 4909, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4909, + EndPos: 4911, + }, + Value: "Foo", }, - Value: "foo", }, }, Property: &expr.Variable{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4912, - EndPos: 4915, + StartPos: 4914, + EndPos: 4917, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4912, - EndPos: 4915, + StartPos: 4914, + EndPos: 4917, }, Value: "bar", }, @@ -11664,30 +11711,30 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, - EndPos: 4939, + StartPos: 4922, + EndPos: 4932, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, - EndPos: 4938, + StartPos: 4922, + EndPos: 4931, }, - Class: &name.Relative{ + Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, - EndPos: 4932, + StartPos: 4922, + EndPos: 4925, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4930, - EndPos: 4932, + StartPos: 4923, + EndPos: 4925, }, Value: "Foo", }, @@ -11697,15 +11744,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4935, - EndPos: 4938, + StartPos: 4928, + EndPos: 4931, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4935, - EndPos: 4938, + StartPos: 4928, + EndPos: 4931, }, Value: "bar", }, @@ -11716,50 +11763,65 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4943, - EndPos: 4953, + StartPos: 4936, + EndPos: 4948, }, - Expr: &expr.StaticPropertyFetch{ + Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4943, - EndPos: 4952, + StartPos: 4936, + EndPos: 4947, }, - Class: &name.FullyQualified{ + Condition: &expr.Variable{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4943, - EndPos: 4946, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4944, - EndPos: 4946, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4949, - EndPos: 4952, + StartPos: 4936, + EndPos: 4937, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4949, - EndPos: 4952, + StartPos: 4936, + EndPos: 4937, }, - Value: "bar", + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4941, + EndPos: 4942, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4941, + EndPos: 4942, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4946, + EndPos: 4947, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4946, + EndPos: 4947, + }, + Value: "c", }, }, }, @@ -11768,63 +11830,46 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4957, - EndPos: 4969, + StartPos: 4952, + EndPos: 4961, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4957, - EndPos: 4968, + StartPos: 4952, + EndPos: 4960, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4957, - EndPos: 4958, + StartPos: 4952, + EndPos: 4953, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4957, - EndPos: 4958, + StartPos: 4952, + EndPos: 4953, }, Value: "a", }, }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4962, - EndPos: 4963, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4962, - EndPos: 4963, - }, - Value: "b", - }, - }, IfFalse: &expr.Variable{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4967, - EndPos: 4968, + StartPos: 4959, + EndPos: 4960, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4967, - EndPos: 4968, + StartPos: 4959, + EndPos: 4960, }, Value: "c", }, @@ -11835,48 +11880,107 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4973, - EndPos: 4982, + StartPos: 4965, + EndPos: 4987, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4973, - EndPos: 4981, + StartPos: 4965, + EndPos: 4986, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4973, - EndPos: 4974, + StartPos: 4965, + EndPos: 4966, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4973, - EndPos: 4974, + StartPos: 4965, + EndPos: 4966, }, Value: "a", }, }, - IfFalse: &expr.Variable{ + IfTrue: &expr.Ternary{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4980, + StartPos: 4970, EndPos: 4981, }, - VarName: &node.Identifier{ + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4970, + EndPos: 4971, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4970, + EndPos: 4971, + }, + Value: "b", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4975, + EndPos: 4976, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4975, + EndPos: 4976, + }, + Value: "c", + }, + }, + IfFalse: &expr.Variable{ Position: &position.Position{ StartLine: 253, EndLine: 253, StartPos: 4980, EndPos: 4981, }, - Value: "c", + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4980, + EndPos: 4981, + }, + Value: "d", + }, + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4985, + EndPos: 4986, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4985, + EndPos: 4986, + }, + Value: "e", }, }, }, @@ -11885,34 +11989,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4986, - EndPos: 5008, + StartPos: 4991, + EndPos: 5013, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4986, - EndPos: 5007, + StartPos: 4991, + EndPos: 5012, }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4986, - EndPos: 4987, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4986, - EndPos: 4987, - }, - Value: "a", - }, - }, - IfTrue: &expr.Ternary{ + Condition: &expr.Ternary{ Position: &position.Position{ StartLine: 254, EndLine: 254, @@ -11933,7 +12020,7 @@ func TestPhp7(t *testing.T) { StartPos: 4991, EndPos: 4992, }, - Value: "b", + Value: "a", }, }, IfTrue: &expr.Variable{ @@ -11950,7 +12037,7 @@ func TestPhp7(t *testing.T) { StartPos: 4996, EndPos: 4997, }, - Value: "c", + Value: "b", }, }, IfFalse: &expr.Variable{ @@ -11967,11 +12054,11 @@ func TestPhp7(t *testing.T) { StartPos: 5001, EndPos: 5002, }, - Value: "d", + Value: "c", }, }, }, - IfFalse: &expr.Variable{ + IfTrue: &expr.Variable{ Position: &position.Position{ StartLine: 254, EndLine: 254, @@ -11985,6 +12072,23 @@ func TestPhp7(t *testing.T) { StartPos: 5006, EndPos: 5007, }, + Value: "d", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5011, + EndPos: 5012, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5011, + EndPos: 5012, + }, Value: "e", }, }, @@ -11994,107 +12098,31 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5012, - EndPos: 5034, + StartPos: 5017, + EndPos: 5020, }, - Expr: &expr.Ternary{ + Expr: &expr.UnaryMinus{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5012, - EndPos: 5033, + StartPos: 5017, + EndPos: 5019, }, - Condition: &expr.Ternary{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5012, - EndPos: 5023, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5012, - EndPos: 5013, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5012, - EndPos: 5013, - }, - Value: "a", - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5017, - EndPos: 5018, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5017, - EndPos: 5018, - }, - Value: "b", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5022, - EndPos: 5023, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5022, - EndPos: 5023, - }, - Value: "c", - }, - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5027, - EndPos: 5028, + StartPos: 5018, + EndPos: 5019, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5027, - EndPos: 5028, + StartPos: 5018, + EndPos: 5019, }, - Value: "d", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5032, - EndPos: 5033, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5032, - EndPos: 5033, - }, - Value: "e", + Value: "a", }, }, }, @@ -12103,29 +12131,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5038, - EndPos: 5041, + StartPos: 5024, + EndPos: 5027, }, - Expr: &expr.UnaryMinus{ + Expr: &expr.UnaryPlus{ Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5038, - EndPos: 5040, + StartPos: 5024, + EndPos: 5026, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5039, - EndPos: 5040, + StartPos: 5025, + EndPos: 5026, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5039, - EndPos: 5040, + StartPos: 5025, + EndPos: 5026, }, Value: "a", }, @@ -12136,29 +12164,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5045, - EndPos: 5048, + StartPos: 5031, + EndPos: 5034, }, - Expr: &expr.UnaryPlus{ + Expr: &expr.Variable{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5045, - EndPos: 5047, + StartPos: 5031, + EndPos: 5033, }, - Expr: &expr.Variable{ + VarName: &expr.Variable{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5046, - EndPos: 5047, + StartPos: 5032, + EndPos: 5033, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5046, - EndPos: 5047, + StartPos: 5032, + EndPos: 5033, }, Value: "a", }, @@ -12169,27 +12197,43 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5052, - EndPos: 5055, + StartPos: 5038, + EndPos: 5043, }, - Expr: &expr.Variable{ + Expr: &expr.Yield{ Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5052, + StartPos: 5038, + EndPos: 5042, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5047, + EndPos: 5055, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5047, EndPos: 5054, }, - VarName: &expr.Variable{ + Value: &expr.Variable{ Position: &position.Position{ - StartLine: 258, - EndLine: 258, + StartLine: 259, + EndLine: 259, StartPos: 5053, EndPos: 5054, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 258, - EndLine: 258, + StartLine: 259, + EndLine: 259, StartPos: 5053, EndPos: 5054, }, @@ -12198,99 +12242,50 @@ func TestPhp7(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5059, - EndPos: 5064, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5059, - EndPos: 5063, - }, - }, - }, &stmt.Expression{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5068, - EndPos: 5076, + StartPos: 5059, + EndPos: 5073, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5068, - EndPos: 5075, + StartPos: 5059, + EndPos: 5072, }, - Value: &expr.Variable{ + Key: &expr.Variable{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5074, - EndPos: 5075, + StartPos: 5065, + EndPos: 5066, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5074, - EndPos: 5075, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5080, - EndPos: 5094, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5080, - EndPos: 5093, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5086, - EndPos: 5087, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5086, - EndPos: 5087, + StartPos: 5065, + EndPos: 5066, }, Value: "a", }, }, Value: &expr.Variable{ Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5092, - EndPos: 5093, + StartLine: 260, + EndLine: 260, + StartPos: 5071, + EndPos: 5072, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5092, - EndPos: 5093, + StartLine: 260, + EndLine: 260, + StartPos: 5071, + EndPos: 5072, }, Value: "b", }, @@ -12299,31 +12294,64 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 5098, - EndPos: 5111, + StartLine: 261, + EndLine: 261, + StartPos: 5077, + EndPos: 5090, }, Expr: &expr.YieldFrom{ Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 5098, - EndPos: 5110, + StartLine: 261, + EndLine: 261, + StartPos: 5077, + EndPos: 5089, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 5109, - EndPos: 5110, + StartLine: 261, + EndLine: 261, + StartPos: 5088, + EndPos: 5089, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 5109, - EndPos: 5110, + StartLine: 261, + EndLine: 261, + StartPos: 5088, + EndPos: 5089, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5097, + EndPos: 5106, + }, + Expr: &cast.Array{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5097, + EndPos: 5105, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5104, + EndPos: 5105, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5104, + EndPos: 5105, }, Value: "a", }, @@ -12334,29 +12362,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5118, - EndPos: 5127, + StartPos: 5110, + EndPos: 5121, }, - Expr: &cast.Array{ + Expr: &cast.Bool{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5118, - EndPos: 5126, + StartPos: 5110, + EndPos: 5120, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5125, - EndPos: 5126, + StartPos: 5119, + EndPos: 5120, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5125, - EndPos: 5126, + StartPos: 5119, + EndPos: 5120, }, Value: "a", }, @@ -12367,29 +12395,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5131, - EndPos: 5142, + StartPos: 5125, + EndPos: 5133, }, Expr: &cast.Bool{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5131, - EndPos: 5141, + StartPos: 5125, + EndPos: 5132, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5140, - EndPos: 5141, + StartPos: 5131, + EndPos: 5132, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5140, - EndPos: 5141, + StartPos: 5131, + EndPos: 5132, }, Value: "a", }, @@ -12400,29 +12428,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5146, - EndPos: 5154, + StartPos: 5137, + EndPos: 5147, }, - Expr: &cast.Bool{ + Expr: &cast.Double{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5146, - EndPos: 5153, + StartPos: 5137, + EndPos: 5146, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5152, - EndPos: 5153, + StartPos: 5145, + EndPos: 5146, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5152, - EndPos: 5153, + StartPos: 5145, + EndPos: 5146, }, Value: "a", }, @@ -12433,29 +12461,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5158, - EndPos: 5168, + StartPos: 5151, + EndPos: 5160, }, Expr: &cast.Double{ Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5158, - EndPos: 5167, + StartPos: 5151, + EndPos: 5159, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5166, - EndPos: 5167, + StartPos: 5158, + EndPos: 5159, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5166, - EndPos: 5167, + StartPos: 5158, + EndPos: 5159, }, Value: "a", }, @@ -12466,29 +12494,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5172, - EndPos: 5181, + StartPos: 5164, + EndPos: 5175, }, - Expr: &cast.Double{ + Expr: &cast.Int{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5172, - EndPos: 5180, + StartPos: 5164, + EndPos: 5174, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5179, - EndPos: 5180, + StartPos: 5173, + EndPos: 5174, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5179, - EndPos: 5180, + StartPos: 5173, + EndPos: 5174, }, Value: "a", }, @@ -12499,29 +12527,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5185, - EndPos: 5196, + StartPos: 5179, + EndPos: 5186, }, Expr: &cast.Int{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5185, - EndPos: 5195, + StartPos: 5179, + EndPos: 5185, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5194, - EndPos: 5195, + StartPos: 5184, + EndPos: 5185, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5194, - EndPos: 5195, + StartPos: 5184, + EndPos: 5185, }, Value: "a", }, @@ -12532,29 +12560,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5200, - EndPos: 5207, + StartPos: 5190, + EndPos: 5200, }, - Expr: &cast.Int{ + Expr: &cast.Object{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5200, - EndPos: 5206, + StartPos: 5190, + EndPos: 5199, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5205, - EndPos: 5206, + StartPos: 5198, + EndPos: 5199, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5205, - EndPos: 5206, + StartPos: 5198, + EndPos: 5199, }, Value: "a", }, @@ -12565,29 +12593,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5211, - EndPos: 5221, + StartPos: 5204, + EndPos: 5214, }, - Expr: &cast.Object{ + Expr: &cast.String{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5211, - EndPos: 5220, + StartPos: 5204, + EndPos: 5213, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5219, - EndPos: 5220, + StartPos: 5212, + EndPos: 5213, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5219, - EndPos: 5220, + StartPos: 5212, + EndPos: 5213, }, Value: "a", }, @@ -12598,29 +12626,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5225, - EndPos: 5235, + StartPos: 5218, + EndPos: 5227, }, - Expr: &cast.String{ + Expr: &cast.Unset{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5225, - EndPos: 5234, + StartPos: 5218, + EndPos: 5226, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5233, - EndPos: 5234, + StartPos: 5225, + EndPos: 5226, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5233, - EndPos: 5234, + StartPos: 5225, + EndPos: 5226, }, Value: "a", }, @@ -12629,64 +12657,81 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 5239, - EndPos: 5248, + StartLine: 274, + EndLine: 274, + StartPos: 5232, + EndPos: 5239, }, - Expr: &cast.Unset{ + Expr: &binary.BitwiseAnd{ Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 5239, - EndPos: 5247, + StartLine: 274, + EndLine: 274, + StartPos: 5232, + EndPos: 5238, }, - Expr: &expr.Variable{ + Left: &expr.Variable{ Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 5246, - EndPos: 5247, + StartLine: 274, + EndLine: 274, + StartPos: 5232, + EndPos: 5233, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 5246, - EndPos: 5247, + StartLine: 274, + EndLine: 274, + StartPos: 5232, + EndPos: 5233, }, Value: "a", }, }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5237, + EndPos: 5238, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5237, + EndPos: 5238, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5253, - EndPos: 5260, + StartPos: 5243, + EndPos: 5250, }, - Expr: &binary.BitwiseAnd{ + Expr: &binary.BitwiseOr{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5253, - EndPos: 5259, + StartPos: 5243, + EndPos: 5249, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5253, - EndPos: 5254, + StartPos: 5243, + EndPos: 5244, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5253, - EndPos: 5254, + StartPos: 5243, + EndPos: 5244, }, Value: "a", }, @@ -12695,15 +12740,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5258, - EndPos: 5259, + StartPos: 5248, + EndPos: 5249, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5258, - EndPos: 5259, + StartPos: 5248, + EndPos: 5249, }, Value: "b", }, @@ -12714,29 +12759,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5264, - EndPos: 5271, + StartPos: 5254, + EndPos: 5261, }, - Expr: &binary.BitwiseOr{ + Expr: &binary.BitwiseXor{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5264, - EndPos: 5270, + StartPos: 5254, + EndPos: 5260, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5264, - EndPos: 5265, + StartPos: 5254, + EndPos: 5255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5264, - EndPos: 5265, + StartPos: 5254, + EndPos: 5255, }, Value: "a", }, @@ -12745,15 +12790,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5269, - EndPos: 5270, + StartPos: 5259, + EndPos: 5260, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5269, - EndPos: 5270, + StartPos: 5259, + EndPos: 5260, }, Value: "b", }, @@ -12764,29 +12809,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5275, - EndPos: 5282, + StartPos: 5265, + EndPos: 5273, }, - Expr: &binary.BitwiseXor{ + Expr: &binary.BooleanAnd{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5275, - EndPos: 5281, + StartPos: 5265, + EndPos: 5272, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5275, - EndPos: 5276, + StartPos: 5265, + EndPos: 5266, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5275, - EndPos: 5276, + StartPos: 5265, + EndPos: 5266, }, Value: "a", }, @@ -12795,15 +12840,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5280, - EndPos: 5281, + StartPos: 5271, + EndPos: 5272, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5280, - EndPos: 5281, + StartPos: 5271, + EndPos: 5272, }, Value: "b", }, @@ -12814,29 +12859,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5286, - EndPos: 5294, + StartPos: 5277, + EndPos: 5285, }, - Expr: &binary.BooleanAnd{ + Expr: &binary.BooleanOr{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5286, - EndPos: 5293, + StartPos: 5277, + EndPos: 5284, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5286, - EndPos: 5287, + StartPos: 5277, + EndPos: 5278, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5286, - EndPos: 5287, + StartPos: 5277, + EndPos: 5278, }, Value: "a", }, @@ -12845,15 +12890,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5292, - EndPos: 5293, + StartPos: 5283, + EndPos: 5284, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5292, - EndPos: 5293, + StartPos: 5283, + EndPos: 5284, }, Value: "b", }, @@ -12864,29 +12909,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5298, - EndPos: 5306, + StartPos: 5289, + EndPos: 5297, }, - Expr: &binary.BooleanOr{ + Expr: &binary.Coalesce{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5298, - EndPos: 5305, + StartPos: 5289, + EndPos: 5296, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5298, - EndPos: 5299, + StartPos: 5289, + EndPos: 5290, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5298, - EndPos: 5299, + StartPos: 5289, + EndPos: 5290, }, Value: "a", }, @@ -12895,15 +12940,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5304, - EndPos: 5305, + StartPos: 5295, + EndPos: 5296, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5304, - EndPos: 5305, + StartPos: 5295, + EndPos: 5296, }, Value: "b", }, @@ -12914,29 +12959,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5310, - EndPos: 5318, + StartPos: 5301, + EndPos: 5308, }, - Expr: &binary.Coalesce{ + Expr: &binary.Concat{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5310, - EndPos: 5317, + StartPos: 5301, + EndPos: 5307, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5310, - EndPos: 5311, + StartPos: 5301, + EndPos: 5302, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5310, - EndPos: 5311, + StartPos: 5301, + EndPos: 5302, }, Value: "a", }, @@ -12945,15 +12990,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5316, - EndPos: 5317, + StartPos: 5306, + EndPos: 5307, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5316, - EndPos: 5317, + StartPos: 5306, + EndPos: 5307, }, Value: "b", }, @@ -12964,29 +13009,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5322, - EndPos: 5329, + StartPos: 5312, + EndPos: 5319, }, - Expr: &binary.Concat{ + Expr: &binary.Div{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5322, - EndPos: 5328, + StartPos: 5312, + EndPos: 5318, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5322, - EndPos: 5323, + StartPos: 5312, + EndPos: 5313, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5322, - EndPos: 5323, + StartPos: 5312, + EndPos: 5313, }, Value: "a", }, @@ -12995,15 +13040,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5327, - EndPos: 5328, + StartPos: 5317, + EndPos: 5318, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5327, - EndPos: 5328, + StartPos: 5317, + EndPos: 5318, }, Value: "b", }, @@ -13014,29 +13059,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5333, - EndPos: 5340, + StartPos: 5323, + EndPos: 5331, }, - Expr: &binary.Div{ + Expr: &binary.Equal{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5333, - EndPos: 5339, + StartPos: 5323, + EndPos: 5330, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5333, - EndPos: 5334, + StartPos: 5323, + EndPos: 5324, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5333, - EndPos: 5334, + StartPos: 5323, + EndPos: 5324, }, Value: "a", }, @@ -13045,15 +13090,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5338, - EndPos: 5339, + StartPos: 5329, + EndPos: 5330, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5338, - EndPos: 5339, + StartPos: 5329, + EndPos: 5330, }, Value: "b", }, @@ -13064,29 +13109,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5344, - EndPos: 5352, + StartPos: 5335, + EndPos: 5343, }, - Expr: &binary.Equal{ + Expr: &binary.GreaterOrEqual{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5344, - EndPos: 5351, + StartPos: 5335, + EndPos: 5342, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5344, - EndPos: 5345, + StartPos: 5335, + EndPos: 5336, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5344, - EndPos: 5345, + StartPos: 5335, + EndPos: 5336, }, Value: "a", }, @@ -13095,15 +13140,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5350, - EndPos: 5351, + StartPos: 5341, + EndPos: 5342, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5350, - EndPos: 5351, + StartPos: 5341, + EndPos: 5342, }, Value: "b", }, @@ -13114,29 +13159,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5356, - EndPos: 5364, + StartPos: 5347, + EndPos: 5354, }, - Expr: &binary.GreaterOrEqual{ + Expr: &binary.Greater{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5356, - EndPos: 5363, + StartPos: 5347, + EndPos: 5353, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5356, - EndPos: 5357, + StartPos: 5347, + EndPos: 5348, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5356, - EndPos: 5357, + StartPos: 5347, + EndPos: 5348, }, Value: "a", }, @@ -13145,15 +13190,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5362, - EndPos: 5363, + StartPos: 5352, + EndPos: 5353, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5362, - EndPos: 5363, + StartPos: 5352, + EndPos: 5353, }, Value: "b", }, @@ -13164,29 +13209,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5368, - EndPos: 5375, + StartPos: 5358, + EndPos: 5367, }, - Expr: &binary.Greater{ + Expr: &binary.Identical{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5368, - EndPos: 5374, + StartPos: 5358, + EndPos: 5366, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5368, - EndPos: 5369, + StartPos: 5358, + EndPos: 5359, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5368, - EndPos: 5369, + StartPos: 5358, + EndPos: 5359, }, Value: "a", }, @@ -13195,15 +13240,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5373, - EndPos: 5374, + StartPos: 5365, + EndPos: 5366, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5373, - EndPos: 5374, + StartPos: 5365, + EndPos: 5366, }, Value: "b", }, @@ -13214,29 +13259,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5379, - EndPos: 5388, + StartPos: 5371, + EndPos: 5380, }, - Expr: &binary.Identical{ + Expr: &binary.LogicalAnd{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5379, - EndPos: 5387, + StartPos: 5371, + EndPos: 5379, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5379, - EndPos: 5380, + StartPos: 5371, + EndPos: 5372, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5379, - EndPos: 5380, + StartPos: 5371, + EndPos: 5372, }, Value: "a", }, @@ -13245,15 +13290,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5386, - EndPos: 5387, + StartPos: 5378, + EndPos: 5379, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5386, - EndPos: 5387, + StartPos: 5378, + EndPos: 5379, }, Value: "b", }, @@ -13264,29 +13309,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5401, + StartPos: 5384, + EndPos: 5392, }, - Expr: &binary.LogicalAnd{ + Expr: &binary.LogicalOr{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5400, + StartPos: 5384, + EndPos: 5391, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5393, + StartPos: 5384, + EndPos: 5385, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5392, - EndPos: 5393, + StartPos: 5384, + EndPos: 5385, }, Value: "a", }, @@ -13295,15 +13340,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5399, - EndPos: 5400, + StartPos: 5390, + EndPos: 5391, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5399, - EndPos: 5400, + StartPos: 5390, + EndPos: 5391, }, Value: "b", }, @@ -13314,29 +13359,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5405, - EndPos: 5413, + StartPos: 5396, + EndPos: 5405, }, - Expr: &binary.LogicalOr{ + Expr: &binary.LogicalXor{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5405, - EndPos: 5412, + StartPos: 5396, + EndPos: 5404, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5405, - EndPos: 5406, + StartPos: 5396, + EndPos: 5397, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5405, - EndPos: 5406, + StartPos: 5396, + EndPos: 5397, }, Value: "a", }, @@ -13345,15 +13390,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5411, - EndPos: 5412, + StartPos: 5403, + EndPos: 5404, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5411, - EndPos: 5412, + StartPos: 5403, + EndPos: 5404, }, Value: "b", }, @@ -13364,29 +13409,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5426, + StartPos: 5409, + EndPos: 5416, }, - Expr: &binary.LogicalXor{ + Expr: &binary.Minus{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5425, + StartPos: 5409, + EndPos: 5415, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5418, + StartPos: 5409, + EndPos: 5410, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5417, - EndPos: 5418, + StartPos: 5409, + EndPos: 5410, }, Value: "a", }, @@ -13395,15 +13440,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5424, - EndPos: 5425, + StartPos: 5414, + EndPos: 5415, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5424, - EndPos: 5425, + StartPos: 5414, + EndPos: 5415, }, Value: "b", }, @@ -13414,29 +13459,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5430, - EndPos: 5437, + StartPos: 5420, + EndPos: 5427, }, - Expr: &binary.Minus{ + Expr: &binary.Mod{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5430, - EndPos: 5436, + StartPos: 5420, + EndPos: 5426, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5430, - EndPos: 5431, + StartPos: 5420, + EndPos: 5421, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5430, - EndPos: 5431, + StartPos: 5420, + EndPos: 5421, }, Value: "a", }, @@ -13445,15 +13490,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5435, - EndPos: 5436, + StartPos: 5425, + EndPos: 5426, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5435, - EndPos: 5436, + StartPos: 5425, + EndPos: 5426, }, Value: "b", }, @@ -13464,29 +13509,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5441, - EndPos: 5448, + StartPos: 5431, + EndPos: 5438, }, - Expr: &binary.Mod{ + Expr: &binary.Mul{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5441, - EndPos: 5447, + StartPos: 5431, + EndPos: 5437, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5441, - EndPos: 5442, + StartPos: 5431, + EndPos: 5432, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5441, - EndPos: 5442, + StartPos: 5431, + EndPos: 5432, }, Value: "a", }, @@ -13495,15 +13540,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5446, - EndPos: 5447, + StartPos: 5436, + EndPos: 5437, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5446, - EndPos: 5447, + StartPos: 5436, + EndPos: 5437, }, Value: "b", }, @@ -13514,29 +13559,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5459, + StartPos: 5442, + EndPos: 5450, }, - Expr: &binary.Mul{ + Expr: &binary.NotEqual{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5458, + StartPos: 5442, + EndPos: 5449, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5453, + StartPos: 5442, + EndPos: 5443, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5452, - EndPos: 5453, + StartPos: 5442, + EndPos: 5443, }, Value: "a", }, @@ -13545,15 +13590,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5457, - EndPos: 5458, + StartPos: 5448, + EndPos: 5449, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5457, - EndPos: 5458, + StartPos: 5448, + EndPos: 5449, }, Value: "b", }, @@ -13564,29 +13609,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5463, - EndPos: 5471, + StartPos: 5454, + EndPos: 5463, }, - Expr: &binary.NotEqual{ + Expr: &binary.NotIdentical{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5463, - EndPos: 5470, + StartPos: 5454, + EndPos: 5462, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5463, - EndPos: 5464, + StartPos: 5454, + EndPos: 5455, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5463, - EndPos: 5464, + StartPos: 5454, + EndPos: 5455, }, Value: "a", }, @@ -13595,15 +13640,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5469, - EndPos: 5470, + StartPos: 5461, + EndPos: 5462, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5469, - EndPos: 5470, + StartPos: 5461, + EndPos: 5462, }, Value: "b", }, @@ -13614,29 +13659,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5475, - EndPos: 5484, + StartPos: 5467, + EndPos: 5474, }, - Expr: &binary.NotIdentical{ + Expr: &binary.Plus{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5475, - EndPos: 5483, + StartPos: 5467, + EndPos: 5473, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5475, - EndPos: 5476, + StartPos: 5467, + EndPos: 5468, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5475, - EndPos: 5476, + StartPos: 5467, + EndPos: 5468, }, Value: "a", }, @@ -13645,15 +13690,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5482, - EndPos: 5483, + StartPos: 5472, + EndPos: 5473, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5482, - EndPos: 5483, + StartPos: 5472, + EndPos: 5473, }, Value: "b", }, @@ -13664,29 +13709,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5488, - EndPos: 5495, + StartPos: 5478, + EndPos: 5486, }, - Expr: &binary.Plus{ + Expr: &binary.Pow{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5488, - EndPos: 5494, + StartPos: 5478, + EndPos: 5485, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5488, - EndPos: 5489, + StartPos: 5478, + EndPos: 5479, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5488, - EndPos: 5489, + StartPos: 5478, + EndPos: 5479, }, Value: "a", }, @@ -13695,15 +13740,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5493, - EndPos: 5494, + StartPos: 5484, + EndPos: 5485, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5493, - EndPos: 5494, + StartPos: 5484, + EndPos: 5485, }, Value: "b", }, @@ -13714,29 +13759,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5499, - EndPos: 5507, + StartPos: 5490, + EndPos: 5498, }, - Expr: &binary.Pow{ + Expr: &binary.ShiftLeft{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5499, - EndPos: 5506, + StartPos: 5490, + EndPos: 5497, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5499, - EndPos: 5500, + StartPos: 5490, + EndPos: 5491, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5499, - EndPos: 5500, + StartPos: 5490, + EndPos: 5491, }, Value: "a", }, @@ -13745,15 +13790,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5505, - EndPos: 5506, + StartPos: 5496, + EndPos: 5497, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5505, - EndPos: 5506, + StartPos: 5496, + EndPos: 5497, }, Value: "b", }, @@ -13764,29 +13809,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5511, - EndPos: 5519, + StartPos: 5502, + EndPos: 5510, }, - Expr: &binary.ShiftLeft{ + Expr: &binary.ShiftRight{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5511, - EndPos: 5518, + StartPos: 5502, + EndPos: 5509, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5511, - EndPos: 5512, + StartPos: 5502, + EndPos: 5503, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5511, - EndPos: 5512, + StartPos: 5502, + EndPos: 5503, }, Value: "a", }, @@ -13795,15 +13840,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5517, - EndPos: 5518, + StartPos: 5508, + EndPos: 5509, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5517, - EndPos: 5518, + StartPos: 5508, + EndPos: 5509, }, Value: "b", }, @@ -13814,29 +13859,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5523, - EndPos: 5531, + StartPos: 5514, + EndPos: 5522, }, - Expr: &binary.ShiftRight{ + Expr: &binary.SmallerOrEqual{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5523, - EndPos: 5530, + StartPos: 5514, + EndPos: 5521, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5523, - EndPos: 5524, + StartPos: 5514, + EndPos: 5515, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5523, - EndPos: 5524, + StartPos: 5514, + EndPos: 5515, }, Value: "a", }, @@ -13845,15 +13890,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5529, - EndPos: 5530, + StartPos: 5520, + EndPos: 5521, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5529, - EndPos: 5530, + StartPos: 5520, + EndPos: 5521, }, Value: "b", }, @@ -13864,29 +13909,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5535, - EndPos: 5543, + StartPos: 5526, + EndPos: 5533, }, - Expr: &binary.SmallerOrEqual{ + Expr: &binary.Smaller{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5535, - EndPos: 5542, + StartPos: 5526, + EndPos: 5532, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5535, - EndPos: 5536, + StartPos: 5526, + EndPos: 5527, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5535, - EndPos: 5536, + StartPos: 5526, + EndPos: 5527, }, Value: "a", }, @@ -13895,15 +13940,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5541, - EndPos: 5542, + StartPos: 5531, + EndPos: 5532, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5541, - EndPos: 5542, + StartPos: 5531, + EndPos: 5532, }, Value: "b", }, @@ -13914,29 +13959,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5547, - EndPos: 5554, + StartPos: 5537, + EndPos: 5546, }, - Expr: &binary.Smaller{ + Expr: &binary.Spaceship{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5547, - EndPos: 5553, + StartPos: 5537, + EndPos: 5545, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5547, - EndPos: 5548, + StartPos: 5537, + EndPos: 5538, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5547, - EndPos: 5548, + StartPos: 5537, + EndPos: 5538, }, Value: "a", }, @@ -13945,15 +13990,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5552, - EndPos: 5553, + StartPos: 5544, + EndPos: 5545, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5552, - EndPos: 5553, + StartPos: 5544, + EndPos: 5545, }, Value: "b", }, @@ -13962,48 +14007,48 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5558, - EndPos: 5567, + StartLine: 302, + EndLine: 302, + StartPos: 5551, + EndPos: 5559, }, - Expr: &binary.Spaceship{ + Expr: &assign.Reference{ Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5558, - EndPos: 5566, + StartLine: 302, + EndLine: 302, + StartPos: 5551, + EndPos: 5558, }, - Left: &expr.Variable{ + Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5558, - EndPos: 5559, + StartLine: 302, + EndLine: 302, + StartPos: 5551, + EndPos: 5552, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5558, - EndPos: 5559, + StartLine: 302, + EndLine: 302, + StartPos: 5551, + EndPos: 5552, }, Value: "a", }, }, - Right: &expr.Variable{ + Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5565, - EndPos: 5566, + StartLine: 302, + EndLine: 302, + StartPos: 5557, + EndPos: 5558, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5565, - EndPos: 5566, + StartLine: 302, + EndLine: 302, + StartPos: 5557, + EndPos: 5558, }, Value: "b", }, @@ -14014,29 +14059,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5572, - EndPos: 5580, + StartPos: 5563, + EndPos: 5570, }, - Expr: &assign.Reference{ + Expr: &assign.Assign{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5572, - EndPos: 5579, + StartPos: 5563, + EndPos: 5569, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5572, - EndPos: 5573, + StartPos: 5563, + EndPos: 5564, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5572, - EndPos: 5573, + StartPos: 5563, + EndPos: 5564, }, Value: "a", }, @@ -14045,15 +14090,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5578, - EndPos: 5579, + StartPos: 5568, + EndPos: 5569, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5578, - EndPos: 5579, + StartPos: 5568, + EndPos: 5569, }, Value: "b", }, @@ -14064,29 +14109,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5584, - EndPos: 5591, + StartPos: 5574, + EndPos: 5582, }, - Expr: &assign.Assign{ + Expr: &assign.BitwiseAnd{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5584, - EndPos: 5590, + StartPos: 5574, + EndPos: 5581, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5584, - EndPos: 5585, + StartPos: 5574, + EndPos: 5575, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5584, - EndPos: 5585, + StartPos: 5574, + EndPos: 5575, }, Value: "a", }, @@ -14095,15 +14140,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5589, - EndPos: 5590, + StartPos: 5580, + EndPos: 5581, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5589, - EndPos: 5590, + StartPos: 5580, + EndPos: 5581, }, Value: "b", }, @@ -14114,29 +14159,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5595, - EndPos: 5603, + StartPos: 5586, + EndPos: 5594, }, - Expr: &assign.BitwiseAnd{ + Expr: &assign.BitwiseOr{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5595, - EndPos: 5602, + StartPos: 5586, + EndPos: 5593, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5595, - EndPos: 5596, + StartPos: 5586, + EndPos: 5587, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5595, - EndPos: 5596, + StartPos: 5586, + EndPos: 5587, }, Value: "a", }, @@ -14145,15 +14190,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5601, - EndPos: 5602, + StartPos: 5592, + EndPos: 5593, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5601, - EndPos: 5602, + StartPos: 5592, + EndPos: 5593, }, Value: "b", }, @@ -14164,29 +14209,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5607, - EndPos: 5615, + StartPos: 5598, + EndPos: 5606, }, - Expr: &assign.BitwiseOr{ + Expr: &assign.BitwiseXor{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5607, - EndPos: 5614, + StartPos: 5598, + EndPos: 5605, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5607, - EndPos: 5608, + StartPos: 5598, + EndPos: 5599, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5607, - EndPos: 5608, + StartPos: 5598, + EndPos: 5599, }, Value: "a", }, @@ -14195,15 +14240,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5613, - EndPos: 5614, + StartPos: 5604, + EndPos: 5605, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5613, - EndPos: 5614, + StartPos: 5604, + EndPos: 5605, }, Value: "b", }, @@ -14214,29 +14259,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5619, - EndPos: 5627, + StartPos: 5610, + EndPos: 5618, }, - Expr: &assign.BitwiseXor{ + Expr: &assign.Concat{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5619, - EndPos: 5626, + StartPos: 5610, + EndPos: 5617, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5619, - EndPos: 5620, + StartPos: 5610, + EndPos: 5611, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5619, - EndPos: 5620, + StartPos: 5610, + EndPos: 5611, }, Value: "a", }, @@ -14245,15 +14290,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5625, - EndPos: 5626, + StartPos: 5616, + EndPos: 5617, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5625, - EndPos: 5626, + StartPos: 5616, + EndPos: 5617, }, Value: "b", }, @@ -14264,29 +14309,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5631, - EndPos: 5639, + StartPos: 5622, + EndPos: 5630, }, - Expr: &assign.Concat{ + Expr: &assign.Div{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5631, - EndPos: 5638, + StartPos: 5622, + EndPos: 5629, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5631, - EndPos: 5632, + StartPos: 5622, + EndPos: 5623, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5631, - EndPos: 5632, + StartPos: 5622, + EndPos: 5623, }, Value: "a", }, @@ -14295,15 +14340,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5637, - EndPos: 5638, + StartPos: 5628, + EndPos: 5629, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5637, - EndPos: 5638, + StartPos: 5628, + EndPos: 5629, }, Value: "b", }, @@ -14314,29 +14359,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5643, - EndPos: 5651, + StartPos: 5634, + EndPos: 5642, }, - Expr: &assign.Div{ + Expr: &assign.Minus{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5643, - EndPos: 5650, + StartPos: 5634, + EndPos: 5641, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5643, - EndPos: 5644, + StartPos: 5634, + EndPos: 5635, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5643, - EndPos: 5644, + StartPos: 5634, + EndPos: 5635, }, Value: "a", }, @@ -14345,15 +14390,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5649, - EndPos: 5650, + StartPos: 5640, + EndPos: 5641, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5649, - EndPos: 5650, + StartPos: 5640, + EndPos: 5641, }, Value: "b", }, @@ -14364,29 +14409,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5655, - EndPos: 5663, + StartPos: 5646, + EndPos: 5654, }, - Expr: &assign.Minus{ + Expr: &assign.Mod{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5655, - EndPos: 5662, + StartPos: 5646, + EndPos: 5653, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5655, - EndPos: 5656, + StartPos: 5646, + EndPos: 5647, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5655, - EndPos: 5656, + StartPos: 5646, + EndPos: 5647, }, Value: "a", }, @@ -14395,15 +14440,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5661, - EndPos: 5662, + StartPos: 5652, + EndPos: 5653, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5661, - EndPos: 5662, + StartPos: 5652, + EndPos: 5653, }, Value: "b", }, @@ -14414,29 +14459,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5667, - EndPos: 5675, + StartPos: 5658, + EndPos: 5666, }, - Expr: &assign.Mod{ + Expr: &assign.Mul{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5667, - EndPos: 5674, + StartPos: 5658, + EndPos: 5665, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5667, - EndPos: 5668, + StartPos: 5658, + EndPos: 5659, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5667, - EndPos: 5668, + StartPos: 5658, + EndPos: 5659, }, Value: "a", }, @@ -14445,15 +14490,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5673, - EndPos: 5674, + StartPos: 5664, + EndPos: 5665, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5673, - EndPos: 5674, + StartPos: 5664, + EndPos: 5665, }, Value: "b", }, @@ -14464,29 +14509,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5679, - EndPos: 5687, + StartPos: 5670, + EndPos: 5678, }, - Expr: &assign.Mul{ + Expr: &assign.Plus{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5679, - EndPos: 5686, + StartPos: 5670, + EndPos: 5677, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5679, - EndPos: 5680, + StartPos: 5670, + EndPos: 5671, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5679, - EndPos: 5680, + StartPos: 5670, + EndPos: 5671, }, Value: "a", }, @@ -14495,15 +14540,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5685, - EndPos: 5686, + StartPos: 5676, + EndPos: 5677, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5685, - EndPos: 5686, + StartPos: 5676, + EndPos: 5677, }, Value: "b", }, @@ -14514,29 +14559,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5699, + StartPos: 5682, + EndPos: 5691, }, - Expr: &assign.Plus{ + Expr: &assign.Pow{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5698, + StartPos: 5682, + EndPos: 5690, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5692, + StartPos: 5682, + EndPos: 5683, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5692, + StartPos: 5682, + EndPos: 5683, }, Value: "a", }, @@ -14545,15 +14590,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5697, - EndPos: 5698, + StartPos: 5689, + EndPos: 5690, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5697, - EndPos: 5698, + StartPos: 5689, + EndPos: 5690, }, Value: "b", }, @@ -14564,29 +14609,29 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5703, - EndPos: 5712, + StartPos: 5695, + EndPos: 5704, }, - Expr: &assign.Pow{ + Expr: &assign.ShiftLeft{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5703, - EndPos: 5711, + StartPos: 5695, + EndPos: 5703, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5703, - EndPos: 5704, + StartPos: 5695, + EndPos: 5696, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5703, - EndPos: 5704, + StartPos: 5695, + EndPos: 5696, }, Value: "a", }, @@ -14595,15 +14640,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5710, - EndPos: 5711, + StartPos: 5702, + EndPos: 5703, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5710, - EndPos: 5711, + StartPos: 5702, + EndPos: 5703, }, Value: "b", }, @@ -14614,96 +14659,46 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5716, - EndPos: 5725, - }, - Expr: &assign.ShiftLeft{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5716, - EndPos: 5724, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5716, - EndPos: 5717, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5716, - EndPos: 5717, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5723, - EndPos: 5724, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5723, - EndPos: 5724, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5729, - EndPos: 5738, + StartPos: 5708, + EndPos: 5717, }, Expr: &assign.ShiftRight{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5729, - EndPos: 5737, + StartLine: 315, + EndLine: 315, + StartPos: 5708, + EndPos: 5716, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5729, - EndPos: 5730, + StartLine: 315, + EndLine: 315, + StartPos: 5708, + EndPos: 5709, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5729, - EndPos: 5730, + StartLine: 315, + EndLine: 315, + StartPos: 5708, + EndPos: 5709, }, Value: "a", }, }, Expression: &expr.Variable{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5736, - EndPos: 5737, + StartLine: 315, + EndLine: 315, + StartPos: 5715, + EndPos: 5716, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 316, - EndLine: 316, - StartPos: 5736, - EndPos: 5737, + StartLine: 315, + EndLine: 315, + StartPos: 5715, + EndPos: 5716, }, Value: "b", }, @@ -14712,57 +14707,57 @@ func TestPhp7(t *testing.T) { }, &stmt.Class{ Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5743, - EndPos: 5781, + StartLine: 317, + EndLine: 317, + StartPos: 5722, + EndPos: 5760, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5749, - EndPos: 5751, + StartLine: 317, + EndLine: 317, + StartPos: 5728, + EndPos: 5730, }, Value: "foo", }, Stmts: []node.Node{ &stmt.ClassMethod{ Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5754, - EndPos: 5779, + StartLine: 317, + EndLine: 317, + StartPos: 5733, + EndPos: 5758, }, PhpDocComment: "", ReturnsRef: false, MethodName: &node.Identifier{ Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5770, - EndPos: 5774, + StartLine: 317, + EndLine: 317, + StartPos: 5749, + EndPos: 5753, }, Value: "class", }, Modifiers: []node.Node{ &node.Identifier{ Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5754, - EndPos: 5759, + StartLine: 317, + EndLine: 317, + StartPos: 5733, + EndPos: 5738, }, Value: "public", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5778, - EndPos: 5779, + StartLine: 317, + EndLine: 317, + StartPos: 5757, + EndPos: 5758, }, Stmts: []node.Node{}, }, @@ -14771,41 +14766,41 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5785, - EndPos: 5795, + StartLine: 318, + EndLine: 318, + StartPos: 5764, + EndPos: 5774, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5785, - EndPos: 5794, + StartLine: 318, + EndLine: 318, + StartPos: 5764, + EndPos: 5773, }, Function: &name.FullyQualified{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5785, - EndPos: 5792, + StartLine: 318, + EndLine: 318, + StartPos: 5764, + EndPos: 5771, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5786, - EndPos: 5788, + StartLine: 318, + EndLine: 318, + StartPos: 5765, + EndPos: 5767, }, Value: "foo", }, &name.NamePart{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5790, - EndPos: 5792, + StartLine: 318, + EndLine: 318, + StartPos: 5769, + EndPos: 5771, }, Value: "bar", }, @@ -14813,55 +14808,55 @@ func TestPhp7(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5793, - EndPos: 5794, + StartLine: 318, + EndLine: 318, + StartPos: 5772, + EndPos: 5773, }, }, }, }, &stmt.Function{ Position: &position.Position{ - StartLine: 321, - EndLine: 327, - StartPos: 5800, - EndPos: 5926, + StartLine: 320, + EndLine: 326, + StartPos: 5779, + EndPos: 5905, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5809, - EndPos: 5811, + StartLine: 320, + EndLine: 320, + StartPos: 5788, + EndPos: 5790, }, Value: "foo", }, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5813, - EndPos: 5815, + StartLine: 320, + EndLine: 320, + StartPos: 5792, + EndPos: 5794, }, - ByRef: true, Variadic: false, + ByRef: true, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5814, - EndPos: 5815, + StartLine: 320, + EndLine: 320, + StartPos: 5793, + EndPos: 5794, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5814, - EndPos: 5815, + StartLine: 320, + EndLine: 320, + StartPos: 5793, + EndPos: 5794, }, Value: "a", }, @@ -14869,26 +14864,26 @@ func TestPhp7(t *testing.T) { }, &node.Parameter{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5818, - EndPos: 5822, + StartLine: 320, + EndLine: 320, + StartPos: 5797, + EndPos: 5801, }, ByRef: false, Variadic: true, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5821, - EndPos: 5822, + StartLine: 320, + EndLine: 320, + StartPos: 5800, + EndPos: 5801, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5821, - EndPos: 5822, + StartLine: 320, + EndLine: 320, + StartPos: 5800, + EndPos: 5801, }, Value: "b", }, @@ -14898,27 +14893,27 @@ func TestPhp7(t *testing.T) { Stmts: []node.Node{ &stmt.HaltCompiler{ Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5830, - EndPos: 5847, + StartLine: 321, + EndLine: 321, + StartPos: 5809, + EndPos: 5826, }, }, &stmt.Function{ Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5852, - EndPos: 5868, + StartLine: 322, + EndLine: 322, + StartPos: 5831, + EndPos: 5847, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5861, - EndPos: 5863, + StartLine: 322, + EndLine: 322, + StartPos: 5840, + EndPos: 5842, }, Value: "bar", }, @@ -14926,18 +14921,18 @@ func TestPhp7(t *testing.T) { }, &stmt.Class{ Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5873, - EndPos: 5884, + StartLine: 323, + EndLine: 323, + StartPos: 5852, + EndPos: 5863, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5879, - EndPos: 5881, + StartLine: 323, + EndLine: 323, + StartPos: 5858, + EndPos: 5860, }, Value: "Baz", }, @@ -14945,18 +14940,18 @@ func TestPhp7(t *testing.T) { }, &stmt.Trait{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5889, - EndPos: 5900, + StartLine: 324, + EndLine: 324, + StartPos: 5868, + EndPos: 5879, }, PhpDocComment: "", TraitName: &node.Identifier{ Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5895, - EndPos: 5898, + StartLine: 324, + EndLine: 324, + StartPos: 5874, + EndPos: 5877, }, Value: "Quux", }, @@ -14964,18 +14959,18 @@ func TestPhp7(t *testing.T) { }, &stmt.Interface{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5905, - EndPos: 5922, + StartLine: 325, + EndLine: 325, + StartPos: 5884, + EndPos: 5901, }, PhpDocComment: "", InterfaceName: &node.Identifier{ Position: &position.Position{ - StartLine: 326, - EndLine: 326, - StartPos: 5915, - EndPos: 5919, + StartLine: 325, + EndLine: 325, + StartPos: 5894, + EndPos: 5898, }, Value: "Quuux", }, @@ -14985,127 +14980,127 @@ func TestPhp7(t *testing.T) { }, &stmt.Function{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5933, - EndPos: 5975, + StartLine: 328, + EndLine: 328, + StartPos: 5912, + EndPos: 5954, }, ReturnsRef: false, PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5942, - EndPos: 5944, + StartLine: 328, + EndLine: 328, + StartPos: 5921, + EndPos: 5923, }, Value: "foo", }, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5946, - EndPos: 5952, + StartLine: 328, + EndLine: 328, + StartPos: 5925, + EndPos: 5931, }, ByRef: true, Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5947, - EndPos: 5948, + StartLine: 328, + EndLine: 328, + StartPos: 5926, + EndPos: 5927, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5947, - EndPos: 5948, + StartLine: 328, + EndLine: 328, + StartPos: 5926, + EndPos: 5927, }, Value: "a", }, }, DefaultValue: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5952, - EndPos: 5952, + StartLine: 328, + EndLine: 328, + StartPos: 5931, + EndPos: 5931, }, Value: "1", }, }, &node.Parameter{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5955, - EndPos: 5963, + StartLine: 328, + EndLine: 328, + StartPos: 5934, + EndPos: 5942, }, ByRef: false, Variadic: true, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5958, - EndPos: 5959, + StartLine: 328, + EndLine: 328, + StartPos: 5937, + EndPos: 5938, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5958, - EndPos: 5959, + StartLine: 328, + EndLine: 328, + StartPos: 5937, + EndPos: 5938, }, Value: "b", }, }, DefaultValue: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5963, - EndPos: 5963, + StartLine: 328, + EndLine: 328, + StartPos: 5942, + EndPos: 5942, }, Value: "1", }, }, &node.Parameter{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5966, - EndPos: 5971, + StartLine: 328, + EndLine: 328, + StartPos: 5945, + EndPos: 5950, }, ByRef: false, Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5966, - EndPos: 5967, + StartLine: 328, + EndLine: 328, + StartPos: 5945, + EndPos: 5946, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5966, - EndPos: 5967, + StartLine: 328, + EndLine: 328, + StartPos: 5945, + EndPos: 5946, }, Value: "c", }, }, DefaultValue: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5971, - EndPos: 5971, + StartLine: 328, + EndLine: 328, + StartPos: 5950, + EndPos: 5950, }, Value: "1", }, @@ -15115,54 +15110,54 @@ func TestPhp7(t *testing.T) { }, &stmt.Function{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5979, - EndPos: 6016, + StartLine: 329, + EndLine: 329, + StartPos: 5958, + EndPos: 5995, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5988, - EndPos: 5990, + StartLine: 329, + EndLine: 329, + StartPos: 5967, + EndPos: 5969, }, Value: "foo", }, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5992, - EndPos: 5999, + StartLine: 329, + EndLine: 329, + StartPos: 5971, + EndPos: 5978, }, ByRef: false, Variadic: false, VariableType: &node.Identifier{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5992, - EndPos: 5996, + StartLine: 329, + EndLine: 329, + StartPos: 5971, + EndPos: 5975, }, Value: "array", }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5998, - EndPos: 5999, + StartLine: 329, + EndLine: 329, + StartPos: 5977, + EndPos: 5978, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5998, - EndPos: 5999, + StartLine: 329, + EndLine: 329, + StartPos: 5977, + EndPos: 5978, }, Value: "a", }, @@ -15170,35 +15165,35 @@ func TestPhp7(t *testing.T) { }, &node.Parameter{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6002, - EndPos: 6012, + StartLine: 329, + EndLine: 329, + StartPos: 5981, + EndPos: 5991, }, ByRef: false, Variadic: false, VariableType: &node.Identifier{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6002, - EndPos: 6009, + StartLine: 329, + EndLine: 329, + StartPos: 5981, + EndPos: 5988, }, Value: "callable", }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6011, - EndPos: 6012, + StartLine: 329, + EndLine: 329, + StartPos: 5990, + EndPos: 5991, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6011, - EndPos: 6012, + StartLine: 329, + EndLine: 329, + StartPos: 5990, + EndPos: 5991, }, Value: "b", }, @@ -15209,37 +15204,37 @@ func TestPhp7(t *testing.T) { }, &stmt.Class{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6020, - EndPos: 6121, + StartLine: 330, + EndLine: 330, + StartPos: 5999, + EndPos: 6100, }, PhpDocComment: "", ClassName: &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6041, - EndPos: 6043, + StartLine: 330, + EndLine: 330, + StartPos: 6020, + EndPos: 6022, }, Value: "foo", }, Modifiers: []node.Node{ &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6020, - EndPos: 6027, + StartLine: 330, + EndLine: 330, + StartPos: 5999, + EndPos: 6006, }, Value: "abstract", }, &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6029, - EndPos: 6033, + StartLine: 330, + EndLine: 330, + StartPos: 6008, + EndPos: 6012, }, Value: "final", }, @@ -15247,104 +15242,104 @@ func TestPhp7(t *testing.T) { Stmts: []node.Node{ &stmt.ClassMethod{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6047, - EndPos: 6087, + StartLine: 330, + EndLine: 330, + StartPos: 6026, + EndPos: 6066, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, MethodName: &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6082, - EndPos: 6084, + StartLine: 330, + EndLine: 330, + StartPos: 6061, + EndPos: 6063, }, Value: "bar", }, Modifiers: []node.Node{ &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6047, - EndPos: 6054, + StartLine: 330, + EndLine: 330, + StartPos: 6026, + EndPos: 6033, }, Value: "abstract", }, &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6056, - EndPos: 6064, + StartLine: 330, + EndLine: 330, + StartPos: 6035, + EndPos: 6043, }, Value: "protected", }, &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6066, - EndPos: 6071, + StartLine: 330, + EndLine: 330, + StartPos: 6045, + EndPos: 6050, }, Value: "static", }, }, Stmt: &stmt.Nop{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6087, - EndPos: 6087, + StartLine: 330, + EndLine: 330, + StartPos: 6066, + EndPos: 6066, }, }, }, &stmt.ClassMethod{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6089, - EndPos: 6119, + StartLine: 330, + EndLine: 330, + StartPos: 6068, + EndPos: 6098, }, ReturnsRef: false, PhpDocComment: "", MethodName: &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6112, - EndPos: 6114, + StartLine: 330, + EndLine: 330, + StartPos: 6091, + EndPos: 6093, }, Value: "baz", }, Modifiers: []node.Node{ &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6089, - EndPos: 6093, + StartLine: 330, + EndLine: 330, + StartPos: 6068, + EndPos: 6072, }, Value: "final", }, &node.Identifier{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6095, - EndPos: 6101, + StartLine: 330, + EndLine: 330, + StartPos: 6074, + EndPos: 6080, }, Value: "private", }, }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 6118, - EndPos: 6119, + StartLine: 330, + EndLine: 330, + StartPos: 6097, + EndPos: 6098, }, Stmts: []node.Node{}, }, @@ -15353,39 +15348,39 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6127, - EndPos: 6140, + StartLine: 332, + EndLine: 332, + StartPos: 6106, + EndPos: 6119, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6127, - EndPos: 6139, + StartLine: 332, + EndLine: 332, + StartPos: 6106, + EndPos: 6118, }, Variable: &expr.New{ Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6127, - EndPos: 6133, + StartLine: 332, + EndLine: 332, + StartPos: 6106, + EndPos: 6112, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6131, - EndPos: 6133, + StartLine: 332, + EndLine: 332, + StartPos: 6110, + EndPos: 6112, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6131, - EndPos: 6133, + StartLine: 332, + EndLine: 332, + StartPos: 6110, + EndPos: 6112, }, Value: "Foo", }, @@ -15394,10 +15389,10 @@ func TestPhp7(t *testing.T) { }, Property: &node.Identifier{ Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6137, - EndPos: 6139, + StartLine: 332, + EndLine: 332, + StartPos: 6116, + EndPos: 6118, }, Value: "bar", }, @@ -15405,39 +15400,39 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6145, - EndPos: 6155, + StartLine: 333, + EndLine: 333, + StartPos: 6124, + EndPos: 6134, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6145, - EndPos: 6154, + StartLine: 333, + EndLine: 333, + StartPos: 6124, + EndPos: 6133, }, Function: &expr.New{ Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6145, - EndPos: 6151, + StartLine: 333, + EndLine: 333, + StartPos: 6124, + EndPos: 6130, }, Class: &name.Name{ Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6149, - EndPos: 6151, + StartLine: 333, + EndLine: 333, + StartPos: 6128, + EndPos: 6130, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6149, - EndPos: 6151, + StartLine: 333, + EndLine: 333, + StartPos: 6128, + EndPos: 6130, }, Value: "Foo", }, @@ -15446,63 +15441,63 @@ func TestPhp7(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6153, - EndPos: 6154, + StartLine: 333, + EndLine: 333, + StartPos: 6132, + EndPos: 6133, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6159, - EndPos: 6170, + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6149, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6159, - EndPos: 6169, + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6148, }, Function: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6159, - EndPos: 6167, + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6146, }, Variable: &expr.ShortArray{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6159, - EndPos: 6164, + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6143, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6160, - EndPos: 6163, + StartLine: 334, + EndLine: 334, + StartPos: 6139, + EndPos: 6142, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6160, - EndPos: 6163, + StartLine: 334, + EndLine: 334, + StartPos: 6139, + EndPos: 6142, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6160, - EndPos: 6163, + StartLine: 334, + EndLine: 334, + StartPos: 6139, + EndPos: 6142, }, Value: "foo", }, @@ -15512,66 +15507,66 @@ func TestPhp7(t *testing.T) { }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6166, - EndPos: 6166, + StartLine: 334, + EndLine: 334, + StartPos: 6145, + EndPos: 6145, }, Value: "0", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6168, - EndPos: 6169, + StartLine: 334, + EndLine: 334, + StartPos: 6147, + EndPos: 6148, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6174, - EndPos: 6182, + StartLine: 335, + EndLine: 335, + StartPos: 6153, + EndPos: 6161, }, Expr: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6174, - EndPos: 6181, + StartLine: 335, + EndLine: 335, + StartPos: 6153, + EndPos: 6160, }, Function: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6174, - EndPos: 6179, + StartLine: 335, + EndLine: 335, + StartPos: 6153, + EndPos: 6158, }, Variable: &expr.ConstFetch{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6174, - EndPos: 6176, + StartLine: 335, + EndLine: 335, + StartPos: 6153, + EndPos: 6155, }, Constant: &name.Name{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6174, - EndPos: 6176, + StartLine: 335, + EndLine: 335, + StartPos: 6153, + EndPos: 6155, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6174, - EndPos: 6176, + StartLine: 335, + EndLine: 335, + StartPos: 6153, + EndPos: 6155, }, Value: "foo", }, @@ -15580,20 +15575,53 @@ func TestPhp7(t *testing.T) { }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6178, - EndPos: 6178, + StartLine: 335, + EndLine: 335, + StartPos: 6157, + EndPos: 6157, }, Value: "1", }, }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6159, + EndPos: 6160, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6165, + EndPos: 6172, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6165, + EndPos: 6171, + }, + Function: &scalar.String{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6180, - EndPos: 6181, + StartPos: 6165, + EndPos: 6169, + }, + Value: "\"foo\"", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6170, + EndPos: 6171, }, }, }, @@ -15602,77 +15630,44 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6186, - EndPos: 6193, + StartPos: 6176, + EndPos: 6187, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6186, - EndPos: 6192, - }, - Function: &scalar.String{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6186, - EndPos: 6190, - }, - Value: "\"foo\"", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6191, - EndPos: 6192, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6197, - EndPos: 6208, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6197, - EndPos: 6207, + StartPos: 6176, + EndPos: 6186, }, Function: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6197, - EndPos: 6205, + StartLine: 337, + EndLine: 337, + StartPos: 6176, + EndPos: 6184, }, Variable: &expr.ShortArray{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6197, - EndPos: 6199, + StartLine: 337, + EndLine: 337, + StartPos: 6176, + EndPos: 6178, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6198, - EndPos: 6198, + StartLine: 337, + EndLine: 337, + StartPos: 6177, + EndPos: 6177, }, Val: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6198, - EndPos: 6198, + StartLine: 337, + EndLine: 337, + StartPos: 6177, + EndPos: 6177, }, Value: "1", }, @@ -15681,17 +15676,17 @@ func TestPhp7(t *testing.T) { }, Dim: &expr.Variable{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6201, - EndPos: 6204, + StartLine: 337, + EndLine: 337, + StartPos: 6180, + EndPos: 6183, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6201, - EndPos: 6204, + StartLine: 337, + EndLine: 337, + StartPos: 6180, + EndPos: 6183, }, Value: "foo", }, @@ -15699,49 +15694,49 @@ func TestPhp7(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6206, - EndPos: 6207, + StartLine: 337, + EndLine: 337, + StartPos: 6185, + EndPos: 6186, }, }, }, }, &stmt.Expression{ Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6212, - EndPos: 6220, + StartLine: 338, + EndLine: 338, + StartPos: 6191, + EndPos: 6199, }, Expr: &expr.Variable{ Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6212, - EndPos: 6219, + StartLine: 338, + EndLine: 338, + StartPos: 6191, + EndPos: 6198, }, VarName: &expr.FunctionCall{ Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6214, - EndPos: 6218, + StartLine: 338, + EndLine: 338, + StartPos: 6193, + EndPos: 6197, }, Function: &name.Name{ Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6214, - EndPos: 6216, + StartLine: 338, + EndLine: 338, + StartPos: 6193, + EndPos: 6195, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6214, - EndPos: 6216, + StartLine: 338, + EndLine: 338, + StartPos: 6193, + EndPos: 6195, }, Value: "foo", }, @@ -15749,103 +15744,103 @@ func TestPhp7(t *testing.T) { }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6217, - EndPos: 6218, + StartLine: 338, + EndLine: 338, + StartPos: 6196, + EndPos: 6197, }, }, }, }, }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6204, + EndPos: 6215, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6204, + EndPos: 6214, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6204, + EndPos: 6206, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6204, + EndPos: 6206, + }, + Value: "Foo", + }, + }, + }, + Call: &expr.Variable{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6209, + EndPos: 6212, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6209, + EndPos: 6212, + }, + Value: "bar", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6213, + EndPos: 6214, + }, + }, + }, + }, &stmt.Expression{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, - EndPos: 6236, + StartPos: 6219, + EndPos: 6235, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, - EndPos: 6235, + StartPos: 6219, + EndPos: 6234, }, Class: &name.Name{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, - EndPos: 6227, + StartPos: 6219, + EndPos: 6221, }, Parts: []node.Node{ &name.NamePart{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, - EndPos: 6227, - }, - Value: "Foo", - }, - }, - }, - Call: &expr.Variable{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6230, - EndPos: 6233, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6230, - EndPos: 6233, - }, - Value: "bar", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6234, - EndPos: 6235, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6240, - EndPos: 6256, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6240, - EndPos: 6255, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6240, - EndPos: 6242, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6240, - EndPos: 6242, + StartPos: 6219, + EndPos: 6221, }, Value: "Foo", }, @@ -15853,44 +15848,94 @@ func TestPhp7(t *testing.T) { }, Call: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6246, - EndPos: 6252, + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6231, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6246, - EndPos: 6249, + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6228, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6246, - EndPos: 6249, + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6228, }, Value: "bar", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6251, - EndPos: 6251, + StartLine: 341, + EndLine: 341, + StartPos: 6230, + EndPos: 6230, }, Value: "0", }, }, ArgumentList: &node.ArgumentList{ Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6254, - EndPos: 6255, + StartLine: 341, + EndLine: 341, + StartPos: 6233, + EndPos: 6234, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6242, + EndPos: 6252, + }, + Expr: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6242, + EndPos: 6251, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6242, + EndPos: 6245, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6242, + EndPos: 6245, + }, + Value: "foo", + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6248, + EndPos: 6251, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6248, + EndPos: 6251, + }, + Value: "bar", }, }, }, @@ -15899,113 +15944,63 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, - EndPos: 6273, + StartPos: 6256, + EndPos: 6271, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, - EndPos: 6272, + StartPos: 6256, + EndPos: 6269, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, - EndPos: 6266, + StartPos: 6256, + EndPos: 6259, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, - EndPos: 6266, - }, - Value: "foo", - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6269, - EndPos: 6272, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6269, - EndPos: 6272, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6277, - EndPos: 6292, - }, - Expr: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6277, - EndPos: 6290, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6277, - EndPos: 6280, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6277, - EndPos: 6280, + StartPos: 6256, + EndPos: 6259, }, Value: "foo", }, }, Property: &expr.ArrayDimFetch{ Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6284, - EndPos: 6290, + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6269, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6284, - EndPos: 6287, + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6266, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6284, - EndPos: 6287, + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6266, }, Value: "bar", }, }, Dim: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6289, - EndPos: 6289, + StartLine: 344, + EndLine: 344, + StartPos: 6268, + EndPos: 6268, }, Value: "0", }, @@ -16014,55 +16009,55 @@ func TestPhp7(t *testing.T) { }, &stmt.Expression{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6297, - EndPos: 6318, + StartLine: 346, + EndLine: 346, + StartPos: 6276, + EndPos: 6297, }, Expr: &expr.ShortArray{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6297, - EndPos: 6317, + StartLine: 346, + EndLine: 346, + StartPos: 6276, + EndPos: 6296, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6298, - EndPos: 6303, + StartLine: 346, + EndLine: 346, + StartPos: 6277, + EndPos: 6282, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6298, - EndPos: 6298, + StartLine: 346, + EndLine: 346, + StartPos: 6277, + EndPos: 6277, }, Value: "1", }, Val: &expr.Reference{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6301, - EndPos: 6303, + StartLine: 346, + EndLine: 346, + StartPos: 6280, + EndPos: 6282, }, Variable: &expr.Variable{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6302, - EndPos: 6303, + StartLine: 346, + EndLine: 346, + StartPos: 6281, + EndPos: 6282, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6302, - EndPos: 6303, + StartLine: 346, + EndLine: 346, + StartPos: 6281, + EndPos: 6282, }, Value: "a", }, @@ -16071,48 +16066,48 @@ func TestPhp7(t *testing.T) { }, &expr.ArrayItem{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6306, - EndPos: 6316, + StartLine: 346, + EndLine: 346, + StartPos: 6285, + EndPos: 6295, }, Key: &scalar.Lnumber{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6306, - EndPos: 6306, + StartLine: 346, + EndLine: 346, + StartPos: 6285, + EndPos: 6285, }, Value: "2", }, Val: &expr.List{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6309, - EndPos: 6316, + StartLine: 346, + EndLine: 346, + StartPos: 6288, + EndPos: 6295, }, Items: []node.Node{ &expr.ArrayItem{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6314, - EndPos: 6315, + StartLine: 346, + EndLine: 346, + StartPos: 6293, + EndPos: 6294, }, Val: &expr.Variable{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6314, - EndPos: 6315, + StartLine: 346, + EndLine: 346, + StartPos: 6293, + EndPos: 6294, }, VarName: &node.Identifier{ Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6314, - EndPos: 6315, + StartLine: 346, + EndLine: 346, + StartPos: 6293, + EndPos: 6294, }, Value: "b", }, @@ -16124,6 +16119,14 @@ func TestPhp7(t *testing.T) { }, }, }, + &stmt.HaltCompiler{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6302, + EndPos: 6319, + }, + }, }, } diff --git a/scanner/lexer.go b/scanner/lexer.go index 706e371..4b5e57f 100644 --- a/scanner/lexer.go +++ b/scanner/lexer.go @@ -108,7 +108,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 43cd767..57f69f5 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -25,6 +25,7 @@ const ( NOWDOC HEREDOC BACKQUOTE + HALT_COMPILER ) func isValidFirstVarNameRune(r rune) bool { @@ -48,23 +49,25 @@ yystate0: case 1: // start condition: PHP goto yystart13 case 2: // start condition: STRING - goto yystart540 + goto yystart541 case 3: // start condition: STRING_VAR - goto yystart548 + goto yystart549 case 4: // start condition: STRING_VAR_INDEX - goto yystart558 + goto yystart559 case 5: // start condition: STRING_VAR_NAME - goto yystart575 + goto yystart576 case 6: // start condition: PROPERTY - goto yystart580 + goto yystart581 case 7: // start condition: HEREDOC_END - goto yystart588 + goto yystart589 case 8: // start condition: NOWDOC - goto yystart591 + goto yystart592 case 9: // start condition: HEREDOC - goto yystart593 + goto yystart594 case 10: // start condition: BACKQUOTE - goto yystart597 + goto yystart598 + case 11: // start condition: HALT_COMPILER + goto yystart603 } goto yystate0 // silence unused label error @@ -403,6 +406,10 @@ yyAction: goto yyrule165 case 166: goto yyrule166 + case 167: + goto yyrule167 + case 168: + goto yyrule168 } goto yystate1 // silence unused label error yystate1: @@ -559,83 +566,83 @@ yystart13: case c == '/': goto yystate112 case c == '0': - goto yystate116 + goto yystate117 case c == ':': - goto yystate122 + goto yystate123 case c == ';': - goto yystate124 + goto yystate125 case c == '<': - goto yystate130 + goto yystate131 case c == '=': - goto yystate145 + goto yystate146 case c == '>': - goto yystate149 + goto yystate150 case c == '?': - goto yystate153 + goto yystate154 case c == 'A' || c == 'a': - goto yystate158 - case c == 'B': - goto yystate174 - case c == 'C' || c == 'c': - goto yystate179 - case c == 'D' || c == 'd': - goto yystate216 - case c == 'E' || c == 'e': - goto yystate231 - case c == 'F' || c == 'f': - goto yystate283 - case c == 'G' || c == 'g': - goto yystate296 - case c == 'H' || c == 'J' || c == 'K' || c == 'M' || c == 'Q' || c == 'Z' || c == 'h' || c == 'j' || c == 'k' || c == 'm' || c == 'q' || c == 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate159 + case c == 'B': + goto yystate175 + case c == 'C' || c == 'c': + goto yystate180 + case c == 'D' || c == 'd': + goto yystate217 + case c == 'E' || c == 'e': + goto yystate232 + case c == 'F' || c == 'f': + goto yystate284 + case c == 'G' || c == 'g': + goto yystate297 + case c == 'H' || c == 'J' || c == 'K' || c == 'M' || c == 'Q' || c == 'Z' || c == 'h' || c == 'j' || c == 'k' || c == 'm' || c == 'q' || c == 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 case c == 'I' || c == 'i': - goto yystate305 + goto yystate306 case c == 'L' || c == 'l': - goto yystate351 + goto yystate352 case c == 'N' || c == 'n': - goto yystate355 + goto yystate356 case c == 'O' || c == 'o': - goto yystate366 + goto yystate367 case c == 'P' || c == 'p': - goto yystate368 + goto yystate369 case c == 'R' || c == 'r': - goto yystate389 + goto yystate390 case c == 'S' || c == 's': - goto yystate405 + goto yystate406 case c == 'T' || c == 't': - goto yystate416 + goto yystate417 case c == 'U' || c == 'u': - goto yystate426 + goto yystate427 case c == 'V' || c == 'v': - goto yystate433 + goto yystate434 case c == 'W' || c == 'w': - goto yystate436 + goto yystate437 case c == 'X' || c == 'x': - goto yystate441 + goto yystate442 case c == 'Y' || c == 'y': - goto yystate444 + goto yystate445 case c == '\'': goto yystate27 case c == '\\': - goto yystate454 + goto yystate455 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate14 case c == '^': - goto yystate455 + goto yystate456 case c == '_': - goto yystate457 + goto yystate458 case c == '`': - goto yystate531 - case c == 'b': goto yystate532 + case c == 'b': + goto yystate533 case c == '{': - goto yystate535 - case c == '|': goto yystate536 + case c == '|': + goto yystate537 case c == '}': - goto yystate539 + goto yystate540 case c >= '1' && c <= '9': - goto yystate117 + goto yystate118 } yystate14: @@ -651,11 +658,11 @@ yystate14: yystate15: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '=': goto yystate16 } @@ -679,9 +686,9 @@ yystate17: yystate18: c = l.Next() - yyrule = 145 + yyrule = 146 l.Mark() - goto yyrule145 + goto yyrule146 yystate19: c = l.Next() @@ -691,33 +698,33 @@ yystate19: yystate20: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate21 } yystate21: c = l.Next() - yyrule = 131 + yyrule = 132 l.Mark() switch { default: - goto yyrule131 + goto yyrule132 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate21 } yystate22: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '=': goto yystate23 } @@ -730,11 +737,11 @@ yystate23: yystate24: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '&': goto yystate25 case c == '=': @@ -768,26 +775,26 @@ yystate27: yystate28: c = l.Next() - yyrule = 138 + yyrule = 139 l.Mark() - goto yyrule138 + goto yyrule139 yystate29: c = l.Next() switch { default: goto yyabort - case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': + case c >= '\x01' && c <= 'ÿ': goto yystate27 } yystate30: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == 'A' || c == 'a': goto yystate32 case c == 'B' || c == 'b': @@ -1382,17 +1389,17 @@ yystate91: yystate92: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() - goto yyrule128 + goto yyrule129 yystate93: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '*': goto yystate94 case c == '=': @@ -1424,11 +1431,11 @@ yystate96: yystate97: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '+': goto yystate98 case c == '=': @@ -1449,11 +1456,11 @@ yystate99: yystate100: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '-': goto yystate101 case c == '=': @@ -1476,17 +1483,17 @@ yystate102: yystate103: c = l.Next() - yyrule = 133 + yyrule = 134 l.Mark() - goto yyrule133 + goto yyrule134 yystate104: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '.': goto yystate105 case c == '=': @@ -1561,62 +1568,54 @@ yystate111: goto yyrule102 yystate112: + c = l.Next() + yyrule = 129 + l.Mark() + switch { + default: + goto yyrule129 + case c == '*': + goto yystate113 + case c == '/': + goto yystate19 + case c == '=': + goto yystate116 + } + +yystate113: c = l.Next() yyrule = 128 l.Mark() switch { default: goto yyrule128 - case c == '*': - goto yystate113 - case c == '/': - goto yystate19 - case c == '=': - goto yystate115 - } - -yystate113: - c = l.Next() - yyrule = 127 - l.Mark() - switch { - default: - goto yyrule127 case c == '*': goto yystate114 } yystate114: + c = l.Next() + yyrule = 128 + l.Mark() + switch { + default: + goto yyrule128 + case c == '/': + goto yystate115 + } + +yystate115: c = l.Next() yyrule = 127 l.Mark() goto yyrule127 -yystate115: +yystate116: c = l.Next() yyrule = 105 l.Mark() goto yyrule105 -yystate116: - c = l.Next() - yyrule = 11 - l.Mark() - switch { - default: - goto yyrule11 - case c == '.': - goto yystate107 - case c == 'B' || c == 'b': - goto yystate118 - case c == 'E' || c == 'e': - goto yystate108 - case c == 'X' || c == 'x': - goto yystate120 - case c >= '0' && c <= '9': - goto yystate117 - } - yystate117: c = l.Next() yyrule = 11 @@ -1626,22 +1625,41 @@ yystate117: goto yyrule11 case c == '.': goto yystate107 + case c == 'B' || c == 'b': + goto yystate119 case c == 'E' || c == 'e': goto yystate108 + case c == 'X' || c == 'x': + goto yystate121 case c >= '0' && c <= '9': - goto yystate117 + goto yystate118 } yystate118: + c = l.Next() + yyrule = 11 + l.Mark() + switch { + default: + goto yyrule11 + case c == '.': + goto yystate107 + case c == 'E' || c == 'e': + goto yystate108 + case c >= '0' && c <= '9': + goto yystate118 + } + +yystate119: c = l.Next() switch { default: goto yyabort case c == '0' || c == '1': - goto yystate119 + goto yystate120 } -yystate119: +yystate120: c = l.Next() yyrule = 10 l.Mark() @@ -1649,19 +1667,19 @@ yystate119: default: goto yyrule10 case c == '0' || c == '1': - goto yystate119 + goto yystate120 } -yystate120: +yystate121: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate121 + goto yystate122 } -yystate121: +yystate122: c = l.Next() yyrule = 12 l.Mark() @@ -1669,48 +1687,37 @@ yystate121: default: goto yyrule12 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate121 - } - -yystate122: - c = l.Next() - yyrule = 128 - l.Mark() - switch { - default: - goto yyrule128 - case c == ':': - goto yystate123 + goto yystate122 } yystate123: + c = l.Next() + yyrule = 129 + l.Mark() + switch { + default: + goto yyrule129 + case c == ':': + goto yystate124 + } + +yystate124: c = l.Next() yyrule = 97 l.Mark() goto yyrule97 -yystate124: +yystate125: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '?': - goto yystate126 + goto yystate127 case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate125 - } - -yystate125: - c = l.Next() - switch { - default: - goto yyabort - case c == '?': goto yystate126 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate125 } yystate126: @@ -1718,30 +1725,41 @@ yystate126: switch { default: goto yyabort - case c == '>': + case c == '?': goto yystate127 + case c == '\t' || c == '\n' || c == '\r' || c == ' ': + goto yystate126 } yystate127: c = l.Next() - yyrule = 7 - l.Mark() switch { default: - goto yyrule7 - case c == '\n': + goto yyabort + case c == '>': goto yystate128 - case c == '\r': - goto yystate129 } yystate128: c = l.Next() yyrule = 7 l.Mark() - goto yyrule7 + switch { + default: + goto yyrule7 + case c == '\n': + goto yystate129 + case c == '\r': + goto yystate130 + } yystate129: + c = l.Next() + yyrule = 7 + l.Mark() + goto yyrule7 + +yystate130: c = l.Next() yyrule = 7 l.Mark() @@ -1749,25 +1767,25 @@ yystate129: default: goto yyrule7 case c == '\n': - goto yystate128 - } - -yystate130: - c = l.Next() - yyrule = 128 - l.Mark() - switch { - default: - goto yyrule128 - case c == '<': - goto yystate131 - case c == '=': - goto yystate142 - case c == '>': - goto yystate144 + goto yystate129 } yystate131: + c = l.Next() + yyrule = 129 + l.Mark() + switch { + default: + goto yyrule129 + case c == '<': + goto yystate132 + case c == '=': + goto yystate143 + case c == '>': + goto yystate145 + } + +yystate132: c = l.Next() yyrule = 123 l.Mark() @@ -1775,24 +1793,9 @@ yystate131: default: goto yyrule123 case c == '<': - goto yystate132 - case c == '=': - goto yystate141 - } - -yystate132: - c = l.Next() - switch { - default: - goto yyabort - case c == '"': goto yystate133 - case c == '\'': - goto yystate138 - case c == '\t' || c == ' ': - goto yystate132 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate140 + case c == '=': + goto yystate142 } yystate133: @@ -1800,8 +1803,14 @@ yystate133: switch { default: goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + case c == '"': goto yystate134 + case c == '\'': + goto yystate139 + case c == '\t' || c == ' ': + goto yystate133 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate141 } yystate134: @@ -1809,10 +1818,8 @@ yystate134: switch { default: goto yyabort - case c == '"': + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate135 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate134 } yystate135: @@ -1820,36 +1827,38 @@ yystate135: switch { default: goto yyabort - case c == '\n': + case c == '"': goto yystate136 - case c == '\r': - goto yystate137 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate135 } yystate136: - c = l.Next() - yyrule = 141 - l.Mark() - goto yyrule141 - -yystate137: - c = l.Next() - yyrule = 141 - l.Mark() - switch { - default: - goto yyrule141 - case c == '\n': - goto yystate136 - } - -yystate138: c = l.Next() switch { default: goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate139 + case c == '\n': + goto yystate137 + case c == '\r': + goto yystate138 + } + +yystate137: + c = l.Next() + yyrule = 142 + l.Mark() + goto yyrule142 + +yystate138: + c = l.Next() + yyrule = 142 + l.Mark() + switch { + default: + goto yyrule142 + case c == '\n': + goto yystate137 } yystate139: @@ -1857,10 +1866,8 @@ yystate139: switch { default: goto yyabort - case c == '\'': - goto yystate135 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate139 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate140 } yystate140: @@ -1868,21 +1875,32 @@ yystate140: switch { default: goto yyabort - case c == '\n': + case c == '\'': goto yystate136 - case c == '\r': - goto yystate137 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate140 } yystate141: + c = l.Next() + switch { + default: + goto yyabort + case c == '\n': + goto yystate137 + case c == '\r': + goto yystate138 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate141 + } + +yystate142: c = l.Next() yyrule = 118 l.Mark() goto yyrule118 -yystate142: +yystate143: c = l.Next() yyrule = 121 l.Mark() @@ -1890,35 +1908,35 @@ yystate142: default: goto yyrule121 case c == '>': - goto yystate143 + goto yystate144 } -yystate143: +yystate144: c = l.Next() yyrule = 113 l.Mark() goto yyrule113 -yystate144: +yystate145: c = l.Next() yyrule = 114 l.Mark() goto yyrule114 -yystate145: +yystate146: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '=': - goto yystate146 + goto yystate147 case c == '>': - goto yystate148 + goto yystate149 } -yystate146: +yystate147: c = l.Next() yyrule = 116 l.Mark() @@ -1926,41 +1944,41 @@ yystate146: default: goto yyrule116 case c == '=': - goto yystate147 + goto yystate148 } -yystate147: +yystate148: c = l.Next() yyrule = 117 l.Mark() goto yyrule117 -yystate148: +yystate149: c = l.Next() yyrule = 112 l.Mark() goto yyrule112 -yystate149: +yystate150: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '=': - goto yystate150 - case c == '>': goto yystate151 + case c == '>': + goto yystate152 } -yystate150: +yystate151: c = l.Next() yyrule = 120 l.Mark() goto yyrule120 -yystate151: +yystate152: c = l.Next() yyrule = 124 l.Mark() @@ -1968,48 +1986,48 @@ yystate151: default: goto yyrule124 case c == '=': - goto yystate152 + goto yystate153 } -yystate152: +yystate153: c = l.Next() yyrule = 119 l.Mark() goto yyrule119 -yystate153: - c = l.Next() - yyrule = 128 - l.Mark() - switch { - default: - goto yyrule128 - case c == '>': - goto yystate154 - case c == '?': - goto yystate157 - } - yystate154: c = l.Next() - yyrule = 8 + yyrule = 129 l.Mark() switch { default: - goto yyrule8 - case c == '\n': + goto yyrule129 + case c == '>': goto yystate155 - case c == '\r': - goto yystate156 + case c == '?': + goto yystate158 } yystate155: c = l.Next() yyrule = 8 l.Mark() - goto yyrule8 + switch { + default: + goto yyrule8 + case c == '\n': + goto yystate156 + case c == '\r': + goto yystate157 + } yystate156: + c = l.Next() + yyrule = 8 + l.Mark() + goto yyrule8 + +yystate157: c = l.Next() yyrule = 8 l.Mark() @@ -2017,124 +2035,124 @@ yystate156: default: goto yyrule8 case c == '\n': - goto yystate155 + goto yystate156 } -yystate157: +yystate158: c = l.Next() yyrule = 125 l.Mark() goto yyrule125 -yystate158: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'B' || c == 'b': - goto yystate160 - case c == 'N' || c == 'n': - goto yystate167 - case c == 'R' || c == 'r': - goto yystate169 - case c == 'S' || c == 's': - goto yystate173 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'M' || c >= 'O' && c <= 'Q' || c >= 'T' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'm' || c >= 'o' && c <= 'q' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - yystate159: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yyrule133 + case c == 'B' || c == 'b': + goto yystate161 + case c == 'N' || c == 'n': + goto yystate168 + case c == 'R' || c == 'r': + goto yystate170 + case c == 'S' || c == 's': + goto yystate174 + case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'M' || c >= 'O' && c <= 'Q' || c >= 'T' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'm' || c >= 'o' && c <= 'q' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate160: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': - goto yystate161 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yyrule133 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate161: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'S' || c == 's': goto yystate162 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate162: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'T' || c == 't': goto yystate163 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate163: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate164 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate164: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate165 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate165: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate166 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate166: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate167 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate167: c = l.Next() yyrule = 13 l.Mark() @@ -2142,23 +2160,23 @@ yystate166: default: goto yyrule13 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate167: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'D' || c == 'd': - goto yystate168 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate168: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'D' || c == 'd': + goto yystate169 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate169: c = l.Next() yyrule = 92 l.Mark() @@ -2166,49 +2184,49 @@ yystate168: default: goto yyrule92 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate169: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'R' || c == 'r': - goto yystate170 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate170: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate171 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate171: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'Y' || c == 'y': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate172 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate172: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'Y' || c == 'y': + goto yystate173 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate173: c = l.Next() yyrule = 14 l.Mark() @@ -2216,10 +2234,10 @@ yystate172: default: goto yyrule14 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } -yystate173: +yystate174: c = l.Next() yyrule = 15 l.Mark() @@ -2227,62 +2245,62 @@ yystate173: default: goto yyrule15 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate174: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'R' || c == 'r': - goto yystate175 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate175: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate176 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate176: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate177 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate177: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'K' || c == 'k': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate178 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'J' || c >= 'L' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'j' || c >= 'l' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate178: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'K' || c == 'k': + goto yystate179 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'J' || c >= 'L' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'j' || c >= 'l' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate179: c = l.Next() yyrule = 16 l.Mark() @@ -2290,111 +2308,111 @@ yystate178: default: goto yyrule16 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate179: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate180 - case c == 'F' || c == 'f': - goto yystate192 - case c == 'L' || c == 'l': - goto yystate200 - case c == 'O' || c == 'o': - goto yystate207 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'E' || c >= 'G' && c <= 'K' || c == 'M' || c == 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'e' || c >= 'g' && c <= 'k' || c == 'm' || c == 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate180: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate181 - case c == 'S' || c == 's': - goto yystate187 - case c == 'T' || c == 't': - goto yystate189 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'F' || c == 'f': + goto yystate193 + case c == 'L' || c == 'l': + goto yystate201 + case c == 'O' || c == 'o': + goto yystate208 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'E' || c >= 'G' && c <= 'K' || c == 'M' || c == 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'e' || c >= 'g' && c <= 'k' || c == 'm' || c == 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate181: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == 'L' || c == 'l': goto yystate182 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'S' || c == 's': + goto yystate188 + case c == 'T' || c == 't': + goto yystate190 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate182: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate183 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate183: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'B' || c == 'b': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate184 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate184: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'B' || c == 'b': goto yystate185 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate185: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate186 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate186: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate187 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate187: c = l.Next() yyrule = 17 l.Mark() @@ -2402,23 +2420,23 @@ yystate186: default: goto yyrule17 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate187: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate188 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate188: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate189 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate189: c = l.Next() yyrule = 18 l.Mark() @@ -2426,36 +2444,36 @@ yystate188: default: goto yyrule18 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate189: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'C' || c == 'c': - goto yystate190 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate190: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate191 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate191: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'H' || c == 'h': + goto yystate192 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate192: c = l.Next() yyrule = 19 l.Mark() @@ -2463,101 +2481,101 @@ yystate191: default: goto yyrule19 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate192: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'U' || c == 'u': - goto yystate193 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate193: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'U' || c == 'u': goto yystate194 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate194: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate195 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate195: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate196 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate196: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'T' || c == 't': goto yystate197 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate197: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate198 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate198: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate199 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate199: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'N' || c == 'n': + goto yystate200 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate200: c = l.Next() yyrule = 44 l.Mark() @@ -2565,51 +2583,51 @@ yystate199: default: goto yyrule44 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate200: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate201 - case c == 'O' || c == 'o': - goto yystate204 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate201: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate202 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'O' || c == 'o': + goto yystate205 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate202: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == 'S' || c == 's': goto yystate203 case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate203: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'S' || c == 's': + goto yystate204 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate204: c = l.Next() yyrule = 20 l.Mark() @@ -2617,36 +2635,36 @@ yystate203: default: goto yyrule20 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate204: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'N' || c == 'n': - goto yystate205 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate205: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate206 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate206: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate207 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate207: c = l.Next() yyrule = 21 l.Mark() @@ -2654,51 +2672,51 @@ yystate206: default: goto yyrule21 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate207: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'N' || c == 'n': - goto yystate208 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate208: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate209 - case c == 'T' || c == 't': - goto yystate211 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate209: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'S' || c == 's': goto yystate210 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'T' || c == 't': + goto yystate212 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate210: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate211 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate211: c = l.Next() yyrule = 22 l.Mark() @@ -2706,62 +2724,62 @@ yystate210: default: goto yyrule22 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate211: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate212 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate212: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate213 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate213: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'U' || c == 'u': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate214 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate214: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'U' || c == 'u': goto yystate215 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate215: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate216 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate216: c = l.Next() yyrule = 23 l.Mark() @@ -2769,94 +2787,94 @@ yystate215: default: goto yyrule23 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate216: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate217 - case c == 'I' || c == 'i': - goto yystate228 - case c == 'O' || c == 'o': - goto yystate230 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate217: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate218 - case c == 'F' || c == 'f': - goto yystate223 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c == 'D' || c == 'E' || c >= 'G' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c == 'd' || c == 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'I' || c == 'i': + goto yystate229 + case c == 'O' || c == 'o': + goto yystate231 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate218: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate219 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'F' || c == 'f': + goto yystate224 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c == 'D' || c == 'E' || c >= 'G' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c == 'd' || c == 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate219: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate220 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate220: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate221 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate221: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate222 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate222: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate223 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate223: c = l.Next() yyrule = 24 l.Mark() @@ -2864,62 +2882,62 @@ yystate222: default: goto yyrule24 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate223: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate224 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate224: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'U' || c == 'u': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate225 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate225: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'U' || c == 'u': goto yystate226 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate226: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate227 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate227: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate228 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate228: c = l.Next() yyrule = 25 l.Mark() @@ -2927,23 +2945,23 @@ yystate227: default: goto yyrule25 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate228: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate229 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate229: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate230 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate230: c = l.Next() yyrule = 38 l.Mark() @@ -2951,10 +2969,10 @@ yystate229: default: goto yyrule38 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } -yystate230: +yystate231: c = l.Next() yyrule = 26 l.Mark() @@ -2962,59 +2980,59 @@ yystate230: default: goto yyrule26 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate231: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'C' || c == 'c': - goto yystate232 - case c == 'L' || c == 'l': - goto yystate235 - case c == 'M' || c == 'm': - goto yystate240 - case c == 'N' || c == 'n': - goto yystate244 - case c == 'V' || c == 'v': - goto yystate273 - case c == 'X' || c == 'x': - goto yystate276 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'K' || c >= 'O' && c <= 'U' || c == 'W' || c == 'Y' || c == 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'k' || c >= 'o' && c <= 'u' || c == 'w' || c == 'y' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate232: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate233 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'L' || c == 'l': + goto yystate236 + case c == 'M' || c == 'm': + goto yystate241 + case c == 'N' || c == 'n': + goto yystate245 + case c == 'V' || c == 'v': + goto yystate274 + case c == 'X' || c == 'x': + goto yystate277 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'K' || c >= 'O' && c <= 'U' || c == 'W' || c == 'Y' || c == 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'k' || c >= 'o' && c <= 'u' || c == 'w' || c == 'y' || c == 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate233: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'H' || c == 'h': goto yystate234 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate234: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'O' || c == 'o': + goto yystate235 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate235: c = l.Next() yyrule = 27 l.Mark() @@ -3022,36 +3040,36 @@ yystate234: default: goto yyrule27 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate235: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'S' || c == 's': - goto yystate236 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate236: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'S' || c == 's': goto yystate237 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate237: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate238 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate238: c = l.Next() yyrule = 28 l.Mark() @@ -3059,25 +3077,25 @@ yystate237: default: goto yyrule28 case c == 'I' || c == 'i': - goto yystate238 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate238: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'F' || c == 'f': goto yystate239 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate239: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'F' || c == 'f': + goto yystate240 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate240: c = l.Next() yyrule = 29 l.Mark() @@ -3085,49 +3103,49 @@ yystate239: default: goto yyrule29 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate240: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'P' || c == 'p': - goto yystate241 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate241: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'P' || c == 'p': goto yystate242 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate242: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'Y' || c == 'y': + goto yyrule133 + case c == 'T' || c == 't': goto yystate243 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate243: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'Y' || c == 'y': + goto yystate244 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate244: c = l.Next() yyrule = 30 l.Mark() @@ -3135,122 +3153,122 @@ yystate243: default: goto yyrule30 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate244: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'D' || c == 'd': - goto yystate245 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate245: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == 'D' || c == 'd': goto yystate246 - case c == 'F' || c == 'f': - goto yystate253 - case c == 'I' || c == 'i': - goto yystate260 - case c == 'S' || c == 's': - goto yystate262 - case c == 'W' || c == 'w': - goto yystate268 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c == 'E' || c == 'G' || c == 'H' || c >= 'J' && c <= 'R' || c >= 'T' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c == 'e' || c == 'g' || c == 'h' || c >= 'j' && c <= 'r' || c >= 't' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate246: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'D' || c == 'd': goto yystate247 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'F' || c == 'f': + goto yystate254 + case c == 'I' || c == 'i': + goto yystate261 + case c == 'S' || c == 's': + goto yystate263 + case c == 'W' || c == 'w': + goto yystate269 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c == 'E' || c == 'G' || c == 'H' || c >= 'J' && c <= 'R' || c >= 'T' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c == 'e' || c == 'g' || c == 'h' || c >= 'j' && c <= 'r' || c >= 't' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate247: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate248 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate248: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate249 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate249: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate250 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate250: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate251 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate251: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate252 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate252: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate253 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate253: c = l.Next() yyrule = 31 l.Mark() @@ -3258,36 +3276,36 @@ yystate252: default: goto yyrule31 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate253: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'O' || c == 'o': - goto yystate254 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate254: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate255 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate255: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'R' || c == 'r': + goto yystate256 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate256: c = l.Next() yyrule = 32 l.Mark() @@ -3295,51 +3313,51 @@ yystate255: default: goto yyrule32 case c == 'E' || c == 'e': - goto yystate256 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate256: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': goto yystate257 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate257: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate258 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate258: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate259 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate259: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'H' || c == 'h': + goto yystate260 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate260: c = l.Next() yyrule = 33 l.Mark() @@ -3347,23 +3365,23 @@ yystate259: default: goto yyrule33 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate260: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'F' || c == 'f': - goto yystate261 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate261: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'F' || c == 'f': + goto yystate262 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate262: c = l.Next() yyrule = 34 l.Mark() @@ -3371,75 +3389,75 @@ yystate261: default: goto yyrule34 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate262: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'W' || c == 'w': - goto yystate263 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate263: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'W' || c == 'w': goto yystate264 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate264: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate265 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate265: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'T' || c == 't': goto yystate266 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate266: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate267 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate267: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'H' || c == 'h': + goto yystate268 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate268: c = l.Next() yyrule = 35 l.Mark() @@ -3447,62 +3465,62 @@ yystate267: default: goto yyrule35 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate268: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'H' || c == 'h': - goto yystate269 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate269: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'H' || c == 'h': goto yystate270 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate270: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate271 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate271: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate272 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate272: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate273 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate273: c = l.Next() yyrule = 36 l.Mark() @@ -3510,36 +3528,36 @@ yystate272: default: goto yyrule36 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate273: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate274 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate274: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate275 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate275: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'L' || c == 'l': + goto yystate276 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate276: c = l.Next() yyrule = 37 l.Mark() @@ -3547,90 +3565,90 @@ yystate275: default: goto yyrule37 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate276: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate277 - case c == 'T' || c == 't': - goto yystate278 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate277: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 + case c == 'I' || c == 'i': + goto yystate278 case c == 'T' || c == 't': - goto yystate229 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate279 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate278: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate279 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yyrule133 + case c == 'T' || c == 't': + goto yystate230 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate279: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate280 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate280: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'D' || c == 'd': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate281 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate281: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'D' || c == 'd': goto yystate282 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate282: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'S' || c == 's': + goto yystate283 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate283: c = l.Next() yyrule = 39 l.Mark() @@ -3638,66 +3656,66 @@ yystate282: default: goto yyrule39 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate283: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate284 - case c == 'O' || c == 'o': - goto yystate290 - case c == 'U' || c == 'u': - goto yystate193 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate284: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate285 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'O' || c == 'o': + goto yystate291 + case c == 'U' || c == 'u': + goto yystate194 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate285: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate286 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate286: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate287 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate287: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'L' || c == 'l': + goto yystate288 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate288: c = l.Next() yyrule = 40 l.Mark() @@ -3705,25 +3723,25 @@ yystate287: default: goto yyrule40 case c == 'L' || c == 'l': - goto yystate288 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate288: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'Y' || c == 'y': goto yystate289 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate289: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'Y' || c == 'y': + goto yystate290 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate290: c = l.Next() yyrule = 41 l.Mark() @@ -3731,23 +3749,23 @@ yystate289: default: goto yyrule41 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate290: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'R' || c == 'r': - goto yystate291 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate291: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'R' || c == 'r': + goto yystate292 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate292: c = l.Next() yyrule = 42 l.Mark() @@ -3755,51 +3773,51 @@ yystate291: default: goto yyrule42 case c == 'E' || c == 'e': - goto yystate292 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate292: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': goto yystate293 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate293: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate294 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate294: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate295 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate295: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'H' || c == 'h': + goto yystate296 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate296: c = l.Next() yyrule = 43 l.Mark() @@ -3807,77 +3825,77 @@ yystate295: default: goto yyrule43 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate296: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'L' || c == 'l': - goto yystate297 - case c == 'O' || c == 'o': - goto yystate302 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c == 'M' || c == 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c == 'm' || c == 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate297: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate298 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'O' || c == 'o': + goto yystate303 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c == 'M' || c == 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c == 'm' || c == 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate298: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'B' || c == 'b': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate299 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate299: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'B' || c == 'b': goto yystate300 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate300: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate301 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate301: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'L' || c == 'l': + goto yystate302 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate302: c = l.Next() yyrule = 45 l.Mark() @@ -3885,36 +3903,36 @@ yystate301: default: goto yyrule45 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate302: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'T' || c == 't': - goto yystate303 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate303: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'T' || c == 't': goto yystate304 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate304: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'O' || c == 'o': + goto yystate305 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate305: c = l.Next() yyrule = 46 l.Mark() @@ -3922,29 +3940,29 @@ yystate304: default: goto yyrule46 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate305: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'F' || c == 'f': - goto yystate306 - case c == 'M' || c == 'm': - goto yystate307 - case c == 'N' || c == 'n': - goto yystate316 - case c == 'S' || c == 's': - goto yystate347 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'L' || c >= 'O' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'l' || c >= 'o' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate306: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'F' || c == 'f': + goto yystate307 + case c == 'M' || c == 'm': + goto yystate308 + case c == 'N' || c == 'n': + goto yystate317 + case c == 'S' || c == 's': + goto yystate348 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'L' || c >= 'O' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'l' || c >= 'o' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate307: c = l.Next() yyrule = 47 l.Mark() @@ -3952,114 +3970,114 @@ yystate306: default: goto yyrule47 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate307: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'P' || c == 'p': - goto yystate308 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate308: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'P' || c == 'p': goto yystate309 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate309: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate310 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate310: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'M' || c == 'm': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate311 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate311: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'M' || c == 'm': goto yystate312 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate312: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate313 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate313: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate314 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate314: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'T' || c == 't': goto yystate315 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate315: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'S' || c == 's': + goto yystate316 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate316: c = l.Next() yyrule = 49 l.Mark() @@ -4067,79 +4085,79 @@ yystate315: default: goto yyrule49 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate316: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'C' || c == 'c': - goto yystate317 - case c == 'S' || c == 's': - goto yystate327 - case c == 'T' || c == 't': - goto yystate340 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate317: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate318 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'S' || c == 's': + goto yystate328 + case c == 'T' || c == 't': + goto yystate341 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate318: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'U' || c == 'u': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate319 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate319: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'D' || c == 'd': + goto yyrule133 + case c == 'U' || c == 'u': goto yystate320 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate320: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'D' || c == 'd': goto yystate321 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate321: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate322 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate322: c = l.Next() yyrule = 71 l.Mark() @@ -4147,64 +4165,64 @@ yystate321: default: goto yyrule71 case c == '_': - goto yystate322 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate322: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'O' || c == 'o': goto yystate323 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate323: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate324 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate324: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate325 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate325: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate326 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate326: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate327 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate327: c = l.Next() yyrule = 72 l.Mark() @@ -4212,103 +4230,103 @@ yystate326: default: goto yyrule72 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate327: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'T' || c == 't': - goto yystate328 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate328: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'T' || c == 't': goto yystate329 - case c == 'E' || c == 'e': - goto yystate335 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate329: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate330 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'E' || c == 'e': + goto yystate336 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate330: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate331 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate331: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate332 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate332: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate333 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate333: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'F' || c == 'f': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate334 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate334: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'F' || c == 'f': + goto yystate335 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate335: c = l.Next() yyrule = 50 l.Mark() @@ -4316,62 +4334,62 @@ yystate334: default: goto yyrule50 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate335: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate336 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate336: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'D' || c == 'd': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate337 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate337: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'D' || c == 'd': goto yystate338 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate338: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'F' || c == 'f': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate339 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate339: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'F' || c == 'f': + goto yystate340 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate340: c = l.Next() yyrule = 51 l.Mark() @@ -4379,88 +4397,88 @@ yystate339: default: goto yyrule51 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate340: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate341 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate341: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate342 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate342: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'F' || c == 'f': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate343 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate343: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'F' || c == 'f': goto yystate344 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate344: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate345 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate345: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate346 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate346: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate347 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate347: c = l.Next() yyrule = 52 l.Mark() @@ -4468,49 +4486,49 @@ yystate346: default: goto yyrule52 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate347: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'S' || c == 's': - goto yystate348 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate348: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'S' || c == 's': goto yystate349 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate349: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate350 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate350: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate351 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate351: c = l.Next() yyrule = 48 l.Mark() @@ -4518,49 +4536,49 @@ yystate350: default: goto yyrule48 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate351: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate352 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate352: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate353 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate353: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'S' || c == 's': goto yystate354 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate354: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate355 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate355: c = l.Next() yyrule = 53 l.Mark() @@ -4568,116 +4586,116 @@ yystate354: default: goto yyrule53 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate355: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate356 - case c == 'E' || c == 'e': - goto yystate364 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate356: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'M' || c == 'm': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate357 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'E' || c == 'e': + goto yystate365 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate357: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'M' || c == 'm': goto yystate358 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate358: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate359 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate359: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'P' || c == 'p': + goto yyrule133 + case c == 'S' || c == 's': goto yystate360 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate360: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'P' || c == 'p': goto yystate361 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate361: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate362 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate362: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate363 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate363: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate364 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate364: c = l.Next() yyrule = 54 l.Mark() @@ -4685,23 +4703,23 @@ yystate363: default: goto yyrule54 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate364: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'W' || c == 'w': - goto yystate365 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate365: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'W' || c == 'w': + goto yystate366 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate366: c = l.Next() yyrule = 91 l.Mark() @@ -4709,23 +4727,23 @@ yystate365: default: goto yyrule91 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate366: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'R' || c == 'r': - goto yystate367 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate367: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'R' || c == 'r': + goto yystate368 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate368: c = l.Next() yyrule = 93 l.Mark() @@ -4733,68 +4751,68 @@ yystate367: default: goto yyrule93 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate368: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'R' || c == 'r': - goto yystate369 - case c == 'U' || c == 'u': - goto yystate384 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c == 'S' || c == 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c == 's' || c == 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate369: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate370 - case c == 'O' || c == 'o': - goto yystate377 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'U' || c == 'u': + goto yystate385 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c == 'S' || c == 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c == 's' || c == 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate370: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate371 - case c == 'V' || c == 'v': - goto yystate373 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'U' || c >= 'W' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'u' || c >= 'w' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'O' || c == 'o': + goto yystate378 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate371: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate372 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'V' || c == 'v': + goto yystate374 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'U' || c >= 'W' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'u' || c >= 'w' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate372: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate373 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate373: c = l.Next() yyrule = 57 l.Mark() @@ -4802,49 +4820,49 @@ yystate372: default: goto yyrule57 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate373: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate374 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate374: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate375 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate375: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'T' || c == 't': goto yystate376 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate376: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate377 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate377: c = l.Next() yyrule = 55 l.Mark() @@ -4852,88 +4870,88 @@ yystate376: default: goto yyrule55 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate377: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'T' || c == 't': - goto yystate378 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate378: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'T' || c == 't': goto yystate379 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate379: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate380 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate380: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate381 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate381: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'T' || c == 't': goto yystate382 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate382: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'D' || c == 'd': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate383 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate383: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'D' || c == 'd': + goto yystate384 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate384: c = l.Next() yyrule = 58 l.Mark() @@ -4941,62 +4959,62 @@ yystate383: default: goto yyrule58 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate384: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'B' || c == 'b': - goto yystate385 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate385: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'B' || c == 'b': goto yystate386 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate386: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate387 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate387: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate388 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate388: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'C' || c == 'c': + goto yystate389 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate389: c = l.Next() yyrule = 56 l.Mark() @@ -5004,90 +5022,90 @@ yystate388: default: goto yyrule56 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate389: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate390 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate390: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'Q' || c == 'q': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate391 - case c == 'T' || c == 't': - goto yystate401 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'P' || c == 'R' || c == 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'p' || c == 'r' || c == 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate391: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'U' || c == 'u': + goto yyrule133 + case c == 'Q' || c == 'q': goto yystate392 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'T' || c == 't': + goto yystate402 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'P' || c == 'R' || c == 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'p' || c == 'r' || c == 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate392: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'U' || c == 'u': goto yystate393 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate393: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate394 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate394: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate395 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate395: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate396 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate396: c = l.Next() yyrule = 73 l.Mark() @@ -5095,64 +5113,64 @@ yystate395: default: goto yyrule73 case c == '_': - goto yystate396 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate396: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'O' || c == 'o': goto yystate397 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate397: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate398 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate398: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate399 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate399: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate400 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate400: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate401 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate401: c = l.Next() yyrule = 74 l.Mark() @@ -5160,49 +5178,49 @@ yystate400: default: goto yyrule74 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate401: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'U' || c == 'u': - goto yystate402 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate402: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'U' || c == 'u': goto yystate403 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate403: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate404 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate404: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'N' || c == 'n': + goto yystate405 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate405: c = l.Next() yyrule = 59 l.Mark() @@ -5210,77 +5228,77 @@ yystate404: default: goto yyrule59 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate405: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'T' || c == 't': - goto yystate406 - case c == 'W' || c == 'w': - goto yystate411 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c == 'U' || c == 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c == 'u' || c == 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate406: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'T' || c == 't': goto yystate407 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'W' || c == 'w': + goto yystate412 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c == 'U' || c == 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c == 'u' || c == 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate407: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate408 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate408: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'T' || c == 't': goto yystate409 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate409: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate410 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate410: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'C' || c == 'c': + goto yystate411 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate411: c = l.Next() yyrule = 60 l.Mark() @@ -5288,62 +5306,62 @@ yystate410: default: goto yyrule60 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate411: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate412 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate412: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate413 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate413: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'T' || c == 't': goto yystate414 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate414: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate415 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate415: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'H' || c == 'h': + goto yystate416 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate416: c = l.Next() yyrule = 61 l.Mark() @@ -5351,64 +5369,64 @@ yystate415: default: goto yyrule61 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate416: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'H' || c == 'h': - goto yystate417 - case c == 'R' || c == 'r': - goto yystate421 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate417: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'H' || c == 'h': goto yystate418 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'R' || c == 'r': + goto yystate422 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate418: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate419 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate419: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'W' || c == 'w': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate420 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate420: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'W' || c == 'w': + goto yystate421 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate421: c = l.Next() yyrule = 62 l.Mark() @@ -5416,51 +5434,51 @@ yystate420: default: goto yyrule62 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate421: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate422 - case c == 'Y' || c == 'y': - goto yystate425 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'X' || c == 'Z' || c == '_' || c >= 'b' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate422: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate423 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'Y' || c == 'y': + goto yystate426 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'X' || c == 'Z' || c == '_' || c >= 'b' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate423: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate424 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate424: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate425 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate425: c = l.Next() yyrule = 63 l.Mark() @@ -5468,10 +5486,10 @@ yystate424: default: goto yyrule63 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } -yystate425: +yystate426: c = l.Next() yyrule = 64 l.Mark() @@ -5479,64 +5497,64 @@ yystate425: default: goto yyrule64 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate426: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'N' || c == 'n': - goto yystate427 - case c == 'S' || c == 's': - goto yystate431 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate427: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate428 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'S' || c == 's': + goto yystate432 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate428: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'S' || c == 's': goto yystate429 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate429: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate430 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate430: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'T' || c == 't': + goto yystate431 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate431: c = l.Next() yyrule = 65 l.Mark() @@ -5544,23 +5562,23 @@ yystate430: default: goto yyrule65 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate431: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate432 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate432: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate433 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate433: c = l.Next() yyrule = 66 l.Mark() @@ -5568,36 +5586,36 @@ yystate432: default: goto yyrule66 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate433: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate434 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate434: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate435 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate435: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'R' || c == 'r': + goto yystate436 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate436: c = l.Next() yyrule = 67 l.Mark() @@ -5605,62 +5623,62 @@ yystate435: default: goto yyrule67 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate436: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'H' || c == 'h': - goto yystate437 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate437: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'H' || c == 'h': goto yystate438 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate438: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate439 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate439: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate440 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate440: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'E' || c == 'e': + goto yystate441 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate441: c = l.Next() yyrule = 68 l.Mark() @@ -5668,36 +5686,36 @@ yystate440: default: goto yyrule68 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate441: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'O' || c == 'o': - goto yystate442 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate442: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate443 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate443: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'R' || c == 'r': + goto yystate444 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate444: c = l.Next() yyrule = 94 l.Mark() @@ -5705,62 +5723,62 @@ yystate443: default: goto yyrule94 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate444: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate445 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate445: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate446 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate446: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate447 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate447: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'D' || c == 'd': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate448 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate448: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'D' || c == 'd': + goto yystate449 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate449: c = l.Next() yyrule = 70 l.Mark() @@ -5768,20 +5786,9 @@ yystate448: default: goto yyrule70 case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate449 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate449: - c = l.Next() - switch { - default: - goto yyabort - case c == 'F' || c == 'f': goto yystate450 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate449 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate450: @@ -5789,8 +5796,10 @@ yystate450: switch { default: goto yyabort - case c == 'R' || c == 'r': + case c == 'F' || c == 'f': goto yystate451 + case c == '\t' || c == '\n' || c == '\r' || c == ' ': + goto yystate450 } yystate451: @@ -5798,7 +5807,7 @@ yystate451: switch { default: goto yyabort - case c == 'O' || c == 'o': + case c == 'R' || c == 'r': goto yystate452 } @@ -5807,158 +5816,167 @@ yystate452: switch { default: goto yyabort - case c == 'M' || c == 'm': + case c == 'O' || c == 'o': goto yystate453 } yystate453: + c = l.Next() + switch { + default: + goto yyabort + case c == 'M' || c == 'm': + goto yystate454 + } + +yystate454: c = l.Next() yyrule = 69 l.Mark() goto yyrule69 -yystate454: +yystate455: c = l.Next() yyrule = 95 l.Mark() goto yyrule95 -yystate455: +yystate456: c = l.Next() - yyrule = 128 + yyrule = 129 l.Mark() switch { default: - goto yyrule128 + goto yyrule129 case c == '=': - goto yystate456 + goto yystate457 } -yystate456: +yystate457: c = l.Next() yyrule = 108 l.Mark() goto yyrule108 -yystate457: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == '_': - goto yystate458 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - yystate458: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == '_': goto yystate459 - case c == 'D' || c == 'd': - goto yystate466 - case c == 'F' || c == 'f': - goto yystate471 - case c == 'H' || c == 'h': - goto yystate486 - case c == 'L' || c == 'l': - goto yystate499 - case c == 'M' || c == 'm': - goto yystate505 - case c == 'N' || c == 'n': - goto yystate513 - case c == 'T' || c == 't': - goto yystate524 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c == 'E' || c == 'G' || c >= 'I' && c <= 'K' || c >= 'O' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c == 'e' || c == 'g' || c >= 'i' && c <= 'k' || c >= 'o' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate459: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate460 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'D' || c == 'd': + goto yystate467 + case c == 'F' || c == 'f': + goto yystate472 + case c == 'H' || c == 'h': + goto yystate487 + case c == 'L' || c == 'l': + goto yystate500 + case c == 'M' || c == 'm': + goto yystate506 + case c == 'N' || c == 'n': + goto yystate514 + case c == 'T' || c == 't': + goto yystate525 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c == 'E' || c == 'G' || c >= 'I' && c <= 'K' || c >= 'O' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c == 'e' || c == 'g' || c >= 'i' && c <= 'k' || c >= 'o' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate460: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate461 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate461: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate462 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate462: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == 'S' || c == 's': goto yystate463 case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate463: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'S' || c == 's': goto yystate464 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate464: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate465 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate465: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate466 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate466: c = l.Next() yyrule = 75 l.Mark() @@ -5966,62 +5984,62 @@ yystate465: default: goto yyrule75 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate466: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate467 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate467: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate468 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate468: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate469 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate469: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate470 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate470: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate471 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate471: c = l.Next() yyrule = 76 l.Mark() @@ -6029,77 +6047,77 @@ yystate470: default: goto yyrule76 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate471: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate472 - case c == 'U' || c == 'u': - goto yystate477 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate472: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate473 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c == 'U' || c == 'u': + goto yystate478 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate473: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate474 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate474: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate475 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate475: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate476 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate476: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate477 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate477: c = l.Next() yyrule = 77 l.Mark() @@ -6107,114 +6125,114 @@ yystate476: default: goto yyrule77 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate477: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'N' || c == 'n': - goto yystate478 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate478: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate479 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate479: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate480 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate480: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'T' || c == 't': goto yystate481 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate481: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate482 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate482: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate483 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate483: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate484 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate484: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate485 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate485: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate486 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate486: c = l.Next() yyrule = 78 l.Mark() @@ -6222,166 +6240,166 @@ yystate485: default: goto yyrule78 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate486: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate487 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate487: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate488 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate488: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate489 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate489: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'T' || c == 't': goto yystate490 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate490: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == '_': goto yystate491 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate491: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate492 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate492: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'M' || c == 'm': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate493 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate493: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'P' || c == 'p': + goto yyrule133 + case c == 'M' || c == 'm': goto yystate494 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate494: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'P' || c == 'p': goto yystate495 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate495: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'L' || c == 'l': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate496 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate496: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'L' || c == 'l': goto yystate497 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate497: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'R' || c == 'r': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate498 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate498: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == 'R' || c == 'r': + goto yystate499 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate499: c = l.Next() yyrule = 83 l.Mark() @@ -6389,75 +6407,75 @@ yystate498: default: goto yyrule83 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate499: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'I' || c == 'i': - goto yystate500 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate500: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'N' || c == 'n': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate501 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate501: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'N' || c == 'n': goto yystate502 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate502: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate503 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate503: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate504 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate504: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate505 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate505: c = l.Next() yyrule = 79 l.Mark() @@ -6465,101 +6483,101 @@ yystate504: default: goto yyrule79 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate505: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'E' || c == 'e': - goto yystate506 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate506: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate507 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate507: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'H' || c == 'h': + goto yyrule133 + case c == 'T' || c == 't': goto yystate508 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate508: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'O' || c == 'o': + goto yyrule133 + case c == 'H' || c == 'h': goto yystate509 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate509: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'D' || c == 'd': + goto yyrule133 + case c == 'O' || c == 'o': goto yystate510 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate510: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'D' || c == 'd': goto yystate511 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate511: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate512 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate512: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate513 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate513: c = l.Next() yyrule = 81 l.Mark() @@ -6567,140 +6585,140 @@ yystate512: default: goto yyrule81 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate513: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'A' || c == 'a': - goto yystate514 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate514: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'M' || c == 'm': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate515 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate515: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'M' || c == 'm': goto yystate516 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate516: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'S' || c == 's': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate517 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate517: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'P' || c == 'p': + goto yyrule133 + case c == 'S' || c == 's': goto yystate518 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate518: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'P' || c == 'p': goto yystate519 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate519: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'C' || c == 'c': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate520 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate520: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'E' || c == 'e': + goto yyrule133 + case c == 'C' || c == 'c': goto yystate521 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate521: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'E' || c == 'e': goto yystate522 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate522: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate523 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate523: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate524 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate524: c = l.Next() yyrule = 80 l.Mark() @@ -6708,88 +6726,88 @@ yystate523: default: goto yyrule80 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } - -yystate524: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c == 'R' || c == 'r': - goto yystate525 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate525: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'A' || c == 'a': + goto yyrule133 + case c == 'R' || c == 'r': goto yystate526 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate526: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'I' || c == 'i': + goto yyrule133 + case c == 'A' || c == 'a': goto yystate527 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate527: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == 'T' || c == 't': + goto yyrule133 + case c == 'I' || c == 'i': goto yystate528 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate528: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 - case c == '_': + goto yyrule133 + case c == 'T' || c == 't': goto yystate529 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate529: c = l.Next() - yyrule = 132 + yyrule = 133 l.Mark() switch { default: - goto yyrule132 + goto yyrule133 case c == '_': goto yystate530 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } yystate530: + c = l.Next() + yyrule = 133 + l.Mark() + switch { + default: + goto yyrule133 + case c == '_': + goto yystate531 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 + } + +yystate531: c = l.Next() yyrule = 82 l.Mark() @@ -6797,39 +6815,30 @@ yystate530: default: goto yyrule82 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 + goto yystate160 } -yystate531: - c = l.Next() - yyrule = 139 - l.Mark() - goto yyrule139 - yystate532: c = l.Next() - yyrule = 132 + yyrule = 140 l.Mark() - switch { - default: - goto yyrule132 - case c == '"': - goto yystate18 - case c == '<': - goto yystate533 - case c == 'R' || c == 'r': - goto yystate175 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate159 - } + goto yyrule140 yystate533: c = l.Next() + yyrule = 133 + l.Mark() switch { default: - goto yyabort + goto yyrule133 + case c == '"': + goto yystate18 case c == '<': goto yystate534 + case c == 'R' || c == 'r': + goto yystate176 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate160 } yystate534: @@ -6838,190 +6847,168 @@ yystate534: default: goto yyabort case c == '<': - goto yystate132 + goto yystate535 } yystate535: c = l.Next() - yyrule = 129 - l.Mark() - goto yyrule129 - -yystate536: - c = l.Next() - yyrule = 128 - l.Mark() switch { default: - goto yyrule128 - case c == '=': - goto yystate537 - case c == '|': - goto yystate538 + goto yyabort + case c == '<': + goto yystate133 } -yystate537: - c = l.Next() - yyrule = 101 - l.Mark() - goto yyrule101 - -yystate538: - c = l.Next() - yyrule = 99 - l.Mark() - goto yyrule99 - -yystate539: +yystate536: c = l.Next() yyrule = 130 l.Mark() goto yyrule130 - goto yystate540 // silence unused label error +yystate537: + c = l.Next() + yyrule = 129 + l.Mark() + switch { + default: + goto yyrule129 + case c == '=': + goto yystate538 + case c == '|': + goto yystate539 + } + +yystate538: + c = l.Next() + yyrule = 101 + l.Mark() + goto yyrule101 + +yystate539: + c = l.Next() + yyrule = 99 + l.Mark() + goto yyrule99 + yystate540: c = l.Next() -yystart540: + yyrule = 131 + l.Mark() + goto yyrule131 + + goto yystate541 // silence unused label error +yystate541: + c = l.Next() +yystart541: switch { default: goto yyabort case c == '"': - goto yystate542 - case c == '$': goto yystate543 + case c == '$': + goto yystate544 case c == '{': - goto yystate546 + goto yystate547 case c >= '\x01' && c <= '!' || c == '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': - goto yystate541 + goto yystate542 } -yystate541: - c = l.Next() - yyrule = 150 - l.Mark() - goto yyrule150 - yystate542: c = l.Next() - yyrule = 146 + yyrule = 151 l.Mark() - goto yyrule146 + goto yyrule151 yystate543: - c = l.Next() - yyrule = 150 - l.Mark() - switch { - default: - goto yyrule150 - case c == '{': - goto yystate545 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate544 - } - -yystate544: - c = l.Next() - yyrule = 149 - l.Mark() - switch { - default: - goto yyrule149 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate544 - } - -yystate545: - c = l.Next() - yyrule = 148 - l.Mark() - goto yyrule148 - -yystate546: - c = l.Next() - yyrule = 150 - l.Mark() - switch { - default: - goto yyrule150 - case c == '$': - goto yystate547 - } - -yystate547: c = l.Next() yyrule = 147 l.Mark() goto yyrule147 - goto yystate548 // silence unused label error +yystate544: + c = l.Next() + yyrule = 151 + l.Mark() + switch { + default: + goto yyrule151 + case c == '{': + goto yystate546 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate545 + } + +yystate545: + c = l.Next() + yyrule = 150 + l.Mark() + switch { + default: + goto yyrule150 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate545 + } + +yystate546: + c = l.Next() + yyrule = 149 + l.Mark() + goto yyrule149 + +yystate547: + c = l.Next() + yyrule = 151 + l.Mark() + switch { + default: + goto yyrule151 + case c == '$': + goto yystate548 + } + yystate548: c = l.Next() -yystart548: + yyrule = 148 + l.Mark() + goto yyrule148 + + goto yystate549 // silence unused label error +yystate549: + c = l.Next() +yystart549: switch { default: goto yyabort case c == '$': - goto yystate550 + goto yystate551 case c == '-': - goto yystate552 + goto yystate553 case c == '[': - goto yystate557 + goto yystate558 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate555 + goto yystate556 case c >= '\x01' && c <= '#' || c >= '%' && c <= ',' || c >= '.' && c <= '@' || c >= '\\' && c <= '^' || c == '`' || c >= '{' && c <= '~': - goto yystate549 + goto yystate550 } -yystate549: - c = l.Next() - yyrule = 157 - l.Mark() - goto yyrule157 - yystate550: c = l.Next() - yyrule = 157 + yyrule = 158 l.Mark() - switch { - default: - goto yyrule157 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate551 - } + goto yyrule158 yystate551: c = l.Next() - yyrule = 153 + yyrule = 158 l.Mark() switch { default: - goto yyrule153 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate551 + goto yyrule158 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate552 } yystate552: - c = l.Next() - yyrule = 157 - l.Mark() - switch { - default: - goto yyrule157 - case c == '>': - goto yystate553 - } - -yystate553: - c = l.Next() - switch { - default: - goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate554 - } - -yystate554: c = l.Next() yyrule = 154 l.Mark() @@ -7029,9 +7016,29 @@ yystate554: default: goto yyrule154 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate552 + } + +yystate553: + c = l.Next() + yyrule = 158 + l.Mark() + switch { + default: + goto yyrule158 + case c == '>': goto yystate554 } +yystate554: + c = l.Next() + switch { + default: + goto yyabort + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate555 + } + yystate555: c = l.Next() yyrule = 155 @@ -7040,70 +7047,75 @@ yystate555: default: goto yyrule155 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate556 + goto yystate555 } yystate556: c = l.Next() - yyrule = 155 + yyrule = 156 l.Mark() switch { default: - goto yyrule155 + goto yyrule156 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate556 + goto yystate557 } yystate557: c = l.Next() yyrule = 156 l.Mark() - goto yyrule156 + switch { + default: + goto yyrule156 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate557 + } - goto yystate558 // silence unused label error yystate558: c = l.Next() -yystart558: + yyrule = 157 + l.Mark() + goto yyrule157 + + goto yystate559 // silence unused label error +yystate559: + c = l.Next() +yystart559: switch { default: goto yyabort case c == '!' || c == '%' || c == '&' || c >= '(' && c <= '/' || c >= ':' && c <= '@' || c == '[' || c == '^' || c == '|' || c == '~': - goto yystate562 - case c == '$': goto yystate563 + case c == '$': + goto yystate564 case c == '0': - goto yystate565 + goto yystate566 case c == '\n': - goto yystate561 + goto yystate562 case c == '\t' || c == '\r' || c == ' ' || c == '#' || c == '\'' || c == '\\': - goto yystate560 + goto yystate561 case c == ']': - goto yystate574 + goto yystate575 case c >= '1' && c <= '9': - goto yystate571 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate572 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate573 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c == '"' || c == '`' || c == '{' || c == '}': - goto yystate559 + goto yystate560 } -yystate559: - c = l.Next() - yyrule = 164 - l.Mark() - goto yyrule164 - yystate560: c = l.Next() - yyrule = 162 + yyrule = 165 l.Mark() - goto yyrule162 + goto yyrule165 yystate561: c = l.Next() - yyrule = 162 + yyrule = 163 l.Mark() - goto yyrule162 + goto yyrule163 yystate562: c = l.Next() @@ -7113,411 +7125,434 @@ yystate562: yystate563: c = l.Next() - yyrule = 163 + yyrule = 164 + l.Mark() + goto yyrule164 + +yystate564: + c = l.Next() + yyrule = 164 l.Mark() switch { default: - goto yyrule163 + goto yyrule164 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate564 + goto yystate565 } -yystate564: +yystate565: + c = l.Next() + yyrule = 160 + l.Mark() + switch { + default: + goto yyrule160 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate565 + } + +yystate566: c = l.Next() yyrule = 159 l.Mark() switch { default: goto yyrule159 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate564 - } - -yystate565: - c = l.Next() - yyrule = 158 - l.Mark() - switch { - default: - goto yyrule158 case c == 'B' || c == 'b': - goto yystate567 + goto yystate568 case c == 'X' || c == 'x': - goto yystate569 + goto yystate570 case c >= '0' && c <= '9': - goto yystate566 - } - -yystate566: - c = l.Next() - yyrule = 158 - l.Mark() - switch { - default: - goto yyrule158 - case c >= '0' && c <= '9': - goto yystate566 + goto yystate567 } yystate567: c = l.Next() + yyrule = 159 + l.Mark() switch { default: - goto yyabort - case c == '0' || c == '1': - goto yystate568 + goto yyrule159 + case c >= '0' && c <= '9': + goto yystate567 } yystate568: c = l.Next() - yyrule = 158 - l.Mark() switch { default: - goto yyrule158 + goto yyabort case c == '0' || c == '1': - goto yystate568 + goto yystate569 } yystate569: + c = l.Next() + yyrule = 159 + l.Mark() + switch { + default: + goto yyrule159 + case c == '0' || c == '1': + goto yystate569 + } + +yystate570: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate570 - } - -yystate570: - c = l.Next() - yyrule = 158 - l.Mark() - switch { - default: - goto yyrule158 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate570 + goto yystate571 } yystate571: c = l.Next() - yyrule = 158 + yyrule = 159 l.Mark() switch { default: - goto yyrule158 - case c >= '0' && c <= '9': - goto yystate566 + goto yyrule159 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': + goto yystate571 } yystate572: c = l.Next() - yyrule = 160 + yyrule = 159 l.Mark() switch { default: - goto yyrule160 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate573 + goto yyrule159 + case c >= '0' && c <= '9': + goto yystate567 } yystate573: c = l.Next() - yyrule = 160 + yyrule = 161 l.Mark() switch { default: - goto yyrule160 + goto yyrule161 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate573 + goto yystate574 } yystate574: c = l.Next() yyrule = 161 l.Mark() - goto yyrule161 + switch { + default: + goto yyrule161 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate574 + } - goto yystate575 // silence unused label error yystate575: c = l.Next() -yystart575: + yyrule = 162 + l.Mark() + goto yyrule162 + + goto yystate576 // silence unused label error +yystate576: + c = l.Next() +yystart576: switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate577 + goto yystate578 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': - goto yystate576 + goto yystate577 } -yystate576: +yystate577: + c = l.Next() + yyrule = 167 + l.Mark() + goto yyrule167 + +yystate578: + c = l.Next() + yyrule = 167 + l.Mark() + switch { + default: + goto yyrule167 + case c == '[' || c == '}': + goto yystate580 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate579 + } + +yystate579: + c = l.Next() + switch { + default: + goto yyabort + case c == '[' || c == '}': + goto yystate580 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate579 + } + +yystate580: c = l.Next() yyrule = 166 l.Mark() goto yyrule166 -yystate577: + goto yystate581 // silence unused label error +yystate581: c = l.Next() - yyrule = 166 - l.Mark() - switch { - default: - goto yyrule166 - case c == '[' || c == '}': - goto yystate579 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate578 - } - -yystate578: - c = l.Next() - switch { - default: - goto yyabort - case c == '[' || c == '}': - goto yystate579 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate578 - } - -yystate579: - c = l.Next() - yyrule = 165 - l.Mark() - goto yyrule165 - - goto yystate580 // silence unused label error -yystate580: - c = l.Next() -yystart580: +yystart581: switch { default: goto yyabort case c == '-': - goto yystate584 + goto yystate585 case c == '\n': - goto yystate583 + goto yystate584 case c == '\t' || c == '\r' || c == ' ': - goto yystate582 + goto yystate583 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate586 + goto yystate587 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '!' && c <= ',' || c >= '.' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': - goto yystate581 + goto yystate582 } -yystate581: - c = l.Next() - yyrule = 137 - l.Mark() - goto yyrule137 - yystate582: c = l.Next() - yyrule = 134 + yyrule = 138 l.Mark() - switch { - default: - goto yyrule134 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate583 - } + goto yyrule138 yystate583: c = l.Next() - yyrule = 134 + yyrule = 135 l.Mark() switch { default: - goto yyrule134 + goto yyrule135 case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate583 + goto yystate584 } yystate584: + c = l.Next() + yyrule = 135 + l.Mark() + switch { + default: + goto yyrule135 + case c == '\t' || c == '\n' || c == '\r' || c == ' ': + goto yystate584 + } + +yystate585: + c = l.Next() + yyrule = 138 + l.Mark() + switch { + default: + goto yyrule138 + case c == '>': + goto yystate586 + } + +yystate586: + c = l.Next() + yyrule = 136 + l.Mark() + goto yyrule136 + +yystate587: c = l.Next() yyrule = 137 l.Mark() switch { default: goto yyrule137 - case c == '>': - goto yystate585 - } - -yystate585: - c = l.Next() - yyrule = 135 - l.Mark() - goto yyrule135 - -yystate586: - c = l.Next() - yyrule = 136 - l.Mark() - switch { - default: - goto yyrule136 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate587 + goto yystate588 } -yystate587: - c = l.Next() - yyrule = 136 - l.Mark() - switch { - default: - goto yyrule136 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate587 - } - - goto yystate588 // silence unused label error yystate588: c = l.Next() -yystart588: + yyrule = 137 + l.Mark() + switch { + default: + goto yyrule137 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate588 + } + + goto yystate589 // silence unused label error +yystate589: + c = l.Next() +yystart589: switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate589 - } - -yystate589: - c = l.Next() - yyrule = 144 - l.Mark() - switch { - default: - goto yyrule144 - case c == ';': goto yystate590 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate589 } yystate590: + c = l.Next() + yyrule = 145 + l.Mark() + switch { + default: + goto yyrule145 + case c == ';': + goto yystate591 + case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate590 + } + +yystate591: + c = l.Next() + yyrule = 144 + l.Mark() + goto yyrule144 + + goto yystate592 // silence unused label error +yystate592: + c = l.Next() +yystart592: + switch { + default: + goto yyabort + case c >= '\x01' && c <= 'ÿ': + goto yystate593 + } + +yystate593: c = l.Next() yyrule = 143 l.Mark() goto yyrule143 - goto yystate591 // silence unused label error -yystate591: + goto yystate594 // silence unused label error +yystate594: c = l.Next() -yystart591: - switch { - default: - goto yyabort - case c >= '\x01' && c <= 'ÿ': - goto yystate592 - } - -yystate592: - c = l.Next() - yyrule = 142 - l.Mark() - goto yyrule142 - - goto yystate593 // silence unused label error -yystate593: - c = l.Next() -yystart593: +yystart594: switch { default: goto yyabort case c == '$': - goto yystate595 - case c == '{': goto yystate596 + case c == '{': + goto yystate597 case c >= '\x01' && c <= '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': - goto yystate594 + goto yystate595 } -yystate594: +yystate595: + c = l.Next() + yyrule = 153 + l.Mark() + goto yyrule153 + +yystate596: + c = l.Next() + yyrule = 153 + l.Mark() + switch { + default: + goto yyrule153 + case c == '{': + goto yystate546 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate545 + } + +yystate597: + c = l.Next() + yyrule = 153 + l.Mark() + switch { + default: + goto yyrule153 + case c == '$': + goto yystate548 + } + + goto yystate598 // silence unused label error +yystate598: + c = l.Next() +yystart598: + switch { + default: + goto yyabort + case c == '$': + goto yystate600 + case c == '`': + goto yystate601 + case c == '{': + goto yystate602 + case c >= '\x01' && c <= '#' || c >= '%' && c <= '_' || c >= 'a' && c <= 'z' || c >= '|' && c <= 'ÿ': + goto yystate599 + } + +yystate599: c = l.Next() yyrule = 152 l.Mark() goto yyrule152 -yystate595: - c = l.Next() - yyrule = 152 - l.Mark() - switch { - default: - goto yyrule152 - case c == '{': - goto yystate545 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate544 - } - -yystate596: - c = l.Next() - yyrule = 152 - l.Mark() - switch { - default: - goto yyrule152 - case c == '$': - goto yystate547 - } - - goto yystate597 // silence unused label error -yystate597: - c = l.Next() -yystart597: - switch { - default: - goto yyabort - case c == '$': - goto yystate599 - case c == '`': - goto yystate600 - case c == '{': - goto yystate601 - case c >= '\x01' && c <= '#' || c >= '%' && c <= '_' || c >= 'a' && c <= 'z' || c >= '|' && c <= 'ÿ': - goto yystate598 - } - -yystate598: - c = l.Next() - yyrule = 151 - l.Mark() - goto yyrule151 - -yystate599: - c = l.Next() - yyrule = 151 - l.Mark() - switch { - default: - goto yyrule151 - case c == '{': - goto yystate545 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate544 - } - yystate600: c = l.Next() - yyrule = 140 + yyrule = 152 l.Mark() - goto yyrule140 + switch { + default: + goto yyrule152 + case c == '{': + goto yystate546 + case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': + goto yystate545 + } yystate601: c = l.Next() - yyrule = 151 + yyrule = 141 + l.Mark() + goto yyrule141 + +yystate602: + c = l.Next() + yyrule = 152 l.Mark() switch { default: - goto yyrule151 + goto yyrule152 case c == '$': - goto yystate547 + goto yystate548 } + goto yystate603 // silence unused label error +yystate603: + c = l.Next() +yystart603: + switch { + default: + goto yyabort + case c >= '\x01' && c <= 'ÿ': + goto yystate604 + } + +yystate604: + c = l.Next() + yyrule = 168 + l.Mark() + goto yyrule168 + yyrule1: // [ \t\n\r]+ goto yystate0 @@ -7546,18 +7581,18 @@ yyrule2: // . } yyrule3: // \<\?php([ \t]|{NEW_LINE}) { - l.begin(PHP) + l.Begin(PHP) l.ungetChars(len(l.Token()) - 5) 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 int(T_ECHO) goto yystate0 @@ -7569,14 +7604,14 @@ yyrule6: // [ \t\n\r]+ } 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 @@ -8365,7 +8400,13 @@ yyrule126: // (#|[/][/]) l.addComments(tb) goto yystate0 } -yyrule127: // ([/][*])|([/][*][*]) +yyrule127: // [/][*][*][/] + { + + l.addComments(l.Token()) + goto yystate0 + } +yyrule128: // ([/][*])|([/][*][*]) { tb := l.Token() @@ -8374,6 +8415,7 @@ yyrule127: // ([/][*])|([/][*][*]) is_doc_comment = true l.PhpDocComment = "" } + c = l.Next() for { if c == -1 { break // TODO: Unterminated comment starting line %d @@ -8392,20 +8434,20 @@ yyrule127: // ([/][*])|([/][*][*]) } goto yystate0 } -yyrule128: // {OPERATORS} +yyrule129: // {OPERATORS} { lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule129: // \{ +yyrule130: // \{ { l.pushState(PHP) lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule130: // \} +yyrule131: // \} { l.popState() lval.Token(l.createToken(l.Token())) @@ -8413,70 +8455,70 @@ yyrule130: // \} l.PhpDocComment = "" goto yystate0 } -yyrule131: // \${VAR_NAME} +yyrule132: // \${VAR_NAME} { lval.Token(l.createToken(l.Token())) return int(T_VARIABLE) goto yystate0 } -yyrule132: // {VAR_NAME} +yyrule133: // {VAR_NAME} { lval.Token(l.createToken(l.Token())) return int(T_STRING) goto yystate0 } -yyrule133: // -> +yyrule134: // -> { - l.begin(PROPERTY) + l.Begin(PROPERTY) lval.Token(l.createToken(l.Token())) return int(T_OBJECT_OPERATOR) goto yystate0 } -yyrule134: // [ \t\n\r]+ +yyrule135: // [ \t\n\r]+ { l.addWhiteSpace(l.Token()) goto yystate0 } -yyrule135: // -> +yyrule136: // -> { lval.Token(l.createToken(l.Token())) return int(T_OBJECT_OPERATOR) goto yystate0 } -yyrule136: // {VAR_NAME} +yyrule137: // {VAR_NAME} { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.Token())) return int(T_STRING) goto yystate0 } -yyrule137: // . +yyrule138: // . { l.ungetChars(1) - l.begin(PHP) + l.Begin(PHP) goto yystate0 } -yyrule138: // [\']([^\\\']*([\\].)*)*[\'] +yyrule139: // [\']([^\\\']*(\\(.|\n))*)*[\'] { lval.Token(l.createToken(l.Token())) return int(T_CONSTANT_ENCAPSED_STRING) goto yystate0 } -yyrule139: // ` - { - l.begin(BACKQUOTE) - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } yyrule140: // ` { - l.begin(PHP) + l.Begin(BACKQUOTE) lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule141: // [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])){NEW_LINE} +yyrule141: // ` + { + l.Begin(PHP) + lval.Token(l.createToken(l.Token())) + return Rune2Class(rune(l.TokenBytes(nil)[0])) + goto yystate0 + } +yyrule142: // [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])){NEW_LINE} { tb := l.Token() @@ -8503,13 +8545,13 @@ yyrule141: // [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]) @@ -8526,14 +8568,14 @@ yyrule141: // [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) lval.Token(l.createToken(heredocToken)) return int(T_START_HEREDOC) } -yyrule142: // .|[ \t\n\r] +yyrule143: // .|[ \t\n\r] { searchLabel := []byte{} @@ -8545,13 +8587,13 @@ yyrule142: // .|[ \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) tb = tb[:len(tb)-1] break } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)) tb = tb[:len(tb)-1] break @@ -8566,21 +8608,21 @@ yyrule142: // .|[ \t\n\r] lval.Token(l.createToken(tb)) return int(T_ENCAPSED_AND_WHITESPACE) } -yyrule143: // {VAR_NAME}\; +yyrule144: // {VAR_NAME}\; { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.ungetChars(1))) return int(T_END_HEREDOC) goto yystate0 } -yyrule144: // {VAR_NAME} +yyrule145: // {VAR_NAME} { - l.begin(PHP) + l.Begin(PHP) lval.Token(l.createToken(l.Token())) return int(T_END_HEREDOC) goto yystate0 } -yyrule145: // [b]?[\"] +yyrule146: // [b]?[\"] { binPrefix := l.Token()[0].Rune == 'b' @@ -8630,34 +8672,34 @@ yyrule145: // [b]?[\"] } goto yystate0 } -yyrule146: // \" +yyrule147: // \" { l.popState() lval.Token(l.createToken(l.Token())) return Rune2Class(l.Token()[0].Rune) goto yystate0 } -yyrule147: // \{\$ +yyrule148: // \{\$ { lval.Token(l.createToken(l.ungetChars(1))) l.pushState(PHP) return int(T_CURLY_OPEN) goto yystate0 } -yyrule148: // \$\{ +yyrule149: // \$\{ { l.pushState(STRING_VAR_NAME) lval.Token(l.createToken(l.Token())) return int(T_DOLLAR_OPEN_CURLY_BRACES) goto yystate0 } -yyrule149: // \${VAR_NAME} +yyrule150: // \${VAR_NAME} { l.ungetChars(len(l.Token())) l.pushState(STRING_VAR) goto yystate0 } -yyrule150: // .|[ \t\n\r] +yyrule151: // .|[ \t\n\r] { currentChar := l.Prev @@ -8694,7 +8736,7 @@ yyrule150: // .|[ \t\n\r] } goto yystate0 } -yyrule151: // .|[ \t\n\r] +yyrule152: // .|[ \t\n\r] { currentChar := l.Prev @@ -8731,7 +8773,7 @@ yyrule151: // .|[ \t\n\r] } goto yystate0 } -yyrule152: // .|[ \t\n\r] +yyrule153: // .|[ \t\n\r] { searchLabel := []byte{} @@ -8752,22 +8794,19 @@ yyrule152: // .|[ \t\n\r] fallthrough case '\n': if l.heredocLabel+";" == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) l.ungetChars(len(l.heredocLabel) + 1 + nls) - i := len(tb) - len(l.heredocLabel) - 3 - nls if i < 1 { break HEREDOC_FOR } tb = tb[:i] - lval.Token(l.createToken(tb)) return int(T_ENCAPSED_AND_WHITESPACE) } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) l.ungetChars(len(l.heredocLabel) + nls) - i := len(tb) - len(l.heredocLabel) - 2 - nls if i < 1 { break HEREDOC_FOR @@ -8803,64 +8842,63 @@ yyrule152: // .|[ \t\n\r] if c == -1 { break } - currentChar = l.Last tb = append(tb, currentChar) c = l.Next() } goto yystate0 } -yyrule153: // \${VAR_NAME} +yyrule154: // \${VAR_NAME} { lval.Token(l.createToken(l.Token())) return int(T_VARIABLE) goto yystate0 } -yyrule154: // ->{VAR_NAME} +yyrule155: // ->{VAR_NAME} { lval.Token(l.createToken(l.ungetChars(len(l.Token()) - 2))) return int(T_OBJECT_OPERATOR) goto yystate0 } -yyrule155: // {VAR_NAME} +yyrule156: // {VAR_NAME} { l.popState() lval.Token(l.createToken(l.Token())) return int(T_STRING) goto yystate0 } -yyrule156: // \[ +yyrule157: // \[ { l.pushState(STRING_VAR_INDEX) lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule157: // .|[ \t\n\r] +yyrule158: // .|[ \t\n\r] { l.ungetChars(1) l.popState() goto yystate0 } -yyrule158: // {LNUM}|{HNUM}|{BNUM} +yyrule159: // {LNUM}|{HNUM}|{BNUM} { lval.Token(l.createToken(l.Token())) return int(T_NUM_STRING) goto yystate0 } -yyrule159: // \${VAR_NAME} +yyrule160: // \${VAR_NAME} { lval.Token(l.createToken(l.Token())) return int(T_VARIABLE) goto yystate0 } -yyrule160: // {VAR_NAME} +yyrule161: // {VAR_NAME} { lval.Token(l.createToken(l.Token())) return int(T_STRING) goto yystate0 } -yyrule161: // \] +yyrule162: // \] { l.popState() l.popState() @@ -8868,7 +8906,7 @@ yyrule161: // \] return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule162: // [ \n\r\t\\'#] +yyrule163: // [ \n\r\t\\'#] { l.popState() l.popState() @@ -8876,19 +8914,19 @@ yyrule162: // [ \n\r\t\\'#] return int(T_ENCAPSED_AND_WHITESPACE) goto yystate0 } -yyrule163: // {OPERATORS} +yyrule164: // {OPERATORS} { lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule164: // . +yyrule165: // . { lval.Token(l.createToken(l.Token())) return Rune2Class(rune(l.TokenBytes(nil)[0])) goto yystate0 } -yyrule165: // {VAR_NAME}[\[\}] +yyrule166: // {VAR_NAME}[\[\}] { l.popState() l.pushState(PHP) @@ -8896,13 +8934,18 @@ yyrule165: // {VAR_NAME}[\[\}] return int(T_STRING_VARNAME) goto yystate0 } -yyrule166: // . +yyrule167: // . { l.ungetChars(1) l.popState() 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 0d81b83..dd7d756 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 int(T_INLINE_HTML) -\<\?php([ \t]|{NEW_LINE}) l.begin(PHP);l.ungetChars(len(l.Token())-5) -\<\? l.begin(PHP); -\<\?= l.begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_ECHO); +\<\?php([ \t]|{NEW_LINE}) l.Begin(PHP);l.ungetChars(len(l.Token())-5) +\<\? l.Begin(PHP); +\<\?= l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_ECHO); [ \t\n\r]+ l.addWhiteSpace(l.Token()) -[;][ \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 int(T_DNUMBER) {BNUM} @@ -287,6 +288,8 @@ NEW_LINE (\r|\n|\r\n) l.addComments(tb) +[/][*][*][/] + l.addComments(l.Token()) ([/][*])|([/][*][*]) tb := l.Token() is_doc_comment := false @@ -295,6 +298,7 @@ NEW_LINE (\r|\n|\r\n) l.PhpDocComment = "" } + c = l.Next() for { if c == -1 { break; // TODO: Unterminated comment starting line %d @@ -322,16 +326,16 @@ NEW_LINE (\r|\n|\r\n) \${VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_VARIABLE) {VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_STRING) --> l.begin(PROPERTY);lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); +-> l.Begin(PROPERTY);lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); [ \t\n\r]+ l.addWhiteSpace(l.Token()) -> lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); -{VAR_NAME} l.begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_STRING); -. l.ungetChars(1);l.begin(PHP) +{VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_STRING); +. l.ungetChars(1);l.Begin(PHP) -[\']([^\\\']*([\\].)*)*[\'] lval.Token(l.createToken(l.Token())); return int(T_CONSTANT_ENCAPSED_STRING); +[\']([^\\\']*(\\(.|\n))*)*[\'] lval.Token(l.createToken(l.Token())); return int(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() @@ -362,13 +366,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]) @@ -387,7 +391,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) } } @@ -407,14 +411,14 @@ 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) tb = tb[:len(tb)-1] break; } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) tb = l.ungetChars(len(l.heredocLabel)) tb = tb[:len(tb)-1] break; @@ -431,8 +435,8 @@ NEW_LINE (\r|\n|\r\n) lval.Token(l.createToken(tb) ) return int(T_ENCAPSED_AND_WHITESPACE) -{VAR_NAME}\; l.begin(PHP);lval.Token(l.createToken(l.ungetChars(1))); return int(T_END_HEREDOC) -{VAR_NAME} l.begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_END_HEREDOC) +{VAR_NAME}\; l.Begin(PHP);lval.Token(l.createToken(l.ungetChars(1))); return int(T_END_HEREDOC) +{VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_END_HEREDOC) [b]?[\"] binPrefix := l.Token()[0].Rune == 'b' @@ -586,23 +590,23 @@ NEW_LINE (\r|\n|\r\n) case '\n': if l.heredocLabel + ";" == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) l.ungetChars(len(l.heredocLabel)+1+nls) - + i := len(tb) - len(l.heredocLabel) - 3 - nls if i < 1 { break HEREDOC_FOR; } tb = tb[:i] - + lval.Token(l.createToken(tb)); return int(T_ENCAPSED_AND_WHITESPACE) } if l.heredocLabel == string(searchLabel) { - l.begin(HEREDOC_END) + l.Begin(HEREDOC_END) l.ungetChars(len(l.heredocLabel)+nls) - + i := len(tb) - len(l.heredocLabel) - 2 - nls if i < 1 { break HEREDOC_FOR; @@ -643,7 +647,7 @@ NEW_LINE (\r|\n|\r\n) if c == -1 { break; } - + currentChar = l.Last tb = append(tb, currentChar) c = l.Next() @@ -667,6 +671,8 @@ NEW_LINE (\r|\n|\r\n) {VAR_NAME}[\[\}] l.popState();l.pushState(PHP);lval.Token(l.createToken(l.ungetChars(1))); return int(T_STRING_VARNAME) . l.ungetChars(1);l.popState();l.pushState(PHP) +.|[ \t\n\r] // do nothing + %% if _, ok := l.Abort(); ok { // always return same $end token @@ -677,4 +683,4 @@ NEW_LINE (\r|\n|\r\n) return -1 } goto yyAction -} \ No newline at end of file +} diff --git a/scanner/scanner_test.go b/scanner/scanner_test.go index c640944..0cc599c 100644 --- a/scanner/scanner_test.go +++ b/scanner/scanner_test.go @@ -431,6 +431,53 @@ func TestTokens(t *testing.T) { assertEqual(t, expected, actual) } +func TestSingleQuoteStringTokens(t *testing.T) { + src := `