dogescript-3
Version:
an unofficial third version of dogescript
2 lines • 246 kB
JavaScript
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.dogescript=f()}})(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 a(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}({1:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir};exports.basename=function(path,ext){var f=splitPath(path)[2];if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){return splitPath(path)[3]};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:2}],2:[function(require,module,exports){var process=module.exports={};var queue=[];var draining=false;function drainQueue(){if(draining){return}draining=true;var currentQueue;var len=queue.length;while(len){currentQueue=queue;queue=[];var i=-1;while(++i<len){currentQueue[i]()}len=queue.length}draining=false}process.nextTick=function(fun){queue.push(fun);if(!draining){setTimeout(drainQueue,0)}};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],3:[function(require,module,exports){var compile=require("./lib/compile");var parser=require("./lib/parser");var xhr=require("xhr");function parse(file){return compile(parser.parse(file))}module.exports=parse;if(typeof window==="object"&&window!==null){var queue=[];var seen=[];var stepQueue=function(){while(queue.length>0&&queue[0].ready){var script=queue.shift();exec(script.text)}};var exec=function(source){var js=";\n"+parse(source);if(js){window.eval(js)}};var getLoadEval=function(script){var res={type:"load",ready:false,text:""};xhr(script.getAttribute("src"),function(err,resp,body){if(err){throw err}res.ready=true;if(body){res.text=body}stepQueue()});return res};var getInlineEval=function(script){return{type:"inline",ready:true,text:script.innerHTML}};var processTags=function(){var scripts=document.getElementsByTagName("script");for(var i=0;i<scripts.length;i++){var script=scripts[i];if(seen.indexOf(script)>-1){continue}seen.push(script);if(script.getAttribute("type")==="text/dogescript"){if(script.getAttribute("src")){queue.push(getLoadEval(script))}else{queue.push(getInlineEval(script))}}}stepQueue()};if(window.addEventListener){window.addEventListener("DOMContentLoaded",processTags)}else{window.attachEvent("onload",processTags)}}},{"./lib/compile":4,"./lib/parser":5,xhr:24}],4:[function(require,module,exports){var escodegen=require("escodegen"),estraverse=require("estraverse");var IDEN="Identifier",MEMBER_EXPR="MemberExpression";var DSON_FILE="../lib/dson.js";module.exports=function compile(ast){estraverse.replace(ast,{enter:function(node){if(node.type===IDEN){if(node.name==="dogeument"){var _node=node;_node.name="document";return _node}if(node.name==="windoge"){var _node=node;_node.name="window";return _node}}if(node.type===MEMBER_EXPR&&node.object.name==="console"&&node.property.name==="loge"){var _node=node;_node.property.name="log";return _node}}});return escodegen.generate(ast)}},{escodegen:6,estraverse:23}],5:[function(require,module,exports){module.exports=function(){function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor}function SyntaxError(message,expected,found,offset,line,column){this.message=message;this.expected=expected;this.found=found;this.offset=offset;this.line=line;this.column=column;this.name="SyntaxError"}peg$subclass(SyntaxError,Error);function parse(input){var options=arguments.length>1?arguments[1]:{},peg$FAILED={},peg$startRuleFunctions={start:peg$parsestart},peg$startRuleFunction=peg$parsestart,peg$c0=peg$FAILED,peg$c1=function(program){return program},peg$c2={type:"other",description:"end of statement"},peg$c3=";",peg$c4={type:"literal",value:";",description:'";"'},peg$c5={type:"other",description:"end of file"},peg$c6=void 0,peg$c7={type:"any",description:"any character"},peg$c8={type:"other",description:"any character"},peg$c9=function(char){return char},peg$c10="'",peg$c11={type:"literal",value:"'",description:'"\'"'},peg$c12='"',peg$c13={type:"literal",value:'"',description:'"\\""'},peg$c14={type:"other",description:"whitespace"},peg$c15=" ",peg$c16={type:"literal",value:" ",description:'"\\t"'},peg$c17="",peg$c18={type:"literal",value:"",description:'"\\x0B"'},peg$c19="\f",peg$c20={type:"literal",value:"\f",description:'"\\f"'},peg$c21=" ",peg$c22={type:"literal",value:" ",description:'" "'},peg$c23=" ",peg$c24={type:"literal",value:" ",description:'"\\xA0"'},peg$c25="",peg$c26={type:"literal",value:"",description:'"\\uFEFF"'},peg$c27=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,peg$c28={type:"class",value:"[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]",description:"[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]"},peg$c29={type:"other",description:"end of line"},peg$c30=/^[\n\r\u2028\u2029]/,peg$c31={type:"class",value:"[\\n\\r\\u2028\\u2029]",description:"[\\n\\r\\u2028\\u2029]"},peg$c32={type:"other",description:"end of line sequence"},peg$c33="\n",peg$c34={type:"literal",value:"\n",description:'"\\n"'},peg$c35="\r\n",peg$c36={type:"literal",value:"\r\n",description:'"\\r\\n"'},peg$c37="\r",peg$c38={type:"literal",value:"\r",description:'"\\r"'},peg$c39="\u2028",peg$c40={type:"literal",value:"\u2028",description:'"\\u2028"'},peg$c41="\u2029",peg$c42={type:"literal",value:"\u2029",description:'"\\u2029"'},peg$c43={type:"other",description:"comment"},peg$c44="quiet",peg$c45={type:"literal",value:"quiet",description:'"quiet"'},peg$c46=[],peg$c47="loud",peg$c48={type:"literal",value:"loud",description:'"loud"'},peg$c49="shh",peg$c50={type:"literal",value:"shh",description:'"shh"'},peg$c51=/^[\n\r]/,peg$c52={type:"class",value:"[\\n\\r]",description:"[\\n\\r]"},peg$c53=null,peg$c54=function(body){return{type:"Program",body:optionalList(body)}},peg$c55=function(first,rest){return buildList(first,rest,1)},peg$c56=function(type,decl){return{type:"VariableDeclaration",declarations:decl,kind:type==="very"?"var":"const"}},peg$c57="very",peg$c58={type:"literal",value:"very",description:'"very"'},peg$c59="always",peg$c60={type:"literal",value:"always",description:'"always"'},peg$c61=",",peg$c62={type:"literal",value:",",description:'","'},peg$c63=function(first,rest){return buildList(first,rest,3)},peg$c64=function(iden,expr){return{type:"VariableDeclarator",id:iden,init:extractOptional(expr,3)}},peg$c65="is",peg$c66={type:"literal",value:"is",description:'"is"'},peg$c67="as",peg$c68={type:"literal",value:"as",description:'"as"'},peg$c69="=",peg$c70={type:"literal",value:"=",description:'"="'},peg$c71=function(left,right){return{type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:left,right:right}}},peg$c72="wow",peg$c73={type:"literal",value:"wow",description:'"wow"'},peg$c74=function(v){return{type:"ReturnStatement",argument:v}},peg$c75=function(expr){return{type:"ExpressionStatement",expression:expr}},peg$c76="trained",peg$c77={type:"literal",value:"trained",description:'"trained"'},peg$c78=function(){return{type:"ExpressionStatement",expression:{type:"Literal",value:"use strict"}}},peg$c79="so",peg$c80={type:"literal",value:"so",description:'"so"'},peg$c81=function(str,as){var _as=optionalList(extractOptional(as,3));var asName;if("name"in _as)asName=_as["name"];else if("value"in _as)asName=_as["value"];else if("name"in str)asName=str["name"];else if("value"in str)asName=str["value"];return{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:moduleName(asName)},init:{type:"CallExpression",callee:{type:"Identifier",name:"require"},arguments:[{type:"Literal",value:str["name"]||str["value"]}]}}],kind:"var"}},peg$c82="out",peg$c83={type:"literal",value:"out",description:'"out"'},peg$c84=function(expr){return{type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:{type:"MemberExpression",computed:false,object:{type:"Identifier",name:"module"},property:{type:"Identifier",name:"exports"}},right:expr}}},peg$c85="debooger",peg$c86={type:"literal",value:"debooger",description:'"debooger"'},peg$c87=function(){return{type:"DebuggerStatement"}},peg$c88="bark",peg$c89={type:"literal",value:"bark",description:'"bark"'},peg$c90=function(){return{type:"BreakStatement"}},peg$c91=function(left){return{type:"BlockStatement",body:optionalList(left)}},peg$c92="this",peg$c93={type:"literal",value:"this",description:'"this"'},peg$c94=function(){return{type:"ThisExpression"}},peg$c95=function(name){return name},peg$c96={type:"other",description:"identifier"},peg$c97=function(first,rest){return{type:"Identifier",name:first+rest.join("")}},peg$c98=/^[a-zA-Z]/,peg$c99={type:"class",value:"[a-zA-Z]",description:"[a-zA-Z]"},peg$c100="$",peg$c101={type:"literal",value:"$",description:'"$"'},peg$c102="_",peg$c103={type:"literal",value:"_",description:'"_"'},peg$c104=/^[0-9]/,peg$c105={type:"class",value:"[0-9]",description:"[0-9]"},peg$c106="such",peg$c107={type:"literal",value:"such",description:'"such"'},peg$c108="plz",peg$c109={type:"literal",value:"plz",description:'"plz"'},peg$c110="dose",peg$c111={type:"literal",value:"dose",description:'"dose"'},peg$c112="rly",peg$c113={type:"literal",value:"rly",description:'"rly"'},peg$c114="but",peg$c115={type:"literal",value:"but",description:'"but"'},peg$c116="many",peg$c117={type:"literal",value:"many",description:'"many"'},peg$c118="much",peg$c119={type:"literal",value:"much",description:'"much"'},peg$c120="notrly",peg$c121={type:"literal",value:"notrly",description:'"notrly"'},peg$c122="dogeof",peg$c123={type:"literal",value:"dogeof",description:'"dogeof"'},peg$c124="maybe",peg$c125={type:"literal",value:"maybe",description:'"maybe"'},peg$c126="yes",peg$c127={type:"literal",value:"yes",description:'"yes"'},peg$c128="no",peg$c129={type:"literal",value:"no",description:'"no"'},peg$c130="empty",peg$c131={type:"literal",value:"empty",description:'"empty"'},peg$c132="retrieve",peg$c133={type:"literal",value:"retrieve",description:'"retrieve"'},peg$c134="typeof",peg$c135={type:"literal",value:"typeof",description:'"typeof"'},peg$c136="true",peg$c137={type:"literal",value:"true",description:'"true"'},peg$c138="false",peg$c139={type:"literal",value:"false",description:'"false"'},peg$c140="null",peg$c141={type:"literal",value:"null",description:'"null"'},peg$c142="void",peg$c143={type:"literal",value:"void",description:'"void"'},peg$c144="delete",peg$c145={type:"literal",value:"delete",description:'"delete"'},peg$c146="try",peg$c147={type:"literal",value:"try",description:'"try"'},peg$c148="catch",peg$c149={type:"literal",value:"catch",description:'"catch"'},peg$c150="new",peg$c151={type:"literal",value:"new",description:'"new"'},peg$c152=function(){return{type:"Literal",value:null}},peg$c153=function(){return{type:"Literal",value:true}},peg$c154=function(){return{type:"Literal",value:false}},peg$c155=function(){return maybeOP},peg$c156=function(literal){return literal},peg$c157=".",peg$c158={type:"literal",value:".",description:'"."'},peg$c159=function(){return{type:"Literal",value:parseDecLiteral(text())}},peg$c160="0",peg$c161={type:"literal",value:"0",description:'"0"'},peg$c162=/^[1-9]/,peg$c163={type:"class",value:"[1-9]",description:"[1-9]"},peg$c164="e",peg$c165={type:"literal",value:"e",description:'"e"'},peg$c166=/^[+\-]/,peg$c167={type:"class",value:"[+\\-]",description:"[+\\-]"},peg$c168={type:"other",description:"string"},peg$c169=function(chars){return{type:"Literal",value:chars.join("")}},peg$c170="\\",peg$c171={type:"literal",value:"\\",description:'"\\\\"'},peg$c172=function(){return text()},peg$c173=function(sequence){return sequence},peg$c174=function(){return""},peg$c175=function(){return"\x00"},peg$c176="b",peg$c177={type:"literal",value:"b",description:'"b"'},peg$c178=function(){return"\b"},peg$c179="f",peg$c180={type:"literal",value:"f",description:'"f"'},peg$c181=function(){return"\f"},peg$c182="n",peg$c183={type:"literal",value:"n",description:'"n"'},peg$c184=function(){return"\n"},peg$c185="r",peg$c186={type:"literal",value:"r",description:'"r"'},peg$c187=function(){return"\r"},peg$c188="t",peg$c189={type:"literal",value:"t",description:'"t"'},peg$c190=function(){return" "},peg$c191="v",peg$c192={type:"literal",value:"v",description:'"v"'},peg$c193=function(){return""},peg$c194="{",peg$c195={type:"literal",value:"{",description:'"{"'},peg$c196="}",peg$c197={type:"literal",value:"}",description:'"}"'},peg$c198=function(){return{type:"ObjectExpression",properties:[]}},peg$c199=function(obj){return{type:"ObjectExpression",properties:obj}},peg$c200=function(first,rest){return buildList(first,rest,3)},peg$c201=":",peg$c202={type:"literal",value:":",description:'":"'},peg$c203=function(key,value){return{key:key,value:value,kind:"init"}},peg$c204="{{",peg$c205={type:"literal",value:"{{",description:'"{{"'},peg$c206="}}",peg$c207={type:"literal",value:"}}",description:'"}}"'},peg$c208=function(){return{type:"ObjectExpression",properties:[]}},peg$c209=function(obj){return{type:"ObjectExpression",properties:obj}},peg$c210=function(member){return optionalList(member)},peg$c211="!",peg$c212={type:"literal",value:"!",description:'"!"'},peg$c213="?",peg$c214={type:"literal",value:"?",description:'"?"'},peg$c215=function(elements){return{type:"ArrayExpression",elements:elements}},peg$c216="and",peg$c217={type:"literal",value:"and",description:'"and"'},peg$c218="also",peg$c219={type:"literal",value:"also",description:'"also"'},peg$c220=function(){return{type:"Identifier",name:true}},peg$c221=function(){return{type:"Identifier",name:false}},peg$c222=function(){return{type:"Identifier",name:null}},peg$c223="[",peg$c224={type:"literal",value:"[",description:'"["'},peg$c225="]",peg$c226={type:"literal",value:"]",description:'"]"'},peg$c227=function(elision){return{type:"ArrayExpression",elements:optionalList(extractOptional(elision,0))}},peg$c228=function(elements){return{type:"ArrayExpression",elements:elements}},peg$c229=function(elements,elision){return{type:"ArrayExpression",elements:elements.concat(optionalList(extractOptional(elision,0)))}},peg$c230=function(elision,element){return optionalList(extractOptional(elision,0)).concat(element)},peg$c231=function(first,rest){return Array.prototype.concat.apply(first,rest)},peg$c232=function(commas){return filledArray(commas.length+1,null)},peg$c233="(",peg$c234={type:"literal",value:"(",description:'"("'},peg$c235=")",peg$c236={type:"literal",value:")",description:'")"'},peg$c237=function(left){return left},peg$c238=function(first,rest){return buildBinaryExpression(first,rest)},peg$c239="+",peg$c240={type:"literal",value:"+",description:'"+"'},peg$c241="-",peg$c242={type:"literal",value:"-",description:'"-"'},peg$c243="*",peg$c244={type:"literal",value:"*",description:'"*"'},peg$c245="/",peg$c246={type:"literal",value:"/",description:'"/"'},peg$c247="%",peg$c248={type:"literal",value:"%",description:'"%"'},peg$c249=function(first,rest){return buildLogicalExpression(first,rest)},peg$c250="or",peg$c251={type:"literal",value:"or",description:'"or"'},peg$c252="||",peg$c253={type:"literal",value:"||",description:'"||"'},peg$c254="&&",peg$c255={type:"literal",value:"&&",description:'"&&"'},peg$c256=function(argument,operator){return{type:"UpdateExpression",operator:operator,argument:argument,prefix:false}},peg$c257="++",peg$c258={type:"literal",value:"++",description:'"++"'},peg$c259="--",peg$c260={type:"literal",value:"--",description:'"--"'},peg$c261=function(op,argument){return{type:"UnaryExpression",operator:toOP(op),argument:argument,prefix:true}},peg$c262="~",peg$c263={type:"literal",value:"~",description:'"~"'},peg$c264="not",peg$c265={type:"literal",value:"not",description:'"not"'},peg$c266="!==",peg$c267={type:"literal",value:"!==",description:'"!=="'},peg$c268="===",peg$c269={type:"literal",value:"===",description:'"==="'},peg$c270="==",peg$c271={type:"literal",value:"==",description:'"=="'},peg$c272="!=",peg$c273={type:"literal",value:"!=",description:'"!="'},peg$c274="smallerish",peg$c275={type:"literal",value:"smallerish",description:'"smallerish"'},peg$c276="smaller",peg$c277={type:"literal",value:"smaller",description:'"smaller"'},peg$c278="biggerish",peg$c279={type:"literal",value:"biggerish",description:'"biggerish"'},peg$c280="bigger",peg$c281={type:"literal",value:"bigger",description:'"bigger"'},peg$c282="shibeof",peg$c283={type:"literal",value:"shibeof",description:'"shibeof"'},peg$c284="<=",peg$c285={type:"literal",value:"<=",description:'"<="'},peg$c286="<",peg$c287={type:"literal",value:"<",description:'"<"'},peg$c288=">=",peg$c289={type:"literal",value:">=",description:'">="'},peg$c290=">",peg$c291={type:"literal",value:">",description:'">"'},peg$c292="instanceof",peg$c293={type:"literal",value:"instanceof",description:'"instanceof"'},peg$c294="with",peg$c295={type:"literal",value:"with",description:'"with"'},peg$c296=function(iden,args){return{type:"CallExpression",callee:iden,arguments:optionalList(extractOptional(args,3))}},peg$c297=function(iden,args){return{type:"CallExpression",callee:iden,arguments:args}},peg$c298=function(iden,args){return{type:"NewExpression",callee:iden,arguments:extractOptional(args,3)||[]}},peg$c299=function(left,right){return{type:"AssignmentExpression",operator:"=",left:left,right:right}},peg$c300=function(left,op,right){return{type:"AssignmentExpression",operator:toOP(op),left:left,right:right}},peg$c301="more",peg$c302={type:"literal",value:"more",description:'"more"'},peg$c303="less",peg$c304={type:"literal",value:"less",description:'"less"'},peg$c305="lots",peg$c306={type:"literal",value:"lots",description:'"lots"'},peg$c307="few",peg$c308={type:"literal",value:"few",description:'"few"'},peg$c309="+=",peg$c310={type:"literal",value:"+=",description:'"+="'},peg$c311="-=",peg$c312={type:"literal",value:"-=",description:'"-="'},peg$c313="*=",peg$c314={type:"literal",value:"*=",description:'"*="'},peg$c315="/=",peg$c316={type:"literal",value:"/=",description:'"/="'},peg$c317=function(test,consequent,alternate){return{type:"ConditionalExpression",test:test,consequent:consequent,alternate:alternate}},peg$c318=function(iden,args){return{type:"NewExpression",callee:iden,arguments:extractOptional(args,3)||[]}},peg$c319=function(property){return{property:property,computed:true}},peg$c320=function(property){return{property:property,computed:false}},peg$c321=function(first,rest){return buildTree(first,rest,function(result,element){return{type:"MemberExpression",object:result,property:element.property,computed:element.computed}})},peg$c322=function(iden,args,block){return{type:"FunctionDeclaration",id:iden,params:extractOptionalList(args,3),body:block,generator:false,expression:false}},peg$c323=function(args,body){return{type:"FunctionExpression",id:null,params:extractOptionalList(args,1),body:body}},peg$c324={type:"other",description:"arguments"},peg$c325=function(){return null},peg$c326=function(test,block,_else){return{type:"IfStatement",test:test,consequent:block,alternate:_else}},peg$c327=function(block){return block},peg$c328=function(test,block){return{type:"WhileStatement",test:test,body:block}},peg$c329=function(init,test,update,body){return{type:"ForStatement",init:extractOptional(init,0),test:extractOptional(test,0),update:update||null,body:body}},peg$c330=function(declarations,test,update,body){return{type:"ForStatement",init:{type:"VariableDeclaration",declarations:declarations,kind:"var"},test:extractOptional(test,0),update:update||null,body:body}},peg$c331="in",peg$c332={type:"literal",value:"in",description:'"in"'},peg$c333=function(left,right,body){return{type:"ForInStatement",left:left,right:right,body:body}},peg$c334=function(declarations,right,body){return{type:"ForInStatement",left:{type:"VariableDeclaration",declarations:declarations,kind:"var"},right:right,body:body}},peg$c335="next",peg$c336={type:"literal",value:"next",description:'"next"'},peg$c337=function(block,handler,finalizer){return{type:"TryStatement",block:block,handler:handler,finalizer:finalizer}},peg$c338=function(block,handler){return{type:"TryStatement",block:block,handler:handler,finalizer:null}},peg$c339=function(block,finalizer){return{type:"TryStatement",block:block,handler:null,finalizer:finalizer}},peg$c340=function(param,body){return{type:"CatchClause",param:param,body:body}},peg$c341=function(body){return body},peg$c342="throw",peg$c343={type:"literal",value:"throw",description:'"throw"'},peg$c344=function(left){return{type:"ThrowStatement",argument:left}},peg$currPos=0,peg$reportedPos=0,peg$cachedPos=0,peg$cachedPosDetails={line:1,column:1,seenCR:false},peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error("Can't start parsing from rule \""+options.startRule+'".')}peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$reportedPos,peg$currPos)}function offset(){return peg$reportedPos}function line(){return peg$computePosDetails(peg$reportedPos).line}function column(){return peg$computePosDetails(peg$reportedPos).column}function expected(description){throw peg$buildException(null,[{type:"other",description:description}],peg$reportedPos)}function error(message){throw peg$buildException(message,null,peg$reportedPos)}function peg$computePosDetails(pos){function advance(details,startPos,endPos){var p,ch;for(p=startPos;p<endPos;p++){ch=input.charAt(p);if(ch==="\n"){if(!details.seenCR){details.line++}details.column=1;details.seenCR=false}else if(ch==="\r"||ch==="\u2028"||ch==="\u2029"){details.line++;details.column=1;details.seenCR=true}else{details.column++;details.seenCR=false}}}if(peg$cachedPos!==pos){if(peg$cachedPos>pos){peg$cachedPos=0;peg$cachedPosDetails={line:1,column:1,seenCR:false}}advance(peg$cachedPosDetails,peg$cachedPos,pos);peg$cachedPos=pos}return peg$cachedPosDetails}function peg$fail(expected){if(peg$currPos<peg$maxFailPos){return}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected)}function peg$buildException(message,expected,pos){function cleanupExpected(expected){var i=1;expected.sort(function(a,b){if(a.description<b.description){return-1}else if(a.description>b.description){return 1}else{return 0}});while(i<expected.length){if(expected[i-1]===expected[i]){expected.splice(i,1)}else{i++}}}function buildMessage(expected,found){function stringEscape(s){function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase()}return s.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x80-\xFF]/g,function(ch){return"\\x"+hex(ch)}).replace(/[\u0180-\u0FFF]/g,function(ch){return"\\u0"+hex(ch)}).replace(/[\u1080-\uFFFF]/g,function(ch){return"\\u"+hex(ch)})}var expectedDescs=new Array(expected.length),expectedDesc,foundDesc,i;for(i=0;i<expected.length;i++){expectedDescs[i]=expected[i].description}expectedDesc=expected.length>1?expectedDescs.slice(0,-1).join(", ")+" or "+expectedDescs[expected.length-1]:expectedDescs[0];foundDesc=found?'"'+stringEscape(found)+'"':"end of input";return"Expected "+expectedDesc+" but "+foundDesc+" found."}var posDetails=peg$computePosDetails(pos),found=pos<input.length?input.charAt(pos):null;if(expected!==null){cleanupExpected(expected)}return new SyntaxError(message!==null?message:buildMessage(expected,found),expected,found,pos,posDetails.line,posDetails.column)}function peg$parsestart(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parse__();if(s1!==peg$FAILED){s2=peg$parseProgram();if(s2!==peg$FAILED){s3=peg$parse__();if(s3!==peg$FAILED){peg$reportedPos=s0;s1=peg$c1(s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseEOS(){var s0,s1;peg$silentFails++;s0=peg$parseEOF();if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s0=peg$c3;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c4)}}if(s0===peg$FAILED){s0=peg$parseLineTerminator()}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c2)}}return s0}function peg$parseEOF(){var s0,s1;peg$silentFails++;s0=peg$currPos;peg$silentFails++;if(input.length>peg$currPos){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c7)}}peg$silentFails--;if(s1===peg$FAILED){s0=peg$c6}else{peg$currPos=s0;s0=peg$c0}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c5)}}return s0}function peg$parseSourceCharacter(){var s0,s1;peg$silentFails++;if(input.length>peg$currPos){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c7)}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c8)}}return s0}function peg$parseSourceCharacterNoTerm(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;s2=peg$parseLineTerminator();peg$silentFails--;if(s2===peg$FAILED){s1=peg$c6}else{peg$currPos=s1;s1=peg$c0}if(s1!==peg$FAILED){if(input.length>peg$currPos){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c7)}}if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c9(s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseSourceCharacterNoQuote1(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===39){s2=peg$c10;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c11)}}peg$silentFails--;if(s2===peg$FAILED){s1=peg$c6}else{peg$currPos=s1;s1=peg$c0}if(s1!==peg$FAILED){s2=peg$parseSourceCharacterNoTerm();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c9(s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseSourceCharacterNoQuote2(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===34){s2=peg$c12;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c13)}}peg$silentFails--;if(s2===peg$FAILED){s1=peg$c6}else{peg$currPos=s1;s1=peg$c0}if(s1!==peg$FAILED){s2=peg$parseSourceCharacterNoTerm();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c9(s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseWhiteSpace(){var s0,s1;peg$silentFails++;if(input.charCodeAt(peg$currPos)===9){s0=peg$c15;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c16)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===11){s0=peg$c17;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c18)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===12){s0=peg$c19;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c20)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===32){s0=peg$c21;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c22)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===160){s0=peg$c23;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c24)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===65279){s0=peg$c25;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c26)}}if(s0===peg$FAILED){if(peg$c27.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c28)}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c14)}}return s0}function peg$parseLineTerminator(){var s0,s1;peg$silentFails++;if(peg$c30.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c31)}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c29)}}return s0}function peg$parseLineTerminatorSequence(){var s0,s1;peg$silentFails++;if(input.charCodeAt(peg$currPos)===10){s0=peg$c33;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c34)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c35){s0=peg$c35;
peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c36)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===13){s0=peg$c37;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c38)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===8232){s0=peg$c39;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c40)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===8233){s0=peg$c41;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c42)}}}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c32)}}return s0}function peg$parseComment(){var s0,s1;peg$silentFails++;s0=peg$parseSingleLineComment();if(s0===peg$FAILED){s0=peg$parseMultiLineComment()}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c43)}}return s0}function peg$parseMultiLineComment(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c44){s1=peg$c44;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c45)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c47){s5=peg$c47;peg$currPos+=4}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48)}}peg$silentFails--;if(s5===peg$FAILED){s4=peg$c6}else{peg$currPos=s4;s4=peg$c0}if(s4!==peg$FAILED){s5=peg$parseSourceCharacter();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c47){s5=peg$c47;peg$currPos+=4}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48)}}peg$silentFails--;if(s5===peg$FAILED){s4=peg$c6}else{peg$currPos=s4;s4=peg$c0}if(s4!==peg$FAILED){s5=peg$parseSourceCharacter();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,4)===peg$c47){s3=peg$c47;peg$currPos+=4}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48)}}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseMultiLineCommentNoLineTerminator(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c44){s1=peg$c44;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c45)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c47){s5=peg$c47;peg$currPos+=4}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48)}}if(s5===peg$FAILED){s5=peg$parseLineTerminator()}peg$silentFails--;if(s5===peg$FAILED){s4=peg$c6}else{peg$currPos=s4;s4=peg$c0}if(s4!==peg$FAILED){s5=peg$parseSourceCharacter();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c47){s5=peg$c47;peg$currPos+=4}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48)}}if(s5===peg$FAILED){s5=peg$parseLineTerminator()}peg$silentFails--;if(s5===peg$FAILED){s4=peg$c6}else{peg$currPos=s4;s4=peg$c0}if(s4!==peg$FAILED){s5=peg$parseSourceCharacter();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,4)===peg$c47){s3=peg$c47;peg$currPos+=4}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48)}}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseSingleLineComment(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c49){s1=peg$c49;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c50)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=peg$c6}else{peg$currPos=s4;s4=peg$c0}if(s4!==peg$FAILED){s5=peg$parseSourceCharacter();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=peg$c6}else{peg$currPos=s4;s4=peg$c0}if(s4!==peg$FAILED){s5=peg$parseSourceCharacter();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseNEWLINE(){var s0;if(peg$c51.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c52)}}return s0}function peg$parse__(){var s0,s1;s0=[];s1=peg$parseWhiteSpace();if(s1===peg$FAILED){s1=peg$parseLineTerminatorSequence();if(s1===peg$FAILED){s1=peg$parseComment()}}while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseWhiteSpace();if(s1===peg$FAILED){s1=peg$parseLineTerminatorSequence();if(s1===peg$FAILED){s1=peg$parseComment()}}}return s0}function peg$parse_(){var s0,s1;s0=[];s1=peg$parseWhiteSpace();if(s1===peg$FAILED){s1=peg$parseMultiLineCommentNoLineTerminator()}while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseWhiteSpace();if(s1===peg$FAILED){s1=peg$parseMultiLineCommentNoLineTerminator()}}return s0}function peg$parseProgram(){var s0,s1;s0=peg$currPos;s1=peg$parseSourceElements();if(s1===peg$FAILED){s1=peg$c53}if(s1!==peg$FAILED){peg$reportedPos=s0;s1=peg$c54(s1)}s0=s1;return s0}function peg$parseSourceElements(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseSourceElement();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parse__();if(s4!==peg$FAILED){s5=peg$parseSourceElement();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parse__();if(s4!==peg$FAILED){s5=peg$parseSourceElement();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c55(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseSourceElement(){var s0;s0=peg$parseStatement();if(s0===peg$FAILED){s0=peg$parseFunctionDeclaration();if(s0===peg$FAILED){s0=peg$parseIfStatement();if(s0===peg$FAILED){s0=peg$parseWhileStatement();if(s0===peg$FAILED){s0=peg$parseForStatement();if(s0===peg$FAILED){s0=peg$parseTryStatement()}}}}}return s0}function peg$parseStatement(){var s0;s0=peg$parseAssignmentStatement();if(s0===peg$FAILED){s0=peg$parseVariableStatement();if(s0===peg$FAILED){s0=peg$parseExpressionStatement();if(s0===peg$FAILED){s0=peg$parseWowStatement();if(s0===peg$FAILED){s0=peg$parseTrainedStatement();if(s0===peg$FAILED){s0=peg$parseImportStatement();if(s0===peg$FAILED){s0=peg$parseExportStatement();if(s0===peg$FAILED){s0=peg$parseDeboogerStatement();if(s0===peg$FAILED){s0=peg$parseBarkStatement();if(s0===peg$FAILED){s0=peg$parseThrowStatement()}}}}}}}}}return s0}function peg$parseVariableStatement(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseVariableDeclarationType();if(s1!==peg$FAILED){s2=peg$parse__();if(s2!==peg$FAILED){s3=peg$parseVariableDeclarationList();if(s3!==peg$FAILED){s4=peg$parseEOS();if(s4!==peg$FAILED){peg$reportedPos=s0;s1=peg$c56(s1,s3);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseVariableDeclarationType(){var s0;if(input.substr(peg$currPos,4)===peg$c57){s0=peg$c57;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c58)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c59){s0=peg$c59;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c60)}}}return s0}function peg$parseVariableDeclarationList(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;s1=peg$parseVariableDeclaration();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parse__();if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===44){s5=peg$c61;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c62)}}if(s5!==peg$FAILED){s6=peg$parse__();if(s6!==peg$FAILED){s7=peg$parseVariableDeclaration();if(s7!==peg$FAILED){s4=[s4,s5,s6,s7];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parse__();if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===44){s5=peg$c61;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c62)}}if(s5!==peg$FAILED){s6=peg$parse__();if(s6!==peg$FAILED){s7=peg$parseVariableDeclaration();if(s7!==peg$FAILED){s4=[s4,s5,s6,s7];s3=s4}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}else{peg$currPos=s3;s3=peg$c0}}if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c63(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseVariableDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$parseIdentifier();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parse__();if(s3!==peg$FAILED){s4=peg$parseVariableDeclarationOperator();if(s4!==peg$FAILED){s5=peg$parse__();if(s5!==peg$FAILED){s6=peg$parseAssignmentExpression();if(s6!==peg$FAILED){s3=[s3,s4,s5,s6];s2=s3}else{peg$currPos=s2;s2=peg$c0}}else{peg$currPos=s2;s2=peg$c0}}else{peg$currPos=s2;s2=peg$c0}}else{peg$currPos=s2;s2=peg$c0}if(s2===peg$FAILED){s2=peg$c53}if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c64(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseVariableDeclarationOperator(){var s0;if(input.substr(peg$currPos,2)===peg$c65){s0=peg$c65;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c66)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c67){s0=peg$c67;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c68)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===61){s0=peg$c69;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c70)}}}}return s0}function peg$parseAssignmentStatement(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$parseLeftHandSideExpression();if(s1!==peg$FAILED){s2=peg$parse__();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===61){s3=peg$c69;peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c70)}}if(s3===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c65){s3=peg$c65;peg$currPos+=2}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c66)}}}if(s3!==peg$FAILED){s4=peg$parse__();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5!==peg$FAILED){s6=peg$parseEOS();if(s6!==peg$FAILED){peg$reportedPos=s0;s1=peg$c71(s1,s5);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseWowStatement(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c72){s1=peg$c72;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c73)}}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){s3=peg$parseAssignmentExpression();if(s3!==peg$FAILED){s4=peg$parseEOS();if(s4!==peg$FAILED){peg$reportedPos=s0;s1=peg$c74(s3);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseEmptyWowStatement(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c72){s1=peg$c72;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c73)}}if(s1!==peg$FAILED){s2=peg$parseEOS();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseExpressionStatement(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseAssignmentExpression();if(s1!==peg$FAILED){s2=peg$parseEOS();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c75(s1);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseTrainedStatement(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c76){s1=peg$c76;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c77)}}if(s1!==peg$FAILED){s2=peg$parseEOS();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c78();s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseImportStatement(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c79){s1=peg$c79;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c80)}}if(s1!==peg$FAILED){s2=peg$parse__();if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3===peg$FAILED){s3=peg$parseStringLiteral()}if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parse__();if(s5!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c67){s6=peg$c67;peg$currPos+=2}else{s6=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c68)}}if(s6!==peg$FAILED){s7=peg$parse__();if(s7!==peg$FAILED){s8=peg$parseIdentifier();if(s8===peg$FAILED){s8=peg$parseStringLiteral()}if(s8!==peg$FAILED){s5=[s5,s6,s7,s8];s4=s5}else{peg$currPos=s4;s4=peg$c0}}else{peg$currPos=s4;s4=peg$c0}}else{peg$currPos=s4;s4=peg$c0}}else{peg$currPos=s4;s4=peg$c0}if(s4===peg$FAILED){s4=peg$c53}if(s4!==peg$FAILED){s5=peg$parseEOS();if(s5!==peg$FAILED){peg$reportedPos=s0;s1=peg$c81(s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseExportStatement(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c82){s1=peg$c82;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c83)}}if(s1!==peg$FAILED){s2=peg$parse__();if(s2!==peg$FAILED){s3=peg$parseAssignmentExpression();if(s3!==peg$FAILED){peg$reportedPos=s0;s1=peg$c84(s3);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseDeboogerStatement(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c85){s1=peg$c85;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c86)}}if(s1!==peg$FAILED){s2=peg$parseEOS();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c87();s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseBarkStatement(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c88){s1=peg$c88;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c89)}}if(s1!==peg$FAILED){s2=peg$parseEOS();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c90();s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseBlock(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parse__();if(s1!==peg$FAILED){s2=peg$parseSourceElements();if(s2===peg$FAILED){s2=peg$c53}if(s2!==peg$FAILED){s3=peg$parse__();if(s3!==peg$FAILED){peg$reportedPos=s0;s1=peg$c91(s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseValue(){var s0;s0=peg$parsethisValue();if(s0===peg$FAILED){s0=peg$parseIdentifier();if(s0===peg$FAILED){s0=peg$parseLiteral()}}return s0}function peg$parseLiteral(){var s0;s0=peg$parseNullLiteral();if(s0===peg$FAILED){s0=peg$parseBooleanLiteral();if(s0===peg$FAILED){s0=peg$parseNumericLiteral();if(s0===peg$FAILED){s0=peg$parseStringLiteral();if(s0===peg$FAILED){s0=peg$parseArrayLiteral();if(s0===peg$FAILED){s0=peg$parseObjectLiteral();if(s0===peg$FAILED){s0=peg$parseDSONLiteral()}}}}}}return s0}function peg$parsethisValue(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c92){s1=peg$c92;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c93)}}if(s1!==peg$FAILED){peg$reportedPos=s0;s1=peg$c94()}s0=s1;return s0}function peg$parseIdentifier(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;s2=peg$parseReservedWord();peg$silentFails--;if(s2===peg$FAILED){s1=peg$c6}else{peg$currPos=s1;s1=peg$c0}if(s1!==peg$FAILED){s2=peg$parseIdentifierName();if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c95(s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}return s0}function peg$parseIdentifierName(){var s0,s1,s2,s3;peg$silentFails++;s0=peg$currPos;s1=peg$parseIdentifierStart();if(s1!==peg$FAILED){s2=[];s3=peg$parseIdentifierPart();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseIdentifierPart()}if(s2!==peg$FAILED){peg$reportedPos=s0;s1=peg$c97(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$c0}}else{peg$currPos=s0;s0=peg$c0}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c96)}}return s0}function peg$parseIdentifierStart(){var s0;if(peg$c98.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c99)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===36){s0=peg$c100;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c101)}}if(s0===peg$FAILED){if(input.charCodeAt(peg$currPos)===95){s0=peg$c102;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c103)}}}}return s0}function peg$parseIdentifierPart(){var s0;s0=peg$parseIdentifierStart();if(s0===peg$FAILED){if(peg$c104.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c105)}}}return s0}function peg$parseReservedWord(){var s0,s1,s2,s3;if(input.substr(peg$currPos,4)===peg$c106){s0=peg$c106;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c107)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c72){s0=peg$c72;peg$currPos+=3}else{s0=peg$