alasql
Version:
AlaSQL.js - JavaScript SQL database library for relational and graph data manipulation with support of localStorage, IndexedDB, and Excel
848 lines (811 loc) • 205 kB
JavaScript
/* parser generated by jison 0.4.15 */
/*
Returns a Parser object of the following structure:
Parser: {
yy: {}
}
Parser.prototype: {
yy: {},
trace: function(),
symbols_: {associative list: name ==> number},
terminals_: {associative list: number ==> name},
productions_: [...],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
table: [...],
defaultActions: {...},
parseError: function(str, hash),
parse: function(input),
lexer: {
EOF: 1,
parseError: function(str, hash),
setInput: function(input),
input: function(),
unput: function(str),
more: function(),
less: function(n),
pastInput: function(),
upcomingInput: function(),
showPosition: function(),
test_match: function(regex_match_array, rule_index),
next: function(),
lex: function(),
begin: function(condition),
popState: function(),
_currentRules: function(),
topState: function(),
pushState: function(condition),
options: {
ranges: boolean (optional: true ==> token location info will include a .range[] member)
flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
},
performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
rules: [...],
conditions: {associative list: name ==> set},
}
}
token location info (@$, _$, etc.): {
first_line: n,
last_line: n,
first_column: n,
last_column: n,
range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
}
the parseError function receives a 'hash' object with these members for lexer and parser errors: {
text: (matched text)
token: (the produced terminal token, if any)
line: (yylineno)
}
while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
loc: (yylloc)
expected: (string describing the set of expected tokens)
recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
}
*/
var parser = (function(){
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,11],$V1=[1,6],$V2=[1,38],$V3=[1,65],$V4=[1,63],$V5=[1,82],$V6=[1,52],$V7=[1,84],$V8=[1,74],$V9=[1,72],$Va=[1,57],$Vb=[1,60],$Vc=[1,55],$Vd=[1,59],$Ve=[1,53],$Vf=[1,61],$Vg=[1,54],$Vh=[1,58],$Vi=[1,71],$Vj=[1,66],$Vk=[1,73],$Vl=[1,75],$Vm=[1,76],$Vn=[1,69],$Vo=[1,70],$Vp=[1,68],$Vq=[1,77],$Vr=[1,78],$Vs=[1,79],$Vt=[1,80],$Vu=[1,81],$Vv=[1,56],$Vw=[1,67],$Vx=[1,64],$Vy=[1,86],$Vz=[1,87],$VA=[8,9,11,259],$VB=[8,9,11,259,263],$VC=[1,144],$VD=[1,145],$VE=[1,107],$VF=[1,117],$VG=[1,120],$VH=[1,115],$VI=[1,123],$VJ=[1,127],$VK=[1,124],$VL=[1,112],$VM=[1,114],$VN=[1,116],$VO=[1,125],$VP=[1,109],$VQ=[1,134],$VR=[1,130],$VS=[1,131],$VT=[1,135],$VU=[1,136],$VV=[1,137],$VW=[1,138],$VX=[1,139],$VY=[1,140],$VZ=[1,141],$V_=[1,142],$V$=[1,143],$V01=[1,118],$V11=[1,119],$V21=[1,121],$V31=[1,122],$V41=[1,128],$V51=[1,126],$V61=[1,129],$V71=[1,113],$V81=[1,133],$V91=[1,146],$Va1=[101,300,359],$Vb1=[1,156],$Vc1=[1,155],$Vd1=[1,161],$Ve1=[4,5],$Vf1=[8,9,11,68,90,100,130,136,137,149,151,170,199,259,263],$Vg1=[4,5,8,9,11,62,66,67,68,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,149,157,159,170,239,240,241,242,243,244,245,246,247,259,263,365,369],$Vh1=[1,181],$Vi1=[1,189],$Vj1=[1,188],$Vk1=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Vl1=[1,213],$Vm1=[1,220],$Vn1=[4,5,67,102,103,108,112,115,120,122,145,146,147,226,227,228,229,231,239,240,241,242,243,244,245,246,247,249,250,251,252,253,255,256,265,365,369],$Vo1=[2,138],$Vp1=[1,234],$Vq1=[4,5,67,102,103,108,112,115,120,122,132,145,146,147,157,159,167,226,227,228,229,231,239,240,241,242,243,244,245,246,247,249,250,251,252,253,255,256,265,365,369],$Vr1=[1,246],$Vs1=[1,254],$Vt1=[1,260],$Vu1=[1,251],$Vv1=[1,255],$Vw1=[1,252],$Vx1=[1,256],$Vy1=[1,258],$Vz1=[1,270],$VA1=[1,267],$VB1=[1,268],$VC1=[1,248],$VD1=[1,250],$VE1=[1,247],$VF1=[1,249],$VG1=[1,253],$VH1=[1,257],$VI1=[1,259],$VJ1=[1,261],$VK1=[1,262],$VL1=[1,263],$VM1=[1,264],$VN1=[1,265],$VO1=[1,269],$VP1=[1,271],$VQ1=[1,272],$VR1=[1,273],$VS1=[1,274],$VT1=[2,258],$VU1=[1,283],$VV1=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,252,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,290,294,304,318,319,323,324,343,344,347,348,351,353,355,356,360,362,363,365,369,371,373,379,381,382,384,385,386,387,388,390,393,394,406,412],$VW1=[2,319],$VX1=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,196,197,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,252,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,290,294,304,318,319,323,324,343,344,347,348,351,353,355,356,360,362,363,365,369,371,373,379,381,382,384,385,386,387,388,390,393,394,406,412],$VY1=[1,294],$VZ1=[1,304],$V_1=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,371,373,379,381,382,384,385,386,387,388,390,393,394,406,412],$V$1=[1,320],$V02=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,165,170,178,180,188,189,190,191,192,193,194,195,196,197,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,252,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,288,290,294,303,304,305,318,319,320,323,324,335,337,343,344,347,348,349,350,351,352,353,355,356,357,360,362,363,365,369,371,373,378,379,381,382,384,385,386,387,388,390,393,394,406,412],$V12=[1,328],$V22=[1,327],$V32=[2,439],$V42=[1,333],$V52=[8,9,11,64,66,103,108,110,120,259,263,365,369],$V62=[2,736],$V72=[1,345],$V82=[8,9,11,68,78,103,108,117,160,251,259,263,412],$V92=[8,9,11,64,259,263],$Va2=[2,497],$Vb2=[1,359],$Vc2=[4,5,124],$Vd2=[8,9,11,68,90,100,130,136,137,149,151,199,259,263],$Ve2=[2,139],$Vf2=[1,367],$Vg2=[4,5,87],$Vh2=[1,378],$Vi2=[1,395],$Vj2=[1,377],$Vk2=[1,376],$Vl2=[1,373],$Vm2=[1,374],$Vn2=[1,375],$Vo2=[1,379],$Vp2=[1,380],$Vq2=[1,381],$Vr2=[1,382],$Vs2=[1,383],$Vt2=[1,384],$Vu2=[1,385],$Vv2=[1,386],$Vw2=[1,387],$Vx2=[1,388],$Vy2=[1,389],$Vz2=[1,390],$VA2=[1,391],$VB2=[1,392],$VC2=[1,394],$VD2=[1,396],$VE2=[1,397],$VF2=[1,398],$VG2=[1,399],$VH2=[1,400],$VI2=[1,401],$VJ2=[1,404],$VK2=[1,405],$VL2=[1,406],$VM2=[1,407],$VN2=[1,408],$VO2=[1,409],$VP2=[1,410],$VQ2=[1,411],$VR2=[1,412],$VS2=[1,413],$VT2=[1,414],$VU2=[8,9,11,64,68,90,100,130,136,137,151,178,180,188,189,190,191,192,193,194,195,196,197,199,259,263],$VV2=[2,175],$VW2=[1,429],$VX2=[64,78,160],$VY2=[8,9,11,64,68,122,159,252,259,263,290,304,318,319,323,324,343],$VZ2=[132,134,282],$V_2=[1,498],$V$2=[1,504],$V03=[1,505],$V13=[1,520],$V23=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,95,100,101,102,103,105,106,108,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,264,265,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$V33=[2,334],$V43=[1,527],$V53=[259,261,263],$V63=[64,373],$V73=[64,371,373],$V83=[1,534],$V93=[4,5,8,9,11,48,62,64,66,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Va3=[64,371],$Vb3=[4,5,103,251],$Vc3=[8,9,11,64,66,259,263],$Vd3=[8,9,11,64,66,103,110,115,120,259,263,365,369],$Ve3=[8,9,11,68,78,103,117,160,251,259,263,412],$Vf3=[8,9,11,68,90,100,130,136,137,151,199,259,263],$Vg3=[1,589],$Vh3=[8,9,11,68,259,263],$Vi3=[1,595],$Vj3=[1,596],$Vk3=[1,597],$Vl3=[4,5,8,9,11,62,64,66,67,68,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,157,159,170,239,240,241,242,243,244,245,246,247,259,263,365,369],$Vm3=[8,9,11,68,82,90,100,130,136,137,149,151,170,199,259,263],$Vn3=[1,661],$Vo3=[8,9,11,64,68,82,90,100,130,136,137,149,151,170,199,259,263],$Vp3=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,95,100,101,102,103,105,106,108,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,264,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Vq3=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,95,100,101,102,103,104,105,106,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,264,265,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Vr3=[4,5,8,9,11,48,62,64,66,67,68,78,82,90,95,100,101,102,103,105,106,108,110,111,112,113,115,116,117,119,120,124,130,132,134,136,137,138,139,140,141,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,267,268,269,270,271,272,273,278,279,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Vs3=[4,5,8,9,11,48,62,64,66,67,68,78,82,90,100,101,102,103,105,106,108,112,113,115,116,117,119,120,124,130,132,134,136,137,139,140,141,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,259,261,262,263,278,279,281,283,285,286,294,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Vt3=[1,681],$Vu3=[8,9,11,64,68,259,263],$Vv3=[2,256],$Vw3=[1,718],$Vx3=[8,9,11,64,66,110,115,120,259,263,365,369],$Vy3=[8,9,11,64,110,259,263],$Vz3=[8,9,11,68,78,117,160,259,263,412],$VA3=[1,736],$VB3=[8,9,11,68,90,130,136,137,151,199,259,263],$VC3=[8,9,11,64,68,90,100,130,136,137,149,151,170,199,259,263],$VD3=[4,5,62,66,67,68,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,157,159,239,240,241,242,243,244,245,246,247,365,369],$VE3=[4,5,62,64,66,67,68,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,157,159,239,240,241,242,243,244,245,246,247,365,369],$VF3=[2,694],$VG3=[1,781],$VH3=[1,792],$VI3=[8,9,11,64,68,100,259,261,263,406],$VJ3=[1,800],$VK3=[1,799],$VL3=[2,297],$VM3=[1,822],$VN3=[2,514],$VO3=[1,844],$VP3=[66,110],$VQ3=[8,9,11,64,66,110,115,259,263,365,369],$VR3=[2,642],$VS3=[1,859],$VT3=[1,860],$VU3=[1,864],$VV3=[8,9,11,64,68,259,261,263,406],$VW3=[1,867],$VX3=[8,9,11,64,68,90,100,130,136,137,151,178,180,188,189,190,191,192,193,194,195,199,259,263],$VY3=[8,9,11,68,90,130,136,137,151,259,263],$VZ3=[1,872],$V_3=[1,876],$V$3=[1,877],$V04=[1,879],$V14=[1,880],$V24=[1,881],$V34=[1,882],$V44=[1,883],$V54=[1,884],$V64=[1,885],$V74=[1,886],$V84=[1,909],$V94=[64,68],$Va4=[8,9,11,259,261,263,406],$Vb4=[94,95],$Vc4=[1,948],$Vd4=[8,9,11,68,130,136,137,151,259,263],$Ve4=[8,9,11,68,90,100,130,136,137,151,178,180,188,189,190,191,192,193,194,195,199,259,263],$Vf4=[1,998],$Vg4=[1,1000],$Vh4=[4,5,67,112,115,120,147,255],$Vi4=[1,1014],$Vj4=[8,9,11,64,68,130,136,137,151,259,263],$Vk4=[4,5,8,9,11,48,62,64,66,67,68,78,82,87,90,94,95,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,119,120,122,124,130,132,134,136,137,138,139,140,141,145,146,147,149,151,157,159,160,170,178,180,188,189,190,191,192,193,194,195,199,207,210,211,227,239,240,241,242,243,244,245,246,247,251,252,259,261,262,263,264,265,266,267,268,269,270,271,272,273,276,278,279,280,281,283,285,286,290,294,304,318,319,323,324,343,344,347,348,351,353,355,356,360,362,363,365,369,379,381,382,384,385,386,387,388,390,393,394,406,412],$Vl4=[1,1030],$Vm4=[1,1044],$Vn4=[1,1046],$Vo4=[1,1043],$Vp4=[1,1042],$Vq4=[1,1040],$Vr4=[1,1047],$Vs4=[1,1037],$Vt4=[1,1038],$Vu4=[1,1039],$Vv4=[1,1041],$Vw4=[8,9,11,68,130,136,137,259,263],$Vx4=[1,1065],$Vy4=[1,1066],$Vz4=[1,1067],$VA4=[8,9,11,68,90,100,130,136,137,151,178,180,188,189,190,191,192,193,194,195,196,197,199,259,263],$VB4=[1,1093],$VC4=[1,1092],$VD4=[1,1124],$VE4=[1,1125],$VF4=[1,1126],$VG4=[1,1127],$VH4=[159,165,318,319,320,323],$VI4=[2,451],$VJ4=[1,1132],$VK4=[1,1142],$VL4=[8,9,11,64,68,90,130,136,137,151,207,259,263],$VM4=[1,1162],$VN4=[1,1172],$VO4=[8,9,11,259,263,290,303,304,305],$VP4=[1,1283],$VQ4=[1,1293],$VR4=[64,68,196];
var parser = {trace: function trace() { },
yy: {},
symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"main":6,"Statements":7,"EOF":8,"SEMICOLON":9,"AStatement":10,"GO":11,"ExplainStatement":12,"EXPLAIN":13,"QUERY":14,"PLAN":15,"Statement":16,"If":17,"AlterTable":18,"AttachDatabase":19,"CreateDatabase":20,"CreateIndex":21,"CreateGraph":22,"CreateTable":23,"CreateView":24,"CreateEdge":25,"CreateVertex":26,"Declare":27,"Delete":28,"DetachDatabase":29,"DropDatabase":30,"DropIndex":31,"DropTable":32,"DropView":33,"Insert":34,"RenameTable":35,"Select":36,"Merge":37,"WithSelect":38,"ShowCreateTable":39,"ShowColumns":40,"ShowDatabases":41,"ShowIndex":42,"ShowTables":43,"TruncateTable":44,"BeginTransaction":45,"CommitTransaction":46,"RollbackTransaction":47,"EndTransaction":48,"UseDatabase":49,"Update":50,"Help":51,"JavaScript":52,"Source":53,"Assert":54,"While":55,"Continue":56,"Break":57,"BeginEnd":58,"Print":59,"Require":60,"SetVariable":61,"WITH":62,"WithTablesList":63,"COMMA":64,"WithTable":65,"AS":66,"LPAR":67,"RPAR":68,"SelectClause":69,"Select_option0":70,"IntoClause":71,"FromClause":72,"WhereClause":73,"GroupClause":74,"OrderClause":75,"LimitClause":76,"UnionClause":77,"SEARCH":78,"Select_repetition0":79,"Select_option1":80,"RemoveClause":81,"REMOVE":82,"RemoveClause_option0":83,"RemoveColumnsList":84,"RemoveColumn":85,"Column":86,"LIKE":87,"StringValue":88,"SearchSelector":89,"ORDER":90,"BY":91,"OrderExpressionsList":92,"SearchSelector_option0":93,"ARROW":94,"EQ":95,"Expression":96,"SearchSelector_repetition_plus0":97,"SearchSelector_repetition_plus1":98,"SearchSelector_option1":99,"WHERE":100,"CLASS":101,"NUMBER":102,"STRING":103,"SLASH":104,"VERTEX":105,"EDGE":106,"EXCLAMATION":107,"SHARP":108,"MODULO":109,"GT":110,"LT":111,"DOLLAR":112,"DOT":113,"Json":114,"AT":115,"TO":116,"SET":117,"SetColumnsList":118,"VALUE":119,"COLON":120,"PlusStar":121,"NOT":122,"SearchSelector_repetition2":123,"IF":124,"SearchSelector_repetition3":125,"Aggregator":126,"SearchSelector_repetition4":127,"SearchSelector_group0":128,"SearchSelector_repetition5":129,"UNION":130,"SearchSelectorList":131,"ALL":132,"SearchSelector_repetition6":133,"ANY":134,"SearchSelector_repetition7":135,"INTERSECT":136,"EXCEPT":137,"AND":138,"OR":139,"PATH":140,"RETURNS":141,"ResultColumns":142,"SearchSelectorList_repetition0":143,"SearchSelectorList_repetition1":144,"PLUS":145,"STAR":146,"QUESTION":147,"SearchFrom":148,"FROM":149,"SearchLimit":150,"LIMIT":151,"SearchStrategy":152,"STRATEGY":153,"SearchTimeout":154,"TIMEOUT":155,"SelectModifier":156,"DISTINCT":157,"TopClause":158,"UNIQUE":159,"SELECT":160,"ROW":161,"COLUMN":162,"MATRIX":163,"TEXTSTRING":164,"INDEX":165,"RECORDSET":166,"TOP":167,"NumValue":168,"PERCENT":169,"INTO":170,"Table":171,"FuncValue":172,"ParamValue":173,"VarValue":174,"FromTablesList":175,"JoinTablesList":176,"ApplyClause":177,"CROSS":178,"APPLY":179,"OUTER":180,"FromTable":181,"FromString":182,"JoinTable":183,"JoinMode":184,"JoinTableAs":185,"OnClause":186,"JoinModeMode":187,"NATURAL":188,"JOIN":189,"INNER":190,"LEFT":191,"RIGHT":192,"FULL":193,"SEMI":194,"ANTI":195,"ON":196,"USING":197,"ColumnsList":198,"GROUP":199,"GroupExpressionsList":200,"HavingClause":201,"GroupExpression":202,"GROUPING":203,"SETS":204,"ROLLUP":205,"CUBE":206,"HAVING":207,"CORRESPONDING":208,"OrderExpression":209,"DIRECTION":210,"COLLATE":211,"NOCASE":212,"OffsetClause":213,"OFFSET":214,"ResultColumn":215,"Star":216,"AggrValue":217,"Op":218,"LogicValue":219,"NullValue":220,"ExistsValue":221,"CaseValue":222,"CastClause":223,"NewClause":224,"Expression_group0":225,"CURRENT_TIMESTAMP":226,"JAVASCRIPT":227,"NEW":228,"CAST":229,"ColumnType":230,"CONVERT":231,"PrimitiveValue":232,"ExprList":233,"OverClause":234,"OVER":235,"OverPartitionClause":236,"OverOrderByClause":237,"PARTITION":238,"SUM":239,"COUNT":240,"MIN":241,"MAX":242,"AVG":243,"FIRST":244,"LAST":245,"AGGR":246,"ARRAY":247,"FuncValue_option0":248,"TRUE":249,"FALSE":250,"NSTRING":251,"NULL":252,"EXISTS":253,"ParamValue_group0":254,"BRAQUESTION":255,"CASE":256,"WhensList":257,"ElseClause":258,"END":259,"When":260,"WHEN":261,"THEN":262,"ELSE":263,"NOT_LIKE":264,"MINUS":265,"CARET":266,"GE":267,"LE":268,"EQEQ":269,"EQEQEQ":270,"NE":271,"NEEQEQ":272,"NEEQEQEQ":273,"CondOp":274,"AllSome":275,"IN":276,"ColFunc":277,"BETWEEN":278,"NOT_BETWEEN":279,"IS":280,"DOUBLECOLON":281,"SOME":282,"UPDATE":283,"SetColumn":284,"DELETE":285,"INSERT":286,"Into":287,"VALUES":288,"ValuesListsList":289,"DEFAULT":290,"ValuesList":291,"Value":292,"DateValue":293,"CREATE":294,"TemporaryClause":295,"TableClass":296,"IfNotExists":297,"CreateTableDefClause":298,"CreateTableOptionsClause":299,"TABLE":300,"CreateTableOptions":301,"CreateTableOption":302,"ENGINE":303,"AUTO_INCREMENT":304,"CHARSET":305,"TEMPORARY":306,"TEMP":307,"ColumnDefsList":308,"ConstraintsList":309,"Constraint":310,"ConstraintName":311,"PrimaryKey":312,"ForeignKey":313,"UniqueKey":314,"IndexKey":315,"Check":316,"CONSTRAINT":317,"CHECK":318,"PRIMARY":319,"KEY":320,"PrimaryKey_option0":321,"ColsList":322,"FOREIGN":323,"REFERENCES":324,"ForeignKey_option0":325,"OnForeignKeyClause":326,"ParColsList":327,"OnDeleteClause":328,"OnUpdateClause":329,"NO":330,"ACTION":331,"UniqueKey_option0":332,"ColumnDef":333,"ColumnConstraintsClause":334,"ColumnConstraints":335,"NumberMax":336,"ENUM":337,"ColumnConstraintsList":338,"ColumnConstraint":339,"ParLiteral":340,"ColumnConstraint_option0":341,"ColumnConstraint_option1":342,"IDENTITY":343,"DROP":344,"DropTable_group0":345,"IfExists":346,"ALTER":347,"RENAME":348,"ADD":349,"MODIFY":350,"ATTACH":351,"DATABASE":352,"DETACH":353,"AsClause":354,"USE":355,"SHOW":356,"DATABASES":357,"TABLES":358,"VIEW":359,"HELP":360,"ExpressionStatement":361,"SOURCE":362,"ASSERT":363,"JsonObject":364,"ATLBRA":365,"JsonArray":366,"JsonValue":367,"JsonPrimitiveValue":368,"LCUR":369,"JsonPropertiesList":370,"RCUR":371,"JsonElementsList":372,"RBRA":373,"JsonProperty":374,"OnOff":375,"SetPropsList":376,"SetProp":377,"OFF":378,"COMMIT":379,"TRANSACTION":380,"ROLLBACK":381,"BEGIN":382,"ElseStatement":383,"WHILE":384,"CONTINUE":385,"BREAK":386,"PRINT":387,"REQUIRE":388,"StringValuesList":389,"DECLARE":390,"DeclaresList":391,"DeclareItem":392,"TRUNCATE":393,"MERGE":394,"MergeInto":395,"MergeUsing":396,"MergeOn":397,"MergeMatchedList":398,"OutputClause":399,"MergeMatched":400,"MergeNotMatched":401,"MATCHED":402,"MergeMatchedAction":403,"MergeNotMatchedAction":404,"TARGET":405,"OUTPUT":406,"CreateVertex_option0":407,"CreateVertex_option1":408,"CreateVertex_option2":409,"CreateVertexSet":410,"SharpValue":411,"CONTENT":412,"CreateEdge_option0":413,"GRAPH":414,"GraphList":415,"GraphVertexEdge":416,"GraphElement":417,"GraphVertexEdge_option0":418,"GraphVertexEdge_option1":419,"GraphVertexEdge_group0":420,"GraphVertexEdge_option2":421,"GraphVertexEdge_option3":422,"GraphVertexEdge_group1":423,"GraphVar":424,"GraphAsClause":425,"GraphAtClause":426,"GraphElement_option0":427,"GraphElement_option1":428,"GraphElement_option2":429,"GraphElement_option3":430,"ColonLiteral":431,"SharpLiteral":432,"DeleteVertex":433,"DeleteVertex_option0":434,"DeleteEdge":435,"DeleteEdge_option0":436,"DeleteEdge_option1":437,"DeleteEdge_option2":438,"FuncValue_option0_group0":439,"$accept":0,"$end":1},
terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",8:"EOF",9:"SEMICOLON",11:"GO",13:"EXPLAIN",14:"QUERY",15:"PLAN",48:"EndTransaction",62:"WITH",64:"COMMA",66:"AS",67:"LPAR",68:"RPAR",78:"SEARCH",82:"REMOVE",87:"LIKE",90:"ORDER",91:"BY",94:"ARROW",95:"EQ",100:"WHERE",101:"CLASS",102:"NUMBER",103:"STRING",104:"SLASH",105:"VERTEX",106:"EDGE",107:"EXCLAMATION",108:"SHARP",109:"MODULO",110:"GT",111:"LT",112:"DOLLAR",113:"DOT",115:"AT",116:"TO",117:"SET",119:"VALUE",120:"COLON",122:"NOT",124:"IF",130:"UNION",132:"ALL",134:"ANY",136:"INTERSECT",137:"EXCEPT",138:"AND",139:"OR",140:"PATH",141:"RETURNS",145:"PLUS",146:"STAR",147:"QUESTION",149:"FROM",151:"LIMIT",153:"STRATEGY",155:"TIMEOUT",157:"DISTINCT",159:"UNIQUE",160:"SELECT",161:"ROW",162:"COLUMN",163:"MATRIX",164:"TEXTSTRING",165:"INDEX",166:"RECORDSET",167:"TOP",169:"PERCENT",170:"INTO",178:"CROSS",179:"APPLY",180:"OUTER",188:"NATURAL",189:"JOIN",190:"INNER",191:"LEFT",192:"RIGHT",193:"FULL",194:"SEMI",195:"ANTI",196:"ON",197:"USING",199:"GROUP",203:"GROUPING",204:"SETS",205:"ROLLUP",206:"CUBE",207:"HAVING",208:"CORRESPONDING",210:"DIRECTION",211:"COLLATE",212:"NOCASE",214:"OFFSET",226:"CURRENT_TIMESTAMP",227:"JAVASCRIPT",228:"NEW",229:"CAST",231:"CONVERT",235:"OVER",238:"PARTITION",239:"SUM",240:"COUNT",241:"MIN",242:"MAX",243:"AVG",244:"FIRST",245:"LAST",246:"AGGR",247:"ARRAY",249:"TRUE",250:"FALSE",251:"NSTRING",252:"NULL",253:"EXISTS",255:"BRAQUESTION",256:"CASE",259:"END",261:"WHEN",262:"THEN",263:"ELSE",264:"NOT_LIKE",265:"MINUS",266:"CARET",267:"GE",268:"LE",269:"EQEQ",270:"EQEQEQ",271:"NE",272:"NEEQEQ",273:"NEEQEQEQ",276:"IN",278:"BETWEEN",279:"NOT_BETWEEN",280:"IS",281:"DOUBLECOLON",282:"SOME",283:"UPDATE",285:"DELETE",286:"INSERT",288:"VALUES",290:"DEFAULT",293:"DateValue",294:"CREATE",300:"TABLE",303:"ENGINE",304:"AUTO_INCREMENT",305:"CHARSET",306:"TEMPORARY",307:"TEMP",317:"CONSTRAINT",318:"CHECK",319:"PRIMARY",320:"KEY",323:"FOREIGN",324:"REFERENCES",330:"NO",331:"ACTION",335:"ColumnConstraints",337:"ENUM",343:"IDENTITY",344:"DROP",347:"ALTER",348:"RENAME",349:"ADD",350:"MODIFY",351:"ATTACH",352:"DATABASE",353:"DETACH",355:"USE",356:"SHOW",357:"DATABASES",358:"TABLES",359:"VIEW",360:"HELP",362:"SOURCE",363:"ASSERT",365:"ATLBRA",369:"LCUR",371:"RCUR",373:"RBRA",378:"OFF",379:"COMMIT",380:"TRANSACTION",381:"ROLLBACK",382:"BEGIN",384:"WHILE",385:"CONTINUE",386:"BREAK",387:"PRINT",388:"REQUIRE",390:"DECLARE",393:"TRUNCATE",394:"MERGE",402:"MATCHED",405:"TARGET",406:"OUTPUT",412:"CONTENT",414:"GRAPH"},
productions_: [0,[3,1],[3,1],[6,2],[7,3],[7,3],[7,1],[7,1],[12,2],[12,4],[10,1],[16,0],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[38,3],[63,3],[63,1],[65,5],[36,9],[36,4],[81,3],[84,3],[84,1],[85,1],[85,2],[89,1],[89,5],[89,5],[89,2],[89,2],[89,2],[89,3],[89,4],[89,4],[89,4],[89,4],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,2],[89,2],[89,2],[89,1],[89,1],[89,1],[89,2],[89,1],[89,2],[89,3],[89,3],[89,4],[89,1],[89,2],[89,2],[89,4],[89,4],[89,4],[89,4],[89,4],[89,5],[89,4],[89,4],[89,4],[89,4],[89,4],[89,4],[89,4],[89,4],[131,3],[131,1],[121,1],[121,1],[121,1],[148,2],[150,2],[152,2],[154,2],[69,4],[69,4],[69,4],[69,3],[156,1],[156,2],[156,2],[156,2],[156,2],[156,2],[156,2],[156,2],[158,2],[158,4],[158,3],[158,0],[71,0],[71,2],[71,2],[71,2],[71,2],[71,2],[72,2],[72,3],[72,5],[72,0],[177,6],[177,7],[177,6],[177,7],[175,1],[175,3],[181,4],[181,5],[181,3],[181,2],[181,3],[181,1],[181,2],[181,3],[181,1],[181,1],[181,2],[181,3],[181,1],[181,2],[181,3],[181,1],[181,2],[181,3],[182,1],[171,3],[171,1],[176,2],[176,2],[176,1],[176,1],[183,3],[185,1],[185,2],[185,3],[185,2],[185,3],[185,4],[185,5],[185,1],[185,2],[185,3],[185,1],[185,2],[185,3],[184,1],[184,2],[187,1],[187,2],[187,2],[187,3],[187,2],[187,3],[187,2],[187,3],[187,2],[187,2],[187,2],[186,2],[186,2],[186,0],[73,0],[73,2],[74,0],[74,4],[200,1],[200,3],[202,5],[202,4],[202,4],[202,1],[201,0],[201,2],[77,0],[77,2],[77,3],[77,2],[77,2],[77,3],[77,4],[77,3],[77,3],[75,0],[75,3],[92,1],[92,3],[209,1],[209,2],[209,3],[209,4],[76,0],[76,3],[213,0],[213,2],[142,3],[142,1],[215,3],[215,2],[215,3],[215,2],[215,3],[215,2],[215,1],[216,5],[216,3],[216,1],[86,5],[86,3],[86,3],[86,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,1],[96,3],[96,3],[96,3],[96,1],[96,1],[52,1],[224,2],[224,2],[223,6],[223,8],[223,6],[223,8],[232,1],[232,1],[232,1],[232,1],[232,1],[232,1],[232,1],[217,5],[217,6],[217,6],[234,0],[234,4],[234,4],[234,5],[236,3],[237,3],[126,1],[126,1],[126,1],[126,1],[126,1],[126,1],[126,1],[126,1],[126,1],[172,5],[172,3],[233,1],[233,3],[168,1],[219,1],[219,1],[88,1],[88,1],[220,1],[174,2],[221,4],[173,2],[173,2],[173,1],[173,1],[222,5],[222,4],[257,2],[257,1],[260,4],[258,2],[258,0],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,5],[218,3],[218,3],[218,3],[218,5],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,3],[218,6],[218,6],[218,3],[218,3],[218,2],[218,2],[218,2],[218,2],[218,3],[218,5],[218,6],[218,5],[218,6],[218,4],[218,5],[218,3],[218,4],[218,3],[218,3],[218,3],[218,3],[277,1],[277,1],[277,4],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[275,1],[275,1],[275,1],[50,6],[50,4],[118,1],[118,3],[284,3],[28,5],[28,3],[34,5],[34,5],[34,8],[34,4],[34,7],[287,0],[287,1],[289,3],[289,1],[289,1],[289,5],[289,3],[289,3],[291,1],[291,3],[292,1],[292,1],[292,1],[292,1],[292,1],[292,1],[198,1],[198,3],[23,9],[23,5],[296,1],[296,1],[299,0],[299,1],[301,2],[301,1],[302,1],[302,3],[302,3],[302,3],[295,0],[295,1],[295,1],[297,0],[297,3],[298,3],[298,1],[298,2],[309,1],[309,3],[310,2],[310,2],[310,2],[310,2],[310,2],[311,0],[311,2],[316,4],[312,6],[313,9],[327,3],[326,0],[326,2],[328,4],[329,4],[314,5],[315,5],[315,5],[322,1],[322,1],[322,3],[322,3],[308,1],[308,3],[333,3],[333,2],[333,1],[230,6],[230,4],[230,1],[230,4],[336,1],[336,1],[334,0],[334,1],[338,2],[338,1],[340,3],[339,2],[339,5],[339,3],[339,1],[339,6],[339,1],[339,2],[339,4],[339,1],[339,2],[339,1],[339,1],[32,4],[346,0],[346,2],[18,6],[18,6],[18,6],[18,8],[18,6],[35,5],[19,4],[19,7],[19,6],[19,9],[29,3],[20,4],[20,6],[20,9],[20,6],[354,0],[354,2],[49,3],[49,2],[30,4],[30,5],[30,5],[21,8],[21,9],[31,3],[41,2],[41,4],[41,3],[41,5],[43,2],[43,4],[43,4],[43,6],[40,4],[40,6],[42,4],[42,6],[39,4],[39,6],[24,10],[24,7],[33,4],[51,2],[51,1],[361,1],[53,2],[54,2],[54,2],[54,4],[114,4],[114,2],[114,2],[114,2],[114,2],[114,1],[114,2],[114,2],[367,1],[367,1],[368,1],[368,1],[368,1],[368,1],[368,1],[368,1],[368,1],[368,3],[364,3],[364,4],[364,2],[366,2],[366,3],[366,1],[370,3],[370,1],[374,3],[374,3],[374,3],[372,3],[372,1],[61,3],[61,5],[61,6],[376,3],[376,2],[377,1],[377,1],[377,3],[375,1],[375,1],[46,2],[47,2],[45,2],[17,4],[17,3],[383,2],[55,3],[56,1],[57,1],[58,3],[59,2],[59,2],[60,2],[389,3],[389,1],[27,2],[391,1],[391,3],[392,3],[392,4],[392,5],[392,6],[44,3],[37,6],[395,1],[395,2],[396,2],[397,2],[398,2],[398,2],[398,1],[398,1],[400,4],[400,6],[403,1],[403,3],[401,5],[401,7],[401,7],[401,9],[401,7],[401,9],[404,3],[404,6],[404,3],[404,6],[399,0],[399,2],[399,5],[399,4],[399,7],[26,6],[411,2],[410,0],[410,2],[410,2],[410,1],[25,8],[22,3],[22,4],[415,3],[415,1],[416,3],[416,7],[424,2],[425,3],[426,2],[417,4],[431,2],[432,2],[432,2],[433,4],[435,6],[70,0],[70,1],[79,0],[79,2],[80,0],[80,1],[83,0],[83,1],[93,0],[93,1],[97,1],[97,2],[98,1],[98,2],[99,0],[99,1],[123,0],[123,2],[125,0],[125,2],[127,0],[127,2],[128,1],[128,1],[129,0],[129,2],[133,0],[133,2],[135,0],[135,2],[143,0],[143,2],[144,0],[144,2],[225,1],[225,1],[439,1],[439,1],[248,0],[248,1],[254,1],[254,1],[321,0],[321,1],[325,0],[325,1],[332,0],[332,1],[341,0],[341,1],[342,0],[342,1],[345,1],[345,1],[407,0],[407,1],[408,0],[408,1],[409,0],[409,1],[413,0],[413,1],[418,0],[418,1],[419,0],[419,1],[420,1],[420,1],[421,0],[421,1],[422,0],[422,1],[423,1],[423,1],[427,0],[427,1],[428,0],[428,1],[429,0],[429,1],[430,0],[430,1],[434,0],[434,2],[436,0],[436,2],[437,0],[437,2],[438,0],[438,2]],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
/* this == yyval */
var $0 = $$.length - 1;
switch (yystate) {
case 1:
if (yy.casesensitive) this.$ = $$[$0];
else this.$ = $$[$0].toLowerCase();
break;
case 2:
this.$ = doubleq($$[$0].substr(1,$$[$0].length-2));
break;
case 3:
return new yy.Statements({statements:$$[$0-1]});
break;
case 4: case 5:
this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]);
break;
case 6: case 7: case 59: case 65: case 115: case 153: case 178: case 179: case 214: case 233: case 244: case 314: case 331: case 396: case 409: case 410: case 414: case 422: case 464: case 465: case 578: case 583: case 603: case 605: case 619: case 620: case 650:
this.$ = [$$[$0]];
break;
case 8:
this.$ = $$[$0]; $$[$0].explain = true;
break;
case 9:
this.$ = $$[$0]; $$[$0].explain = true;
break;
case 10:
this.$ = $$[$0];
if(yy.exists) this.$.exists = yy.exists;
delete yy.exists;
if(yy.queries) this.$.queries = yy.queries;
delete yy.queries;
break;
case 11: case 127: case 138: case 148: case 209: case 210: case 212: case 220: case 222: case 231: case 239: case 241: case 334: case 426: case 436: case 439: case 451: case 457: case 458: case 497:
this.$ = undefined;
break;
case 57:
this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]});
break;
case 58:
$$[$0-2].push($$[$0]); this.$=$$[$0-2];
break;
case 60:
this.$ = {name:$$[$0-4], select:$$[$0-1]};
break;
case 61:
yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]); yy.extend(this.$,$$[$0-5]);
yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]);yy.extend(this.$,$$[$0-2]);
yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
this.$ = $$[$0-8];
/* if(yy.exists) this.$.exists = yy.exists;
delete yy.exists;
if(yy.queries) this.$.queries = yy.queries;
delete yy.queries;
*/
break;
case 62:
this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});
yy.extend(this.$,$$[$0-1]);
break;
case 63:
this.$ = {removecolumns:$$[$0]};
break;
case 64: case 649:
this.$ = $$[$0-2]; this.$.push($$[$0]);
break;
case 66: case 119: case 160: case 219: case 251: case 259: case 260: case 261: case 262: case 263: case 264: case 265: case 266: case 267: case 268: case 269: case 270: case 271: case 272: case 274: case 287: case 288: case 289: case 290: case 291: case 292: case 333: case 385: case 386: case 387: case 388: case 389: case 390: case 452: case 480: case 482: case 552: case 553: case 554: case 555: case 556: case 557: case 561: case 563: case 564: case 573: case 584: case 585: case 641: case 654: case 655: case 657: case 658:
this.$ = $$[$0];
break;
case 67:
this.$ = {like:$$[$0]};
break;
case 68: case 79:
this.$ = {srchid:"PROP", args: [$$[$0]]};
break;
case 69:
this.$ = {srchid:"ORDERBY", args: $$[$0-1]};
break;
case 70:
var dir = $$[$0-1];
if(!dir) dir = 'ASC';
this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
break;
case 71:
this.$ = {srchid:"APROP", args: [$$[$0]]};
break;
case 72:
this.$ = {srchid:"EQ", args: [$$[$0]]};
break;
case 73:
this.$ = {srchid:"LIKE", args: [$$[$0]]};
break;
case 74: case 75:
this.$ = {selid:"WITH", args: $$[$0-1]};
break;
case 76:
this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]};
break;
case 77:
this.$ = {srchid:"WHERE", args:[$$[$0-1]]};
break;
case 78:
this.$ = {srchid:"CLASS", args:[$$[$0-1]]};
break;
case 80:
this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]};
break;
case 81:
this.$ = {srchid:"CHILD"};
break;
case 82:
this.$ = {srchid:"VERTEX"};
break;
case 83:
this.$ = {srchid:"EDGE"};
break;
case 84:
this.$ = {srchid:"REF"};
break;
case 85:
this.$ = {srchid:"SHARP", args:[$$[$0]]};
break;
case 86:
this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])};
break;
case 87:
this.$ = {srchid:"ATTR"};
break;
case 88:
this.$ = {srchid:"OUT"};
break;
case 89:
this.$ = {srchid:"IN"};
break;
case 90:
this.$ = {srchid:"CONTENT"};
break;
case 91:
this.$ = {srchid:"PARENT"};
break;
case 92:
this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]};
break;
case 93:
this.$ = {srchid:"AT", args:[$$[$0]]};
break;
case 94:
this.$ = {srchid:"AS", args:[$$[$0]]};
break;
case 95:
this.$ = {srchid:"TO", args:[$$[$0]]};
break;
case 96:
this.$ = {srchid:"SET", args:$$[$0-1]};
break;
case 97:
this.$ = {srchid:"VALUE"};
break;
case 98:
this.$ = {srchid:"CLASS", args:[$$[$0]]};
break;
case 99:
this.$ = {selid:$$[$0],args:[$$[$0-1]] };
break;
case 100:
this.$ = {selid:"NOT",args:$$[$0-1] };
break;
case 101:
this.$ = {selid:"IF",args:$$[$0-1] };
break;
case 102:
this.$ = {selid:$$[$0-3],args:$$[$0-1] };
break;
case 103:
this.$ = {selid:'DISTINCT',args:$$[$0-1] };
break;
case 104:
this.$ = {selid:'UNION',args:$$[$0-1] };
break;
case 105:
this.$ = {selid:'UNIONALL',args:$$[$0-1] };
break;
case 106:
this.$ = {selid:'ALL',args:[$$[$0-1]] };
break;
case 107:
this.$ = {selid:'ANY',args:[$$[$0-1]] };
break;
case 108:
this.$ = {selid:'INTERSECT',args:$$[$0-1] };
break;
case 109:
this.$ = {selid:'EXCEPT',args:$$[$0-1] };
break;
case 110:
this.$ = {selid:'AND',args:$$[$0-1] };
break;
case 111:
this.$ = {selid:'OR',args:$$[$0-1] };
break;
case 112:
this.$ = {selid:'PATH',args:[$$[$0-1]] };
break;
case 113:
this.$ = {srchid:'RETURNS',args:$$[$0-1] };
break;
case 114:
this.$ = $$[$0-2]; this.$.push($$[$0]);
break;
case 116:
this.$ = "PLUS";
break;
case 117:
this.$ = "STAR";
break;
case 118:
this.$ = "QUESTION";
break;
case 123:
this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy,extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]);
break;
case 124:
this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy,extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
break;
case 125:
this.$ = new yy.Select({ columns:$$[$0], all:true }); yy,extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
break;
case 126:
this.$ = new yy.Select({ columns:$$[$0] }); yy,extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);
break;
case 128:
this.$ = {modifier:'VALUE'}
break;
case 129:
this.$ = {modifier:'ROW'}
break;
case 130:
this.$ = {modifier:'COLUMN'}
break;
case 131:
this.$ = {modifier:'MATRIX'}
break;
case 132:
this.$ = {modifier:'TEXTSTRING'}
break;
case 133:
this.$ = {modifier:'INDEX'}
break;
case 134:
this.$ = {modifier:'RECORDSET'}
break;
case 135:
this.$ = {top: $$[$0]};
break;
case 136:
this.$ = {top: $$[$0-1]};
break;
case 137:
this.$ = {top: $$[$0-1], percent:true};
break;
case 139: case 297: case 459: case 460: case 642:
this.$ = undefined;
break;
case 140: case 141: case 142: case 143:
this.$ = {into: $$[$0]}
break;
case 144:
var s = $$[$0];
s = s.substr(1,s.length-2);
var x3 = s.substr(-3).toUpperCase();
var x4 = s.substr(-4).toUpperCase();
if(s[0] == '#') {
this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
} else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
} else if(x4=='XLSX' || x4 == 'JSON') {
this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
}
break;
case 145:
this.$ = { from: $$[$0] };
break;
case 146:
this.$ = { from: $$[$0-1], joins: $$[$0] };
break;
case 147:
this.$ = { from: $$[$0-2], joins: $$[$0-1] };
break;
case 149:
this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]});
break;
case 150:
this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]});
break;
case 151:
this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]});
break;
case 152:
this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]});
break;
case 154: case 215: case 397: case 466: case 467:
this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
break;
case 155:
this.$ = $$[$0-2]; this.$.as = $$[$0]
break;
case 156:
this.$ = $$[$0-3]; this.$.as = $$[$0]
break;
case 157:
this.$ = $$[$0-1]; this.$.as = 'default'
break;
case 158:
this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]
break;
case 159:
this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]
break;
case 161: case 165: case 168: case 171:
this.$ = $$[$0-1]; $$[$0-1].as = $$[$0];
break;
case 162: case 166: case 169: case 172:
this.$ = $$[$0-2]; $$[$0-2].as = $$[$0];
break;
case 163: case 164: case 167: case 170:
this.$ = $$[$0]; $$[$0].as = 'default';
break;
case 173:
var s = $$[$0];
s = s.substr(1,s.length-2);
var x3 = s.substr(-3).toUpperCase();
var x4 = s.substr(-4).toUpperCase();
var r;
if(s[0] == '#') {
r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
} else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
} else if(x4=='XLSX' || x4 == 'JSON') {
r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
} else {
throw new Error('Unknown string in FROM clause');
};
this.$ = r;
break;
case 174:
if($$[$0-2] == 'INFORMATION_SCHEMA') {
this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]});
} else {
this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]});
}
break;
case 175:
this.$ = new yy.Table({tableid: $$[$0]});
break;
case 176: case 177:
this.$ = $$[$0-1]; $$[$0-1].push($$[$0]);
break;
case 180:
this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]);
break;
case 181:
this.$ = {table: $$[$0]};
break;
case 182:
this.$ = {table: $$[$0-1], as: $$[$0] } ;
break;
case 183:
this.$ = {table: $$[$0-2], as: $$[$0] } ;
break;
case 184:
this.$ = {param: $$[$0-1], as: $$[$0] } ;
break;
case 185:
this.$ = {param: $$[$0-2], as: $$[$0] } ;
break;
case 186:
this.$ = {select: $$[$0-3], as: $$[$0]} ;
break;
case 187:
this.$ = {select: $$[$0-4], as: $$[$0] } ;
break;
case 188:
this.$ = {funcid:$$[$0], as:'default'};
break;
case 189:
this.$ = {funcid:$$[$0-1], as: $$[$0]};
break;
case 190:
this.$ = {funcid:$$[$0-2], as: $$[$0]};
break;
case 191:
this.$ = {variable:$$[$0],as:'default'};
break;
case 192:
this.$ = {variable:$$[$0-1],as:$$[$0]};
break;
case 193:
this.$ = {variable:$$[$0-2],as:$$[$0]}
break;
case 194:
this.$ = { joinmode: $$[$0] } ;
break;
case 195:
this.$ = {joinmode: $$[$0-1], natural:true} ;
break;
case 196: case 197:
this.$ = "INNER";
break;
case 198: case 199:
this.$ = "LEFT";
break;
case 200: case 201:
this.$ = "RIGHT";
break;
case 202: case 203:
this.$ = "OUTER";
break;
case 204:
this.$ = "SEMI";
break;
case 205:
this.$ = "ANTI";
break;
case 206:
this.$ = "CROSS";
break;
case 207:
this.$ = {on: $$[$0]};
break;
case 208: case 615:
this.$ = {using: $$[$0]};
break;
case 211:
this.$ = {where: new yy.Expression({expression:$$[$0]})};
break;
case 213:
this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]);
break;
case 216:
this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]});
break;
case 217:
this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]});
break;
case 218:
this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]});
break;
case 221:
this.$ = {having:$$[$0]}
break;
case 223:
this.$ = {union: $$[$0]} ;
break;
case 224:
this.$ = {unionall: $$[$0]} ;
break;
case 225:
this.$ = {except: $$[$0]} ;
break;
case 226:
this.$ = {intersect: $$[$0]} ;
break;
case 227:
this.$ = {union: $$[$0], corresponding:true} ;
break;
case 228:
this.$ = {unionall: $$[$0], corresponding:true} ;
break;
case 229:
this.$ = {except: $$[$0], corresponding:true} ;
break;
case 230:
this.$ = {intersect: $$[$0], corresponding:true} ;
break;
case 232:
this.$ = {order:$$[$0]}
break;
case 234:
this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
break;
case 235:
this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'})
break;
case 236:
this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()})
break;
case 237:
this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true})
break;
case 238:
this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true})
break;
case 240:
this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0])
break;
case 242:
this.$ = {offset:$$[$0]}
break;
case 243: case 445: case 469: case 577: case 582: case 602: case 606:
$$[$0-2].push($$[$0]); this.$ = $$[$0-2];
break;
case 245: case 247: case 249:
$$[$0-2].as = $$[$0]; this.$ = $$[$0-2];
break;
case 246: case 248: case 250:
$$[$0-1].as = $$[$0]; this.$ = $$[$0-1];
break;
case 252:
this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
break;
case 253:
this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
break;
case 254:
this.$ = new yy.Column({columnid:$$[$0]});
break;
case 255:
this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
break;
case 256: case 257:
this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
break;
case 258:
this.$ = new yy.Column({columnid: $$[$0]});
break;
case 273:
this.$ = new yy.Json({value:$$[$0]});
break;
case 275: case 276: case 277:
if(!yy.queries) yy.queries = [];
yy.queries.push($$[$0-1]);
$$[$0-1].queriesidx = yy.queries.length;
this.$ = $$[$0-1];
break;
case 278:
this.$ = $$[$0]
break;
case 279:
this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
break;
case 280:
this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});
break;
case 281:
this.$ = new yy.FuncValue({funcid:$$[$0], newid:true});
break;
case 282:
this.$ = $$[$0]; yy.extend(this.$,{newid:true});
break;
case 283:
this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ;
break;
case 284:
this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
break;
case 285:
this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
break;
case 286:
this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ;
break;
case 293:
this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
break;
case 294:
if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) {
this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]});
} else {
this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]});
}
break;
case 295:
this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]});
break;
case 296:
this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],
over:$$[$0]});
break;
case 298: case 299:
this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]);
break;
case 300:
this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);
break;
case 301:
this.$ = {partition:$$[$0]};
break;
case 302:
this.$ = {order:$$[$0]};
break;
case 303:
this.$ = "SUM";
break;
case 304:
this.$ = "COUNT";
break;
case 305:
this.$ = "MIN";
break;
case 306: case 478:
this.$ = "MAX";
break;
case 307:
this.$ = "AVG";
break;
case 308:
this.$ = "FIRST";
break;
case 309:
this.$ = "LAST";
break;
case 310:
this.$ = "AGGR";
break;
case 311:
this.$ = "ARRAY";
break;
case 312:
var funcid = $$[$0-4];
var exprlist = $$[$0-1];
if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {
this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
} else if(alasql.aggr[$$[$0-4]]) {
this.$ = new yy.AggrValue({aggregatorid: 'REDUCE',
funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') });
} else {
this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
};
break;
case 313:
this.$ = new yy.FuncValue({ funcid: $$[$0-2] })
break;
case 315:
$$[$0-2].push($$[$0]); this.$ = $$[$0-2]
break;
case 316:
this.$ = new yy.NumValue({value:+$$[$0]});
break;
case 317:
this.$ = new yy.LogicValue({value:true});
break;
case 318:
this.$ = new yy.LogicValue({value:false});
break;
case 319:
this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
break;
case 320:
this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
break;
case 321:
this.$ = new yy.NullValue({value:undefined});
break;
case 322:
this.$ = new yy.VarValue({variable:$$[$0]});
break;
case 323:
if(!yy.exists) yy.exists = [];
this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});
yy.exists.push($$[$0-1]);
break;
case 324: case 325:
this.$ = new yy.ParamValue({param: $$[$0]});
break;
case 326:
if(typeof yy.question == 'undefined') yy.question = 0;
this.$ = new yy.ParamValue({param: yy.question++});
break;
case 327:
if(typeof yy.question == 'undefined') yy.question = 0;
this.$ = new yy.ParamValue({param: yy.question++, array:true});
break;
case 328:
this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]});
break;
case 329:
this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]});
break;
case 330: case 617: case 618:
this.$ = $$[$0-1]; this.$.push($$[$0]);
break;
case 332:
this.$ = {when: $$[$0-2], then: $$[$0] };
break;
case 335:
this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]});
break;
case 336:
this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] });
break;
case 337:
this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]});
break;
case 338:
this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]});
break;
case 339:
this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]});
break;
case 340:
this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]});
break;
case 341:
this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]});
break;
case 342:
this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]});
break;
case 343: case 344: case 346:
this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]});
break;
case 345:
this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]});
break;
case 347: case 348: case 350:
this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]});
break;
case 349:
this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]});
break;
case 351:
this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]});
break;
case 352:
this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]});
break;
case 353:
this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]});
break;
case 354:
this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]});
break;
case 355:
this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]});
break;
case 356:
this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]});
break;
case 357:
this.$ = new yy.Op({left:$$[$0-2], op:'===' , ri