kloudglue-alasql
Version:
Versatile SQL database for browser or node. Handles relational data and nested JSON (noSQL). Export to and import from Excel, localStorage or IndexedDB
964 lines (910 loc) • 193 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,10],$V1=[1,95],$V2=[1,96],$V3=[1,6],$V4=[1,38],$V5=[1,71],$V6=[1,68],$V7=[1,87],$V8=[1,86],$V9=[1,63],$Va=[1,94],$Vb=[1,78],$Vc=[1,76],$Vd=[1,60],$Ve=[1,64],$Vf=[1,58],$Vg=[1,62],$Vh=[1,56],$Vi=[1,66],$Vj=[1,57],$Vk=[1,61],$Vl=[1,75],$Vm=[1,69],$Vn=[1,77],$Vo=[1,79],$Vp=[1,80],$Vq=[1,73],$Vr=[1,74],$Vs=[1,72],$Vt=[1,81],$Vu=[1,82],$Vv=[1,83],$Vw=[1,84],$Vx=[1,85],$Vy=[1,91],$Vz=[1,59],$VA=[1,70],$VB=[1,65],$VC=[1,89],$VD=[1,90],$VE=[1,103],$VF=[1,99],$VG=[8,258,260,441],$VH=[8,258,260,262,441],$VI=[105,297,350],$VJ=[1,115],$VK=[1,119],$VL=[1,121],$VM=[1,146],$VN=[1,168],$VO=[1,158],$VP=[1,159],$VQ=[1,156],$VR=[1,162],$VS=[1,166],$VT=[1,163],$VU=[1,153],$VV=[1,155],$VW=[1,157],$VX=[1,164],$VY=[1,148],$VZ=[1,173],$V_=[1,169],$V$=[1,170],$V01=[1,174],$V11=[1,175],$V21=[1,176],$V31=[1,177],$V41=[1,178],$V51=[1,179],$V61=[1,180],$V71=[1,181],$V81=[1,182],$V91=[1,151],$Va1=[1,152],$Vb1=[1,160],$Vc1=[1,161],$Vd1=[1,167],$Ve1=[1,165],$Vf1=[1,154],$Vg1=[1,172],$Vh1=[1,183],$Vi1=[4,5],$Vj1=[1,189],$Vk1=[1,197],$Vl1=[8,71,93,104,134,139,140,152,168,200,213,258,260,262,441,462],$Vm1=[8,71,168,258,260,262,441,443,444,462],$Vn1=[4,5,8,47,65,67,69,71,81,90,93,97,98,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$Vo1=[1,225],$Vp1=[1,231],$Vq1=[1,241],$Vr1=[1,246],$Vs1=[1,245],$Vt1=[1,251],$Vu1=[2,138],$Vv1=[1,258],$Vw1=[8,67,71,258,260,262,439,441],$Vx1=[8,71,93,104,134,136,139,140,152,154,156,165,168,200,213,258,260,262,441,442,450,462],$Vy1=[4,5,8,47,65,67,69,70,71,81,90,93,97,98,99,104,106,107,108,112,113,114,116,120,121,123,124,126,128,134,139,140,141,142,148,149,152,156,158,163,168,176,178,190,191,192,193,194,195,196,197,198,200,207,210,211,213,227,251,252,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,287,291,300,312,313,314,317,318,329,331,337,340,341,342,343,344,345,346,348,349,357,358,359,367,369,375,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,444,452,453,458,459,462,472,474,475],$Vz1=[4,5,8,47,65,81,99,121,128,158,227,258,260,262,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,439,440,441],$VA1=[2,439],$VB1=[1,276],$VC1=[2,772],$VD1=[1,289],$VE1=[1,287],$VF1=[1,288],$VG1=[8,71,81,121,158,258,260,262,411,441,463,464],$VH1=[8,67,258,260,262,441],$VI1=[2,496],$VJ1=[1,304],$VK1=[4,5,128],$VL1=[258,260,262,441],$VM1=[1,319],$VN1=[1,310],$VO1=[1,318],$VP1=[1,317],$VQ1=[1,324],$VR1=[1,315],$VS1=[1,316],$VT1=[1,320],$VU1=[1,322],$VV1=[1,334],$VW1=[1,331],$VX1=[1,332],$VY1=[1,312],$VZ1=[1,314],$V_1=[1,311],$V$1=[1,313],$V02=[1,321],$V12=[1,323],$V22=[1,325],$V32=[1,326],$V42=[1,327],$V52=[1,328],$V62=[1,329],$V72=[1,333],$V82=[1,335],$V92=[1,336],$Va2=[1,337],$Vb2=[1,338],$Vc2=[2,260],$Vd2=[1,347],$Ve2=[4,5,8,47,65,67,69,71,81,90,93,97,98,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,156,158,168,176,178,190,191,192,193,194,195,196,197,198,200,207,210,211,213,227,251,252,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,287,291,300,312,313,317,318,337,340,341,344,346,348,349,357,358,359,367,369,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,444,452,453,462,472,474,475],$Vf2=[4,5,8,47,65,67,69,71,81,90,93,97,98,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,156,158,168,176,178,190,191,192,193,194,195,196,197,198,200,207,210,211,213,227,251,252,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,287,291,300,312,313,317,318,337,340,341,344,346,348,349,357,358,359,367,369,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,452,453,462,472,474,475],$Vg2=[2,321],$Vh2=[1,358],$Vi2=[1,368],$Vj2=[4,5,8,47,65,67,69,71,81,90,93,97,98,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,158,168,176,178,190,191,192,193,194,195,196,197,198,200,207,210,211,213,227,251,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,367,369,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,452,453,462,472,474,475],$Vk2=[1,383],$Vl2=[1,391],$Vm2=[1,390],$Vn2=[8,67,69,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,197,198,200,213,258,260,262,441,453,462],$Vo2=[8,67,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,197,198,200,213,258,260,262,441,462],$Vp2=[2,176],$Vq2=[1,410],$Vr2=[2,139],$Vs2=[1,413],$Vt2=[67,81,158],$Vu2=[8,67,71,126,156,252,258,260,262,287,300,312,313,317,318,441],$Vv2=[1,432],$Vw2=[67,71,258,260,262,441],$Vx2=[1,433],$Vy2=[1,441],$Vz2=[8,67,71,258,260,262,441],$VA2=[4,5,70,105,106,107,111,115,119,124,126,148,149,150,226,227,228,229,231,239,240,241,242,243,244,245,246,247,249,250,251,252,253,255,264,361,365],$VB2=[8,71,93,104,134,139,140,152,168,200,213,258,260,262,441,442,462],$VC2=[4,5,107,251],$VD2=[1,464],$VE2=[8,67,71,258,260,262,441,466],$VF2=[8,67,71,113,258,260,262,441,465,466,470,471],$VG2=[8,71,81,121,158,258,260,262,411,441,464],$VH2=[1,480],$VI2=[1,481],$VJ2=[136,280],$VK2=[2,391],$VL2=[1,528],$VM2=[1,547],$VN2=[4,5,47,65,67,69,71,81,90,93,99,104,106,107,113,114,120,121,126,128,134,139,140,141,142,148,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$VO2=[2,324],$VP2=[2,336],$VQ2=[1,554],$VR2=[258,260,262],$VS2=[67,369],$VT2=[67,367,369],$VU2=[4,5,8,47,65,67,69,71,81,90,93,97,98,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,367,369,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$VV2=[1,561],$VW2=[67,367],$VX2=[8,67,69,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,197,198,200,213,258,260,262,441,462],$VY2=[8,71,93,104,134,139,140,200,213,258,260,262,441,462],$VZ2=[8,71,258,260,262,441,462],$V_2=[4,5,8,70,71,93,104,105,106,107,111,115,119,124,126,134,139,140,148,149,150,152,168,200,213,226,227,228,229,231,239,240,241,242,243,244,245,246,247,249,250,251,252,253,255,258,260,262,264,361,365,441,442,450,462],$V$2=[1,627],$V03=[1,626],$V13=[8,67,71,113,258,260,262,441,465,466,471],$V23=[8,71,81,121,158,258,260,262,411,441],$V33=[4,5,8,47,65,67,69,71,81,90,93,97,98,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,156,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,252,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,287,291,300,312,313,317,318,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$V43=[8,67,71,258,260,262,439,441,472],$V53=[4,5,47,65,67,69,71,81,90,93,99,104,106,107,113,114,120,121,126,128,134,139,140,141,142,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,263,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$V63=[4,5,47,65,67,69,71,81,90,93,99,104,106,107,108,112,113,114,120,121,126,128,134,139,140,141,142,148,149,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,263,264,265,266,267,268,269,270,271,274,276,277,278,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$V73=[4,5,47,65,67,69,71,81,93,99,104,106,107,113,114,120,121,128,134,139,140,141,142,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,265,266,267,268,269,270,271,276,277,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$V83=[2,357],$V93=[4,5,47,65,67,69,71,81,93,104,106,107,120,121,128,134,139,140,141,142,152,158,168,176,178,190,191,192,193,194,195,196,200,207,210,211,213,227,251,258,260,261,262,276,277,279,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,411,439,440,441,442,462,472,474,475],$Va3=[2,258],$Vb3=[1,699],$Vc3=[8,71,258,260,262,441],$Vd3=[8,71,93,104,134,139,140,152,200,213,258,260,262,441,444,462],$Ve3=[1,723],$Vf3=[4,5,8,47,65,67,71,81,99,104,121,128,158,227,258,260,262,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,439,440,441],$Vg3=[1,731],$Vh3=[1,730],$Vi3=[1,732],$Vj3=[8,67,71,93,104,134,139,140,152,168,200,213,258,260,262,441,442,462],$Vk3=[1,741],$Vl3=[2,513],$Vm3=[1,755],$Vn3=[113,466],$Vo3=[8,67,71,113,258,260,262,441,465,466],$Vp3=[2,652],$Vq3=[1,769],$Vr3=[1,770],$Vs3=[2,299],$Vt3=[1,793],$Vu3=[1,804],$Vv3=[4,5,8,47,65,67,71,81,99,121,128,158,227,258,260,262,281,283,284,291,337,340,341,344,346,348,349,357,358,359,376,378,379,381,382,383,384,385,389,390,393,394,405,439,440,441],$Vw3=[1,807],$Vx3=[8,67,69,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,200,213,258,260,262,441,462],$Vy3=[8,71,93,134,139,140,213,258,260,262,441,462],$Vz3=[1,815],$VA3=[1,829],$VB3=[1,819],$VC3=[1,820],$VD3=[1,822],$VE3=[1,823],$VF3=[1,824],$VG3=[1,825],$VH3=[1,826],$VI3=[1,827],$VJ3=[1,828],$VK3=[97,99],$VL3=[67,258,260,262,441],$VM3=[67,71],$VN3=[1,881],$VO3=[8,71,134,139,140,213,258,260,262,441,462],$VP3=[8,69,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,200,213,258,260,262,441,462],$VQ3=[1,917],$VR3=[1,919],$VS3=[4,5,70,115,119,124,150,249,250,255,361,365],$VT3=[1,951],$VU3=[1,953],$VV3=[1,950],$VW3=[1,949],$VX3=[1,948],$VY3=[1,954],$VZ3=[1,945],$V_3=[1,946],$V$3=[1,947],$V04=[1,958],$V14=[8,67,71,134,139,140,213,258,260,262,441,462],$V24=[1,975],$V34=[8,71,134,139,140,258,260,262,441,462],$V44=[1,986],$V54=[1,987],$V64=[1,988],$V74=[8,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,197,198,200,213,258,260,262,441,462],$V84=[8,69,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,197,198,200,213,258,260,262,441,453,462],$V94=[1,1034],$Va4=[1,1033],$Vb4=[1,1035],$Vc4=[156,163,312,313,314,317],$Vd4=[2,451],$Ve4=[1,1040],$Vf4=[1,1060],$Vg4=[8,67,71,93,134,139,140,207,213,258,260,262,441,462],$Vh4=[8,69,71,93,104,134,139,140,176,178,190,191,192,193,194,195,196,197,198,200,213,258,260,262,441,462],$Vi4=[4,8,258,260,262,287,300,441],$Vj4=[1,1176],$Vk4=[1,1182],$Vl4=[67,71,197];
var parser = {trace: function trace() { },
yy: {},
symbols_: {"error":2,"Gl":3,"A7":4,"AD":5,"main":6,"Dl":7,"Dg":8,"Dl_group0":9,"Dn":10,"Dm":11,"BG":12,"CE":13,"CA":14,"Do":15,"AlterTable":16,"AttachDatabase":17,"FW":18,"CreateIndex":19,"CreateGraph":20,"CreateTable":21,"Ff":22,"GW":23,"CreateVertex":24,"GG":25,"Delete":26,"FV":27,"FZ":28,"Fa":29,"DropTable":30,"Fh":31,"If":32,"Insert":33,"GK":34,"FU":35,"Select":36,"Fe":37,"Fc":38,"ShowDatabases":39,"Fd":40,"Fb":41,"GJ":42,"WithSelect":43,"F4":44,"F2":45,"F3":46,"EndTransaction":47,"FY":48,"Update":49,"Help":50,"EX":51,"Fn":52,"Fo":53,"F7":54,"F8":55,"F9":56,"GA":57,"GB":58,"GC":59,"Fx":60,"Fm":61,"Gh":62,"Gk":63,"GD":64,"C5":65,"Dp":66,"Da":67,"Dq":68,"AW":69,"DR":70,"DS":71,"SelectClause":72,"Select_option0":73,"D4":74,"D5":75,"EH":76,"EI":77,"EN":78,"EQ":79,"EM":80,"CU":81,"Select_repetition0":82,"Select_option1":83,"Dr":84,"CK":85,"Dr_option0":86,"Ds":87,"Dt":88,"EV":89,"Bh":90,"Ek":91,"Du":92,"B4":93,"Af":94,"EO":95,"Du_option0":96,"C9":97,"Dh":98,"DP":99,"EW":100,"Du_repetition_plus0":101,"Du_repetition_plus1":102,"Du_option1":103,"C3":104,"Ag":105,"C7":106,"AH":107,"DE":108,"C0":109,"BA":110,"DA":111,"DF":112,"DL":113,"DO":114,"De":115,"DZ":116,"DOT":117,"Fp":118,"DT":119,"Cn":120,"CX":121,"Ex":122,"Cz":123,"Dc":124,"Dw":125,"Bv":126,"Du_repetition2":127,"BS":128,"Du_repetition3":129,"Ef":130,"Du_repetition4":131,"Du_group0":132,"Du_repetition5":133,"Ct":134,"Dv":135,"AP":136,"Du_repetition6":137,"Du_repetition7":138,"Ba":139,"BE":140,"AK":141,"AJ":142,"B7":143,"CO":144,"ES":145,"Dv_repetition0":146,"Dv_repetition1":147,"DB":148,"DD":149,"Df":150,"Dx":151,"BL":152,"D2":153,"A6":154,"D3":155,"Cu":156,"SelectClause_option0":157,"CV":158,"CS":159,"Am":160,"Bk":161,"Ck":162,"BW":163,"CG":164,"Co":165,"Ei":166,"D3_option0":167,"Bb":168,"EA":169,"Eg":170,"Eo":171,"Em":172,"D7":173,"EB":174,"D6":175,"Aw":176,"AU":177,"B5":178,"D8":179,"D8_option0":180,"D8_option1":181,"D9":182,"EC":183,"EE":184,"ED":185,"EG":186,"ED_option0":187,"ED_option1":188,"EF":189,"Bq":190,"Bc":191,"BX":192,"Bg":193,"CP":194,"FULL":195,"CW":196,"By":197,"Cy":198,"E2":199,"BO":200,"EJ":201,"EL":202,"EK":203,"BP":204,"CR":205,"Ax":206,"BQ":207,"At":208,"EP":209,"AY":210,"Al":211,"Bt":212,"Bi":213,"ER":214,"B0":215,"ET":216,"EU":217,"Eb":218,"Et":219,"El":220,"En":221,"Ep":222,"EZ":223,"EY":224,"EW_group0":225,"CURRENT_TIMESTAMP":226,"AA":227,"Bs":228,"Ah":229,"FN":230,"As":231,"Ea":232,"Eh":233,"Ec":234,"B6":235,"Ed":236,"Ee":237,"B8":238,"Ce":239,"Au":240,"Bn":241,"Bl":242,"Ab":243,"BJ":244,"Be":245,"AO":246,"AV":247,"Eg_option0":248,"Cr":249,"BH":250,"AF":251,"Bw":252,"BF":253,"Eo_group0":254,"AB":255,"Eq":256,"Es":257,"BB":258,"Er":259,"C2":260,"Cl":261,"BD":262,"NOT_LIKE":263,"DC":264,"DK":265,"DM":266,"DJ":267,"DH":268,"DN":269,"DI":270,"DG":271,"Ev":272,"Ew":273,"BV":274,"Eu":275,"Ad":276,"NOT_BETWEEN":277,"BU":278,"Db":279,"Ca":280,"Cv":281,"Ey":282,"A2":283,"BY":284,"Ez":285,"ValuesListsList":286,"A1":287,"E0":288,"E1":289,"DateValue":290,"Av":291,"E6":292,"E3":293,"E7":294,"E8":295,"E4":296,"Cf":297,"E5":298,"CreateTableOption":299,"Aa":300,"Ci":301,"ColumnDefsList":302,"E9":303,"FA":304,"FB":305,"FD":306,"FE":307,"FJ":308,"FK":309,"FC":310,"Ap":311,"Ai":312,"CB":313,"Bd":314,"FD_option0":315,"FL":316,"BK":317,"CI":318,"FE_option0":319,"FG":320,"FF":321,"FH":322,"FI":323,"Bu":324,"AM":325,"FJ_option0":326,"FM":327,"FP":328,"ColumnConstraints":329,"FO":330,"BC":331,"FQ":332,"FS":333,"FR":334,"FS_option0":335,"FS_option1":336,"A8":337,"DropTable_group0":338,"FT":339,"AQ":340,"CL":341,"AN":342,"Bp":343,"AZ":344,"Az":345,"A5":346,"FX":347,"Cw":348,"CZ":349,"C1":350,"Ff_option0":351,"Ff_option1":352,"Fg":353,"CF":354,"Bz":355,"B2":356,"BR":357,"Cb":358,"AX":359,"Fs":360,"AC":361,"Ft":362,"Fq":363,"Fr":364,"DU":365,"Fu":366,"DV":367,"Fw":368,"DW":369,"Fv":370,"F1":371,"Fy":372,"Fz":373,"F0":374,"Bx":375,"Ao":376,"Cp":377,"CQ":378,"Ac":379,"F6":380,"C4":381,"Ar":382,"Ae":383,"CC":384,"CM":385,"GE":386,"GF":387,"Plugin":388,"A9":389,"A0":390,"GH":391,"GI":392,"Cs":393,"Bm":394,"GL":395,"GM":396,"GN":397,"GO":398,"GT":399,"GP":400,"GR":401,"GQ":402,"GS":403,"Ch":404,"OUTPUT":405,"CreateVertex_option0":406,"CreateVertex_option1":407,"CreateVertex_option2":408,"GV":409,"GU":410,"Aq":411,"GW_option0":412,"BN":413,"GX":414,"GY":415,"Gc":416,"GY_option0":417,"GY_option1":418,"GY_group0":419,"GY_option2":420,"GY_option3":421,"GY_group1":422,"GZ":423,"Ga":424,"Gb":425,"Gc_option0":426,"Gc_option1":427,"Gc_option2":428,"Gc_option3":429,"Gd":430,"Ge":431,"Gf":432,"Gf_option0":433,"Gg":434,"Gg_option0":435,"Gg_option1":436,"Gg_option2":437,"Gi":438,"DX":439,"DY":440,"SEMICOLON":441,"RemoveClause":442,"SearchSelector":443,"SearchFrom":444,"COLUMN":445,"DIRECTION":446,"ExprList":447,"DISTINCT":448,"UNIQUE":449,"ResultColumns":450,"PERCENT":451,"AS":452,"Literal":453,"CreateEdge":454,"Eg_option0_group0":455,"ALL":456,"NUMBER":457,"ParColsList":458,"ParLiteral":459,"TABLE":460,"CLASS":461,"SubqueryRestriction":462,"SharpValue":463,"StringValue":464,"Json":465,"GraphAsClause":466,"GraphElement":467,"GraphVar":468,"SharpLiteral":469,"STRING":470,"ColonLiteral":471,"WHERE":472,"Expression":473,"FROM":474,"TO":475,"$accept":0,"$end":1},
terminals_: {2:"error",4:"A7",5:"AD",8:"Dg",12:"BG",13:"CE",14:"CA",47:"EndTransaction",65:"C5",67:"Da",69:"AW",70:"DR",71:"DS",81:"CU",85:"CK",90:"Bh",93:"B4",94:"Af",97:"C9",98:"Dh",99:"DP",104:"C3",105:"Ag",106:"C7",107:"AH",108:"DE",109:"C0",110:"BA",111:"DA",112:"DF",113:"DL",114:"DO",115:"De",116:"DZ",117:"DOT",119:"DT",120:"Cn",121:"CX",123:"Cz",124:"Dc",126:"Bv",128:"BS",134:"Ct",136:"AP",139:"Ba",140:"BE",141:"AK",142:"AJ",143:"B7",144:"CO",148:"DB",149:"DD",150:"Df",152:"BL",154:"A6",156:"Cu",158:"CV",159:"CS",160:"Am",161:"Bk",162:"Ck",163:"BW",164:"CG",165:"Co",168:"Bb",176:"Aw",177:"AU",178:"B5",190:"Bq",191:"Bc",192:"BX",193:"Bg",194:"CP",195:"FULL",196:"CW",197:"By",198:"Cy",200:"BO",204:"BP",205:"CR",206:"Ax",207:"BQ",208:"At",210:"AY",211:"Al",212:"Bt",213:"Bi",215:"B0",226:"CURRENT_TIMESTAMP",227:"AA",228:"Bs",229:"Ah",231:"As",235:"B6",238:"B8",239:"Ce",240:"Au",241:"Bn",242:"Bl",243:"Ab",244:"BJ",245:"Be",246:"AO",247:"AV",249:"Cr",250:"BH",251:"AF",252:"Bw",253:"BF",255:"AB",258:"BB",260:"C2",261:"Cl",262:"BD",263:"NOT_LIKE",264:"DC",265:"DK",266:"DM",267:"DJ",268:"DH",269:"DN",270:"DI",271:"DG",274:"BV",276:"Ad",277:"NOT_BETWEEN",278:"BU",279:"Db",280:"Ca",281:"Cv",283:"A2",284:"BY",287:"A1",290:"DateValue",291:"Av",297:"Cf",300:"Aa",301:"Ci",311:"Ap",312:"Ai",313:"CB",314:"Bd",317:"BK",318:"CI",324:"Bu",325:"AM",329:"ColumnConstraints",331:"BC",337:"A8",340:"AQ",341:"CL",342:"AN",343:"Bp",344:"AZ",345:"Az",346:"A5",348:"Cw",349:"CZ",350:"C1",354:"CF",355:"Bz",356:"B2",357:"BR",358:"Cb",359:"AX",361:"AC",365:"DU",367:"DV",369:"DW",375:"Bx",376:"Ao",377:"Cp",378:"CQ",379:"Ac",381:"C4",382:"Ar",383:"Ae",384:"CC",385:"CM",389:"A9",390:"A0",393:"Cs",394:"Bm",404:"Ch",405:"OUTPUT",411:"Aq",413:"BN",439:"DX",440:"DY",441:"SEMICOLON",442:"RemoveClause",443:"SearchSelector",444:"SearchFrom",445:"COLUMN",446:"DIRECTION",447:"ExprList",448:"DISTINCT",449:"UNIQUE",450:"ResultColumns",451:"PERCENT",452:"AS",453:"Literal",454:"CreateEdge",456:"ALL",457:"NUMBER",458:"ParColsList",459:"ParLiteral",460:"TABLE",461:"CLASS",462:"SubqueryRestriction",463:"SharpValue",464:"StringValue",465:"Json",466:"GraphAsClause",467:"GraphElement",468:"GraphVar",469:"SharpLiteral",470:"STRING",471:"ColonLiteral",472:"WHERE",473:"Expression",474:"FROM",475:"TO"},
productions_: [0,[3,1],[3,1],[6,2],[7,3],[7,1],[7,1],[11,2],[11,4],[10,1],[15,0],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[43,3],[66,3],[66,1],[68,5],[36,9],[36,4],[84,3],[87,3],[87,1],[88,1],[88,2],[92,1],[92,5],[92,5],[92,2],[92,1],[92,2],[92,2],[92,3],[92,4],[92,4],[92,4],[92,4],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,2],[92,2],[92,2],[92,1],[92,1],[92,1],[92,2],[92,1],[92,2],[92,3],[92,3],[92,4],[92,1],[92,2],[92,2],[92,4],[92,4],[92,4],[92,4],[92,4],[92,5],[92,4],[92,4],[92,4],[92,4],[92,4],[92,4],[92,4],[92,4],[135,3],[135,1],[125,1],[125,1],[125,1],[151,2],[72,4],[72,4],[72,4],[72,3],[153,1],[153,2],[153,2],[153,2],[153,2],[153,2],[153,2],[153,2],[155,3],[155,4],[155,0],[74,0],[74,2],[74,2],[74,2],[74,2],[74,2],[75,2],[75,3],[75,5],[75,0],[175,6],[175,7],[175,6],[175,7],[173,1],[173,3],[179,4],[179,5],[179,3],[179,3],[179,2],[179,3],[179,1],[179,2],[179,3],[179,1],[179,1],[179,2],[179,3],[179,1],[179,2],[179,3],[179,1],[179,2],[179,3],[182,1],[169,3],[169,1],[174,2],[174,2],[174,1],[174,1],[183,3],[185,1],[185,2],[185,3],[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],[189,1],[189,2],[189,2],[189,3],[189,2],[189,3],[189,2],[189,3],[189,2],[189,2],[189,2],[186,2],[186,2],[186,0],[76,0],[76,2],[77,0],[77,4],[201,1],[201,3],[203,5],[203,4],[203,4],[203,1],[202,0],[202,2],[80,0],[80,2],[80,3],[80,2],[80,2],[80,3],[80,4],[80,3],[80,3],[78,0],[78,3],[95,1],[95,3],[209,1],[209,2],[209,3],[209,4],[79,0],[79,3],[214,0],[214,2],[145,3],[145,1],[216,3],[216,2],[216,3],[216,2],[216,3],[216,2],[216,1],[217,5],[217,3],[217,1],[89,5],[89,3],[89,3],[89,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,1],[100,3],[100,3],[100,3],[100,1],[100,1],[51,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],[218,5],[218,6],[218,6],[234,0],[234,4],[234,4],[234,5],[236,3],[237,3],[130,1],[130,1],[130,1],[130,1],[130,1],[130,1],[130,1],[130,1],[130,1],[170,5],[170,3],[170,1],[170,1],[233,1],[233,3],[166,1],[91,1],[91,1],[220,1],[172,2],[221,4],[171,2],[171,2],[171,1],[171,1],[222,5],[222,4],[256,2],[256,1],[259,4],[257,2],[257,0],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,5],[219,3],[219,3],[219,3],[219,5],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,3],[219,6],[219,6],[219,3],[219,3],[219,2],[219,2],[219,2],[219,2],[219,3],[219,5],[219,6],[219,5],[219,6],[219,4],[219,5],[219,3],[219,4],[219,3],[219,3],[219,3],[219,3],[275,1],[275,1],[275,4],[272,1],[272,1],[272,1],[272,1],[272,1],[272,1],[273,1],[273,1],[273,1],[49,6],[49,4],[122,1],[122,3],[282,3],[26,5],[26,3],[33,5],[33,5],[33,8],[33,4],[33,7],[285,0],[285,1],[286,3],[286,1],[286,1],[286,5],[286,3],[286,3],[288,1],[288,3],[289,1],[289,1],[289,1],[289,1],[289,1],[289,1],[199,1],[199,3],[21,9],[21,5],[293,1],[293,1],[296,0],[296,1],[298,2],[298,1],[299,1],[299,3],[299,3],[292,0],[292,1],[294,0],[294,3],[295,3],[295,1],[295,2],[303,1],[303,3],[304,2],[304,2],[304,2],[304,2],[304,2],[305,0],[305,2],[310,4],[306,6],[307,9],[321,3],[320,0],[320,2],[322,4],[323,4],[308,5],[309,5],[309,5],[316,1],[316,1],[316,3],[316,3],[302,1],[302,3],[327,3],[327,2],[327,1],[230,6],[230,4],[230,1],[230,4],[330,1],[330,1],[328,0],[328,1],[332,2],[332,1],[334,3],[333,2],[333,5],[333,3],[333,6],[333,1],[333,2],[333,4],[333,1],[333,2],[333,1],[333,1],[30,4],[339,0],[339,2],[16,6],[16,6],[16,6],[16,8],[16,6],[35,5],[17,4],[17,7],[17,6],[17,9],[27,3],[18,4],[18,6],[18,9],[18,6],[347,0],[347,2],[48,3],[48,2],[28,4],[28,5],[28,5],[19,8],[19,9],[29,3],[39,2],[39,4],[39,3],[39,5],[41,2],[41,4],[41,4],[41,6],[38,4],[38,6],[40,4],[40,6],[37,4],[37,6],[22,11],[22,8],[353,3],[353,3],[353,5],[31,4],[50,2],[50,1],[61,2],[52,2],[53,2],[53,2],[53,4],[118,4],[118,2],[118,2],[118,2],[118,2],[118,1],[118,2],[118,2],[363,1],[363,1],[364,1],[364,1],[364,1],[364,1],[364,1],[364,1],[364,1],[364,3],[360,3],[360,4],[360,2],[362,2],[362,3],[362,1],[366,3],[366,1],[370,3],[370,3],[370,3],[368,3],[368,1],[60,3],[60,5],[60,6],[372,1],[372,1],[373,3],[373,2],[374,1],[374,1],[374,3],[371,1],[371,1],[45,2],[46,2],[44,2],[32,4],[32,3],[380,2],[54,3],[55,1],[56,1],[57,3],[58,2],[58,2],[59,2],[59,2],[388,1],[388,1],[64,2],[386,3],[386,1],[387,3],[387,1],[25,2],[391,1],[391,3],[392,3],[392,4],[392,5],[392,6],[42,3],[34,6],[395,1],[395,2],[396,2],[397,2],[398,2],[398,2],[398,1],[398,1],[400,4],[400,6],[402,1],[402,3],[401,5],[401,7],[401,7],[401,9],[401,7],[401,9],[403,3],[403,6],[403,3],[403,6],[399,0],[399,2],[399,5],[399,4],[399,7],[24,6],[410,2],[409,0],[409,2],[409,2],[409,1],[23,8],[20,3],[20,4],[414,3],[414,1],[415,3],[415,7],[415,4],[423,2],[424,3],[425,2],[416,4],[430,2],[431,2],[431,2],[432,4],[434,6],[434,1],[434,4],[62,3],[62,2],[438,3],[438,1],[63,2],[9,1],[9,1],[73,0],[73,1],[82,0],[82,2],[83,0],[83,1],[86,0],[86,1],[96,0],[96,1],[101,1],[101,2],[102,1],[102,2],[103,0],[103,1],[127,0],[127,2],[129,0],[129,2],[131,0],[131,2],[132,1],[132,1],[133,0],[133,2],[137,0],[137,2],[138,0],[138,2],[146,0],[146,2],[147,0],[147,2],[157,0],[157,1],[167,0],[167,1],[180,0],[180,1],[181,0],[181,1],[187,0],[187,1],[188,0],[188,1],[225,1],[225,1],[455,1],[455,1],[248,0],[248,1],[254,1],[254,1],[315,0],[315,1],[319,0],[319,1],[326,0],[326,1],[335,0],[335,1],[336,0],[336,1],[338,1],[338,1],[351,0],[351,1],[352,0],[352,1],[406,0],[406,1],[407,0],[407,1],[408,0],[408,1],[412,0],[412,1],[417,0],[417,1],[418,0],[418,1],[419,1],[419,1],[420,0],[420,1],[421,0],[421,1],[422,1],[422,1],[426,0],[426,1],[427,0],[427,1],[428,0],[428,1],[429,0],[429,1],[433,0],[433,2],[435,0],[435,2],[436,0],[436,2],[437,0],[437,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:
this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]);
break;
case 5: case 6: case 62: case 68: case 119: case 153: case 179: case 180: case 216: case 235: case 246: case 318: case 333: case 398: case 411: case 412: case 416: case 424: case 464: case 465: case 580: case 587: case 611: case 613: case 615: case 629: case 630: case 660: case 678:
this.$ = [$$[$0]];
break;
case 7:
this.$ = $$[$0]; $$[$0].explain = true;
break;
case 8:
this.$ = $$[$0]; $$[$0].explain = true;
break;
case 9:
this.$ = $$[$0];
// TODO combine exists and queries
if(yy.exists) this.$.exists = yy.exists;
delete yy.exists;
if(yy.queries) this.$.queries = yy.queries;
delete yy.queries;
break;
case 10: case 128: case 138: case 148: case 211: case 212: case 214: case 222: case 224: case 233: case 241: case 243: case 336: case 428: case 437: case 439: case 451: case 457: case 458: case 496:
this.$ = undefined;
break;
case 60:
this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]});
break;
case 61:
$$[$0-2].push($$[$0]); this.$=$$[$0-2];
break;
case 63:
this.$ = {name:$$[$0-4], select:$$[$0-1]};
break;
case 64:
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 65:
this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});
yy.extend(this.$,$$[$0-1]);
break;
case 66:
this.$ = {removecolumns:$$[$0]};
break;
case 67: case 659: case 677:
this.$ = $$[$0-2]; this.$.push($$[$0]);
break;
case 69: case 123: case 161: case 221: case 253: 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 273: case 274: case 276: case 289: case 290: case 291: case 292: case 293: case 294: case 335: case 387: case 388: case 389: case 390: case 391: case 392: case 452: case 480: case 482: case 554: case 555: case 556: case 557: case 558: case 559: case 563: case 565: case 566: case 575: case 588: case 589: case 651: case 665: case 666: case 668: case 669:
this.$ = $$[$0];
break;
case 70:
this.$ = {like:$$[$0]};
break;
case 71: case 83:
this.$ = {srchid:"PROP", args: [$$[$0]]};
break;
case 72:
this.$ = {srchid:"ORDERBY", args: $$[$0-1]};
break;
case 73:
var dir = $$[$0-1];
if(!dir) dir = 'ASC';
this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
break;
case 74:
this.$ = {srchid:"APROP", args: [$$[$0]]};
break;
case 75:
this.$ = {selid:"ROOT"};
break;
case 76:
this.$ = {srchid:"EQ", args: [$$[$0]]};
break;
case 77:
this.$ = {srchid:"LIKE", args: [$$[$0]]};
break;
case 78: case 79:
this.$ = {selid:"WITH", args: $$[$0-1]};
break;
case 80:
this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]};
break;
case 81:
this.$ = {srchid:"WHERE", args:[$$[$0-1]]};
break;
case 82:
this.$ = {srchid:"CLASS", args:[$$[$0-1]]};
break;
case 84:
this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]};
break;
case 85:
this.$ = {srchid:"CHILD"};
break;
case 86:
this.$ = {srchid:"VERTEX"};
break;
case 87:
this.$ = {srchid:"EDGE"};
break;
case 88:
this.$ = {srchid:"REF"};
break;
case 89:
this.$ = {srchid:"SHARP", args:[$$[$0]]};
break;
case 90:
this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])};
break;
case 91:
this.$ = {srchid:"ATTR"};
break;
case 92:
this.$ = {srchid:"OUT"};
break;
case 93:
this.$ = {srchid:"IN"};
break;
case 94:
this.$ = {srchid:"CONTENT"};
break;
case 95:
this.$ = {srchid:"PARENT"};
break;
case 96:
this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]};
break;
case 97:
this.$ = {srchid:"AT", args:[$$[$0]]};
break;
case 98:
this.$ = {srchid:"AS", args:[$$[$0]]};
break;
case 99:
this.$ = {srchid:"TO", args:[$$[$0]]};
break;
case 100:
this.$ = {srchid:"SET", args:$$[$0-1]};
break;
case 101:
this.$ = {srchid:"VALUE"};
break;
case 102:
this.$ = {srchid:"CLASS", args:[$$[$0]]};
break;
case 103:
this.$ = {selid:$$[$0],args:[$$[$0-1]] };
break;
case 104:
this.$ = {selid:"NOT",args:$$[$0-1] };
break;
case 105:
this.$ = {selid:"IF",args:$$[$0-1] };
break;
case 106:
this.$ = {selid:$$[$0-3],args:$$[$0-1] };
break;
case 107:
this.$ = {selid:'DISTINCT',args:$$[$0-1] };
break;
case 108:
this.$ = {selid:'UNION',args:$$[$0-1] };
break;
case 109:
this.$ = {selid:'UNIONALL',args:$$[$0-1] };
break;
case 110:
this.$ = {selid:'ALL',args:[$$[$0-1]] };
break;
case 111:
this.$ = {selid:'ANY',args:[$$[$0-1]] };
break;
case 112:
this.$ = {selid:'INTERSECT',args:$$[$0-1] };
break;
case 113:
this.$ = {selid:'EXCEPT',args:$$[$0-1] };
break;
case 114:
this.$ = {selid:'AND',args:$$[$0-1] };
break;
case 115:
this.$ = {selid:'OR',args:$$[$0-1] };
break;
case 116:
this.$ = {selid:'PATH',args:[$$[$0-1]] };
break;
case 117:
this.$ = {srchid:'RETURNS',args:$$[$0-1] };
break;
case 118:
this.$ = $$[$0-2]; this.$.push($$[$0]);
break;
case 120:
this.$ = "PLUS";
break;
case 121:
this.$ = "STAR";
break;
case 122:
this.$ = "QUESTION";
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], distinct: true }); yy,extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
break;
case 126:
this.$ = new yy.Select({ columns:$$[$0], all:true }); yy,extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
break;
case 127:
if(!$$[$0]) {
this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});
} else {
this.$ = new yy.Select({ columns:$$[$0] }); yy,extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);
}
break;
case 129:
this.$ = {modifier:'VALUE'}
break;
case 130:
this.$ = {modifier:'ROW'}
break;
case 131:
this.$ = {modifier:'COLUMN'}
break;
case 132:
this.$ = {modifier:'MATRIX'}
break;
case 133:
this.$ = {modifier:'TEXTSTRING'}
break;
case 134:
this.$ = {modifier:'INDEX'}
break;
case 135:
this.$ = {modifier:'RECORDSET'}
break;
case 136:
this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)};
break;
case 137:
this.$ = {top: $$[$0-1]};
break;
case 139: case 299: case 459: case 460: case 652:
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 217: case 399: 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.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0]
break;
case 159:
this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]
break;
case 160:
this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]
break;
case 162: case 166: case 169: case 172:
this.$ = $$[$0-1]; $$[$0-1].as = $$[$0];
break;
case 163: case 167: case 170: case 173:
this.$ = $$[$0-2]; $$[$0-2].as = $$[$0];
break;
case 164: case 165: case 168: case 171:
this.$ = $$[$0]; $$[$0].as = 'default';
break;
case 174:
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 BL clause');
};
this.$ = r;
break;
case 175:
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 176:
this.$ = new yy.Table({tableid: $$[$0]});
break;
case 177: case 178:
this.$ = $$[$0-1]; $$[$0-1].push($$[$0]);
break;
case 181:
this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]);
break;
case 182:
this.$ = {table: $$[$0]};
break;
case 183:
this.$ = {table: $$[$0-1], as: $$[$0] } ;
break;
case 184:
this.$ = {table: $$[$0-2], as: $$[$0] } ;
break;
case 185:
this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})};
break;
case 186:
this.$ = {param: $$[$0-1], as: $$[$0] } ;
break;
case 187:
this.$ = {param: $$[$0-2], as: $$[$0] } ;
break;
case 188:
this.$ = {select: $$[$0-3], as: $$[$0]} ;
break;
case 189:
this.$ = {select: $$[$0-4], as: $$[$0] } ;
break;
case 190:
this.$ = {funcid:$$[$0], as:'default'};
break;
case 191:
this.$ = {funcid:$$[$0-1], as: $$[$0]};
break;
case 192:
this.$ = {funcid:$$[$0-2], as: $$[$0]};
break;
case 193:
this.$ = {variable:$$[$0],as:'default'};
break;
case 194:
this.$ = {variable:$$[$0-1],as:$$[$0]};
break;
case 195:
this.$ = {variable:$$[$0-2],as:$$[$0]}
break;
case 196:
this.$ = { joinmode: $$[$0] } ;
break;
case 197:
this.$ = {joinmode: $$[$0-1], natural:true} ;
break;
case 198: case 199:
this.$ = "INNER";
break;
case 200: case 201:
this.$ = "LEFT";
break;
case 202: case 203:
this.$ = "RIGHT";
break;
case 204: case 205:
this.$ = "OUTER";
break;
case 206:
this.$ = "SEMI";
break;
case 207:
this.$ = "ANTI";
break;
case 208:
this.$ = "CROSS";
break;
case 209:
this.$ = {on: $$[$0]};
break;
case 210: case 625:
this.$ = {using: $$[$0]};
break;
case 213:
this.$ = {where: new yy.Expression({expression:$$[$0]})};
break;
case 215:
this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]);
break;
case 218:
this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]});
break;
case 219:
this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]});
break;
case 220:
this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]});
break;
case 223:
this.$ = {having:$$[$0]}
break;
case 225:
this.$ = {union: $$[$0]} ;
break;
case 226:
this.$ = {unionall: $$[$0]} ;
break;
case 227:
this.$ = {except: $$[$0]} ;
break;
case 228:
this.$ = {intersect: $$[$0]} ;
break;
case 229:
this.$ = {union: $$[$0], corresponding:true} ;
break;
case 230:
this.$ = {unionall: $$[$0], corresponding:true} ;
break;
case 231:
this.$ = {except: $$[$0], corresponding:true} ;
break;
case 232:
this.$ = {intersect: $$[$0], corresponding:true} ;
break;
case 234:
this.$ = {order:$$[$0]}
break;
case 236:
this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
break;
case 237:
this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'})
break;
case 238:
this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()})
break;
case 239:
this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true})
break;
case 240:
this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true})
break;
case 242:
this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0])
break;
case 244:
this.$ = {offset:$$[$0]}
break;
case 245: case 445: case 469: case 579: case 586: case 610: case 612: case 616:
$$[$0-2].push($$[$0]); this.$ = $$[$0-2];
break;
case 247: case 249: case 251:
$$[$0-2].as = $$[$0]; this.$ = $$[$0-2];
break;
case 248: case 250: case 252:
$$[$0-1].as = $$[$0]; this.$ = $$[$0-1];
break;
case 254:
this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
break;
case 255:
this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
break;
case 256:
this.$ = new yy.Column({columnid:$$[$0]});
break;
case 257:
this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
break;
case 258: case 259:
this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
break;
case 260:
this.$ = new yy.Column({columnid: $$[$0]});
break;
case 275:
this.$ = new yy.Json({value:$$[$0]});
break;
case 277: case 278: case 279:
if(!yy.queries) yy.queries = [];
yy.queries.push($$[$0-1]);
$$[$0-1].queriesidx = yy.queries.length;
this.$ = $$[$0-1];
break;
case 280:
this.$ = $$[$0]
break;
case 281:
this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
break;
case 282:
this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});
break;
case 283:
this.$ = new yy.FuncValue({funcid:$$[$0], newid:true});
break;
case 284:
this.$ = $$[$0]; yy.extend(this.$,{newid:true});
break;
case 285:
this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ;
break;
case 286:
this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
break;
case 287:
this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
break;
case 288:
this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ;
break;
case 295:
this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
break;
case 296:
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 297:
this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]});
break;
case 298:
this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],
over:$$[$0]});
break;
case 300: case 301:
this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]);
break;
case 302:
this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);
break;
case 303:
this.$ = {partition:$$[$0]};
break;
case 304:
this.$ = {order:$$[$0]};
break;
case 305:
this.$ = "SUM";
break;
case 306:
this.$ = "COUNT";
break;
case 307:
this.$ = "MIN";
break;
case 308: case 478:
this.$ = "MAX";
break;
case 309:
this.$ = "AVG";
break;
case 310:
this.$ = "FIRST";
break;
case 311:
this.$ = "LAST";
break;
case 312:
this.$ = "AGGR";
break;
case 313:
this.$ = "ARRAY";
break;
case 314:
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 315:
this.$ = new yy.FuncValue({ funcid: $$[$0-2] })
break;
case 316:
this.$ = new yy.LogicValue({value:true});
break;
case 317:
this.$ = new yy.LogicValue({value:false});
break;
case 319:
$$[$0-2].push($$[$0]); this.$ = $$[$0-2]
break;
case 320:
this.$ = new yy.NumValue({value:+$$[$0]});
break;
case 321:
this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
break;
case 322:
this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
break;
case 323:
this.$ = new yy.NullValue({value:undefined});
break;
case 324:
this.$ = new yy.VarValue({variable:$$[$0]});
break;
case 325:
if(!yy.exists) yy.exists = [];
this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});
yy.exists.push($$[$0-1]);
break;
case 326: case 327:
this.$ = new yy.ParamValue({param: $$[$0]});
break;
case 328:
if(typeof yy.question == 'undefined') yy.question = 0;
this.$ = new yy.ParamValue({param: yy.question++});
break;
case 329:
if(typeof yy.question == 'undefined') yy.question = 0;
this.$ = new yy.ParamValue({param: yy.question++, array:true});
break;
case 330:
this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]});
break;
case 331:
this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]});
break;
case 332: case 627: case 628:
this.$ = $$[$0-1]; this.$.push($$[$0]);
break;
case 334:
this.$ = {when: $$[$0-2], then: $$[$0] };
break;
case 337:
this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]});
break;
case 338:
this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', 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:
this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]});
break;
case 344:
this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]});
break;
case 345: case 346: case 348:
this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]});
break;
case 347:
this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]});
break;
case 349: case 350: case 352:
this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]});
break;
case 351:
this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]});
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:'=' , right:$$[$0]});
break;
case 358:
this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]});
break;
case 359:
this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]});
break;
case 360:
this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]});
break;
case 361:
this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]});
break;
case 362:
this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]});
break;
case 363:
if(!yy.queries) yy.queries = [];
this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length});
yy.queries.push($$[$0-1]);
break;
case 364:
this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]});
break;
case 365:
if($$[$0-2].op == 'BETWEEN1') {
if($$[$0-2].left.op == 'AND') {
this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN',
right1:$$[$0-2].right, right2:$$[$0]})
});
} else {
this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN',
right1:$$[$0-2].right, right2:$$[$0]});
}
} else if($$[$0-2].op == 'NOT BETWEEN1') {
if($$[$0-2].left.op == 'AND') {
this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN',
right1:$$[$0-2].right, right2:$$[$0]})
});
} else {
this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN',
right1:$$[$0-2].right, right2:$$[$0]});
}
} else {
this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]});
}
break;
case 366:
this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]});
break;
case 367:
this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]});
break;
case 368:
this.$ = new yy.UniOp({op:'-' , right:$$[$0]});
break;
case 369:
this.$ = new yy.UniOp({op:'+' , right:$$[$0]});
break;
case 370:
this.$ = new yy.UniOp({op:'#' , right:$$[$0]});
break;
case 371:
this.$ = new yy.UniOp({right: $$[$0-1]});
break;
case 372:
if(!yy.queries) yy.queries = [];
this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length});
yy.queries.push($$[$0-1]);
break;
case 373:
if(!yy.queries) yy.queries = [];
this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length});
yy.queries.push($$[$0-1]);
break;
case 374:
this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]});
break;
case 375:
this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]});
break;
case 376:
this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]});
break;
case 377:
this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]});
break;
case 378:
this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]});
break;
case 379:
this.$ = new yy.Op({left: $$[$0-3], op:'NO