astexplorer.app
Version:
https://astexplorer.net with ES Modules support and Hot Reloading
1 lines • 123 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{"./node_modules/sqlite-parser/dist/sqlite-parser.js":function(module,exports,__webpack_require__){eval('var require;var require;/*!\n * sqlite-parser - v1.0.1\n * @copyright 2015-2017 Code School (http://codeschool.com)\n * @author Nick Wronski <nick@javascript.com>\n */\n(function(f){if(true){module.exports=f()}else { var g; }})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module \'"+o+"\'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"./streaming":[function(require,module,exports){\n\'use strict\';Object.defineProperty(exports,"__esModule",{value:true});function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var SqliteParserTransform=exports.SqliteParserTransform=function SqliteParserTransform(options){_classCallCheck(this,SqliteParserTransform);throw new Error(\'SqliteParserTransform is not available in this environment\');};var SingleNodeTransform=exports.SingleNodeTransform=function SingleNodeTransform(options){_classCallCheck(this,SingleNodeTransform);throw new Error(\'SingleNodeTransform is not available in this environment\');};\n\n},{}],1:[function(require,module,exports){\n\'use strict\';Object.defineProperty(exports,"__esModule",{value:true});exports.default=sqliteParser;var _parser=require(\'./parser\');var _tracer=require(\'./tracer\');var _streaming=require(\'./streaming\');function sqliteParser(source,options,callback){var t=(0,_tracer.Tracer)();if(arguments.length===2){if(typeof options===\'function\'){callback=options;options={};}}var isAsync=typeof callback===\'function\';var opts={\'tracer\':t,\'startRule\':\'start\'};if(options&&options.streaming){opts[\'startRule\']=\'start_streaming\';}if(isAsync){setTimeout(function(){var result=void 0,err=void 0;try{result=(0,_parser.parse)(source,opts);}catch(e){err=e instanceof _parser.SyntaxError?t.smartError(e):e;}callback(err,result);},0);}else{try{return(0,_parser.parse)(source,opts);}catch(e){throw e instanceof _parser.SyntaxError?t.smartError(e):e;}}};sqliteParser[\'createParser\']=function(){return new _streaming.SqliteParserTransform();};sqliteParser[\'createStitcher\']=function(){return new _streaming.SingleNodeTransform();};sqliteParser[\'NAME\']=\'sqlite-parser\';sqliteParser[\'VERSION\']=\'1.0.1\';module.exports=exports[\'default\'];\n\n},{"./parser":2,"./streaming":"./streaming","./tracer":3}],2:[function(require,module,exports){\n"use strict";var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"])_i["return"]();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};function peg$subclass(child,parent){function ctor(){this.constructor=child;}ctor.prototype=parent.prototype;child.prototype=new ctor();}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError);}}peg$subclass(peg$SyntaxError,Error);peg$SyntaxError.buildMessage=function(expected,found){var DESCRIBE_EXPECTATION_FNS={literal:function literal(expectation){return"\\""+literalEscape(expectation.text)+"\\"";},"class":function _class(expectation){var escapedParts=expectation.parts.map(function(part){return Array.isArray(part)?classEscape(part[0])+"-"+classEscape(part[1]):classEscape(part);});return"["+(expectation.inverted?"^":"")+escapedParts+"]";},any:function any(expectation){return"any character";},end:function end(expectation){return"end of input";},other:function other(expectation){return expectation.description;}};function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase();}function literalEscape(s){return s.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,"\\\\\\"").replace(/\\0/g,"\\\\0").replace(/\\t/g,"\\\\t").replace(/\\n/g,"\\\\n").replace(/\\r/g,"\\\\r").replace(/[\\x00-\\x0F]/g,function(ch){return"\\\\x0"+hex(ch);}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(ch){return"\\\\x"+hex(ch);});}function classEscape(s){return s.replace(/\\\\/g,"\\\\\\\\").replace(/\\]/g,"\\\\]").replace(/\\^/g,"\\\\^").replace(/-/g,"\\\\-").replace(/\\0/g,"\\\\0").replace(/\\t/g,"\\\\t").replace(/\\n/g,"\\\\n").replace(/\\r/g,"\\\\r").replace(/[\\x00-\\x0F]/g,function(ch){return"\\\\x0"+hex(ch);}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(ch){return"\\\\x"+hex(ch);});}function describeExpectation(expectation){return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);}function describeExpected(expected){var descriptions=expected.map(describeExpectation);var i,j;descriptions.sort();if(descriptions.length>0){for(i=1,j=1;i<descriptions.length;i++){if(descriptions[i-1]!==descriptions[i]){descriptions[j]=descriptions[i];j++;}}descriptions.length=j;}switch(descriptions.length){case 1:return descriptions[0];case 2:return descriptions[0]+" or "+descriptions[1];default:return descriptions.slice(0,-1).join(", ")+", or "+descriptions[descriptions.length-1];}}function describeFound(found){return found?"\\""+literalEscape(found)+"\\"":"end of input";}return"Expected "+describeExpected(expected)+" but "+describeFound(found)+" found.";};function peg$DefaultTracer(){this.indentLevel=0;}peg$DefaultTracer.prototype.trace=function(event){var that=this;function log(event){function repeat(string,n){var result="",i;for(i=0;i<n;i++){result+=string;}return result;}function pad(string,length){return string+repeat(" ",length-string.length);}if((typeof console==="undefined"?"undefined":_typeof(console))==="object"){console.log(event.location.start.line+":"+event.location.start.column+"-"+event.location.end.line+":"+event.location.end.column+" "+pad(event.type,10)+" "+repeat(" ",that.indentLevel)+event.rule);}}switch(event.type){case"rule.enter":log(event);this.indentLevel++;break;case"rule.match":this.indentLevel--;log(event);break;case"rule.fail":this.indentLevel--;log(event);break;default:throw new Error("Invalid event type: "+event.type+".");}};function peg$parse(input,options){options=options!==undefined?options:{};var peg$FAILED={};var peg$startRuleIndices={start:0,start_streaming:1};var peg$startRuleIndex=0;var peg$consts=[function(s){return s;},function(f,b){return{\'type\':\'statement\',\'variant\':\'list\',\'statement\':flattenAll([f,b])};},function(s){return s;},peg$otherExpectation("Type Definition"),function(t,a){return Object.assign(t,a);},function(n){return{\'type\':\'datatype\',\'variant\':n[0],\'affinity\':n[1]};},peg$otherExpectation("Custom Datatype Name"),function(t,r){var variant=foldStringKey([t,r]);var affinity=\'numeric\';if(/int/i.test(variant)){affinity=\'integer\';}else if(/char|clob|text/i.test(variant)){affinity=\'text\';}else if(/blob/i.test(variant)){affinity=\'blob\';}else if(/real|floa|doub/i.test(variant)){affinity=\'real\';}return{\'type\':\'datatype\',\'variant\':variant,\'affinity\':affinity};},/^[\\t ]/,peg$classExpectation(["\\t"," "],false,false),function(w){return w;},peg$otherExpectation("Type Definition Arguments"),function(a1,a2){return{\'args\':{\'type\':\'expression\',\'variant\':\'list\',\'expression\':flattenAll([a1,a2])}};},function(n){return n;},peg$otherExpectation("Null Literal"),function(n){return{\'type\':\'literal\',\'variant\':\'null\',\'value\':keyNode(n)};},peg$otherExpectation("Date Literal"),function(d){return{\'type\':\'literal\',\'variant\':\'date\',\'value\':keyNode(d)};},peg$otherExpectation("String Literal"),function(n,s){return{\'type\':\'literal\',\'variant\':\'text\',\'value\':s};},peg$otherExpectation("Single-quoted String Literal"),function(s){return unescape(s,"\'");},"\'\'",peg$literalExpectation("\'\'",false),/^[^\']/,peg$classExpectation(["\'"],true,false),peg$otherExpectation("Blob Literal"),/^[x]/i,peg$classExpectation(["x"],false,true),function(b){return{\'type\':\'literal\',\'variant\':\'blob\',\'value\':b};},function(n){return{\'type\':\'literal\',\'variant\':\'text\',\'value\':n};},peg$otherExpectation("Number Sign"),function(s,n){if(isOkay(s)){n[\'value\']=foldStringWord([s,n[\'value\']]);}return n;},function(d,e){return{\'type\':\'literal\',\'variant\':\'decimal\',\'value\':foldStringWord([d,e])};},peg$otherExpectation("Decimal Literal"),function(f,b){return foldStringWord([f,b]);},function(t,d){return foldStringWord([t,d]);},peg$otherExpectation("Decimal Literal Exponent"),"e",peg$literalExpectation("E",true),/^[+\\-]/,peg$classExpectation(["+","-"],false,false),function(e,s,d){return foldStringWord([e,s,d]);},peg$otherExpectation("Hexidecimal Literal"),"0x",peg$literalExpectation("0x",true),function(f,b){return{\'type\':\'literal\',\'variant\':\'hexidecimal\',\'value\':foldStringWord([f,b])};},/^[0-9a-f]/i,peg$classExpectation([["0","9"],["a","f"]],false,true),/^[0-9]/,peg$classExpectation([["0","9"]],false,false),peg$otherExpectation("Bind Parameter"),function(b){return Object.assign({\'type\':\'variable\'},b);},peg$otherExpectation("Numbered Bind Parameter"),function(q,id){return{\'format\':\'numbered\',\'name\':foldStringWord([q,id])};},/^[1-9]/,peg$classExpectation([["1","9"]],false,false),function(f,r){return foldStringWord([f,r]);},peg$otherExpectation("Named Bind Parameter"),/^[:@]/,peg$classExpectation([":","@"],false,false),function(s,name){return{\'format\':\'named\',\'name\':foldStringWord([s,name])};},peg$otherExpectation("TCL Bind Parameter"),"$",peg$literalExpectation("$",false),":",peg$literalExpectation(":",false),function(d,name,s){return Object.assign({\'format\':\'tcl\',\'name\':foldStringWord([d,name])},s);},function(sfx){return{\'suffix\':sfx};},peg$otherExpectation("EXISTS Expression"),function(n,e){if(isOkay(n)){return{\'type\':\'expression\',\'format\':\'unary\',\'variant\':\'exists\',\'expression\':e,\'operator\':keyNode(n)};}return e;},peg$otherExpectation("EXISTS Keyword"),function(n,x){return foldStringKey([n,x]);},peg$otherExpectation("RAISE Expression"),function(s,a){return Object.assign({\'type\':\'expression\',\'format\':\'unary\',\'variant\':keyNode(s),\'expression\':a},a);},peg$otherExpectation("RAISE Expression Arguments"),function(a){return Object.assign({\'type\':\'error\'},a);},peg$otherExpectation("IGNORE Keyword"),function(f){return{\'action\':keyNode(f)};},function(f,m){return{\'action\':keyNode(f),\'message\':m};},function(n){return n;},function(e,c){return Object.assign(c,{\'expression\':e});},function(op,e){return{\'type\':\'expression\',\'format\':\'unary\',\'variant\':\'operation\',\'expression\':e,\'operator\':keyNode(op)};},peg$otherExpectation("COLLATE Expression"),function(c){return Object.assign({\'type\':\'expression\',\'format\':\'unary\',\'variant\':\'operation\',\'operator\':\'collate\'},c);},function(f,rest){return composeBinary(f,rest);},function(i){return[null,i,null,{\'type\':\'literal\',\'variant\':\'null\',\'value\':\'null\'}];},"not ",peg$literalExpectation("NOT ",true),"null",peg$literalExpectation("NULL",true),function(){return\'not\';},function(){return\'is\';},peg$otherExpectation("CAST Expression"),function(s,e,a){return{\'type\':\'expression\',\'format\':\'unary\',\'variant\':keyNode(s),\'expression\':e,\'as\':a};},peg$otherExpectation("Type Alias"),function(d){return d;},peg$otherExpectation("CASE Expression"),function(t,e,w,s){return Object.assign({\'type\':\'expression\',\'variant\':keyNode(t),\'expression\':flattenAll([w,s])},e);},function(e){return{\'discriminant\':e};},peg$otherExpectation("WHEN Clause"),function(s,w,t){return{\'type\':\'condition\',\'variant\':keyNode(s),\'condition\':w,\'consequent\':t};},peg$otherExpectation("ELSE Clause"),function(s,e){return{\'type\':\'condition\',\'variant\':keyNode(s),\'consequent\':e};},function(v,p){return Object.assign(p,{\'left\':v});},peg$otherExpectation("Comparison Expression"),function(n,m,e,x){return Object.assign({\'type\':\'expression\',\'format\':\'binary\',\'variant\':\'operation\',\'operation\':foldStringKey([n,m]),\'right\':e},x);},peg$otherExpectation("ESCAPE Expression"),function(s,e){return{\'escape\':e};},peg$otherExpectation("BETWEEN Expression"),function(n,b,tail){return{\'type\':\'expression\',\'format\':\'binary\',\'variant\':\'operation\',\'operation\':foldStringKey([n,b]),\'right\':tail};},function(f,rest){return composeBinary(f,[rest]);},function(n){return keyNode(n);},peg$otherExpectation("IN Expression"),function(n,i,e){return{\'type\':\'expression\',\'format\':\'binary\',\'variant\':\'operation\',\'operation\':foldStringKey([n,i]),\'right\':e};},function(e){return e;},peg$otherExpectation("Expression List"),function(l){return{\'type\':\'expression\',\'variant\':\'list\',\'expression\':isOkay(l)?l:[]};},function(f,rest){return flattenAll([f,rest]);},peg$otherExpectation("Function Call"),function(n,a){return Object.assign({\'type\':\'function\',\'name\':n},a);},peg$otherExpectation("Function Call Arguments"),function(s){return{\'args\':{\'type\':\'identifier\',\'variant\':\'star\',\'name\':s}};},function(d,e){return!isOkay(d)||e[\'expression\'].length>0;},function(d,e){return{\'args\':Object.assign(e,d)};},function(s){return{\'filter\':keyNode(s)};},peg$otherExpectation("Error Message"),function(m){return m;},peg$otherExpectation("Statement"),function(m,s){return Object.assign(s,m);},peg$otherExpectation("QUERY PLAN"),function(e,q){return{\'explain\':isOkay(e)};},peg$otherExpectation("QUERY PLAN Keyword"),function(q,p){return foldStringKey([q,p]);},peg$otherExpectation("END Transaction Statement"),function(s,t){return{\'type\':\'statement\',\'variant\':\'transaction\',\'action\':\'commit\'};},peg$otherExpectation("BEGIN Transaction Statement"),function(s,m,t,n){return Object.assign({\'type\':\'statement\',\'variant\':\'transaction\',\'action\':\'begin\'},m,n);},function(t){return t;},function(m){return{\'defer\':keyNode(m)};},peg$otherExpectation("ROLLBACK Statement"),function(s,n){return Object.assign({\'type\':\'statement\',\'variant\':\'transaction\',\'action\':\'rollback\'},n);},peg$otherExpectation("TO Clause"),function(n){return{\'savepoint\':n};},function(s){return keyNode(s);},peg$otherExpectation("SAVEPOINT Statement"),function(s,n){return{\'type\':\'statement\',\'variant\':s,\'target\':n};},peg$otherExpectation("RELEASE Statement"),function(s,a,n){return{\'type\':\'statement\',\'variant\':keyNode(s),\'target\':n};},peg$otherExpectation("ALTER TABLE Statement"),function(s,n,e){return Object.assign({\'type\':\'statement\',\'variant\':keyNode(s),\'target\':n},e);},peg$otherExpectation("ALTER TABLE Keyword"),function(a,t){return foldStringKey([a,t]);},peg$otherExpectation("RENAME TO Keyword"),function(s,n){return{\'action\':keyNode(s),\'name\':n};},peg$otherExpectation("ADD COLUMN Keyword"),function(s,d){return{\'action\':keyNode(s),\'definition\':d};},function(w,s){return Object.assign(s,w);},peg$otherExpectation("WITH Clause"),function(s,v,t){var recursive={\'variant\':isOkay(v)?\'recursive\':\'common\'};if(isArrayOkay(t)){t=t.map(function(elem){return Object.assign(elem,recursive);});}return{\'with\':t};},function(f,r){return flattenAll([f,r]);},peg$otherExpectation("Common Table Expression"),function(t,s){return Object.assign({\'type\':\'expression\',\'format\':\'table\',\'variant\':\'common\',\'target\':t},s);},function(s){return{\'expression\':s};},function(w,s){return Object.assign(s,w);},peg$otherExpectation("ATTACH Statement"),function(a,b,e,n){return{\'type\':\'statement\',\'variant\':keyNode(a),\'target\':n,\'attach\':e};},peg$otherExpectation("DETACH Statement"),function(d,b,n){return{\'type\':\'statement\',\'variant\':keyNode(d),\'target\':n};},peg$otherExpectation("VACUUM Statement"),function(v,t){return Object.assign({\'type\':\'statement\',\'variant\':\'vacuum\'},t);},function(t){return{\'target\':t};},peg$otherExpectation("ANALYZE Statement"),function(s,a){return Object.assign({\'type\':\'statement\',\'variant\':keyNode(s)},a);},function(n){return{\'target\':n[\'name\']};},peg$otherExpectation("REINDEX Statement"),function(a){return{\'target\':a[\'name\']};},peg$otherExpectation("PRAGMA Statement"),function(s,n,v){return{\'type\':\'statement\',\'variant\':keyNode(s),\'target\':n,\'args\':{\'type\':\'expression\',\'variant\':\'list\',\'expression\':v}};},function(v){return v;},function(v){return /^(yes|no|on|off|false|true|0|1)$/i.test(v);},function(v){return{\'type\':\'literal\',\'variant\':\'boolean\',\'normalized\':/^(yes|on|true|1)$/i.test(v)?\'1\':\'0\',\'value\':v};},function(n){return keyNode(n);},function(n){return{\'type\':\'identifier\',\'variant\':\'name\',\'name\':n};},peg$otherExpectation("SELECT Statement"),function(s,o,l){return Object.assign(s,o,l);},peg$otherExpectation("ORDER BY Clause"),function(d){return{\'order\':d[\'result\']};},peg$otherExpectation("LIMIT Clause"),function(s,e,d){return{\'limit\':Object.assign({\'type\':\'expression\',\'variant\':\'limit\',\'start\':e},d)};},peg$otherExpectation("OFFSET Clause"),function(o,e){return{\'offset\':e};},function(s,u){if(isArrayOkay(u)){return{\'type\':\'statement\',\'variant\':\'compound\',\'statement\':s,\'compound\':u};}else{return s;}},peg$otherExpectation("Union Operation"),function(c,s){return{\'type\':\'compound\',\'variant\':c,\'statement\':s};},function(s,f,w,g){return Object.assign({\'type\':\'statement\',\'variant\':\'select\'},s,f,w,g);},peg$otherExpectation("SELECT Results Clause"),function(d,t){return Object.assign({\'result\':t},d);},peg$otherExpectation("SELECT Results Modifier"),function(s){return{\'distinct\':true};},function(s){return{};},peg$otherExpectation("FROM Clause"),function(f,s){return{\'from\':s};},peg$otherExpectation("WHERE Clause"),function(f,e){return{\'where\':makeArray(e)};},peg$otherExpectation("GROUP BY Clause"),function(f,e,h){return Object.assign({\'group\':e},h);},peg$otherExpectation("HAVING Clause"),function(f,e){return{\'having\':e};},function(q,s){return{\'type\':\'identifier\',\'variant\':\'star\',\'name\':foldStringWord([q,s])};},function(n,s){return foldStringWord([n,s]);},function(e,a){return Object.assign(e,a);},function(f,t){if(isArrayOkay(t)){return{\'type\':\'map\',\'variant\':\'join\',\'source\':f,\'map\':t};}return f;},function(cl,c){return Object.assign(cl,c);},peg$otherExpectation("CROSS JOIN Operation"),function(n){return{\'type\':\'join\',\'variant\':\'cross join\',\'source\':n};},peg$otherExpectation("JOIN Operation"),function(o,n){return{\'type\':\'join\',\'variant\':keyNode(o),\'source\':n};},function(n,l,a){return Object.assign({\'type\':\'function\',\'variant\':\'table\',\'name\':n,\'args\':l},a);},peg$otherExpectation("Qualified Table"),function(d,i){return Object.assign(d,i);},peg$otherExpectation("Qualified Table Identifier"),function(n,a){return Object.assign(n,a);},peg$otherExpectation("Qualfied Table Index"),function(s,n){return{\'index\':n};},function(n,i){return{\'index\':foldStringKey([n,i])};},peg$otherExpectation("SELECT Source"),function(l,a){return Object.assign(l,a);},peg$otherExpectation("Subquery"),function(s,a){return Object.assign(s,a);},peg$otherExpectation("Alias"),function(a,n){return{\'alias\':n};},peg$otherExpectation("JOIN Operator"),function(n,t,j){return foldStringKey([n,t,j]);},function(t,o){return foldStringKey([t,o]);},function(t){return keyNode(t);},peg$otherExpectation("JOIN Constraint"),function(c){return{\'constraint\':Object.assign({\'type\':\'constraint\',\'variant\':\'join\'},c)};},peg$otherExpectation("Join ON Clause"),function(s,e){return{\'format\':keyNode(s),\'on\':e};},peg$otherExpectation("Join USING Clause"),function(s,e){return{\'format\':keyNode(s),\'using\':e};},peg$otherExpectation("VALUES Clause"),function(s,l){return{\'type\':\'statement\',\'variant\':\'select\',\'result\':l};},function(f,b){return{\'result\':flattenAll([f,b])};},function(i){return i;},peg$otherExpectation("Ordering Expression"),function(e,d){if(isOkay(d)){return Object.assign({\'type\':\'expression\',\'variant\':\'order\',\'expression\':e},d);}return e;},peg$otherExpectation("Star"),peg$otherExpectation("Fallback Type"),peg$otherExpectation("INSERT Statement"),function(k,t){return Object.assign({\'type\':\'statement\',\'variant\':\'insert\'},k,t);},peg$otherExpectation("INSERT Keyword"),function(a,m){return Object.assign({\'action\':keyNode(a)},m);},peg$otherExpectation("REPLACE Keyword"),function(a){return{\'action\':keyNode(a)};},peg$otherExpectation("INSERT OR Modifier"),function(s,m){return{\'or\':keyNode(m)};},function(i,r){return Object.assign({\'into\':i},r);},peg$otherExpectation("INTO Clause"),function(s,t){return t;},peg$otherExpectation("INTO Keyword"),function(r){return{\'result\':r};},peg$otherExpectation("Column List"),function(f,b){return{\'columns\':flattenAll([f,b])};},function(c){return c;},peg$otherExpectation("Column Name"),function(n){return{\'type\':\'identifier\',\'variant\':\'column\',\'name\':n};},function(s,r){return r;},peg$otherExpectation("VALUES Keyword"),function(f,b){return flattenAll([f,b]);},peg$otherExpectation("Wrapped Expression List"),function(e){return e;},peg$otherExpectation("DEFAULT VALUES Clause"),function(d,v){return{\'type\':\'values\',\'variant\':\'default\'};},peg$otherExpectation("Compound Operator"),peg$otherExpectation("UNION Operator"),function(s,a){return foldStringKey([s,a]);},function(a){return a;},peg$otherExpectation("UPDATE Statement"),function(s,f,t,u,w,o,l){return Object.assign({\'type\':\'statement\',\'variant\':s,\'into\':t},f,u,w,o,l);},peg$otherExpectation("UPDATE Keyword"),peg$otherExpectation("UPDATE OR Modifier"),function(t){return{\'or\':keyNode(t)};},peg$otherExpectation("SET Clause"),function(c){return{\'set\':c};},peg$otherExpectation("Column Assignment"),function(f,e){return{\'type\':\'assignment\',\'target\':f,\'value\':e};},peg$otherExpectation("DELETE Statement"),function(s,t,w,o,l){return Object.assign({\'type\':\'statement\',\'variant\':s,\'from\':t},w,o,l);},peg$otherExpectation("DELETE Keyword"),peg$otherExpectation("CREATE Statement"),peg$otherExpectation("CREATE TABLE Statement"),function(s,ne,id,r){return Object.assign({\'type\':\'statement\',\'name\':id},s,r,ne);},function(s,tmp,t){return Object.assign({\'variant\':s,\'format\':keyNode(t)},tmp);},function(t){return{\'temporary\':isOkay(t)};},peg$otherExpectation("IF NOT EXISTS Modifier"),function(i,n,e){return{\'condition\':makeArray({\'type\':\'condition\',\'variant\':keyNode(i),\'condition\':{\'type\':\'expression\',\'variant\':keyNode(e),\'operator\':foldStringKey([n,e])}})};},peg$otherExpectation("Table Definition"),function(s,t,r){return Object.assign({\'definition\':flattenAll([s,t])},r);},function(r,w){return{\'optimization\':[{\'type\':\'optimization\',\'value\':foldStringKey([r,w])}]};},function(f){return f;},peg$otherExpectation("Column Definition"),function(n,t,c){return Object.assign({\'type\':\'definition\',\'variant\':\'column\',\'name\':n,\'definition\':isOkay(c)?c:[]},t);},peg$otherExpectation("Column Datatype"),function(t){return{\'datatype\':t};},peg$otherExpectation("Column Constraint"),function(n,c,ln){return Object.assign(c,n);},function(cl){return cl[cl.length-1];},peg$otherExpectation("CONSTRAINT Name"),function(n){return{\'name\':n};},peg$otherExpectation("FOREIGN KEY Column Constraint"),function(f){return Object.assign({\'variant\':\'foreign key\'},f);},peg$otherExpectation("PRIMARY KEY Column Constraint"),function(p,d,c,a){return Object.assign(p,c,d,a);},peg$otherExpectation("PRIMARY KEY Keyword"),function(s,k){return{\'type\':\'constraint\',\'variant\':foldStringKey([s,k])};},peg$otherExpectation("AUTOINCREMENT Keyword"),function(a){return{\'autoIncrement\':true};},function(s,c){return Object.assign({\'type\':\'constraint\',\'variant\':s},c);},peg$otherExpectation("UNIQUE Column Constraint"),peg$otherExpectation("NULL Column Constraint"),function(n,l){return foldStringKey([n,l]);},peg$otherExpectation("CHECK Column Constraint"),peg$otherExpectation("DEFAULT Column Constraint"),function(s,v){return{\'type\':\'constraint\',\'variant\':keyNode(s),\'value\':v};},peg$otherExpectation("COLLATE Column Constraint"),function(c){return{\'type\':\'constraint\',\'variant\':\'collate\',\'collate\':c};},peg$otherExpectation("Table Constraint"),function(n,c,nl){return Object.assign({\'type\':\'definition\',\'variant\':\'constraint\'},c,n);},peg$otherExpectation("CHECK Table Constraint"),function(c){return{\'definition\':makeArray(c)};},peg$otherExpectation("PRIMARY KEY Table Constraint"),function(k,c,t){return{\'definition\':makeArray(Object.assign(k,t,c[1])),\'columns\':c[0]};},function(s){return{\'type\':\'constraint\',\'variant\':keyNode(s)};},function(p,k){return foldStringKey([p,k]);},peg$otherExpectation("UNIQUE Keyword"),function(u){return keyNode(u);},function(f,b){return[f].concat(b);},function(c){return c.map(function(_ref){var _ref2=_slicedToArray(_ref,1);var res=_ref2[0];return res;});},function(c){var auto=c.find(function(_ref3){var _ref4=_slicedToArray(_ref3,2);var res=_ref4[0];var a=_ref4[1];return isOkay(a);});return[c.map(function(_ref5){var _ref6=_slicedToArray(_ref5,2);var res=_ref6[0];var a=_ref6[1];return res;}),auto?auto[1]:null];},peg$otherExpectation("Indexed Column"),function(e,d,a){var res=e;if(isOkay(d)){res=Object.assign({\'type\':\'expression\',\'variant\':\'order\',\'expression\':e},d);}return[res,a];},peg$otherExpectation("Collation"),function(c){return{\'collate\':makeArray(c)};},peg$otherExpectation("Column Direction"),function(t){return{\'direction\':keyNode(t)};},function(s,t){return{\'conflict\':keyNode(t)};},peg$otherExpectation("ON CONFLICT Keyword"),function(o,c){return foldStringKey([o,c]);},function(k,c){return{\'type\':\'constraint\',\'variant\':keyNode(k),\'expression\':c};},peg$otherExpectation("FOREIGN KEY Table Constraint"),function(k,l,c){return Object.assign({\'definition\':makeArray(Object.assign(k,c))},l);},peg$otherExpectation("FOREIGN KEY Keyword"),function(f,k){return{\'type\':\'constraint\',\'variant\':foldStringKey([f,k])};},function(r,a,d){return Object.assign({\'type\':\'constraint\'},r,a,d);},peg$otherExpectation("REFERENCES Clause"),function(s,t){return{\'references\':t};},function(f,b){return{\'action\':flattenAll([f,b])};},peg$otherExpectation("FOREIGN KEY Action Clause"),function(m,a,n){return{\'type\':\'action\',\'variant\':keyNode(m),\'action\':keyNode(n)};},peg$otherExpectation("FOREIGN KEY Action"),function(s,v){return foldStringKey([s,v]);},function(c){return keyNode(c);},function(n,a){return foldStringKey([n,a]);},function(m,n){return{\'type\':\'action\',\'variant\':keyNode(m),\'action\':n};},peg$otherExpectation("DEFERRABLE Clause"),function(n,d,i){return{\'defer\':foldStringKey([n,d,i])};},function(i,d){return foldStringKey([i,d]);},function(s){return{\'definition\':makeArray(s)};},peg$otherExpectation("CREATE INDEX Statement"),function(s,ne,n,o,w){return Object.assign({\'type\':\'statement\',\'target\':n,\'on\':o},s,ne,w);},function(s,u,i){return Object.assign({\'variant\':keyNode(s),\'format\':keyNode(i)},u);},function(u){return{\'unique\':true};},peg$otherExpectation("ON Clause"),function(o,t,c){return{\'type\':\'identifier\',\'variant\':\'expression\',\'format\':\'table\',\'name\':t[\'name\'],\'columns\':c};},peg$otherExpectation("CREATE TRIGGER Statement"),function(s,ne,n,cd,o,me,wh,a){return Object.assign({\'type\':\'statement\',\'target\':n,\'on\':o,\'event\':cd,\'by\':isOkay(me)?me:\'row\',\'action\':makeArray(a)},s,ne,wh);},function(s,tmp,t){return Object.assign({\'variant\':keyNode(s),\'format\':keyNode(t)},tmp);},peg$otherExpectation("Conditional Clause"),function(m,d){return Object.assign({\'type\':\'event\'},m,d);},function(m){return{\'occurs\':keyNode(m)};},function(i,o){return foldStringKey([i,o]);},peg$otherExpectation("Conditional Action"),function(o){return{\'event\':keyNode(o)};},function(s,f){return{\'event\':keyNode(s),\'of\':f};},function(s,c){return c;},"statement",peg$literalExpectation("STATEMENT",true),function(f,e,r){return keyNode(r);},function(w,e){return{\'when\':e};},peg$otherExpectation("Actions Clause"),function(s,a,e){return a;},function(l){return l;},peg$otherExpectation("CREATE VIEW Statement"),function(s,ne,n,r){return Object.assign({\'type\':\'statement\',\'target\':n,\'result\':r},s,ne);},function(n,a){return Object.assign({\'type\':\'identifier\',\'variant\':\'expression\',\'format\':\'view\',\'name\':n[\'name\'],\'columns\':[]},a);},function(s,tmp,v){return Object.assign({\'variant\':keyNode(s),\'format\':keyNode(v)},tmp);},peg$otherExpectation("CREATE VIRTUAL TABLE Statement"),function(s,ne,n,m){return Object.assign({\'type\':\'statement\',\'target\':n,\'result\':m},s,ne);},function(s,v,t){return{\'variant\':keyNode(s),\'format\':keyNode(v)};},function(m,a){return Object.assign({\'type\':\'module\',\'variant\':\'virtual\',\'name\':m},a);},peg$otherExpectation("Module Arguments"),function(l){return{\'args\':{\'type\':\'expression\',\'variant\':\'list\',\'expression\':isOkay(l)?l:[]}};},function(f,b){return flattenAll([f,b]).filter(function(arg){return isOkay(arg);});},function(a){return a;},peg$otherExpectation("DROP Statement"),function(s,q){return Object.assign({\'type\':\'statement\',\'target\':Object.assign(q,{\'variant\':s[\'format\']})},s);},peg$otherExpectation("DROP Keyword"),function(s,t,i){return Object.assign({\'variant\':keyNode(s),\'format\':t,\'condition\':[]},i);},peg$otherExpectation("DROP Type"),peg$otherExpectation("IF EXISTS Keyword"),function(i,e){return{\'condition\':[{\'type\':\'condition\',\'variant\':keyNode(i),\'condition\':{\'type\':\'expression\',\'variant\':keyNode(e),\'operator\':keyNode(e)}}]};},peg$otherExpectation("Or"),peg$otherExpectation("Add"),peg$otherExpectation("Subtract"),peg$otherExpectation("Multiply"),peg$otherExpectation("Divide"),peg$otherExpectation("Modulo"),peg$otherExpectation("Shift Left"),peg$otherExpectation("Shift Right"),peg$otherExpectation("Logical AND"),peg$otherExpectation("Logical OR"),peg$otherExpectation("Less Than"),peg$otherExpectation("Greater Than"),peg$otherExpectation("Less Than Or Equal"),peg$otherExpectation("Greater Than Or Equal"),peg$otherExpectation("Equal"),peg$otherExpectation("Not Equal"),peg$otherExpectation("IS"),function(i,n){return foldStringKey([i,n]);},peg$otherExpectation("Identifier"),peg$otherExpectation("Database Identifier"),function(n){return{\'type\':\'identifier\',\'variant\':\'database\',\'name\':n};},peg$otherExpectation("Function Identifier"),function(d,n){return{\'type\':\'identifier\',\'variant\':\'function\',\'name\':foldStringWord([d,n])};},peg$otherExpectation("Table Identifier"),function(d,n){return{\'type\':\'identifier\',\'variant\':\'table\',\'name\':foldStringWord([d,n])};},function(n,d){return foldStringWord([n,d]);},peg$otherExpectation("Column Identifier"),function(q,n){return{\'type\':\'identifier\',\'variant\':\'column\',\'name\':foldStringWord([q,n])};},function(){return\'\';},function(d,t){return foldStringWord([d,t]);},peg$otherExpectation("Collation Identifier"),function(n){return{\'type\':\'identifier\',\'variant\':\'collation\',\'name\':n};},peg$otherExpectation("Savepoint Identifier"),function(n){return{\'type\':\'identifier\',\'variant\':\'savepoint\',\'name\':n};},peg$otherExpectation("Index Identifier"),function(d,n){return{\'type\':\'identifier\',\'variant\':\'index\',\'name\':foldStringWord([d,n])};},peg$otherExpectation("Trigger Identifier"),function(d,n){return{\'type\':\'identifier\',\'variant\':\'trigger\',\'name\':foldStringWord([d,n])};},peg$otherExpectation("View Identifier"),function(d,n){return{\'type\':\'identifier\',\'variant\':\'view\',\'name\':foldStringWord([d,n])};},peg$otherExpectation("Pragma Identifier"),function(d,n){return{\'type\':\'identifier\',\'variant\':\'pragma\',\'name\':foldStringWord([d,n])};},peg$otherExpectation("CTE Identifier"),function(d){return d;},function(n,a){return Object.assign({\'type\':\'identifier\',\'variant\':\'expression\',\'format\':\'table\',\'name\':n[\'name\'],\'columns\':[]},a);},peg$otherExpectation("Table Constraint Identifier"),function(n){return{\'type\':\'identifier\',\'variant\':\'constraint\',\'format\':\'table\',\'name\':n};},peg$otherExpectation("Column Constraint Identifier"),function(n){return{\'type\':\'identifier\',\'variant\':\'constraint\',\'format\':\'column\',\'name\':n};},peg$otherExpectation("Datatype Name"),function(t){return[t,\'text\'];},function(t){return[t,\'real\'];},function(t){return[t,\'numeric\'];},function(t){return[t,\'integer\'];},function(t){return[t,\'none\'];},peg$otherExpectation("TEXT Datatype Name"),"n",peg$literalExpectation("N",true),"var",peg$literalExpectation("VAR",true),"char",peg$literalExpectation("CHAR",true),"tiny",peg$literalExpectation("TINY",true),"medium",peg$literalExpectation("MEDIUM",true),"long",peg$literalExpectation("LONG",true),"text",peg$literalExpectation("TEXT",true),"clob",peg$literalExpectation("CLOB",true),peg$otherExpectation("REAL Datatype Name"),"float",peg$literalExpectation("FLOAT",true),"real",peg$literalExpectation("REAL",true),peg$otherExpectation("DOUBLE Datatype Name"),"double",peg$literalExpectation("DOUBLE",true),"precision",peg$literalExpectation("PRECISION",true),function(d,p){return foldStringWord([d,p]);},peg$otherExpectation("NUMERIC Datatype Name"),"numeric",peg$literalExpectation("NUMERIC",true),"decimal",peg$literalExpectation("DECIMAL",true),"boolean",peg$literalExpectation("BOOLEAN",true),"date",peg$literalExpectation("DATE",true),"time",peg$literalExpectation("TIME",true),"stamp",peg$literalExpectation("STAMP",true),"string",peg$literalExpectation("STRING",true),peg$otherExpectation("INTEGER Datatype Name"),"int",peg$literalExpectation("INT",true),"2",peg$literalExpectation("2",false),"4",peg$literalExpectation("4",false),"8",peg$literalExpectation("8",false),"eger",peg$literalExpectation("EGER",true),"big",peg$literalExpectation("BIG",true),"small",peg$literalExpectation("SMALL",true),"floating",peg$literalExpectation("FLOATING",true),"point",peg$literalExpectation("POINT",true),function(f,p){return foldStringWord([f,p]);},peg$otherExpectation("BLOB Datatype Name"),"blob",peg$literalExpectation("BLOB",true),/^[a-z0-9$_]/i,peg$classExpectation([["a","z"],["0","9"],"$","_"],false,true),"\\\\u",peg$literalExpectation("\\\\u",false),/^[a-f0-9]/i,peg$classExpectation([["a","f"],["0","9"]],false,true),function(u,s){return foldStringWord([u,s]).toLowerCase();},function(n){return keyNode(n);},peg$anyExpectation(),function(n){return textNode(n);},/^[ \\t]/,peg$classExpectation([" ","\\t"],false,false),"\\"",peg$literalExpectation("\\"",false),"\\"\\"",peg$literalExpectation("\\"\\"",false),/^[^"]/,peg$classExpectation(["\\""],true,false),function(n){return unescape(n,\'"\');},"\'",peg$literalExpectation("\'",false),function(n){return unescape(n,"\'");},"`",peg$literalExpectation("`",false),"``",peg$literalExpectation("``",false),/^[^`]/,peg$classExpectation(["`"],true,false),function(n){return unescape(n,\'`\');},peg$otherExpectation("Open Bracket"),"[",peg$literalExpectation("[",false),peg$otherExpectation("Close Bracket"),"]",peg$literalExpectation("]",false),peg$otherExpectation("Open Parenthesis"),"(",peg$literalExpectation("(",false),peg$otherExpectation("Close Parenthesis"),")",peg$literalExpectation(")",false),peg$otherExpectation("Comma"),",",peg$literalExpectation(",",false),peg$otherExpectation("Period"),".",peg$literalExpectation(".",false),peg$otherExpectation("Asterisk"),"*",peg$literalExpectation("*",false),peg$otherExpectation("Question Mark"),"?",peg$literalExpectation("?",false),peg$otherExpectation("Single Quote"),peg$otherExpectation("Double Quote"),peg$otherExpectation("Backtick"),peg$otherExpectation("Tilde"),"~",peg$literalExpectation("~",false),peg$otherExpectation("Plus"),"+",peg$literalExpectation("+",false),peg$otherExpectation("Minus"),"-",peg$literalExpectation("-",false),"=",peg$literalExpectation("=",false),peg$otherExpectation("Ampersand"),"&",peg$literalExpectation("&",false),peg$otherExpectation("Pipe"),"|",peg$literalExpectation("|",false),"%",peg$literalExpectation("%",false),"<",peg$literalExpectation("<",false),">",peg$literalExpectation(">",false),peg$otherExpectation("Exclamation"),"!",peg$literalExpectation("!",false),peg$otherExpectation("Semicolon"),";",peg$literalExpectation(";",false),peg$otherExpectation("Colon"),peg$otherExpectation("Forward Slash"),"/",peg$literalExpectation("/",false),peg$otherExpectation("Backslash"),"\\\\",peg$literalExpectation("\\\\",false),"abort",peg$literalExpectation("ABORT",true),"action",peg$literalExpectation("ACTION",true),"add",peg$literalExpectation("ADD",true),"after",peg$literalExpectation("AFTER",true),"all",peg$literalExpectation("ALL",true),"alter",peg$literalExpectation("ALTER",true),"analyze",peg$literalExpectation("ANALYZE",true),"and",peg$literalExpectation("AND",true),"as",peg$literalExpectation("AS",true),"asc",peg$literalExpectation("ASC",true),"attach",peg$literalExpectation("ATTACH",true),"autoincrement",peg$literalExpectation("AUTOINCREMENT",true),"before",peg$literalExpectation("BEFORE",true),"begin",peg$literalExpectation("BEGIN",true),"between",peg$literalExpectation("BETWEEN",true),"by",peg$literalExpectation("BY",true),"cascade",peg$literalExpectation("CASCADE",true),"case",peg$literalExpectation("CASE",true),"cast",peg$literalExpectation("CAST",true),"check",peg$literalExpectation("CHECK",true),"collate",peg$literalExpectation("COLLATE",true),"column",peg$literalExpectation("COLUMN",true),"commit",peg$literalExpectation("COMMIT",true),"conflict",peg$literalExpectation("CONFLICT",true),"constraint",peg$literalExpectation("CONSTRAINT",true),"create",peg$literalExpectation("CREATE",true),"cross",peg$literalExpectation("CROSS",true),"current_date",peg$literalExpectation("CURRENT_DATE",true),"current_time",peg$literalExpectation("CURRENT_TIME",true),"current_timestamp",peg$literalExpectation("CURRENT_TIMESTAMP",true),"database",peg$literalExpectation("DATABASE",true),"default",peg$literalExpectation("DEFAULT",true),"deferrable",peg$literalExpectation("DEFERRABLE",true),"deferred",peg$literalExpectation("DEFERRED",true),"delete",peg$literalExpectation("DELETE",true),"desc",peg$literalExpectation("DESC",true),"detach",peg$literalExpectation("DETACH",true),"distinct",peg$literalExpectation("DISTINCT",true),"drop",peg$literalExpectation("DROP",true),"each",peg$literalExpectation("EACH",true),"else",peg$literalExpectation("ELSE",true),"end",peg$literalExpectation("END",true),"escape",peg$literalExpectation("ESCAPE",true),"except",peg$literalExpectation("EXCEPT",true),"exclusive",peg$literalExpectation("EXCLUSIVE",true),"exists",peg$literalExpectation("EXISTS",true),"explain",peg$literalExpectation("EXPLAIN",true),"fail",peg$literalExpectation("FAIL",true),"for",peg$literalExpectation("FOR",true),"foreign",peg$literalExpectation("FOREIGN",true),"from",peg$literalExpectation("FROM",true),"full",peg$literalExpectation("FULL",true),"glob",peg$literalExpectation("GLOB",true),"group",peg$literalExpectation("GROUP",true),"having",peg$literalExpectation("HAVING",true),"if",peg$literalExpectation("IF",true),"ignore",peg$literalExpectation("IGNORE",true),"immediate",peg$literalExpectation("IMMEDIATE",true),"in",peg$literalExpectation("IN",true),"index",peg$literalExpectation("INDEX",true),"indexed",peg$literalExpectation("INDEXED",true),"initially",peg$literalExpectation("INITIALLY",true),"inner",peg$literalExpectation("INNER",true),"insert",peg$literalExpectation("INSERT",true),"instead",peg$literalExpectation("INSTEAD",true),"intersect",peg$literalExpectation("INTERSECT",true),"into",peg$literalExpectation("INTO",true),"is",peg$literalExpectation("IS",true),"isnull",peg$literalExpectation("ISNULL",true),"join",peg$literalExpectation("JOIN",true),"key",peg$literalExpectation("KEY",true),"left",peg$literalExpectation("LEFT",true),"like",peg$literalExpectation("LIKE",true),"limit",peg$literalExpectation("LIMIT",true),"match",peg$literalExpectation("MATCH",true),"natural",peg$literalExpectation("NATURAL",true),"no",peg$literalExpectation("NO",true),"not",peg$literalExpectation("NOT",true),"notnull",peg$literalExpectation("NOTNULL",true),"of",peg$literalExpectation("OF",true),"offset",peg$literalExpectation("OFFSET",true),"on",peg$literalExpectation("ON",true),"or",peg$literalExpectation("OR",true),"order",peg$literalExpectation("ORDER",true),"outer",peg$literalExpectation("OUTER",true),"plan",peg$literalExpectation("PLAN",true),"pragma",peg$literalExpectation("PRAGMA",true),"primary",peg$literalExpectation("PRIMARY",true),"query",peg$literalExpectation("QUERY",true),"raise",peg$literalExpectation("RAISE",true),"recursive",peg$literalExpectation("RECURSIVE",true),"references",peg$literalExpectation("REFERENCES",true),"regexp",peg$literalExpectation("REGEXP",true),"reindex",peg$literalExpectation("REINDEX",true),"release",peg$literalExpectation("RELEASE",true),"rename",peg$literalExpectation("RENAME",true),"replace",peg$literalExpectation("REPLACE",true),"restrict",peg$literalExpectation("RESTRICT",true),"right",peg$literalExpectation("RIGHT",true),"rollback",peg$literalExpectation("ROLLBACK",true),"row",peg$literalExpectation("ROW",true),"rowid",peg$literalExpectation("ROWID",true),"savepoint",peg$literalExpectation("SAVEPOINT",true),"select",peg$literalExpectation("SELECT",true),"set",peg$literalExpectation("SET",true),"table",peg$literalExpectation("TABLE",true),"temp",peg$literalExpectation("TEMP",true),"temporary",peg$literalExpectation("TEMPORARY",true),"then",peg$literalExpectation("THEN",true),"to",peg$literalExpectation("TO",true),"transaction",peg$literalExpectation("TRANSACTION",true),"trigger",peg$literalExpectation("TRIGGER",true),"union",peg$literalExpectation("UNION",true),"unique",peg$literalExpectation("UNIQUE",true),"update",peg$literalExpectation("UPDATE",true),"using",peg$literalExpectation("USING",true),"vacuum",peg$literalExpectation("VACUUM",true),"values",peg$literalExpectation("VALUES",true),"view",peg$literalExpectation("VIEW",true),"virtual",peg$literalExpectation("VIRTUAL",true),"when",peg$literalExpectation("WHEN",true),"where",peg$literalExpectation("WHERE",true),"with",peg$literalExpectation("WITH",true),"without",peg$literalExpectation("WITHOUT",true),function(r){return keyNode(r);},function(){return null;},peg$otherExpectation("Line Comment"),"--",peg$literalExpectation("--",false),/^[\\n\\v\\f\\r]/,peg$classExpectation(["\\n","\\v","\\f","\\r"],false,false),peg$otherExpectation("Block Comment"),"/*",peg$literalExpectation("/*",false),"*/",peg$literalExpectation("*/",false),/^[\\n\\v\\f\\r\\t ]/,peg$classExpectation(["\\n","\\v","\\f","\\r","\\t"," "],false,false),peg$otherExpectation("Whitespace"),"__TODO__",peg$literalExpectation("__TODO__",false)];var peg$bytecode=[peg$decode("%;\\u023F/H#;#/?$;\\".\\" &\\"/1$;#/($8$: $!!)($\'#(#\'#(\\"\'#&\'#"),peg$decode("%;\\u023F/C#;#/:$;x/1$;#/($8$: $!!)($\'#(#\'#(\\"\'#&\'#"),peg$decode("%;x/B#;\\u023F/9$$;%0#*;%&/)$8#:!#\\"\\" )(#\'#(\\"\'#&\'#"),peg$decode("$;\\u01B30#*;\\u01B3&"),peg$decode("$;\\u01B3/�#*;\\u01B3&&&#"),peg$decode("%;$/:#;x/1$;\\u023F/($8#:\\"#!!)(#\'#(\\"\'#&\'#"),peg$decode("<%;\'.# &;(/@#;\\u023F/7$;*.\\" &\\"/)$8#:$#\\"\\" )(#\'#(\\"\'#&\'#=.\\" 7#"),peg$decode("%;\\u018B/\' 8!:%!! )"),peg$decode("<%;\\u0195/9#$;)0#*;)&/)$8\\":\'\\"\\"! )(\\"\'#&\'#=.\\" 7&"),peg$decode("%4(\\"\\"5!7)/1#;\\u0197/($8\\":*\\"! )(\\"\'#&\'#"),peg$decode("<%;\\u01A0/R#;5/I$;\\u023F/@$;+.\\" &\\"/2$;\\u01A1/)$8%:,%\\"#!)(%\'#($\'#(#\'#(\\"\'#&\'#=.\\" 7+"),peg$decode("%;\\u01A2/C#;\\u023F/:$;5/1$;\\u023F/($8$:-$!!)($\'#(#\'#(\\"\'#&\'#"),peg$decode(";5.; &;6.5 &;2./ &;-.) &;..# &;/"),peg$decode("<%;\\u0206/1#;\\u023F/($8\\":/\\"!!)(\\"\'#&\'#=.\\" 7."),peg$decode("<%;\\u01D2.) &;\\u01D4.# &;\\u01D3/1#;\\u023F/($8\\":1\\"!!)(\\"\'#&\'#=.\\" 70"),peg$decode("<%;4.\\" &\\"/2#;0/)$8\\":3\\"\\"! )(\\"\'#&\'#=.\\" 72"),peg$decode("<%;\\u01A6/A#$;10#*;1&/1$;\\u01A6/($8#:5#!!)(#\'#(\\"\'#&\'#=.\\" 74"),peg$decode("26\\"\\"6677.) &48\\"\\"5!79"),peg$decode("<%4;\\"\\"5!7</1#;0/($8\\":=\\"! )(\\"\'#&\'#=.\\" 7:"),peg$decode("%;\\u0197.# &;\\u019B/\' 8!:>!! )"),peg$decode("<%;\\u01AA.# &;\\u01AB/\' 8!:\\"!! )=.\\" 7?"),peg$decode("%;4.\\" &\\"/2#;6/)$8\\":@\\"\\"! )(\\"\'#&\'#"),peg$decode(";<.# &;7"),peg$decode("%;8/7#;;.\\" &\\"/)$8\\":A\\"\\"! )(\\"\'#&\'#"),peg$decode("<;9.# &;:=.\\" 7B"),peg$decode("%$;>/�#*;>&&&#/7#;:.\\" &\\"/)$8\\":C\\"\\"! )(\\"\'#&\'#"),peg$decode("%;\\u01A3/9#$;>0#*;>&/)$8\\":D\\"\\"! )(\\"\'#&\'#"),peg$decode("<%3F\\"\\"5!7G/T#4H\\"\\"5!7I.\\" &\\"/@$$;>/�#*;>&&&#/*$8#:J##\\"! )(#\'#(\\"\'#&\'#=.\\" 7E"),peg$decode("<%3L\\"\\"5\\"7M/?#$;=/�#*;=&&&#/)$8\\":N\\"\\"! )(\\"\'#&\'#=.\\" 7K"),peg$decode("4O\\"\\"5!7P"),peg$decode("4Q\\"\\"5!7R"),peg$decode("<%;@.) &;B.# &;C/\' 8!:T!! )=.\\" 7S"),peg$decode("<%;\\u01A5/@#;A.\\" &\\"/2$;\\u023F/)$8#:V#\\"\\"!)(#\'#(\\"\'#&\'#=.\\" 7U"),peg$decode("%4W\\"\\"5!7X/9#$;>0#*;>&/)$8\\":Y\\"\\"! )(\\"\'#&\'#"),peg$decode("<%4[\\"\\"5!7\\\\/H#$;\\u0193/�#*;\\u0193&&&#/2$;\\u023F/)$8#:]#\\"\\"!)(#\'#(\\"\'#&\'#=.\\" 7Z"),peg$decode("<%2_\\"\\"6_7`/o#$;\\u0193.) &2a\\"\\"6a7b/2#0/*;\\u0193.) &2a\\"\\"6a7b&&&#/A$;\\u023F/8$;D.\\" &\\"/*$8$:c$##\\" )($\'#(#\'#(\\"\'#&\'#=.\\" 7^"),peg$decode("%;\\u019B/1#;\\u023F/($8\\":d\\"!!)(\\"\'#&\'#"),peg$decode("<%;F.\\" &\\"/;#;\\u023F/2$;\\x94/)$8#:f#\\"\\" )(#\'#(\\"\'#&\'#=.\\" 7e"),peg$decode("<%;k.\\" &\\"/;#;\\u01E4/2$;\\u023F/)$8#:h#\\"\\"!)(#\'#(\\"\'#&\'#=.\\" 7g"),peg$decode("<%;\\u0211/_#;\\u023F/V$;\\u01A0/M$;\\u023F/D$;H/;$;\\u023F/2$;\\u01A1/)$8\':j\'\\"&\\")(\'\'#(&\'#(%\'#($\'#(#\'#(\\"\'#&\'#=.\\" 7i"),peg$decode("<%;I.# &;J/\' 8!:l!! )=.\\" 7k"),peg$decode("<%;\\u01EF/\' 8!:n!! )=.\\" 7m"),peg$decode("%;\\u021B.) &;\\u01B7.# &;\\u01E6/M#;\\u023F/D$;\\u01A2/;$;\\u023F/2$;w/)$8%:o%\\"$ )(%\'#($\'#(#\'#(\\"\'#&\'#"),peg$decode(";?./ &;t.) &;,.# &;\\u017D"),peg$decode("%;\\u01A0/L#;\\u023F/C$;p/:$;\\u023F/1$;\\u01A1/($8%:p%!\\")(%\'#($\'#(#\'#(\\"\'#&\'#"),peg$decode(";L.; &;E.5 &;_./ &;a.) &;G.# &;K"),peg$decode("%;M/;#;\\u023F/2$;Q/)$8#:q#\\"\\" )(#\'#(\\"\'#&\'#.# &;M"),peg$decode("%;P/A#;\\u023F/8$;N.# &;p/)$8#:r#\\"\\" )(#\'#(\\"\'#&\'#.# &;N"),peg$decode(";\\u01A9.U &;\\u01AB.O &;\\u01AA.I &%%;k/8#%<;\\u01E4=.##&&!&\'#/#$+\\")(\\"\'#&\'#/\\"!&,)"),peg$decode("<%;\\u012D/\' 8!:t!! )=.\\" 7s"),peg$decode("%;O/\\x83#$%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($\'#(#\'#(\\"\'#&\'#0H*%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($\'#(#\'#(\\"\'#&\'#&/)$8\\":u\\"\\"! )(\\"\'#&\'#"),peg$decode("%;R/\\x83#$%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($\'#(#\'#(\\"\'#&\'#0H*%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($\'#(#\'#(\\"\'#&\'#&/)$8\\":u\\"\\"! )(\\"\'#&\'#"),peg$decode(";\\u0169.) &;\\u016A.# &;\\u016B"),peg$decode("%;S/\\x83#$%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($\'#(#\'#(\\"\'#&\'#0H*%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($\'#(#\'#(\\"\'#&\'#&/)$8\\":u\\"\\"! )(\\"\'#&\'#"),peg$decode(";\\u0167.# &;\\u0168"),peg$decode("%;U/\\x83#$%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($\'#(#\'#(\\"\'#&\'#0H*%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($\'#(#\'#(\\"\'#&\'#&/)$8\\":u\\"\\"! )(\\"\'#&\'#"),peg$decode(";\\u016C.U &;\\u016D.O &;\\u016E.I &%%;\\u016F/8#%<;\\u016F=.##&&!&\'#/#$+\\")(\\"\'#&\'#/\\"!&,)"),peg$decode("%;W/\\x83#$%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($\'#(#\'#(\\"\'#&\'#0H*%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($\'#(#\'#(\\"\'#&\'#&/)$8\\":u\\"\\"! )(\\"\'#&\'#"),peg$decode(";\\u0172.{ &;\\u0173.u &%%;\\u0170/8#%<;X=.##&&!&\'#/#$+\\")(\\"\'#&\'#/\\"!&,).I &%%;\\u0171/8#%<;X=.##&&!&\'#/#$+\\")(\\"\'#&\'#/\\"!&,)"),peg$decode("%;Y/9#$;\\\\0#*;\\\\&/)$8\\":u\\"\\"! )(\\"\'#&\'#"),peg$decode("%;\\u023F/1#;]/($8\\":v\\"! )(\\"\'#&\'#.H &%;\\u023F/>#;^/5$;\\u023F/,$;Y/#$+$)($\'#(#\'#(\\"\'#&\'#"),peg$decode("%3w\\"\\"5$7x/?#;\\u023F/6$3y\\"\\"5$7z/\'$8#:{# )(#\'#(\\"\'#&\'#.? &%;\\u01FB/& 8!:|! ).. &%;\\u0205/& 8!:{! )"),peg$decode(";\\u0177./ &;\\u0175.) &;\\u0176.# &;\\u0174"),peg$decode("<%;\\u01C9/i#;\\u023F/`$;\\u01A0/W$;p/N$;\\u023F/E$;`/<$;\\u023F/3$;\\u01A1/*$8(:~(#\'$\\")((\'#(\'\'#(&\'#(%\'#($\'#(#\'#(\\"\'#&\'#=.\\" 7}"),peg$decode("<%;\\u01BF/:#;\\u023F/1$;&/($8#:\\x80#! )(#\'#(\\"\'#&\'#=.\\" 7\\x7F"),peg$decode("<%;\\u01C8/\\x93#;\\u023F/\\x8A$;b.\\" &\\"/|$;\\u023F/s$$;c/�#*;c&&&#/]$;\\u023F/T$;d.\\" &\\"/F$;\\u023F/=$;\\u01E0/4$;\\u023F/+$8*:\\x82*$)\'%#)(*\'#()\'#((\'#(\'\'#(&\'#(%\'#($\'#(#\'#(\\"\'#&\'#=.\\" 7\\x81"),peg$decode("%%<;\\u0230=.##&&!&\'#/1#;p/($8\\":\\x83\\"! )(\\"\'#&\'#"),peg$decode("<%;\\u0230/i#;\\u023F/`$;p/W$;\\u023F/N$;\\u0224/E$;\\u023F/<$;p/3$;\\u023F/*$8(:\\x85(#\'%!)((\'#(\'\'#(&\'#(%\'#($\'#(#\'#(\\"\'#&\'#=.\\" 7\\x84"),peg$decode("<%;\\u01DF/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x87$\\"#!)($\'#(#\'#(\\"\'#&\'#=.\\" 7\\x86"),peg$decode("%;[/;#;\\u023F/2$;f/)$8#:\\x88#\\"\\" )(#\'#(\\"\'#&\'#.# &;["),peg$decode(";l.) &;i.# &;g"),peg$decode("<%;k.\\" &\\"/o#;\\u01FF./ &;\\u01EB.) &;\\u0214.# &;\\u0201/T$;\\u023F/K$;p/B$;\\u023F/9$;h.\\" &\\"/+$8&:\\x8A&$%$\\" )(&\'#(%\'#($\'#(#\'#(\\"\'#&\'#=.\\" 7\\x89"),peg$decode("<%;\\u01E1/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x8C$\\"#!)($