-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathluaParser_v1.json
1 lines (1 loc) · 35.5 KB
/
luaParser_v1.json
1
["block",[["nop",["function","loc","fun",["glob","makeParser"],[],false,["block",[["local",[["var","format"]],[["aref",["glob","string"],"format"]]],["nop",["function","loc","fun",["glob","assert"],["t","str"],false,["block",[["if",["not",["var","t"]],["block",[["nop",["call",["glob","error"],[["var","str"],3]]]]],[]]]]]],["nop",["function","loc","fun",["glob","mkError"],[],true,["block",[["nop",["call",["glob","error"],[["call",["var","format"],[["vararg"]]],3]]]]]]],["nop",["function","loc","fun",["glob","mkStream"],["tab"],false,["block",[["local",[["var","p"],["var","self"]],[0,["table",[[["var","tab"],"stream"],[["table",[["eof","type"],["","value"],[["aref",["aref",["var","tab"],["#",["var","tab"]]],"from"],"from"],[["aref",["aref",["var","tab"],["#",["var","tab"]]],"to"],"to"]]],"eof"]]]]],["nop",["function","glob","fun",["aref",["var","self"],"next"],[],false,["block",[["assign",[["var","p"]],[["+",["var","p"],1]]],["return1",[["or",["and",["<=",["var","p"],["#",["var","tab"]]],["aref",["var","tab"],["var","p"]]],["aref",["var","self"],"eof"]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"last"],[],false,["block",[["return1",[["or",["aref",["var","tab"],["var","p"]],["aref",["var","self"],"eof"]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"peek"],["n"],false,["block",[["return1",[["or",["aref",["var","tab"],["+",["var","p"],["or",["var","n"],1]]],["aref",["var","self"],"eof"]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"match"],["t"],false,["block",[["local",[["var","v"]],[["call",["aref",["var","self"],"next"],[]]]],["nop",["call",["glob","assert"],[["==",["aref",["var","v"],"type"],["var","t"]],["..","Expected:",["var","t"]]]]],["return1",[["aref",["var","v"],"value"]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"matchA"],["t"],false,["block",[["local",[["var","v"]],[["call",["aref",["var","self"],"next"],[]]]],["nop",["call",["glob","assert"],[["==",["aref",["var","v"],"type"],["var","t"]],["..","Expected:",["var","t"]]]]],["return1",[["var","v"]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"test"],["t"],false,["block",[["local",[["var","v"]],[["call",["aref",["var","self"],"peek"],[]]]],["if",["==",["aref",["var","v"],"type"],["var","t"]],["block",[["nop",["call",["aref",["var","self"],"next"],[]]],["return1",[true]]]],[],["block",[["return1",[false]]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"back"],["t"],false,["block",[["assign",[["var","p"]],[["-",["var","p"],1]]]]]]],["return1",[["var","self"]]]]]]],["nop",["function","loc","fun",["glob","mkStack"],[],false,["block",[["local",[["var","p"],["var","st"],["var","self"]],[0,["table",[[]]],["table",[[]]]]],["nop",["function","glob","fun",["aref",["var","self"],"push"],["v"],false,["block",[["assign",[["var","p"]],[["+",["var","p"],1]]],["assign",[["aref",["var","st"],["var","p"]]],[["var","v"]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"pop"],["n"],false,["block",[["assign",[["var","n"]],[["or",["var","n"],1]]],["assign",[["var","p"]],[["-",["var","p"],["var","n"]]]],["return1",[["aref",["var","st"],["+",["var","p"],["var","n"]]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"popn"],["n","v"],false,["block",[["assign",[["var","v"]],[["or",["var","v"],["table",[[]]]]]],["if",[">",["var","n"],0],["block",[["local",[["var","p"]],[["call",["aref",["var","self"],"pop"],[]]]],["nop",["call",["aref",["var","self"],"popn"],[["-",["var","n"],1],["var","v"]]]],["assign",[["aref",["var","v"],["+",["#",["var","v"]],1]]],[["var","p"]]]]],[]],["return1",[["var","v"]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"peek"],["n"],false,["block",[["return1",[["aref",["var","st"],["-",["var","p"],["or",["var","n"],0]]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"isEmpty"],[],false,["block",[["return1",[["<=",["var","p"],0]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"size"],[],false,["block",[["return1",[["var","p"]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"dump"],[],false,["block",[["foridx","i",1,["var","p"],1,["block",[["nop",["call",["glob","print"],[["call",["aref",["glob","json"],"encode"],[["aref",["var","st"],["var","i"]]]]]]]]]]]]]],["nop",["function","glob","fun",["aref",["var","self"],"clear"],[],false,["block",[["assign",[["var","p"],["var","st"]],[0,["table",[[]]]]]]]]],["return1",[["var","self"]]]]]]],["local",[["var","patterns"],["var","source"],["var","cursor"],["var","tokens"]],[["table",[[]]]]],["local",[["var","ptabs"]],[["table",[[]]]]],["nop",["function","loc","fun",["glob","token"],["idp","pattern","createFn","logFn"],false,["block",[["assign",[["var","pattern"]],[["..","^",["var","pattern"]]]],["local",[["var","f"]],[["function","expr","fun","<non>",[],false,["block",[["local",[["var","res"]],[["table",[[["call",["aref",["glob","string"],"find"],[["var","source"],["var","pattern"]]]]]]]],["if",["aref",["var","res"],1],["block",[["if",["var","createFn"],["block",[["local",[["var","token"]],[["call",["var","createFn"],[["call",["glob","select"],[3,["call",["aref",["glob","table"],"unpack"],[["var","res"]]]]]]]]],["assign",[["aref",["var","token"],"from"],["aref",["var","token"],"to"]],[["var","cursor"],["+",["var","cursor"],["aref",["var","res"],2]]]],["nop",["call",["aref",["glob","table"],"insert"],[["var","tokens"],["var","token"]]]]]],[]],["if",["var","logFn"],["block",[["nop",["call",["var","logFn"],[["aref",["var","res"],3]]]]]],[]],["assign",[["var","source"]],[["call",["aref",["glob","string"],"sub"],[["var","source"],["+",["aref",["var","res"],2],1]]]]],["assign",[["var","cursor"]],[["+",["var","cursor"],["aref",["var","res"],2]]]],["return1",[true]]]],[]]]]]]],["foridx","i",1,["#",["var","idp"]],1,["block",[["local",[["var","b"]],[["callobj",["var","idp"],"byte",[["var","i"]]]]],["local",[["var","v"]],[["or",["aref",["var","ptabs"],["var","b"]],["table",[[]]]]]],["assign",[["aref",["var","ptabs"],["var","b"]]],[["var","v"]]],["assign",[["aref",["var","v"],["+",["#",["var","v"]],1]]],[["var","f"]]]]]]]]]],["local",[["var","specT"]],[["table",[[true,"("],[true,")"],[true,"{"],[true,"}"],[true,"["],[true,"]"],[true,","],[true,"."],[true,"="],[true,";"],[true,":"]]]]],["local",[["var","opT"]],[["table",[[true,"and"],[true,"or"],[true,"not"]]]]],["local",[["var","reservedT"]],[["table",[[true,"if"],[true,"else"],[true,"then"],[true,"elseif"],[true,"while"],[true,"repeat"],[true,"local"],[true,"for"],[true,"in"],[true,"do"],[true,"until"],[true,"end"],[true,"return"],[true,"true"],[true,"false"],[true,"function"],[true,"nil"],[true,"break"]]]]],["nop",["function","loc","fun",["glob","TABEsc"],["str"],false,["block",[["return1",[["callobj",["var","str"],"gsub",["\\\\x(%x%x)",["function","expr","fun","<non>",["s"],false,["block",[["return1",[["call",["aref",["glob","string"],"char"],[["call",["glob","tonumber"],[["var","s"],16]]]]]]]]]]]]]]]]],["nop",["call",["glob","token"],[" \t\n\r","([%s%c]+)"]]],["nop",["call",["glob","token"],["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_","([A-Za-z_][%w_]*)",["function","expr","fun","<non>",["w"],false,["block",[["if",["aref",["var","reservedT"],["var","w"]],["block",[["return1",[["table",[[["var","w"],"type"],[["var","w"],"value"]]]]]]],[[["aref",["var","opT"],["var","w"]],["block",[["return1",[["table",[["operator","type"],[["var","w"],"value"]]]]]]]]],["block",[["return1",[["table",[["Name","type"],[["var","w"],"value"]]]]]]]]]]]]]],["nop",["call",["glob","token"],[".","(%.%.%.?)",["function","expr","fun","<non>",["op"],false,["block",[["return1",[["table",[[["or",["and",["==",["var","op"],".."],"operator"],["var","op"]],"type"],[["var","op"],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["0123456789","(%d+%.%d+)",["function","expr","fun","<non>",["d"],false,["block",[["return1",[["table",[["number","type"],[["call",["glob","tonumber"],[["var","d"]]],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["0123456789","(%d+)",["function","expr","fun","<non>",["d"],false,["block",[["return1",[["table",[["number","type"],[["call",["glob","tonumber"],[["var","d"]]],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["\"","\"([^\"]*)\"",["function","expr","fun","<non>",["s"],false,["block",[["return1",[["table",[["string","type"],[["call",["glob","TABEsc"],[["var","s"]]],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["'","'([^']*)'",["function","expr","fun","<non>",["s"],false,["block",[["return1",[["table",[["string","type"],[["call",["glob","TABEsc"],[["var","s"]]],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["-","%-%-%[%[(.-)%-%-%]%]"]]],["nop",["call",["glob","token"],["[","%[%[(.-)%]%]",["function","expr","fun","<non>",["s"],false,["block",[["return1",[["table",[["string","type"],[["var","s"],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["-","(%-%-.-\n)"]]],["nop",["call",["glob","token"],["-","(%-%-.*)"]]],["nop",["call",["glob","token"],["@$=<>!+.-*&|/%^~;:","([@%$=<>!+%.%-*&|/%^~;:][=<>&|:]?)",["function","expr","fun","<non>",["op"],false,["block",[["return1",[["table",[[["or",["and",["aref",["var","specT"],["var","op"]],["var","op"]],"operator"],"type"],[["var","op"],"value"]]]]]]]]]]],["nop",["call",["glob","token"],["[]{}(),#%","([{}%(%),%[%]#%%])",["function","expr","fun","<non>",["op"],false,["block",[["return1",[["table",[[["or",["and",["aref",["var","specT"],["var","op"]],["var","op"]],"operator"],"type"],[["var","op"],"value"]]]]]]]]]]],["nop",["function","loc","fun",["glob","dispatch"],[],false,["block",[["local",[["var","v"]],[["aref",["var","ptabs"],["callobj",["var","source"],"byte",[1]]]]],["if",["var","v"],["block",[["foridx","i",1,["#",["var","v"]],1,["block",[["if",["call",["aref",["var","v"],["var","i"]],[]],["block",[["return1",[true]]]],[]]]]]]],[]]]]]],["local",[["var","ESCTab"]],[["table",[["22","\""],["27","'"],["09","t"],["0A","n"],["0D","r"]]]]],["nop",["function","loc","fun",["glob","tokenize"],["src"],false,["block",[["assign",[["var","src"]],[["callobj",["var","src"],"gsub",["\\\\([\"t'nr])",["function","expr","fun","<non>",["c"],false,["block",[["return1",[["..","\\\\x",["aref",["var","ESCTab"],["var","c"]]]]]]]]]]]],["assign",[["var","source"],["var","tokens"],["var","cursor"]],[["var","src"],["table",[[]]],0]],["while",["and",[">",["#",["var","source"]],0],["call",["glob","dispatch"],[]]],["block",[]]],["if",[">",["#",["var","source"]],0],["block",[["nop",["call",["glob","print"],[["..","Parser failed at ",["var","source"]]]]]]],[]],["return1",[["var","tokens"]]]]]]],["nop",["function","loc","fun",["glob","copyt"],["t"],false,["block",[["local",[["var","res"]],[["table",[[]]]]],["forlist","_","v",[["call",["glob","ipairs"],[["var","t"]]]],["block",[["assign",[["aref",["var","res"],["var","v"]]],[true]]]]],["return1",[["var","res"]]]]]]],["nop",["function","loc","fun",["glob","addVarsToCtx"],["varList","ctx"],false,["block",[["assign",[["aref",["var","ctx"],"l"]],[["or",["aref",["var","ctx"],"l"],["table",[[]]]]]],["forlist","_","v",[["call",["glob","ipairs"],[["var","varList"]]]],["block",[["if",["==",["aref",["var","v"],1],"var"],["block",[["assign",[["aref",["aref",["var","ctx"],"l"],["aref",["var","v"],2]]],[true]]]],[]]]]]]]]],["local",[["var","gram"]],[["table",[[]]]]],["local",[["var","opers"]],[["table",[[["table",[[12],[1]]],"not"],[["table",[[12],[1]]],"#"],[["table",[[12],[1]]],"%neg"],[["table",[[12],[1]]],"%nor"],[["table",[[13],[2]]],"^"],[["table",[[8],[2]]],"+"],[["table",[[8],[2]]],"-"],[["table",[[11],[2]]],"*"],[["table",[[11],[2]]],"/"],[["table",[[11],[2]]],"//"],[["table",[[11],[2]]],"%"],[["table",[[7],[2]]],".."],[["table",[[3],[2]]],"|"],[["table",[[4],[2]]],"~"],[["table",[[5],[2]]],"&"],[["table",[[6],[2]]],"<<"],[["table",[[6],[2]]],">>"],[["table",[[2],[2]]],"<"],[["table",[[2],[2]]],"<="],[["table",[[2],[2]]],">"],[["table",[[2],[2]]],">="],[["table",[[2],[2]]],"=="],[["table",[[2],[2]]],"~="],[["table",[[1],[2]]],"and"],[["table",[[0],[2]]],"or"]]]]],["nop",["function","loc","fun",["glob","apply"],["t","st"],false,["block",[["return1",[["call",["aref",["var","st"],"push"],[["call",["aref",["var","st"],"popn"],[["aref",["aref",["var","opers"],["aref",["var","t"],"value"]],2],["table",[[["aref",["var","t"],"value"]]]]]]]]]]]]]],["local",[["var","_samePrio"]],[["table",[[true,"."],[true,":"]]]]],["nop",["function","loc","fun",["glob","lessp"],["t1","t2"],false,["block",[["local",[["var","v1"],["var","v2"]],[["aref",["var","t1"],"value"],["aref",["var","t2"],"value"]]],["if",["and",["==",["var","v1"],":"],["==",["var","v2"],"."]],["block",[["return1",[true]]]],[[["==",["var","v1"],"="],["block",[["assign",[["var","v1"]],["/"]]]]]]],["return1",[["or",["and",["==",["var","v1"],["var","v2"]],["aref",["var","_samePrio"],["var","v1"]]],["<",["aref",["aref",["var","opers"],["var","v1"]],1],["aref",["aref",["var","opers"],["var","v2"]],1]]]]]]]]],["nop",["function","loc","fun",["glob","makeVar"],["name","ctx"],false,["block",[["while",["var","ctx"],["block",[["if",["and",["aref",["var","ctx"],"l"],["aref",["aref",["var","ctx"],"l"],["var","name"]]],["block",[["return1",[["table",[["var"],[["var","name"]]]]]]]],[],["block",[["assign",[["var","ctx"]],[["aref",["var","ctx"],"n"]]]]]]]]],["return1",[["table",[["glob"],[["var","name"]]]]]]]]]],["local",[["var","NIL"]],[["..","%%N","IL%%"]]],["local",[["var","PREFIXTKNS"]],[["table",[[true,"."],[true,"("],[true,"["],[true,":"],[true,"{"]]]]],["local",[["var","pExpr"]],[["table",[[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["nop",["call",["aref",["var","st"],"push"],[false]]]]]],"false"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["nop",["call",["aref",["var","st"],"push"],[true]]]]]],"true"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["nop",["call",["aref",["var","st"],"push"],[["var","NIL"]]]]]]],"nil"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["nop",["call",["aref",["var","st"],"push"],[["aref",["var","t"],"value"]]]]]]],"number"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["nop",["call",["aref",["var","st"],"push"],[["aref",["var","t"],"value"]]]]]]],"string"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["local",[["var","args"],["var","varargs"],["var","body"]],[["call",["aref",["var","gram"],"funcBody"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","st"],"push"],[["table",[["function"],["expr"],["fun"],["<non>"],[["var","args"]],[["var","varargs"]],[["var","body"]]]]]]]]]],"function"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","st"],"push"],[["call",["aref",["var","gram"],"tableConstructor"],[["var","inp"],["var","ctx"]]]]]],["assign",[["aref",["var","t"],"type"]],["}"]]]]],"{"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["nop",["call",["aref",["var","st"],"push"],[["table",[["vararg"]]]]]]]]],"..."],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["local",[["var","expr"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],[")"]]],["if",["aref",["var","PREFIXTKNS"],["aref",["call",["aref",["var","inp"],"peek"],[]],"type"]],["block",[["nop",["call",["aref",["var","st"],"push"],[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["var","expr"],["var","ctx"]]]]]]]],[],["block",[["nop",["call",["aref",["var","st"],"push"],[["var","expr"]]]]]]]]]],"("],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["local",[["var","p"],["var","v"]],[["call",["aref",["var","inp"],"peek"],[]],["call",["glob","makeVar"],[["aref",["var","t"],"value"],["var","ctx"]]]]],["if",["aref",["var","PREFIXTKNS"],["aref",["var","p"],"type"]],["block",[["nop",["call",["aref",["var","st"],"push"],[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["var","v"],["var","ctx"]]]]]]]],[],["block",[["nop",["call",["aref",["var","st"],"push"],[["var","v"]]]]]]]]]],"Name"],[["function","expr","fun","<non>",["inp","st","ops","t","pt","ctx"],false,["block",[["if",["aref",["var","opers"],["aref",["var","t"],"value"]],["block",[["if",["and",["==",["aref",["var","t"],"value"],"-"],["not",["or",["==",["aref",["var","pt"],"type"],"Name"],["or",["==",["aref",["var","pt"],"type"],"number"],["==",["aref",["var","pt"],"type"],"("]]]]],["block",[["assign",[["aref",["var","t"],"value"]],["%neg"]]]],[]],["while",["and",["call",["aref",["var","ops"],"peek"],[]],["call",["glob","lessp"],[["var","t"],["call",["aref",["var","ops"],"peek"],[]]]]],["block",[["nop",["call",["glob","apply"],[["call",["aref",["var","ops"],"pop"],[]],["var","st"]]]]]]],["nop",["call",["aref",["var","ops"],"push"],[["var","t"]]]],["nop",["call",["aref",["var","inp"],"next"],[]]]]],[],["block",[["nop",["call",["glob","mkError"],["Bad operator '%s'",["aref",["var","t"],"value"]]]]]]]]]],"operator"]]]]],["local",[["var","eStop"]],[["table",[[true,"end"],[true,","],[true,";"],[true,"="],[true,")"],[true,"]"],[true,"}"]]]]],["forlist","k","v",[["call",["glob","pairs"],[["var","reservedT"]]]],["block",[["assign",[["aref",["var","eStop"],["var","k"]]],[["var","v"]]]]]],["assign",[["aref",["var","eStop"],"true"]],["%%NIL%%"]],["assign",[["aref",["var","eStop"],"false"]],["%%NIL%%"]],["assign",[["aref",["var","eStop"],"nil"]],["%%NIL%%"]],["assign",[["aref",["var","eStop"],"function"]],["%%NIL%%"]],["nop",["function","glob","fun",["aref",["var","gram"],"expr"],["inp","ctx"],false,["block",[["local",[["var","st"],["var","ops"],["var","t"],["var","pt"]],[["call",["glob","mkStack"],[]],["call",["glob","mkStack"],[]],["table",[["<START>","type"],["<START>","value"]]]]],["while",true,["block",[["assign",[["var","t"],["var","pt"]],[["call",["aref",["var","inp"],"peek"],[]],["var","t"]]],["if",["or",["==",["aref",["var","t"],"type"],"eof"],["and",["var","eStop"],["aref",["var","eStop"],["aref",["var","t"],"type"]]]],["block",[["break"]]],[]],["if",["not",["and",["==",["aref",["var","t"],"type"],"{"],["==",["aref",["var","pt"],"type"],"<START>"]]],["block",[["if",["or",["==",["aref",["var","pt"],"type"],"{"],["and",["~=",["aref",["var","t"],"type"],"operator"],["and",["~=",["aref",["var","pt"],"type"],"<START>"],["~=",["aref",["var","pt"],"type"],"operator"]]]],["block",[["break"]]],[]]]],[]],["nop",["call",["aref",["var","pExpr"],["aref",["var","t"],"type"]],[["var","inp"],["var","st"],["var","ops"],["var","t"],["var","pt"],["var","ctx"]]]]]]],["while",["not",["call",["aref",["var","ops"],"isEmpty"],[]]],["block",[["nop",["call",["glob","apply"],[["call",["aref",["var","ops"],"pop"],[]],["var","st"]]]]]]],["return1",[["call",["aref",["var","st"],"pop"],[]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"prefixExp"],["inp","r","ctx"],false,["block",[["if",["call",["aref",["var","inp"],"test"],["."]],["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"match"],["Name"]]]],["return1",[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["table",[["aref"],[["var","r"]],[["var","n"]]]],["var","ctx"]]]]]]],[[["call",["aref",["var","inp"],"test"],["["]],["block",[["local",[["var","e"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],["]"]]],["return1",[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["table",[["aref"],[["var","r"]],[["var","e"]]]],["var","ctx"]]]]]]]],[["or",["==",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],"("],["==",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],"{"]],["block",[["local",[["var","args"]],[["call",["aref",["var","gram"],"args"],[["var","inp"],["var","ctx"]]]]],["return1",[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["table",[["call"],[["var","r"]],[["var","args"]]]],["var","ctx"]]]]]]]],[["call",["aref",["var","inp"],"test"],[":"]],["block",[["local",[["var","key"]],[["call",["aref",["var","inp"],"match"],["Name"]]]],["local",[["var","args"]],[["call",["aref",["var","gram"],"args"],[["var","inp"],["var","ctx"]]]]],["local",[["var","ep"]],[["table",[["callobj"],[["var","r"]],[["var","key"]],[["var","args"]]]]]],["return1",[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["var","ep"],["var","ctx"]]]]]]]]],["block",[["return1",[["var","r"]]]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"args"],["inp","ctx"],false,["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"next"],[]]]],["if",["==",["aref",["var","n"],"type"],"("],["block",[["local",[["var","r"]],[["call",["aref",["var","gram"],"exprList"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],[")"]]],["return1",[["var","r"]]]]],[[["==",["aref",["var","n"],"type"],"{"],["block",[["nop",["call",["aref",["var","inp"],"back"],[["var","n"]]]],["return1",[["table",[[["call",["aref",["var","gram"],"tableConstructor"],[["var","inp"],["var","ctx"]]]]]]]]]]]],["block",[["nop",["call",["glob","error"],["Bad function argument list"]]]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"nameList"],["inp"],false,["block",[["local",[["var","res"]],[["table",[[["call",["aref",["var","inp"],"match"],["Name"]]]]]]],["while",["call",["aref",["var","inp"],"test"],[","]],["block",[["assign",[["aref",["var","res"],["+",["#",["var","res"]],1]]],[["call",["aref",["var","inp"],"match"],["Name"]]]]]]],["return1",[["var","res"]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"varList"],["inp","ctx","loc"],false,["block",[["local",[["var","res"]],[["table",[[]]]]],["local",[["var","p"]],[["call",["aref",["var","inp"],"peek"],[]]]],["while",true,["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"matchA"],["Name"]]]],["local",[["var","k"]],[["call",["aref",["var","inp"],"peek"],[]]]],["if",["aref",["var","PREFIXTKNS"],["aref",["var","k"],"type"]],["block",[["assign",[["aref",["var","res"],["+",["#",["var","res"]],1]]],[["call",["aref",["var","gram"],"prefixExp"],[["var","inp"],["call",["glob","makeVar"],[["aref",["var","n"],"value"],["var","ctx"]]],["var","ctx"]]]]]]],[],["block",[["assign",[["aref",["var","res"],["+",["#",["var","res"]],1]]],[["or",["and",["var","loc"],["table",[["var"],[["aref",["var","n"],"value"]]]]],["call",["glob","makeVar"],[["aref",["var","n"],"value"],["var","ctx"]]]]]]]]],["if",["~=",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],","],["block",[["break"]]],[]],["nop",["call",["aref",["var","inp"],"next"],[]]],["assign",[["var","p"]],[["call",["aref",["var","inp"],"peek"],[]]]]]]],["return1",[["var","res"]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"stat"],["inp","ctx"],false,["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"next"],[]]]],["local",[["var","t"]],[["aref",["var","n"],"type"]]],["if",["==",["var","t"],";"],["block",[["return1",[["call",["aref",["var","gram"],"stat"],[["var","inp"],["var","ctx"]]]]]]],[[["==",["var","t"],"break"],["block",[["return1",[["table",[["break"]]]]]]]],[["==",["var","t"],"::"],["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"match"],["Name"]]]],["nop",["call",["aref",["var","inp"],"match"],["::"]]],["return1",[["table",[["label"],[["var","n"]]]]]]]]],[["==",["var","t"],"goto"],["block",[["return1",[["table",[["goto"],[["call",["aref",["var","inp"],"match"],["Name"]]]]]]]]]],[["==",["var","t"],"do"],["block",[["local",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["table",[[]]],"l"],[["var","ctx"],"n"]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["end"]]],["return1",[["var","b"]]]]]],[["==",["var","t"],"while"],["block",[["local",[["var","e"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],["do"]]],["local",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["table",[[]]],"l"],[["var","ctx"],"n"]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["end"]]],["return1",[["table",[["while"],[["var","e"]],[["var","b"]]]]]]]]],[["==",["var","t"],"repeat"],["block",[["local",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["table",[[]]],"l"],[["var","ctx"],"n"]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["until"]]],["return1",[["table",[["repeat"],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]],[["var","b"]]]]]]]]],[["==",["var","t"],"for"],["block",[["local",[["var","l"]],[["call",["aref",["var","gram"],"nameList"],[["var","inp"]]]]],["assign",[["var","t"]],[["call",["aref",["var","inp"],"next"],[]]]],["if",["==",["aref",["var","t"],"type"],"="],["block",[["local",[["var","e1"],["var","e2"],["var","e3"],["var","b"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]],"%%NIL%%",1]],["nop",["call",["aref",["var","inp"],"match"],[","]]],["assign",[["var","e2"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["if",["call",["aref",["var","inp"],"test"],[","]],["block",[["assign",[["var","e3"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]]]],[]],["nop",["call",["aref",["var","inp"],"match"],["do"]]],["assign",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["call",["glob","copyt"],[["var","l"]]],"l"],[["var","ctx"],"n"]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["end"]]],["nop",["call",["glob","assert"],[["==",["#",["var","l"]],1],"wrong number of loop variables"]]],["return1",[["table",[["foridx"],[["aref",["var","l"],1]],[["var","e1"]],[["var","e2"]],[["var","e3"]],[["var","b"]]]]]]]],[[["==",["aref",["var","t"],"type"],"in"],["block",[["local",[["var","el"],["var","b"]],[["call",["aref",["var","gram"],"exprList"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],["do"]]],["assign",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["call",["glob","copyt"],[["var","l"]]],"l"],[["var","ctx"],"n"]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["end"]]],["return1",[["table",[["forlist"],[["aref",["var","l"],1]],[["or",["aref",["var","l"],2],"_"]],[["var","el"]],[["var","b"]]]]]]]]]],["block",[["nop",["call",["glob","error"],[]]]]]]]]],[["==",["var","t"],"if"],["block",[["local",[["var","e"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],["then"]]],["local",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["table",[[]]],"l"],[["var","ctx"],"n"]]]]]]],["local",[["var","eif"],["var","els"]],[["table",[[]]]]],["while",["call",["aref",["var","inp"],"test"],["elseif"]],["block",[["local",[["var","e"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],["then"]]],["local",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["table",[[]]],"l"],[["var","ctx"],"n"]]]]]]],["assign",[["aref",["var","eif"],["+",["#",["var","eif"]],1]]],[["table",[[["var","e"]],[["var","b"]]]]]]]]],["if",["call",["aref",["var","inp"],"test"],["else"]],["block",[["assign",[["var","els"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["table",[[]]],"l"],[["var","ctx"],"n"]]]]]]]]],[]],["nop",["call",["aref",["var","inp"],"match"],["end"]]],["return1",[["table",[["if"],[["var","e"]],[["var","b"]],[["var","eif"]],[["var","els"]]]]]]]]],[["==",["var","t"],"Name"],["block",[["nop",["call",["aref",["var","inp"],"back"],[["var","n"]]]],["local",[["var","vars"]],[["call",["aref",["var","gram"],"varList"],[["var","inp"],["var","ctx"]]]]],["if",["call",["aref",["var","inp"],"test"],["="]],["block",[["local",[["var","exprs"]],[["call",["aref",["var","gram"],"exprList"],[["var","inp"],["var","ctx"]]]]],["return1",[["table",[["assign"],[["var","vars"]],[["var","exprs"]]]]]]]],[],["block",[["nop",["call",["glob","assert"],[["==",["#",["var","vars"]],1],"Bad expression1"]]],["assign",[["var","vars"]],[["aref",["var","vars"],1]]],["nop",["call",["glob","assert"],[["or",["==",["aref",["var","vars"],1],"call"],["==",["aref",["var","vars"],1],"callobj"]],"Bad expression2"]]],["return1",[["table",[["nop"],[["var","vars"]]]]]]]]]]]],[["==",["var","t"],"function"],["block",[["local",[["var","name"],["var","ft"]],[["call",["aref",["var","gram"],"funcName"],[["var","inp"],["var","ctx"]]]]],["local",[["var","args"],["var","varargs"],["var","body"]],[["call",["aref",["var","gram"],"funcBody"],[["var","inp"],["var","ctx"]]]]],["return1",[["table",[["nop"],[["table",[["function"],["glob"],[["var","ft"]],[["var","name"]],[["var","args"]],[["var","varargs"]],[["var","body"]]]]]]]]]]]],[["==",["var","t"],"local"],["block",[["if",["call",["aref",["var","inp"],"test"],["function"]],["block",[["local",[["var","name"],["var","ft"]],[["call",["glob","makeVar"],[["call",["aref",["var","inp"],"match"],["Name"]],["var","ctx"]]],"fun"]],["local",[["var","args"],["var","varargs"],["var","body"]],[["call",["aref",["var","gram"],"funcBody"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["glob","addVarsToCtx"],[["var","name"],["var","ctx"]]]],["return1",[["table",[["nop"],[["table",[["function"],["loc"],[["var","ft"]],[["var","name"]],[["var","args"]],[["var","varargs"]],[["var","body"]]]]]]]]]]],[],["block",[["local",[["var","vars"],["var","exprs"]],[["call",["aref",["var","gram"],"varList"],[["var","inp"],["var","ctx"],true]],["table",[[]]]]],["nop",["call",["glob","addVarsToCtx"],[["var","vars"],["var","ctx"]]]],["if",["call",["aref",["var","inp"],"test"],["="]],["block",[["assign",[["var","exprs"]],[["call",["aref",["var","gram"],"exprList"],[["var","inp"],["var","ctx"]]]]]]],[]],["return1",[["table",[["local"],[["var","vars"]],[["var","exprs"]]]]]]]]]]]]]],["nop",["call",["aref",["var","inp"],"back"],[["var","n"]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"exprList"],["inp","ctx"],false,["block",[["local",[["var","res"],["var","i"]],[["table",[[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]]],2]],["while",["call",["aref",["var","inp"],"test"],[","]],["block",[["assign",[["aref",["var","res"],["var","i"]]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["assign",[["var","i"]],[["+",["var","i"],1]]]]]],["return1",[["var","res"]]]]]]],["local",[["var","bends"]],[["table",[[true,"end"],[true,"elseif"],[true,"else"],[true,"until"],[true,"return"],[true,"eof"]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"block"],["inp","ctx"],false,["block",[["local",[["var","s"]],[["table",[[["call",["aref",["var","gram"],"stat"],[["var","inp"],["var","ctx"]]]]]]]],["if",[">",["#",["var","s"]],0],["block",[["while",["not",["aref",["var","bends"],["aref",["call",["aref",["var","inp"],"peek"],[]],"type"]]],["block",[["local",[["var","t"]],[["call",["aref",["var","gram"],"stat"],[["var","inp"],["var","ctx"]]]]],["if",["==",["var","t"],"%%NIL%%"],["block",[["break"]]],[],["block",[["assign",[["aref",["var","s"],["+",["#",["var","s"]],1]]],[["var","t"]]]]]]]]]]],[]],["if",["call",["aref",["var","inp"],"test"],["return"]],["block",[["local",[["var","re"]],[["call",["aref",["var","gram"],"exprList"],[["var","inp"],["var","ctx"]]]]],["assign",[["aref",["var","s"],["+",["#",["var","s"]],1]]],[["table",[[["..","return",["or",["and",["<",["#",["var","re"]],2],["#",["var","re"]]],"n"]]],[["var","re"]]]]]]]],[]],["nop",["call",["aref",["var","inp"],"test"],[";"]]],["return1",[["table",[["block"],[["var","s"]]]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"field"],["inp","ctx"],false,["block",[["if",["call",["aref",["var","inp"],"test"],["["]],["block",[["local",[["var","e1"]],[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]],["nop",["call",["aref",["var","inp"],"match"],["]"]]],["nop",["call",["aref",["var","inp"],"match"],["="]]],["return1",[["table",[[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]],[["var","e1"]]]]]]]],[[["and",["==",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],"Name"],["==",["aref",["call",["aref",["var","inp"],"peek"],[2]],"type"],"="]],["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"next"],[]]]],["nop",["call",["aref",["var","inp"],"match"],["="]]],["return1",[["table",[[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]],[["aref",["var","n"],"value"]]]]]]]]]],["block",[["return1",[["table",[[["call",["aref",["var","gram"],"expr"],[["var","inp"],["var","ctx"]]]]]]]]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"tableConstructor"],["inp","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"match"],["{"]]],["local",[["var","res"]],[["table",[[["call",["aref",["var","gram"],"field"],[["var","inp"],["var","ctx"]]]]]]]],["while",["or",["==",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],","],["==",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],";"]],["block",[["nop",["call",["aref",["var","inp"],"next"],[]]],["if",["==",["aref",["call",["aref",["var","inp"],"peek"],[]],"type"],"}"],["block",[["break"]]],[]],["assign",[["aref",["var","res"],["+",["#",["var","res"]],1]]],[["call",["aref",["var","gram"],"field"],[["var","inp"],["var","ctx"]]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["}"]]],["return1",[["table",[["table"],[["var","res"]]]]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"funcBody"],["inp","ctx"],false,["block",[["nop",["call",["aref",["var","inp"],"match"],["("]]],["local",[["var","p"]],[["call",["aref",["var","inp"],"peek"],[]]]],["local",[["var","varargs"],["var","args"]],[false,["table",[[]]]]],["if",["==",["aref",["var","p"],"type"],"..."],["block",[["assign",[["var","varargs"]],[true]],["nop",["call",["aref",["var","inp"],"next"],[]]]]],[[["==",["aref",["var","p"],"type"],"Name"],["block",[["assign",[["var","args"]],[["table",[[["call",["aref",["var","inp"],"match"],["Name"]]]]]]],["while",["call",["aref",["var","inp"],"test"],[","]],["block",[["assign",[["var","p"]],[["call",["aref",["var","inp"],"peek"],[]]]],["if",["call",["aref",["var","inp"],"test"],["..."]],["block",[["assign",[["var","varargs"]],[true]],["break"]]],[]],["assign",[["aref",["var","args"],["+",["#",["var","args"]],1]]],[["call",["aref",["var","inp"],"match"],["Name"]]]]]]]]]]]],["nop",["call",["aref",["var","inp"],"match"],[")"]]],["local",[["var","b"]],[["call",["aref",["var","gram"],"block"],[["var","inp"],["table",[[["call",["glob","copyt"],[["var","args"]]],"l"],[["var","ctx"],"n"]]]]]]],["nop",["call",["aref",["var","inp"],"match"],["end"]]],["returnn",[["var","args"],["var","varargs"],["var","b"]]]]]]],["nop",["function","glob","fun",["aref",["var","gram"],"funcName"],["inp","ctx"],false,["block",[["local",[["var","t"]],[["call",["glob","makeVar"],[["call",["aref",["var","inp"],"match"],["Name"]],["var","ctx"]]]]],["while",true,["block",[["local",[["var","p"]],[["call",["aref",["var","inp"],"peek"],[]]]],["if",["call",["aref",["var","inp"],"test"],["."]],["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"match"],["Name"]]]],["assign",[["var","t"]],[["table",[["aref"],[["var","t"]],[["var","n"]]]]]]]],[[["call",["aref",["var","inp"],"test"],[":"]],["block",[["local",[["var","n"]],[["call",["aref",["var","inp"],"match"],["Name"]]]],["returnn",[["table",[["aref"],[["var","t"]],[["var","n"]]]],"obj"]]]]]]],["break"]]]],["returnn",[["var","t"],"fun"]]]]]],["return1",[["function","expr","fun","<non>",["str"],false,["block",[["local",[["var","tkns"]],[["call",["glob","mkStream"],[["call",["glob","tokenize"],[["var","str"]]]]]]],["return1",[["call",["aref",["var","gram"],"block"],[["var","tkns"],["table",[[["table",[[]]],"l"]]]]]]]]]]]]]]]],["return1",[["glob","makeParser"]]]]]