yaap
Version:
60 lines (58 loc) • 22 kB
JavaScript
(function(define) {
define([],function(){
Program.names=['','Program','FunctionDeclaration','FunctionExpression','FormalParameterList','FormalParameter','','','','NumericLiteral','DecimalLiteral','DecimalIntegerLiteral','DecimalDigit','ExponentPart','SignedInteger','HexIntegerLiteral','DQ','SQ','StringLiteral','RS','DoubleStringCharacter','SingleStringCharacter','LineContinuation','EscapeSequence','CharacterEscapeSequence','SingleEscapeCharacter','NonEscapeCharacter','EscapeCharacter','HexEscapeSequence','UnicodeEscapeSequence','','','','','','','','','SourceCharacter','WhiteSpace','LF','CR','LS','PS','LineTerminator','LineTerminatorSequence','Comment','MultiLineComment','AnnotationComment','AnnotationFunction','AnnotationName','AnnotationParameterList','AnnotationParameter','','SingleLineComment','S','SnoComment','','','','','ReservedWord','Keyword','FutureReservedWord','Identifier','IdentifierName','IdentifierStart','IdentifierPart','UnicodeLetter','HexDigit','','','','','','','','','','FunctionTok','','','','','','','','','','','','','','','','','','','','_']
function Program(out){var eof=false,s='',l=0,S=405504,T,M,F,D,R,tbl=[],x,pos=0,offset=0,buf=[],bufs=[],states=[],posns=[],c,equiv,ds,dp,failed=0,emp=0,emps=[];
equiv=rle_dec([9,0,1,1,1,2,2,1,1,3,18,0,1,1,1,0,1,4,1,0,1,5,2,0,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,1,14,1,15,9,16,6,0,1,17,4,18,1,19,1,18,17,20,1,21,2,20,1,0,1,22,2,0,1,23,1,0,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,31,1,32,1,20,1,33,1,34,1,35,1,36,1,37,1,38,1,20,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,10,0,1,1,26,0,1,1,9,0,1,20,10,0,1,20,4,0,1,20,5,0,23,20,1,0,31,20,1,0,458,20,4,0,12,20,14,0,5,20,7,0,1,20,1,0,1,20,17,0,112,48,5,20,1,0,2,20,2,0,4,20,8,0,1,20,1,0,3,20,1,0,1,20,1,0,20,20,1,0,83,20,1,0,139,20,1,0,5,48,2,0,154,20,13,0,38,20,2,0,1,20,7,0,39,20,9,0,45,48,1,0,1,48,1,0,2,48,1,0,2,48,1,0,1,48,8,0,27,20,5,0,3,20,29,0,11,48,6,0,42,20,20,48,1,0,10,48,4,0,2,20,1,48,99,20,1,0,1,20,7,48,2,0,6,48,2,20,2,48,1,0,4,48,2,20,10,48,3,20,2,0,1,20,16,0,1,20,1,48,30,20,27,48,2,0,89,20,11,48,1,20,14,0,10,48,33,20,9,48,2,20,4,0,1,20,262,0,3,48,54,20,2,0,1,48,1,20,16,48,2,0,1,20,4,48,3,0,10,20,2,48,2,0,10,48,1,0,2,20,8,0,5,20,1,0,3,48,1,0,8,20,2,0,2,20,2,0,22,20,1,0,7,20,1,0,1,20,3,0,4,20,2,0,1,48,1,20,7,48,2,0,2,48,2,0,3,48,1,20,8,0,1,48,4,0,2,20,1,0,3,20,2,48,2,0,10,48,2,20,15,0,3,48,1,0,6,20,4,0,2,20,2,0,22,20,1,0,7,20,1,0,2,20,1,0,2,20,1,0,2,20,2,0,1,48,1,0,5,48,4,0,2,48,2,0,3,48,3,0,1,48,7,0,4,20,1,0,1,20,7,0,12,48,3,20,1,48,11,0,3,48,1,0,9,20,1,0,3,20,1,0,22,20,1,0,7,20,1,0,2,20,1,0,5,20,2,0,1,48,1,20,8,48,1,0,3,48,1,0,3,48,2,0,1,20,15,0,2,20,2,48,2,0,10,48,17,0,3,48,1,0,8,20,2,0,2,20,2,0,22,20,1,0,7,20,1,0,2,20,1,0,5,20,2,0,1,48,1,20,7,48,2,0,2,48,2,0,3,48,8,0,2,48,4,0,2,20,1,0,3,20,2,48,2,0,10,48,1,0,1,20,16,0,1,48,1,20,1,0,6,20,3,0,3,20,1,0,4,20,3,0,2,20,1,0,1,20,1,0,2,20,3,0,2,20,3,0,3,20,3,0,12,20,4,0,5,48,3,0,3,48,1,0,4,48,2,0,1,20,6,0,1,48,14,0,10,48,17,0,3,48,1,0,8,20,1,0,3,20,1,0,23,20,1,0,10,20,1,0,5,20,3,0,1,20,7,48,1,0,3,48,1,0,4,48,7,0,2,48,1,0,2,20,6,0,2,20,2,48,2,0,10,48,18,0,2,48,1,0,8,20,1,0,3,20,1,0,23,20,1,0,10,20,1,0,5,20,2,0,1,48,1,20,7,48,1,0,3,48,1,0,4,48,7,0,2,48,7,0,1,20,1,0,2,20,2,48,2,0,10,48,18,0,2,48,1,0,8,20,1,0,3,20,1,0,23,20,1,0,16,20,3,0,1,20,7,48,1,0,3,48,1,0,4,48,9,0,1,48,8,0,2,20,2,48,2,0,10,48,10,0,6,20,2,0,2,48,1,0,18,20,3,0,24,20,1,0,9,20,1,0,1,20,2,0,7,20,3,0,1,48,4,0,6,48,1,0,1,48,1,0,8,48,18,0,2,48,13,0,48,20,1,48,2,20,7,48,5,0,7,20,8,48,1,0,10,48,39,0,2,20,1,0,1,20,2,0,2,20,1,0,1,20,2,0,1,20,6,0,4,20,1,0,7,20,1,0,3,20,1,0,1,20,1,0,1,20,2,0,2,20,1,0,4,20,1,48,2,20,6,48,1,0,2,48,1,20,2,0,5,20,1,0,1,20,1,0,6,48,2,0,10,48,2,0,2,20,34,0,1,20,23,0,2,48,6,0,10,48,11,0,1,48,1,0,1,48,1,0,1,48,4,0,2,48,8,20,1,0,36,20,4,0,20,48,1,0,2,48,4,20,4,0,8,48,1,0,36,48,9,0,1,48,57,0,43,20,20,48,1,20,10,48,6,0,6,20,4,48,4,20,3,48,1,20,3,48,2,20,7,48,3,20,4,48,13,20,12,48,1,20,11,48,6,0,38,20,10,0,43,20,1,0,1,20,3,0,90,20,5,0,68,20,5,0,82,20,6,0,73,20,1,0,4,20,2,0,7,20,1,0,1,20,1,0,4,20,2,0,41,20,1,0,4,20,2,0,33,20,1,0,4,20,2,0,7,20,1,0,1,20,1,0,4,20,2,0,15,20,1,0,57,20,1,0,4,20,2,0,67,20,4,0,1,48,32,0,16,20,16,0,85,20,12,0,620,20,2,0,8,20,9,0,1,1,26,20,5,0,75,20,3,0,3,20,15,0,13,20,1,0,4,20,3,48,11,0,18,20,3,48,11,0,18,20,2,48,12,0,13,20,1,0,3,20,1,0,2,48,12,0,52,20,2,0,30,48,3,0,1,20,4,0,1,20,1,48,2,0,10,48,33,0,3,48,1,1,1,0,10,48,6,0,88,20,8,0,41,20,1,48,1,20,85,0,29,20,3,0,12,48,4,0,12,48,10,0,10,48,30,20,2,0,5,20,11,0,42,20,6,0,17,48,7,20,2,48,6,0,10,48,38,0,23,20,5,48,228,0,5,48,47,20,17,48,7,20,4,0,10,48,17,0,9,48,12,0,3,48,30,20,10,48,3,0,2,20,10,48,70,0,36,20,20,48,8,0,10,48,3,0,3,20,10,48,36,20,130,0,192,20,39,48,23,0,2,48,278,20,2,0,6,20,2,0,38,20,2,0,6,20,2,0,8,20,1,0,1,20,1,0,1,20,1,0,1,20,1,0,31,20,2,0,53,20,1,0,7,20,1,0,1,20,3,0,3,20,1,0,7,20,3,0,4,20,2,0,6,20,4,0,13,20,5,0,3,20,1,0,7,20,3,0,12,1,28,0,1,49,1,50,5,0,1,1,15,0,2,48,19,0,1,48,10,0,1,1,17,0,1,20,13,0,1,20,16,0,5,20,59,0,13,48,4,0,1,48,3,0,12,48,17,0,1,20,4,0,1,20,2,0,10,20,1,0,1,20,3,0,5,20,6,0,1,20,1,0,1,20,1,0,1,20,1,0,4,20,1,0,11,20,2,0,4,20,5,0,5,20,4,0,1,20,17,0,41,20,2679,0,47,20,1,0,47,20,1,0,16,20,1,0,13,20,2,0,101,20,27,0,38,20,10,0,54,20,9,0,1,20,16,0,23,20,9,0,7,20,1,0,7,20,1,0,7,20,1,0,7,20,1,0,7,20,1,0,7,20,1,0,7,20,1,0,7,20,1,0,32,48,47,0,1,20,464,0,1,1,4,0,3,20,25,0,9,20,6,48,1,0,5,20,2,0,5,20,4,0,86,20,2,0,2,48,2,0,3,20,1,0,90,20,1,0,4,20,5,0,41,20,3,0,94,20,17,0,24,20,56,0,16,20,512,0,6582,20,74,0,20932,20,60,0,1165,20,115,0,269,20,3,0,16,20,10,48,2,20,20,0,32,20,2,0,13,20,1,48,12,0,2,48,1,0,25,20,127,0,9,20,2,0,103,20,2,0,2,20,110,0,7,20,1,48,3,20,1,48,4,20,1,48,23,20,5,48,24,0,52,20,12,0,2,48,50,20,17,48,11,0,10,48,38,0,10,48,28,20,8,48,2,0,23,20,13,48,172,0,41,20,14,48,9,0,3,20,1,48,8,20,2,48,2,0,10,48,422,0,11172,20,92,0,2048,51,6400,0,302,20,2,0,59,20,5,0,106,20,38,0,7,20,12,0,5,20,5,0,1,20,1,48,10,20,1,0,13,20,1,0,5,20,1,0,1,20,1,0,2,20,1,0,2,20,1,0,108,20,33,0,363,20,18,0,64,20,2,0,54,20,40,0,12,20,4,0,16,48,16,0,7,48,12,0,2,48,24,0,3,48,32,0,5,20,1,0,135,20,2,0,1,1,16,0,10,48,7,0,26,20,4,0,1,48,1,0,26,20,11,0,89,20,3,0,6,20,2,0,6,20,2,0,6,20,2,0,3,20,35,0])
function rle_dec(a){var r=[],i,l,n,x,ll;for(i=0,l=a.length;i<l;i+=2){n=a[i];x=a[i+1];r.length=ll=r.length+n;for(;n;n--)r[ll-n]=x}return r}
T=[,409600,454656,3358720,532480,552960,,,,2564096,2600960,2699264,,2723840,2732032,2801664,,,2871296,,2920448,3153920,3108864,2969600,3002368,,3017222,3035136,3096576,638976,,,,,,,,,,,,,,,3055616,3117056,2342912,3243014,2362374,2437120,2465792,2473984,2551808,,3296262,2305030,3206150,,,,,675840,1658880,761856,571910,581632,606208,593920,,,,,,,,,,,,3316742,,,,,,,,,,,,,,,,,,,,3444736,416774,417792,421888,228527,846,434176,11439,15535,446464,228527,846,326831,462848,228527,846,265391,479232,228527,846,,495616,19631,846,507904,228527,846,,524288,228527,846,23727,543750,544768,,23727,557056,228527,846,265391,573440,253103,269487,273583,589824,277679,598016,273583,,610304,281775,,,626688,81071,122031,,,647168,285871,285871,285871,285871,846,,,679936,257199,261295,,,,,,,,,,,,,,,,,757760,277679,769030,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1666054,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2306048,2310144,162991,187567,191663,2326528,2330624,162991,187567,191663,2347008,199855,224431,195759,,,,2375680,232623,846,203951,2395142,2396160,2400256,232623,846,203951,2416640,232623,846,,,,208047,2445312,232623,846,2457600,212143,846,,265391,,2482176,232623,846,216239,2498560,232623,846,2513926,2514944,,2523136,232623,846,216239,2539520,232623,846,,2555904,76975,40111,2571270,2572288,44207,2580480,273583,2588672,64687,2596864,273583,2608134,2609152,48303,,2621440,52399,2629632,56495,846,2641920,,2650112,52399,2658304,52399,2666496,56495,846,2678784,48303,2686976,56495,846,,2703360,,2711552,,2719744,52399,,60591,2739206,2740224,52399,2748416,52399,2756608,,2764800,52399,2772992,52399,2781184,,2789376,52399,2797568,52399,2808838,2812934,,,,2826240,285871,2834432,285871,2845702,,,,2859008,285871,2867200,285871,2878470,2879488,68783,2887680,85167,68783,2899968,72879,2908160,89263,72879,,2927622,2931206,2932736,2936832,68783,81071,183471,158895,2957312,81071,97455,93359,2973696,101551,2981888,,2990080,52399,117935,122031,3006464,105647,109743,3018752,3022848,113839,183471,158895,3039232,105647,52399,,,3059712,167087,171183,175279,179375,,,,,,,285871,285871,81071,187567,3121152,167087,3129344,171183,167087,171183,175279,179375,,3161094,3164678,3166208,3170304,72879,81071,183471,158895,3190784,81071,97455,93359,3207168,3211264,162991,187567,3223552,3227648,162991,187567,,,,,3259398,3262982,3267590,,,,158895,,,,,,,3309568,,,,,,,,,,,3354624,277679,326831,3366912,228527,846,3379200,265391,846,3391488,228527,846,,3407872,19631,846,3420160,228527,846,,3436544,228527,846,7343,3452928,]
M=rle_dec([1,,5,844,3,,21,844,8,,15,844,1,,3,844,4,,9,844,9,,1,844,19,,1,844,1,442368,1,416774,1,430080,8,844,1,458752,1,471040,2,844,1,475136,1,487424,2,844,1,491520,1,503808,2,844,1,516096,2,844,1,520192,3,844,1,536576,1,844,1,543750,1,548864,1,844,1,565248,3,844,1,577536,1,845,1,844,1,585728,1,844,1,589824,8,844,1,630784,1,844,1,,1,646150,1,844,1,651264,1,655360,1,659456,1,663552,1,844,2,,1,756230,3,844,4,,1,844,4,,1,844,5,,1,844,1,845,2,844,8,,1,844,7,,1,844,4,,1,844,4,,1,844,5,,1,844,5,,1,844,6,,1,844,4,,1,844,6,,1,844,7,,1,844,5,,1,844,5,,1,844,4,,1,844,10,,1,844,6,,1,844,9,,1,844,3,,1,844,4,,1,844,6,,1,844,7,,1,844,7,,1,844,9,,1,844,6,,1,844,5,,1,844,6,,1,844,5,,1,844,12,,1,844,6,,1,844,9,,1,844,8,,2,844,5,,1,844,4,,1,844,5,,1,844,8,,1,844,8,,1,844,7,,1,844,6,,1,844,2,,1,844,4,,1,844,7,,1,844,3,,1,844,8,,1,844,2,,1,844,10,,1,844,2,,1,844,3,,1,844,6,,1,844,6,,1,844,4,,1,844,5,,1,844,3,,1,844,6,,1,844,3,,1,844,4,,1,844,5,,1,844,4,,1,844,1,2322432,4,844,1,2326528,7,844,1,2371584,2,,1,2383872,2,844,1,2387968,1,2412544,1,2395142,1,2408448,3,844,1,2427910,3,844,2,,1,2441216,1,2453504,5,844,1,2469888,1,844,1,2478080,1,2490368,2,844,1,2494464,1,2506752,2,844,1,2535424,1,2513926,1,2519040,1,2531328,3,844,1,2547712,8,844,1,2578950,1,844,1,845,1,844,1,2595334,1,844,1,845,2,844,1,2613248,1,2617344,1,2625536,1,2621440,4,844,1,2649094,1,2662400,1,2654208,1,844,1,2658304,4,844,1,2682880,3,844,1,,3,844,1,2715648,1,844,1,2719744,1,2727936,3,844,1,2744320,1,844,1,2748416,1,844,1,2763782,1,844,1,2768896,1,844,1,2772992,1,844,1,2788358,1,844,1,2793472,1,844,1,2797568,2,844,1,2825222,2,,1,844,1,2830336,1,844,1,2834432,1,844,1,2857990,2,,1,844,1,2863104,1,844,1,2867200,2,844,1,2883584,1,2891776,1,2887680,2,844,1,2904064,1,2912256,1,2908160,1,844,1,,2,844,1,2949120,1,845,5,844,1,2961408,5,844,1,2988550,1,844,1,845,5,844,1,3031040,1,845,7,844,1,,5,844,5,,1,3100672,1,3104768,1,844,1,3112960,4,844,1,3133440,4,844,1,,2,844,1,3182592,1,845,5,844,1,3194880,3,844,1,3219456,3,844,1,3223552,2,844,1,,1,3252224,2,,1,3283974,1,3259398,1,3276800,1,845,2,,2,844,2,,1,3305472,2,,1,844,1,3309568,1,3353094,8,,1,844,1,845,1,3362816,1,3375104,2,844,1,3387392,2,844,1,3399680,2,844,1,3403776,1,3416064,2,844,1,3428352,2,844,1,3432448,3,844,1,3448832,1,844,1,845])
F=rle_dec([1,,5,845,3,,21,845,8,,15,845,1,,3,845,4,,9,845,9,,1,845,19,,2,845,1,844,1,845,1,425984,2,845,1,438272,2,845,1,450560,3,845,1,466944,3,845,1,483328,3,845,1,499712,2,845,1,512000,3,845,1,528384,3,845,1,844,3,845,1,561152,3,845,1,844,3,845,1,844,1,845,1,602112,2,845,1,614400,1,618496,1,625670,3,845,1,,7,845,2,,1,845,1,684032,1,691206,1,711686,4,,1,732166,4,,1,845,5,,1,845,1,844,1,845,1,805894,8,,1,838662,7,,1,859142,4,,1,879622,4,,1,904198,5,,1,928774,5,,1,957446,6,,1,977926,4,,1,1006598,6,,1,1039366,7,,1,1063942,5,,1,1088518,5,,1,1108998,4,,1,1154054,10,,1,1182726,6,,1,1223686,9,,1,1240070,3,,1,1260550,4,,1,1289222,6,,1,1321990,7,,1,1354758,7,,1,1395718,9,,1,1424390,6,,1,1448966,5,,1,1477638,6,,1,1502214,5,,1,1555462,12,,1,1584134,6,,1,1625094,9,,1,845,8,,1,845,1,1690630,5,,1,1711110,4,,1,1735686,5,,1,1772550,8,,1,1809414,8,,1,1842182,7,,1,1870854,6,,1,1883142,2,,1,1903622,4,,1,1936390,7,,1,1952774,3,,1,1989638,8,,1,2001926,2,,1,2046982,10,,1,2059270,2,,1,2075654,3,,1,2104326,6,,1,2132998,6,,1,2153478,4,,1,2178054,5,,1,2194438,3,,1,2223110,6,,1,2239494,3,,1,2259974,4,,1,2284550,5,,1,845,4,,2,845,1,2314240,1,2318336,2,845,1,844,1,2334720,1,2338816,2,845,1,2351104,1,2355200,2,845,2,,1,845,1,2379776,3,845,1,844,1,845,1,2404352,3,845,1,2420736,2,845,2,,2,845,1,2449408,2,845,1,2461696,5,845,1,2486272,3,845,1,2502656,2,845,1,844,2,845,1,2527232,3,845,1,2543616,3,845,1,2560000,2,845,1,2587654,2,845,1,844,3,845,1,844,1,845,1,2640902,3,845,1,844,1,845,1,2633728,1,845,1,2677766,4,845,1,844,1,845,1,2670592,4,845,1,2691072,1,845,1,,1,845,1,2710534,3,845,1,844,3,845,1,2755590,2,845,1,844,1,2780166,4,845,1,844,5,845,1,844,1,845,1,2841606,1,845,2,,3,845,1,844,2,845,2,,3,845,1,844,1,845,1,2898950,2,845,1,844,4,845,1,844,1,845,1,,1,845,1,2956294,1,845,1,844,1,2940928,1,2945024,2,845,1,2965504,4,845,1,2980870,1,2994176,2,845,1,844,1,2998272,2,845,1,3010560,2,845,1,844,1,3026944,3,845,1,3043328,1,3047424,1,845,1,,1,845,1,3063808,1,3067904,1,3072000,1,845,5,,6,845,1,3128326,1,3137536,2,845,1,3141632,1,3145728,1,845,1,,1,845,1,3189766,1,845,1,844,1,3174400,1,3178496,2,845,1,3198976,5,845,1,3215360,2,845,1,844,1,3231744,1,845,1,,1,845,2,,1,845,1,844,1,845,1,844,2,,2,845,2,,1,845,2,,1,845,1,844,1,845,8,,1,845,1,844,2,845,1,3371008,2,845,1,3383296,2,845,1,3395584,3,845,1,3411968,2,845,1,3424256,3,845,1,3440640,3,845,1,844])
D=function(a,i,l,b){for(i=0,l=a.length,b=[];i<l;i++)b[i]=a[i]&&revive(a[i]);return b}([,,,,,,,,,,,,[[[[15,16]]]],,,,[[[[4]]]],[[[[6]]]],,[[[[22]]]],,,,,,[[[[4,6,22,25,29,36,39,41,43]]]],,,,,,,,,,,,,[[[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]]]],[[[[1]]]],[[[[2]]]],[[[[3]]]],[[[[49]]]],[[[[50]]]],,,,,,,,,,,,,,,,,,,,,,,,,[[[[18,19,20,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47]]]],[[[[15,16,18,19,24,25,26,27,28,29]]]],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[[[[7]]]],,,,,,,[[[[8]]]],,,,,,,[[[[11]]]],,,,,,,,,,,,,,[[[[15,16,23,48]]]],,,[[[[5]]]],[[[[23]]]],,,,,[[[[42]]]],,,,,,,,,,,,[[[[36]]],[[[42]]],[[[34]]],[[[34]]]],,,,,[[[[41]]],[[[39]]],[[[42]]],[[[28]]]],,,,,[[[[29]]],[[[24]]],[[[34]]],[[[40]]],[[[28]]]],,,,,,,,,[[[[24]]],[[[25]]],[[[40]]],[[[41]]],[[[39]]],[[[24]]],[[[26]]],[[[41]]]],,,,,,,,,[[[[25]]],[[[37]]],[[[37]]],[[[34]]],[[[28]]],[[[24]]],[[[36]]]],,,,,,,,[[[[25]]],[[[46]]],[[[41]]],[[[28]]]],,,,,[[[[26]]],[[[31]]],[[[24]]],[[[39]]]],,,,,[[[[26]]],[[[34]]],[[[24]]],[[[40]]],[[[40]]]],,,,,,[[[[26]]],[[[37]]],[[[36]]],[[[40]]],[[[41]]]],,,,,,[[[[27]]],[[[37]]],[[[42]]],[[[25]]],[[[34]]],[[[28]]]],,,,,,,[[[[28]]],[[[36]]],[[[42]]],[[[35]]]],,,,,[[[[28]]],[[[45]]],[[[38]]],[[[37]]],[[[39]]],[[[41]]]],,,,,,,[[[[28]]],[[[45]]],[[[41]]],[[[28]]],[[[36]]],[[[27]]],[[[40]]]],,,,,,,,[[[[29]]],[[[32]]],[[[36]]],[[[24]]],[[[34]]]],,,,,,[[[[29]]],[[[34]]],[[[37]]],[[[24]]],[[[41]]]],,,,,,[[[[30]]],[[[37]]],[[[41]]],[[[37]]]],,,,,[[[[32]]],[[[35]]],[[[38]]],[[[34]]],[[[28]]],[[[35]]],[[[28]]],[[[36]]],[[[41]]],[[[40]]]],,,,,,,,,,,[[[[32]]],[[[35]]],[[[38]]],[[[37]]],[[[39]]],[[[41]]]],,,,,,,[[[[32]]],[[[36]]],[[[41]]],[[[28]]],[[[39]]],[[[29]]],[[[24]]],[[[26]]],[[[28]]]],,,,,,,,,,[[[[32]]],[[[36]]],[[[41]]]],,,,[[[[34]]],[[[37]]],[[[36]]],[[[30]]]],,,,,[[[[36]]],[[[24]]],[[[41]]],[[[32]]],[[[43]]],[[[28]]]],,,,,,,[[[[38]]],[[[24]]],[[[26]]],[[[33]]],[[[24]]],[[[30]]],[[[28]]]],,,,,,,,[[[[38]]],[[[39]]],[[[32]]],[[[43]]],[[[24]]],[[[41]]],[[[28]]]],,,,,,,,[[[[38]]],[[[39]]],[[[37]]],[[[41]]],[[[28]]],[[[26]]],[[[41]]],[[[28]]],[[[27]]]],,,,,,,,,,[[[[38]]],[[[42]]],[[[25]]],[[[34]]],[[[32]]],[[[26]]]],,,,,,,[[[[40]]],[[[31]]],[[[37]]],[[[39]]],[[[41]]]],,,,,,[[[[40]]],[[[41]]],[[[24]]],[[[41]]],[[[32]]],[[[26]]]],,,,,,,[[[[40]]],[[[42]]],[[[38]]],[[[28]]],[[[39]]]],,,,,,[[[[40]]],[[[46]]],[[[36]]],[[[26]]],[[[31]]],[[[39]]],[[[37]]],[[[36]]],[[[32]]],[[[47]]],[[[28]]],[[[27]]]],,,,,,,,,,,,,[[[[41]]],[[[31]]],[[[39]]],[[[37]]],[[[44]]],[[[40]]]],,,,,,,[[[[41]]],[[[39]]],[[[24]]],[[[36]]],[[[40]]],[[[32]]],[[[28]]],[[[36]]],[[[41]]]],,,,,,,,,,[[[[43]]],[[[37]]],[[[34]]],[[[24]]],[[[41]]],[[[32]]],[[[34]]],[[[28]]]],,,,,,,,,,[[[[25]]],[[[39]]],[[[28]]],[[[24]]],[[[33]]]],,,,,,[[[[26]]],[[[24]]],[[[40]]],[[[28]]]],,,,,[[[[26]]],[[[24]]],[[[41]]],[[[26]]],[[[31]]]],,,,,,[[[[26]]],[[[37]]],[[[36]]],[[[41]]],[[[32]]],[[[36]]],[[[42]]],[[[28]]]],,,,,,,,,[[[[27]]],[[[28]]],[[[25]]],[[[42]]],[[[30]]],[[[30]]],[[[28]]],[[[39]]]],,,,,,,,,[[[[27]]],[[[28]]],[[[29]]],[[[24]]],[[[42]]],[[[34]]],[[[41]]]],,,,,,,,[[[[27]]],[[[28]]],[[[34]]],[[[28]]],[[[41]]],[[[28]]]],,,,,,,[[[[27]]],[[[37]]]],,,[[[[28]]],[[[34]]],[[[40]]],[[[28]]]],,,,,[[[[29]]],[[[32]]],[[[36]]],[[[24]]],[[[34]]],[[[34]]],[[[46]]]],,,,,,,,[[[[29]]],[[[37]]],[[[39]]]],,,,[[[[29]]],[[[42]]],[[[36]]],[[[26]]],[[[41]]],[[[32]]],[[[37]]],[[[36]]]],,,,,,,,,[[[[32]]],[[[29]]]],,,[[[[32]]],[[[36]]],[[[40]]],[[[41]]],[[[24]]],[[[36]]],[[[26]]],[[[28]]],[[[37]]],[[[29]]]],,,,,,,,,,,[[[[32]]],[[[36]]]],,,[[[[36]]],[[[28]]],[[[44]]]],,,,[[[[39]]],[[[28]]],[[[41]]],[[[42]]],[[[39]]],[[[36]]]],,,,,,,[[[[40]]],[[[44]]],[[[32]]],[[[41]]],[[[26]]],[[[31]]]],,,,,,,[[[[41]]],[[[31]]],[[[32]]],[[[40]]]],,,,,[[[[41]]],[[[31]]],[[[39]]],[[[37]]],[[[44]]]],,,,,,[[[[41]]],[[[39]]],[[[46]]]],,,,[[[[41]]],[[[46]]],[[[38]]],[[[28]]],[[[37]]],[[[29]]]],,,,,,,[[[[43]]],[[[24]]],[[[39]]]],,,,[[[[43]]],[[[37]]],[[[32]]],[[[27]]]],,,,,[[[[44]]],[[[31]]],[[[32]]],[[[34]]],[[[28]]]],,,,,,[[[[44]]],[[[32]]],[[[41]]],[[[31]]]],,,,,,,,,,,,,,,,,,,[[[[14]]],[[[9]]]],,,,,,,,,,,,,,,,[[[[9]]],[[[14]]]],,,,,,,,,,[[[[17]]]],,[[[[7]]]],,,,,,,,,,[[[[11]]]],,,,,,,,[[[[8]]]],,,,,,,,,,,,,,,,[[[[13]]]],,,,,,,[[[[13]]]],,,,,,,,,,,,,,,[[[[15]]]],,[[[[16]]]],,,[[[[19,28]]]],,,,,,,,[[[[10]]]],,,,,,[[[[12]]]],,,,,,,[[[[15]]],[[[45]]]],,,,,,,,[[[[15]]],[[[21]]]],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[[[[15]]]],,,,,,,,,,,,,,,,[[[[42,45]]]],,,,,,,,,,,,[[[[45]]]],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[[[[14]]],[[[9]]]],,,,,,[[[[9]]],[[[14]]]],,,,[[[[9]]],[[[14]]]],,,[[[[14]]],[[[14]]]],,,,[[[[0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48]]]],[[[[29]]],[[[42]]],[[[36]]],[[[26]]],[[[41]]],[[[32]]],[[[37]]],[[[36]]]],,,,,,,,,,,,,,,,,,,,,[[[[7]]]],,,,,,,[[[[8]]]],,,,,,[[[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]]]]])
function revive(x){var i,l,state,j,l2,all=[],t,ts;if(!x)return;for(i=0,l=x.length;i<l;i++){state=x[i];ts=[];for(j=0,l2=state.length;j<l2;j++){t=state[j];if(t[1]==l) ts.push([t[0],true]);else ts.push([t[0],t[1]==undefined?i+1:t[1]])}all.push(ts)}return dfa(all)
function dfa(ss){var i,l_ss,st,l_s,t,l_t,a,d=[],j,k,l;for(i=0,l_ss=ss.length;i<l_ss;i++){st=ss[i];a=[];for(j=0,l_s=st.length;j<l_s;j++){t=st[j];for(k=0,l_t=t[0].length;k<l_t;k++){a[t[0][k]]=t[1]===true?l_ss:t[1]}}for(j=0,l=a.length;j<l;j++)if(a[j]==undefined)a[j]=l_ss+1;d[i]=a}
return function _dfa(st,i){var eq,pr;while(st<l_ss){eq=equiv[s.charCodeAt(i++)];st=d[pr=st][eq]}if(eq==undefined&&i>=s.length){ds=pr;dp=i-1;return}ds=0;dp=undefined;if(st==l_ss){pos=i;return true}return false}}}
if(typeof out=='string'){s=out;out=[];x=Program(function(m,x,y){if(m=='fail')out=[false,x,y,s];if(m=='tree segment')out=out.concat(x)});x('chunk',s);x('eof');return out[0]===false?out:[true,{names:Program.names,tree:out,input:s}]}
return function(m,x){if(failed){out('fail',pos,'parse already failed');return}
switch(m){
case 'chunk':s+=x;l=s.length;while(tbl.length<l+1)tbl.push([]);mainloop();break
case 'eof':eof=true;mainloop();break
default:throw new Error('unhandled message: '+m)}}
//mainloop
function mainloop(){for(;;){
if(dp==undefined&&(S>864||S<846))
t_block:{
if(S&4/*pushpos*/)posns.push(pos)
if(S&2/*t_bufferout*/){bufs.push(buf);buf=[]}
if(S&8/*t_emitstate*/){emps.push(emp);emp=pos;buf.push(S>>>12)}
if(S&1/*cache*/&&(x=tbl[pos-offset][S])!=undefined){if(x){R=true;pos=x[0];buf=x[1];if(emp<x[2])emp=x[2]}else{R=false}}
}
if(R==undefined){
if(D[S>>>12]){R=D[S>>>12](ds||0,dp||pos);if(R==undefined){if(eof){ds=dp=undefined;R=false}else{out('ready');return}}}
else{states.push(S);S=T[S>>>12]}
if(S==846){R=true;S=states.pop()}}
while(R!=undefined){
if(S==405504){(R?emit:fail)();return}if(R){
if(S&1/*cache*/){tbl[posns[posns.length-1]][S]=[pos,buf,emp];buf=buf.slice()}
if(S&8/*t_emitstate*/){if(pos!=emp&&emp!=posns[posns.length-1]){buf.push(-1,pos-emp)}emp=emps.pop();if(emp!=posns[posns.length-1]){buf=[-1,posns[posns.length-1]-emp].concat(buf)}}
if(S&16/*m_emitstate*/)buf.push(S>>>12)
if(S&32/*m_emitclose*/)buf.push(-2)
if(S&128/*m_emitlength*/)buf.push(pos-posns[posns.length-1])
if(S&8/*t_emitstate*/){emp=pos}
if(S&256/*m_resetpos*/)pos=posns[posns.length-1]
if(S&4/*pushpos*/)posns.pop()
if(S&512/*m_tossbuf*/)buf=bufs.pop()
if(S&1024/*m_emitbuf*/){buf=bufs.pop().concat(buf);}
if(!bufs.length&&buf.length>64)emit()
S=M[S>>>12]}
else{
if(S&1/*cache*/)tbl[posns[posns.length-1]][S]=false
if(S&4/*pushpos*/)pos=posns.pop()
if(S&2048/*f_tossbuf*/)buf=bufs.pop()
if(S&8/*t_emitstate*/){emp=emps.pop()}
if(emp>pos){emp=pos}
S=F[S>>>12]}
if(S==844){R=true;S=states.pop()}else if(S==845){R=false;S=states.pop()}else R=undefined;}}}
function emit(){var x=bufs.length?bufs[0]:buf;if(x.length){out('tree segment',x);if(bufs.length)bufs[0]=[];else buf=[]}}
function fail(s){out('fail',pos,s);failed=1}}
return {Program:Program};
});})(typeof define == 'function'? define: function(deps, factory) {module.exports = factory.apply(this, deps.map(function(x) {return require(x);}));});