//Parser generated by rustlr for grammar todd
#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_mut)]
#![allow(unused_imports)]
#![allow(unused_assignments)]
#![allow(dead_code)]
#![allow(unreachable_patterns)]
#![allow(irrefutable_let_patterns)]
use std::rc::Rc;
use std::cell::RefCell;
extern crate rustlr;
use rustlr::{Tokenizer,TerminalToken,ZCParser,ZCRProduction,Stateaction,decode_action};
use rustlr::{StrTokenizer,RawToken,LexSource};
use std::collections::{HashMap,HashSet};
[<CustomEquality;NoComparison>]
type expr =
| Integer of int
| Floatpt of float
| Strlit of string
| Var of LBox<string>
| Binop of string*LBox<expr>*LBox<expr>
| Uniop of string*LBox<expr>
| Ifelse of LBox<expr>*expr*LBox<expr>
| Whileloop of LBox<expr>*expr
| Define of LBox<lltype*string>*expr
| Lambda of (LBox<lltype*string> list)*lltype*LBox<expr>
| Setq of expr*LBox<expr>
| Apply of LBox<expr>*(LBox<expr> list)
| Beginseq of expr list
| Listseq of LBox<expr> list
| Listdefault of expr*LBox<expr>
| Index of LBox<expr>*LBox<expr>
override e1.Equals(e2) = LanguagePrimitives.PhysicalEquality (e1 :> obj) e2
override e.GetHashCode() = LanguagePrimitives.PhysicalHash e
and lltype =
| LLint | LLfloat | LLstring
| LLlist of lltype | LLtuple of lltype list
| LLfun of (lltype list)*lltype
| LLunknown | LLuntypable | LLvar of string | LLunit
static SYMBOLS:[&'static str;71] = ["_WILDCARD_TOKEN_","LPAREN","RPAREN","LCURLYB","RCURLYB","LSQUAREB","RSQUAREB","SEMICOLON","PLUS","MINUS","TIMES","DIV","MOD","CARET","ASSIGN","LESS","GREATER","LESSEQ","GREATEREQ","NEQ","EQ","AND","OR","NEGATE","NOT","PRINT","COMMA","COLON","DEFINE","LET","IN","LAMBDA","DOT","IF","THEN","ELSE","WHILE","DO","T_INT","T_FLOAT","T_STRING","T_VOID","Integer","Float","StringLit","Var","Stmts","StmtList","Stmt","BlockStmt","DefineExpr","Expr","BlockExpr","NonBlockExpr","Param","TypedParam","ParamList","ReturnType","OrExpr","AndExpr","EqExpr","CompExpr","PlusExpr","TimesExpr","UnaryExpr","LValue","RValue","ArgList","Type","START","EOF"];
static TABLE:[u64;2227] = [167503921154,4295163906,120259280898,154619019266,184683790338,163208953858,171798888450,103079411714,124554248194,12885098498,21475033090,197568626689,141734117378,30064967682,107374379010,180388823042,133144182786,193273724930,98784444418,201863528449,188978757634,176093855746,300647907330,281668252008448,281749856911361,281578058022912,281775624421378,281689727107073,281487863054336,281599531155456,281741264879617,281492156579842,281685432598529,281758445469697,281724085469185,281479272660992,281629596581888,281616712269824,281651071614976,281582353252352,281698317434881,281767034945537,281728380567553,281638186057728,281595238023168,281754149847041,281681137041409,281659661025280,281608122662912,281719790698497,281646775730176,281745560174593,281663956844544,281573762269184,281732676124673,281642482597888,281655366451200,281496453382144,281736971223041,281505043185664,281702611156993,563250601132035,844536601706498,844575256412162,844454997327874,844515126870018,844489357066242,844510831902722,844519421837314,844553781575682,844442112425986,844570961444866,844497947000834,844506536935426,844480767393792,844459292491776,844493652033538,844583846346754,844450702360578,844463587393536,844502241968130,844433522491394,844725580267522,1125960039268352,1125964333973506,1126028758482946,1125990103777282,1125938564169730,1125972923908098,1125981513842690,1125968628940802,1125985808809986,1125925679267842,1125917089333250,1125955744038914,1125921384431616,1125929974235138,1126045938352130,1126011578613762,1125977218875394,1126058823254018,1125904204627968,1125947154104322,1126050233319426,1125934269202434,1125942859137026,1125951449071618,1125994398744578,1125908499398658,1126200557174786,1407486557487106,1407435017879554,1407512327290882,1407508032323586,1407396363173890,1689043136741376,1689081791578113,1689086086479873,1970457983057922,1970346314956800,2251851356504064,2251928665194498,2252100463886338,2251945845063682,2251881420554242,2251894305456130,2251847061602304,2251834175913986,2251842766700544,2251958729965570,2251872830619650,2251885715521538,2251950140030978,2251877125586946,2251855650750466,2251838470881282,2251911485325314,2251825585979394,2251816996044802,2251868535652354,2251829880946690,2251808406110210,2251864240685058,2251890010488834,2533412234002434,2533386464198658,2533296269885442,2533334924591106,2533407939035138,2814758359203842,2814775539073026,2814900093124610,2814878618288130,2814766949138434,2814908683059202,2814861438418946,2815050416979970,2814779834040322,2814844259794944,2814895798157314,3096276287815682,3096233338142722,3096267697881090,3096370777096194,3096310647554050,3096254812979202,3096259107946498,3096246223044610,3096280582782978,3096241928077314,3096229043175426,3096525395918850,3096314942521346,3096297762652162,3096250518011906,3096375072063490,3096289172717570,3096353597227010,3096336417357826,3096306352586754,3096271992848386,3096263402913794,3096383661998082,3096302057619458,3096293467684866,3096319237488642,3377708312690690,3377716902625282,3377828571774978,3377811391905794,3377794212036610,3377725492559874,3377789918314496,3377850046611458,3377858636546050,3378000370466818,3377729787527170,3377845751644162,3659307844763648,3940950324346882,3940726986047490,3940701216243714,3940705511211010,3940679741407234,3940722691080194,3940688331341826,3940761345785858,3940731281014786,3940795705524226,3940735575982082,3940666856505346,3940718396112898,3940671152455680,3940714101145602,3940653972520960,3940744165916674,3940696921276418,3940675446439938,3940658266570754,3940684036374530,3940808590426114,3940800000491522,3940692626309122,3940778525655042,3940739870949378,4222249205104640,4222232027201536,4222305040400384,4222416708894721,4222352287793153,4222369464647681,4222296449679360,4222257796612096,4222309334974464,4222335106547713,4222317925957632,4222128946610176,4222279270531072,4222313630793728,4222287860006912,4222386645172225,4222137537003520,4222403823796225,4222395234123777,4222347992694785,4222292156547072,4222343697793025,4222390938828801,4222146127331328,4222266386219008,4222408119418881,4222382350073857,4222378054516737,4222227731972096,4222373759418369,4222223436218368,4222300745564160,4222399530860545,4503762836717568,4503878800506881,4503865915539457,4503698412929024,4503827264503809,4503771426390016,4503780017111040,4503874507571201,4503784311685120,4503818674634753,4503741362929664,4503732773322752,4503792902668288,4503707003912192,4503822969405441,4503603923320832,4503810083258369,4503754247241728,4503844441358337,4503861621882881,4503857326784513,4503775722274816,4503848736129025,4503870210834433,4503853031227393,4503621104041984,4503767133257728,4503788607504384,4503612513714176,4503883096129537,4503724181815296,4503891685605377,4503702708682752,4785156212785154,4785375256117250,4785151917817858,4785139032915970,4785100378210306,4785096083243010,4785091788275714,4785224932261890,4785126148014082,4785083198341122,4785147622850562,4785164802719746,4785117558079490,4785203457425410,4785169097687042,4785143327883266,4785121853046786,4785108968144898,4785186277556226,4785113263112194,4785160507752450,4785233522196482,4785130442981378,4785078903373826,4785104673177602,4785220637294594,5066579649560576,5066850228568066,5066566760726530,5348157703520258,5629684218527744,5629688514347008,5629774416248833,5629503830163456,5629602615525376,5629606910754816,5629679923953664,5629521010884608,5629692809510912,5629598319771648,5629778711150593,5629783002972161,5910991693086722,5911120542105602,5911056119562240,5911124837072898,5910983103152130,5911133427007490,5911060414464000,5911000283021314,5911004577988610,5911275160928258,5911103362236418,5911086182367234,5911069002498050,5911064707530754,6192647060455425,6192642761359362,6192552567046146,6192629876457474,6192479552602114,6192582631817218,6192470962667522,6192453782798338,6192548272078850,6192612696588290,6192651351162881,6192556862013442,6192604106653698,6192466667700226,6192634171424770,6192625581490178,6192574041882626,6192569746915330,6192462372732930,6192638466392066,6192621286522882,6192591221751810,6192616991555586,6474010366050306,6474014661017602,6474036135854082,6473993188343808,6473933056638978,6473997483245568,6474053315723266,6473941646573570,6474070495592450,6473954531475458,6474083380494338,6474006071083010,6474225114415106,6474001778343936,6473950236508162,6474074790559746,6473988893245440,6474018955984898,6755493934792706,6755481049890818,6755468164988930,6755485344858114,6755425215315970,6755438100217858,6755472459956226,6755476754923522,6755489639825410,6755463870021634,6755403740479490,6755416625381378,6755528294531074,6755545474400258,6755558359302146,6755442395185154,6755455280087042,6755420920348674,6755511114661890,6755450985119746,6755446690152450,6755549769367554,6755700093222914,6755429510283266,6755433805250562,6755408035446786,7037097759801345,7036878713716736,7036998972211200,7037084873654273,7037166476001281,7037007563718656,7037054807506944,7037041923653632,7037140705935361,7037063397900288,7036981794308096,7037093465751553,7037046216785920,7037102054899713,7037145001230337,7037059102081024,7036895894437888,7037136412278785,7037157886525441,7037119231754241,7037149297967105,7037067693064192,7037037627113472,7036887304110080,7037123526524929,7037050512670720,7036977499078656,7037016153325568,7036973203324928,7037029037637632,7037132117180417,7037153590902785,7037127821623297,7318512603561986,7318516898529282,7318529783431170,7318379459575810,7318482538790914,7318525488463874,7318534078398466,7318370869641218,7318362279706626,7318456768987138,7318452474019842,7318521193496578,7318448179052546,7318650042515458,7318353689772034,7318473948856322,7318469653889026,7318366574673922,7318538373365762,7318542668333058,7318491128725506,7318504013627394,7599983286550530,7599828667727874,7599970401648642,7599901682171906,7599884502302722,7599858732498946,7599914567073794,7599832962695170,7599845847597058,7599974696615938,7599867322433538,7599936041910274,7599850142564354,7599863027466242,7599880207335426,7599897387204610,7599953221779458,7599871617400834,7599910272106498,7599841552629762,7599893092237314,7599905977139202,7599888797270018,7599854437531650,7599918862041090,7599875912368130,7600125020471298,7881406724440064,7881303643848704,7881492623196160,7881320824569856,7881569931362305,7881561342410753,7881574228099073,7881552751755265,7881544161886209,7881471146917888,7881518395949057,7881402429210624,7881488328032256,7881565636067329,7881484032212992,7881548456656897,7881453967769600,7881462557245440,7881432493850624,7881423902343168,7881522689933313,7881578521034753,7881398133456896,7881526985031681,7881509803786241,7881591406133249,7881312234242048,7881325121830914,7881557047312385,7881582816657409,7881475442802688,7881466853785600,7881587115491329,7881441083457536,7881479737638912,8162898878922754,8162946123563010,8162894583955458,8162941828595714,8162881699053570,8162959008464898,8162954713497602,8162937533628418,8162963303432194,8162916058791938,8162804389642242,8162907468857346,8163074972581890,8162778619838466,8162873109118978,8162787209773058,8162877404086274,8162950418530306,8162928943693826,8162967598399490,8162791504740354,8162795799707650,8444489824337921,8444442579828736,8444386742108162,8444485529436161,8725754347847680,8726024925872130,8725741458030594,9007302336053248,9007203550691328,9007482723500033,9007478431678465,9007383939055616,9007220731412480,9007392530038784,9007474137759745,9007388234874880,9007379644481536,9007306631282688,9007298040299520,9288734365712386,9288811675123714,9288807380156418,9288695711006722,9288785905319938,9570342484639744,9570385434378241,9570381141573633,9851701496840194,9851662842134530,9851654252199938,9851688611938306,9851641367298050,9851705791807490,9851753036447746,9851675727036418,9851710086774786,9851718676709378,9851924835139586,9851680022003714,9851667137101826,9851697201872898,9851770216316930,9851774511284226,9851671432069122,9851658547167234,9851649957232642,9851714381742082,9851735856578562,9851783101218818,9851692906905602,9851632777363458,10133120638255104,10133382630342657,10133103457533952,10133197947142144,10133378338521089,10133283845898240,10133202242895872,10133292436881408,10133206538125312,10133279551324160,10133288141717504,10133374044733441,10414741642608642,10414737347641346,10414745937575938,10414578433851394,10414758822477826,10414767412412418,10414587023785986,10414750232543234,10414728757706754,10414604203655170,10414677218099202,10414591318753282,10414681513066498,10414694397968386,10414874786594818,10414754527510530,10414698692935682,10414595613720578,10414715872804866,10414672923131906,10414707282870274,10414763117445122,10696062000955394,10696195144941570,10696203734876162,10696349763764226,10696233799647234,10696208029843458,10696216619778050,10696169375137794,10696074885857282,10696070590889986,10696229504679938,10696066295922690,10696199439908866,10696190849974274,10696057705988098,10696225209712642,10696238094614530,10696173670105090,10696242389581826,10696079180824578,10696160785203202,10696212324810754,10696152195268610,10696147900301314,10696156490235906,10696053411020802,10696177965072386,10696220914745346,10696182260039682,10977807560474625,10977717367013376,10977713071849472,10977528387665920,10977794679963649,10977704481456128,10977708776030208,10977798971916289,10977545568387072,10977627173027840,10977803268653057,10977622877274112,10977631468257280,11259269656739841,11259273948626945,11259183752740864,11259188048560128,11259020545097728,11259282537185281,11259106444967936,11259278245363713,11259102149738496,11259179458166784,11259192343724032,11259097853984768,11259003364376576,11540744633516033,11540663025270784,11540667320434688,11540495521808384,11540748925337601,11540753222074369,11540654434877440,11540658729451520,11540581421678592,11540757513895937,11540577126449152,11540478341087232,11540572830695424,11822142297145344,11822168070684673,11822052103159808,11822172363882497,11822198130606081,11822241080082433,11822223902048257,11822082167799808,11822103641718784,11822073576292352,11822047807406080,11822090757406720,11822129411588096,11822176658980865,11821953317797888,11822125116751872,11822120820867072,11822159477735425,11822228194983937,11822112231194624,11822138001981440,11822211016359937,11822206721261569,11822116527734784,11822202425704449,11822056398389248,11822215310016513,11821961908191232,11821970498519040,11822219605311489,11822232490606593,11822133706162176,11822193835835393,12103432592621570,12103608682872832,12103587207905280,12103445475229696,12103617273856000,12103604388298752,12103647340593153,12103557144510464,12103673107316737,12103531375099904,12103685993070593,12103677402415105,12103711766937601,12103595797577728,12103634454446081,12103548553003008,12103681697972225,12103668812546049,12103565734117376,12103591504445440,12103612978692096,12103703171694593,12103698878758913,12103651635691521,12103600093462528,12103643047526401,12103690286727169,12103436884901888,12103522784116736,12103428294508544,12103716056793089,12103578618429440,12103707467317249,12103527079870464,12103694582022145,12385092250566656,12384920451940352,12385156674682881,12385006351810560,12385075070173184,12385148084027393,12385023529713664,12385087955402752,12384903271219200,12385079365009408,12385053595140096,12385143789256705,12385165263437825,12385191033503745,12385040710828032,12385178148405249,12385182444027905,12385152379125761,12385083659583488,12385062184615936,12384997760827392,12385002056581120,12385173855469569,12385118024302593,12385070774288384,12385066481156096,12385032121221120,12385122317303809,12384911861612544,12385126612402177,12385109431156737,12385169558732801,12385160969781249,12666489921863680,12666434082242562,12947909059018754,13229384040775680,13510824657813504,13792376940134400,13792295335493632,13792454248562688,13792467134119936,13792381235363840,13792372644380672,13792462838956032,13792557327581185,13792548742692865,13792278154772480,13792458543136768,13792553035759617,14073942110830592,14073933519847424,14073937815666688,14074023719469057,14073856212074496,14073847621091328,14073770312204288,14073929225273344,14074028012470273,14074032304291841,14073753131483136,14073851916845056,14355408496558080,14355417087541248,14355326893555712,14355502989180929,14355412792377344,14355404201984000,14355245288914944,14355507281002497,14355498696245249,14355322597801984,14355331188785152,14355228108193792,14636960783466497,14636892064251904,14636720265625600,14636965077123073,14636879178694656,14636883473268736,14636956488368129,14636982257713153,14636973669154817,14636887769088000,14636703084904448,14636969372418049,14636952198184961,14636797574512640,14636977965891585,14636806165495808,14636801870266368,14918354155405312,14918440053833729,14918281142206464,14918272551223296,14918358449979392,14918178061615104,14918367040962560,14918444349128705,14918431469928449,14918362745798656,14918452942602241,14918448645865473,14918435760177153,14918276846977024,14918195242336256,14918457234423809,15199889266835457,15199786183163906,15199842020884480,15199884970491905,15481304108826624,15481368533073921,15481248273530880,15481390007255041,15481398599286785,15481372827844609,15481411488251905,15481299813990400,15481377122942977,15481351356219393,15481385713598465,15481312699219968,15481265454645248,15481136605429760,15481286928433152,15481128015036416,15481415777320961,15481256865038336,15481308403400704,15481132313149442,15481342768054273,15481402892222465,15481278338957312,15481231095627776,15481407187845121,15481394302550017,15481316994383872,15481226800398336,15481347061121025,15481222504644608,15481381418500097,15481291224973312,15481334174973953,15481145195757568,15481295518105600,15762697481355264,15762774790701056,15762791971094528,15762766201683968,15762783380111360,15762864983965697,15762753315667968,15762701777108992,15762860690309121,15762817745551361,15762847804555265,15762882164555777,15762822037831681,15762852099653633,15762787675930624,15762856395210753,15762740431355904,15762731841748992,15762826332930049,15762611582140416,15762770494816256,15762890754031617,15762723250241536,15762843509784577,15762761905143808,15762877868933121,15762809151684609,15762620172468224,15762706072338432,15762873575997441,15762779085537280,15762602991747072,15762869279260673,16044082262900738,16044090852835330,16044099442769922,16044202521985026,16044185342115842,16044232586756098,16044223996821506,16044103737737218,16044219701854210,16044374320676866,16325557245640704,16607182540242946,16607152475471874,16607040806322178,16607049396256770,16607169655341058,16607032216387586,16607053691224066,16607173950308354,16607135295602690,16607324274163714,16888657522982912,17170076659220482,17170003644776450,17170162558566402,17170080954187778,17169990759874562,17170166853533698,17170141083729922,17170145378697218,17170149673664514,17169986464907266,17170106723991554,17170128198828034,17170136788762626,17170072364253186,17170274227716098,17170153968631810,17170158263599106,17170098134056962,17170115313926146,17170093839089666,17169995054841858,17169977874972674,17451560227831810,17451512983191554,17451474328485890,17451457148616706,17451607472472066,17451452853846016,17451577407700994,17451594587570178,17451478623453186,17451525868093442,17451470033649664,17451491508355074,17451504393256962,17451482918420482,17451465738551298,17451543047962626,17451530163060738,17451487213387778,17451534458028034,17451521573126146,17451495803322370,17451500098289666,17451517278158850,17451538752995330,17451598882537474,17451749206392834,17732932126507010,17732970781212674,17733018025852930,17732957896310786,17733000845983746,17732992256049154,17732996551016450,17732962191278082,17733013730885634,17733035205722114,17733009435918338,17733052385591298,17732953601343490,17732987961081858,17733005140951042,17733224184283138,17732979371147266,17733069565460482,17733082450362370,17732966486245378,17732975076179970,17733073860427778,17732949306376194,17732940716441602,18014669092945921,18014681978241025,18014583193796608,18014402805432320,18014660509106177,18014673389682689,18014419986153472,18014578899222528,18014677686419457,18014497295040512,18014505886023680,18014664797650945,18014591784779776,18014501590794240,18014587489615872,18296135485882369,18295980862734336,18296152663130113,18296053875933184,18295972271751168,18296148366393345,18296062466326528,18296139774361601,18296156954951681,18295877782142976,18295976567504896,18296058170507264,18295894962864128,18296066761490432,18296144069656577,18577365649522688,18859008123928576,18859094023077889,18858922225172480,18859016714911744,18859003829354496,18858926520926208,18859106908372993,18859012419747840,18859089734402049,18858930816155648,18858827735564288,18859098319814657,18859102616551425,18858844916285440,19140397201883136,19140491691622400,19140581885083649,19140564711178241,19140478806065152,19140568999788545,19140302712274944,19140487396458496,19140405792866304,19140401497636864,19140573296525313,19140483100639232,19140577593262081,19140319892996096,19422052569972737,19421777688985600,19422043976499201,19421953782775808,19422056861794305,19421966668333056,19421962373169152,19421876474347520,19422039687954433,19421880769576960,19422048273235969,19421958077349888,19421872178593792,19421794869706752,19703441645043712,19703351451058176,19703433054060544,19703523249946625,19703437349879808,19703269846417408,19703252665696256,19703428759486464,19703531838504961,19703347155304448,19703355746287616,19703527546683393,19703518953209857,19703514664730625,19984869382422528,20266228395081728,20266224097165314,20266309999525888,20547699076956160,20829285722882048,21110760694153218,21110734929854464,21392214199894016,21673873855348738,21673590387507202,21673586092539906,21673766481166338,21673714941558786,21673753596264450,21673736416395266,21673676286853122,21673603272409090,21673594682474498,21673745006329858,21673693466722306,21673749301297154,21673577502605314,21673762186199042,21673740711362562,21673671991885826,21673757891231746,21673697761689602,21673680581820418,21673727826460674,21673706351624194,21955142676447234,21955082546905090,21955104021741570,21955177036185602,21955056777101314,21955207100956674,21955086841872386,21955078251937794,21955121201610754,21955091136839682,21955095431806978,21955159856316418,21955138381479938,21955065367035906,21955194216054786,21955125496578050,21955348834877442,21955099726774274,21955198511022082,21955134086512642,21955129791545346,21955112611676162,21955073956970498,21955116906643458,22236583297155072,22518006730653698,22518079745097730,22518028205490178,22518075450130434,22518036795424770,22518148464574466,22518109809868802,22518084040065026,22518092629999618,22518032500457474,22518066860195842,22518126989737986,22518023910522882,22518041090392066,22518144169607170,22518062565228546,22518088335032322,22518053975293954,22518298788429826,22518015320588290,22518157054509058,22518049680326658,22518071155163138,22518045385359362,22799524656381952,22799546131415042,22799563311284226,22799507476709378,22799528951545858,22799554721349634,22799559016316930,22799537541480450,22799520361480192,22799490296840194,22799516066578432,22799567606251522,22799550426382338,22799541836447746,22799601965989890,22799773764681730,22799584786120706,22799503181742082,22799511771676674,22799623440826370,22799632030760962,22799498886774786,22799619145859074,22799481706905602,23081094122504194,23081021108060162,23081107007406082,23081059762765826,23081003928190978,23080999633092608,23080973863419906,23080956683550722,23080982453354498,23081042582896642,23080995338190848,23080986748321794,23081076942635010,23080965273485314,23081033992962050,23081016813092866,23081038287929346,23080978158387202,23081098417471490,23080991043289088,23081025403027458,23081012518125570,23081029697994754,23081248741326850,23362504674836482,23362431660392450,23362453135228930,23362534739607554,23362440250327042,23362581984247810,23362466019999744,23362496084901890,23362551919476738,23362569099345922,23362517559738370,23362474609803264,23362500379869186,23362513264771074,23362461725163522,23362491789934594,23362508969803778,23362448840261634,23362457430196226,23362573394313218,23362487494967298,23362478905032706,23362470314901504,23362723718168578,23643923821035520,23925381617942528,24206959673475072,24206873771114498,24206856591245314,24488434644484098,24488623623045122,24488331565268994,24488340155203586,24488481889124354,24488451824353282,24488469004222466,24488348745138178,24488353040105474,24488473299189762,24769961159884800,24770090015981569,24769969749557248,24769965456424960,25051427547119616,25051539215417345,25051414662807552,25051530626662401,25051371712806912,25051406073200640,25051277223198720,25051543510712321,25051466202546176,25051380303790080,25051483383136257,25051547807449089,25051397481693184,25051294403919872,25051285813592064,25051444726267904,25051376008560640,25051449022152704,25051491978313729,25051436136595456,25051453316988928,25051461907382272,25051500564381697,25051440433135616,25051457611563008,25051496269283329,25051522036006913,25051526331105281,25051517741236225,25051534921760769,25051564985483265,25051556396007425,25051552100384769,25332881052794882,25332808038350850,25332885347762178,25332769383645186,25332859577958402,25614231474274306,25614334553489410,25614278718914562,25614373208195074,25614368913227778,25614351733358594,25614287308849154,25614308783685634,25614300193751042,25614257244078082,25614313078652930,25614252949110786,25614381798129666,25614295898783746,25614317373620226,25614304488718338,25614248654143490,25614523532050434,25614291603816450,25614265834012674,25614270128979970,25614261539045378,25614274423947266,25614240064208898,25895770875428866,25895788055298050,25895783760330754,25895848184840194,25895727925755906,25895792350265346,25895753695559682,25895706450919426,25895843889872898,25895775170396162,25895736515690498,25895826710003714,25895723630788610,25895745105625090,25895856774774786,25895779465363458,25895766580461570,25895715040854018,25895762285494274,25895732220723202,25895740810657794,25895809530134530,25895749400592386,25895998508695554,26177301686648834,26177207197368322,26177211492335618,26177473485340674,26177224377237506,26177237262139394,26177202902401026,26177190017499138,26177198607433730,26177228672204802,26177318866518018,26177220082270210,26177331751419906,26177263031943170,26177258736975874,26177245852073986,26177181427564546,26177215787302914,26177267326910466,26177254442008578,26177250147041282,26177241557106690,26177284506779650,26177323161485314,26458742302900226,26458806727409666,26458798137475074,26458673583423490,26458776662638594,26458677878390786,26458948461330434,26458664993488898,26458793842507778,26458738008588288,26458656403554306,26458759482769410,26740212984709122,26740234459545602,26740268819283970,26740423438106626,26740217279676418,26740273114251266,26740204396150784,26740281704185858,26740148560199682,26740152855166978,26740208691052544,26740131380330498,26740139970265090,26740251639414786,27021735210975232,27303081338732544,27584573495377920,27866108596453378,27866134366257154,27866168725995522,27866095711551490,27866100006518786,27866173020962818,27866065646780418,27866151546126338,27866061351813122,27866087121616898,27866112891420674,27866181610897410,27866117186387970,27866091416584194,27866104301486082,27866031287042050,27866044171943938,27866323344818178,27866078531682306,27866039876976642,27866074236715010,27866052761878530,27866048466911234,27866069941747714,27866057056845826,27866026992074754,28147686651199488,28147605047607296,28147725312393217,28147776844201985,28147746779824129,28147751074922497,28147678060806144,28147501967015936,28147759665577985,28147690946363392,28147519147737088,28147755370479617,28147772551266305,28147622225510400,28147652290936832,28147660880412672,28147669470085120,28147600752377856,28147630817017856,28147673765969920,28147708126953473,28147721017360385,28147682355380224,28147789729300481,28147510557409280,28147639406624768,28147596456624128,28147781139824641,28147768254529537,28147763959234561,28147665176952832,28147742485053441,28429002715496450,28429054255104002,28429037076676608,28429062845038594,28429041371774976,28429101499744258,28428981240659970,28429084319875074,28428989830594562,28429049961775104,28429045666676736,28429122974580738,28428998420529154,28429131564515330,28429067140005890,28429273298436098,28429118679613442,28429058550071298,28710456217436162,28710559296651266,28710524938485760,28710533526847490,28710748275212290,28710520643387392,28710464807370754,28710529231880194,28710473397305346,28710537821814786,28710512053387264,28710597951356930,28710516348485632,28710576476520450,28710606541291522,28710542116782082,28710593656389634,28710477692272642,28992042860675074,28991944076427266,28992047155642370,28992055745576962,28992107285184514,28992034270740482,28992021385838594,28992102990217218,28992072925446146,28992029975773186,28992068630478850,28991931191525378,28992115875119106,28992051450609666,28991952666361858,28992223249301506,28991939781459970,28992081515380738,28992077220413442,28992098695249922,28992090105315330,28992094400282626,28992085810348034,28992111580151810,28992025680805890,28991935486492674,28991926896558082,28991948371394562,28992064335511554,29273453415170048,29273556494778370,29273470595432450,29273414760857602,29273526430007298,29273474890399746,29273462005497858,29273466300465154,29273483480334338,29273698228699138,29273431940268032,29273547904843778,29273543609876482,29273427645759490,29273423350792194,29273492070268930,29273479185367042,29273436235169792,29273406170923010,29273509250138114,29273487775301634,29554889737699330,29554898327633922,29554881147764738,29555022881685506,29554928391880704,29555001406849026,29554906916978688,29554962752143362,29555018586718210,29554911211880448,29554902622601218,29554949867241474,29554958457176066,29554945572274178,29554954162208770,29555031471620098,29554936982339586,29554941277306882,29554984226979842,29555173205540866,29554967047110658,29836386188591104,29836442023755778,29836433433821186,29836364714344450,29836648182185986,29836493563363330,29836420548919298,29836476383494146,29836424843886594,29836459203624962,29836416253952002,29836373304279042,29836381893689344,29836497858330626,29836437728788482,29836506448265218,29836429138853890,29836403368591360,29836377599246338,29836411958984706,29836356124409858,30117904115695618,30117886935826434,30117899820728322,30117917000597506,30117891230793730,30117878345302016,30117981425106946,30117951360335874,30117861165301760,30117839691186178,30117908410662914,30117852576088066,30117848281120770,30117972835172354,30117895525761026,30117831101251586,30117968540205058,30117856870400000,30117934180466690,30117912705630210,30118123159027714,30399477874491392,30399439220310016,30399550888607745,30399473579655168,30399516536209409,30399301780701184,30399589542985729,30399546593509377,30399482169065472,30399490760048640,30399318961422336,30399464990638080,30399422039195648,30399486464884736,30399469283770368,30399572364951553,30399580953509889,30399452104622080,30399404861292544,30399568068214785,30399396270309376,30399525121884161,30399563772919809,30399400566063104,30399430630703104,30399520826785793,30399507940638721,30399542298738689,30399310371094528,30399460694097920,30399559479263233,30399555184164865,30399576657887233,30680793938132992,30680785347805184,30680965736759296,30680879838003200,30680927081332736,30681025865318401,30680957145776128,30680948556365824,30680982917349377,30680995803496449,30681038749630465,30680961441595392,30681047341662209,30681051634597889,30680991512985601,30680952851202048,30681021570220033,30680776757411840,30680871247020032,30680875542773760,30681017275449345,30681043044925441,30681034455973889,30680905607413760,30681030160875521,30680944260481024,30680939967348736,30680897015906304,30681064519696385,30680914197020672,30680935670808576,30681000098594817,30681055930220545,30962371992616960,30962513726341121,30962535209238529,30962496546930689,30962475075305473,30962354814713856,30962522318372865,30962530906931201,30962423533076480,30962492252160001,30962427827912704,30962436418306048,30962402058043392,30962251734122496,30962432122486784,30962350519484416,30962380584124416,30962410647519232,30962273212104706,30962346223730688,30962505137586177,30962466487140353,30962457894060033,30962414944059392,30962518021636097,30962260324515840,30962526611308545,30962470780207105,30962509432684545,30962440713469952,30962419237191680,30962256032235522,30962539496407041,30962500842029057,30962389173731328,30962268914843648,31243804023783426,31243851268423682,31243816908685314,31243731009339394,31243773959012354,31243726714372098,31243791138881538,31244023067115522,31243769664045058,31243812613718018,31243748189208578,31243739599273986,31243795433848834,31243881333194754,31243752484175874,31243761074110466,31243834088554498,31243778253979650,31243756779143170,31243765369077762,31243808318750722,31243872743260162,31243868448292866,31243743894241282,31243786843914242,31243799728816130,31525300472905728,31525450795450369,31525360600940544,31525373486497792,31525304768135168,31525377781334016,31525476564729857,31525201687543808,31525425028726785,31525442205581313,31525480860352513,31525369190612992,31525420733628417,31525386371727360,31525210277937152,31525472271794177,31525339127152640,31525364897480704,31525382075908096,31525296177152000,31525489449828353,31525330537545728,31525459386105857,31525416443248641,31525352011464704,31525321946038272,31525467975057409,31525407847481345,31525463679762433,31525455091007489,31525446500352001,31525390666891264,31525218868264960,31806912894861313,31806809809092610,31806865646813184,31806908596420609,32088160231358464,32088422225215489,32088426518151169,32088430813773825,32088289080573952,32088246130573312,32088357800902657,32088413633183745,32088370687049729,32088336325148672,32088323439919104,32088374982148097,32088396453773313,32088400748871681,32088327734755328,32088409339527169,32088340620312576,32088250426327040,32088310554361856,32088151640965120,32088301964886016,32088405044428801,32088417928478721,32088392159002625,32088319144034304,32088314850902016,32088439403249665,32088332029329408,32088254721556480,32088280490967040,32088366396801025,32088168821686272,32088271899459584,32369669568004098,32369691042840578,32369643798200322,32369922971074562,32369652388134914,32369733992513538,32369665273036802,32369673862971394,32369682452905986,32369660978069506,32369626618331138,32369708222709762,32369712517677058,32369639503233026,32369648093167618,32369695337807874,32369686747873282,32369699632775170,32369716812644354,32369772647219202,32369678157938690,32369703927742466,32369656683102210,32369781237153794,32369630913298434,32369768352251906,32369751172382722,32651178906746882,32651127367139330,32651247626223618,32651166021844994,32651226151387138,32651148841975810,32651144547008514,32651131662106626,32651397950078978,32651161726877698,32651118777204738,32651105892302850,32651114482237442,32651123072172034,32651135957073922,32651243331256322,32651101597335554,32651191791648770,32651208971517954,32651256216158210,32651174611779586,32651183201714178,32651153136943106,32651170316812290,32651140252041218,32651187496681474,32932683945148418,32932593753128960,32932632405540866,32932709714952194,33214176109395968,33495694027587584,33495805697327105,33495655374520320,33495685437915136,33495801401704449,33495663964127232,33495749865701377,33495745570603009,33495535114911744,33495741280485377,33495792812032001,33495621014126592,33495732684455937,33495676848439296,33495526524518400,33495629605109760,33495814286802945,33495646783012864,33495543705239552,33495775632424961,33495767042555905,33495689734455296,33495771337326593,33495788516737025,33495779927982081,33495797108768769,33495625309880320,33495711208701952,33495698323472384,33495784223080449,33495706912882688,33495715503865856,33495702618308608,33777087403589634,33777018684112898,33777005799211010,33777027274047490,33777074518687746,33777147533131778,33777078813655042,33777061633785858,33777048748883970,33777001504243714,33777022979080194,33777035863982082,33777053043851266,33777044453916674,33777156123066370,33777143238164482,33777014389145602,33777040158949378,33777108878426114,33777126058295298,33777083108622338,33777031569014786,33777070223720450,33777065928753154,33777297856987138,33777091698556930,34058772833763330,34058480775987202,34058583855202306,34058502250823682,34058515135725570,34058540905529346,34058506545790978,34058566675333122,34058493660889090,34058528020627458,34058545200496642,34058622509907970,34058562380365826,34058601035071490,34058536610562050,34058489365921794,34058523725660162,34058553790431234,34058510840758274,34058497955856386,34058519430692866,34058549495463938,34058476481019906,34058558085398530,34058631099842562,34058618214940674,34340127548506114,34340247807590402,34340131843473410,34340118958571522,34339977224650754,34340106073669634,34340114663604226,34340045944127490,34340140433408002,34340050239094786,34339951454846978,34340080303865858,34339972929683458,34340088893800450,34340071713931266,34339968634716162,34340058829029378,34340076008898562,34340097483735042,34340123253538818,34340101778702338,34340054534062082,34340067418963970,34339960044781570,34339955749814274,34339964339748866,34340110368636930,34340093188767746,34340136138440706,34621722784497666,34621581050576898,34621439316656130,34621447906590722,34621533805936642,34621452201558018,34621430726721538,34621568165675010,34621550985805826,34621572460642306,34903047444627456,35184397867352064,35465872839606274,35465855659737090,35747468072845314,35747480957747202,35747330633891842,35747347813761026,35747622691667970,35747352108728322,35747339223826434,35747433713106946,35747450892976130,35747472367812610,36028934459883522,36310302061428738,36310289176526850,36310572644368386,36591768449056768,36591918771404800,36591888707944448,36591901592256512,36591927362125824,36592039030620161,36592026145521665,36591759858728960,36591880118337536,36591845757943808,36591871526830080,36591850053697536,36592030441144321,36591914478272512,36592013260554241,36591751268335616,36591970319532033,36591910181732352,36592004671799297,36591854348926976,36591957428273153,36592008966897665,36591940247683072,36591923067289600,36592021852585985,36591935952519168,36591996081143809,36591931656699904,36591974614433793,36592017555849217,36591991786373121,36592000376242177,36873380864655362,36873239130734594,36873252015636482,36873367979753474,36873350799884290,36873333620015106,36873372274720770,36873230540800002,36873522598576130,36873247720669186,37154976098942977,37154963213975553,37154804302348288,37154988984041473,37154838661365760,37154954625220609,37154980394565633,37154971806007297,37154860135153664,37154795711365120,37154907381694465,37154718402478080,37154873020710912,37154950329663489,37154881610121216,37154920273084417,37154877315547136,37154946034565121,37154709812150272,37154924567986177,37154967509270529,37154868724826112,37154890201104384,37154830071758848,37154701221756928,37154941739794433,37154864431693824,37154885905940480,37154800007118848,37154958920318977,37154851545677824,37154821480251392,37436219151745026,37436197676908546,37436249216516098,37436206266843138,37436210561810434,37436330820894722,37436266396385282,37436253511483394,37436227741679618,37436300756123650,37436244921548802,37436472554815490,37436317935992834,37436176202072066,37436240626581506,37436201971875842,37436189086973954,37436236331614210,37436283576254466,37436223446712322,37436322230960130,37436214856777730,37436193381941250,37436262101417986,37436257806450690,37436180497039362,37717792909557762,37717947528380418,37717797204525058,37717775729688578,37717805794459650,37717672650473474,37717758549819394,37717655470604290,37717664060538882,37717676945440770,37999242116268034,37999267886071810,37999422504894466,37999272181039106,37999126152151042,37999250706202626,37999263591104514,37999246411235330,37999130447118338,37999233526333442,37999306540777474,37999139037052930,37999147626987522,37999220641431554,37999280770973698,37999310835744770,37999289360908290,37999285065940994,37999297950842882,37999229231366146,37999143332020226,37999224936398850,37999293655875586,37999302245810178,37999276476006402,37999315130712066,37999151921954818,37999255001169922,37999134742085634,38280626898731010,38280605423894530,38280755747749890,38280622603763714,38280614013829122,38280708503109634,38280897481670658,38280742862848002,38280747157815298,38280725682978818,38562247904133122,38562213544394754,38562217839362050,38562260789035010,38562222134329346,38562252199100418,38562097580277762,38562196364525570,38562256494067714,38562192069558274,38562080400408578,38562243609165826,38562093285310466,38562226429296642,38562200659492866,38562204954460162,38562265084002306,38562174889689090,38562239314198530,38562088990343170,38562372458184706,38562183479623682,38562170594721794,38562235019231234,38562101875245058,38562179184656386,38562076105441282,38562230724263938,38562084695375874,];
fn _semaction_rule_0_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut ls = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<Vec<expr>>::default()}; Beginseq(ls.ToArray() |> Array.toList) }
fn _semaction_rule_1_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<Vec<expr>>::default()}; ls.Add(e); Beginseq(ls.ToArray() |> Array.toList) }
fn _semaction_rule_2_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut df = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<Vec<expr>>::default()}; ls.Add(df); Beginseq(ls.ToArray() |> Array.toList) }
fn _semaction_rule_3_(parser:&mut ZCParser<RetTypeEnum,()>) -> Vec<expr> {
new Vec<expr>() }
fn _semaction_rule_4_(parser:&mut ZCParser<RetTypeEnum,()>) -> Vec<expr> {
let mut st = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<Vec<expr>>::default()}; ls.Add(st); ls }
fn _semaction_rule_5_(parser:&mut ZCParser<RetTypeEnum,()>) -> Vec<expr> {
let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_7(_x_7)=parser.popstack().value { _x_7 } else {<Vec<expr>>::default()}; ls }
fn _semaction_rule_6_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut sts = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; sts }
fn _semaction_rule_7_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_8_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_9_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_10_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_11_(parser:&mut ZCParser<RetTypeEnum,()>) -> (lltype*string) {
let mut v = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<string>::default()}; (LLunknown, v) }
fn _semaction_rule_12_(parser:&mut ZCParser<RetTypeEnum,()>) -> (lltype*string) {
let mut p = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<(lltype*string)>::default()}; p }
fn _semaction_rule_13_(parser:&mut ZCParser<RetTypeEnum,()>) -> (lltype*string) {
let mut t = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } else {<lltype>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut v = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<string>::default()}; (t, v) }
fn _semaction_rule_14_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut df = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; df }
fn _semaction_rule_15_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _p_ = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<(lltype*string)>::default()}; let mut p = parser.lbx(1,_p_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Define(p, e) }
fn _semaction_rule_16_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut st = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; st }
fn _semaction_rule_17_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e3 = parser.lbx(5,_e3_); let mut _item4_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(1,_e1_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Ifelse(e1, e2, e3) }
fn _semaction_rule_18_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e2 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(1,_e1_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Whileloop(e1, e2) }
fn _semaction_rule_19_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e2 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _p_ = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<(lltype*string)>::default()}; let mut p = parser.lbx(1,_p_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Beginseq([Define(p, e1); e2]) }
fn _semaction_rule_20_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e3 = parser.lbx(5,_e3_); let mut _item4_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(1,_e1_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Ifelse(e1, e2, e3) }
fn _semaction_rule_21_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e2 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(1,_e1_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Whileloop(e1, e2) }
fn _semaction_rule_22_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e2 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item4_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _p_ = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<(lltype*string)>::default()}; let mut p = parser.lbx(1,_p_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Beginseq([Define(p, e1); e2]) }
fn _semaction_rule_23_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(2,_e_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut lv = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Setq(lv, e) }
fn _semaction_rule_24_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _v_ = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<string>::default()}; let mut v = parser.lbx(0,_v_); Var(v) }
fn _semaction_rule_25_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(2,_e_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _lv_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut lv = parser.lbx(0,_lv_); Index(lv, e) }
fn _semaction_rule_26_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(3,_e_); let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<(LBox<lltype*string> list)>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Lambda(ls, LLunknown, e) }
fn _semaction_rule_27_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(4,_e_); let mut _item3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<(LBox<lltype*string> list)>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut t = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } else {<lltype>::default()}; Lambda(ls, t, e) }
fn _semaction_rule_28_(parser:&mut ZCParser<RetTypeEnum,()>) -> (LBox<lltype*string> list) {
[] }
fn _semaction_rule_29_(parser:&mut ZCParser<RetTypeEnum,()>) -> (LBox<lltype*string> list) {
let mut _p_ = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<(lltype*string)>::default()}; let mut p = parser.lbx(0,_p_); [p] }
fn _semaction_rule_30_(parser:&mut ZCParser<RetTypeEnum,()>) -> (LBox<lltype*string> list) {
let mut ls = if let RetTypeEnum::Enumvariant_10(_x_10)=parser.popstack().value { _x_10 } else {<(LBox<lltype*string> list)>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _p_ = if let RetTypeEnum::Enumvariant_9(_x_9)=parser.popstack().value { _x_9 } else {<(lltype*string)>::default()}; let mut p = parser.lbx(0,_p_); p::ls }
fn _semaction_rule_31_(parser:&mut ZCParser<RetTypeEnum,()>) -> lltype {
let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; LLunit }
fn _semaction_rule_32_(parser:&mut ZCParser<RetTypeEnum,()>) -> lltype {
let mut t = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } else {<lltype>::default()}; t }
fn _semaction_rule_33_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_34_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_35_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_36_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_37_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_38_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_39_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_40_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut lv = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; lv }
fn _semaction_rule_41_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut rv = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; rv }
fn _semaction_rule_42_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; e }
fn _semaction_rule_43_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("or", e1, e2) }
fn _semaction_rule_44_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("and", e1, e2) }
fn _semaction_rule_45_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("eq", e1, e2) }
fn _semaction_rule_46_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("neq", e1, e2) }
fn _semaction_rule_47_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("<", e1, e2) }
fn _semaction_rule_48_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop(">", e1, e2) }
fn _semaction_rule_49_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("<=", e1, e2) }
fn _semaction_rule_50_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop(">=", e1, e2) }
fn _semaction_rule_51_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("+", e1, e2) }
fn _semaction_rule_52_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("-", e1, e2) }
fn _semaction_rule_53_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("^", e1, e2) }
fn _semaction_rule_54_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("*", e1, e2) }
fn _semaction_rule_55_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("/", e1, e2) }
fn _semaction_rule_56_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Binop("%", e1, e2) }
fn _semaction_rule_57_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(1,_e_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Uniop("not", e) }
fn _semaction_rule_58_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(1,_e_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Uniop("~", e) }
fn _semaction_rule_59_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(1,_e_); let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Uniop("display", e) }
fn _semaction_rule_60_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<(LBox<expr> list)>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(0,_e_); Apply(e, ls) }
fn _semaction_rule_61_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<(LBox<expr> list)>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(0,_e_); Apply(e, ls) }
fn _semaction_rule_62_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item3_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(2,_e2_); let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = parser.lbx(0,_e1_); Index(e1, e2) }
fn _semaction_rule_63_(parser:&mut ZCParser<RetTypeEnum,()>) -> (LBox<expr> list) {
[] }
fn _semaction_rule_64_(parser:&mut ZCParser<RetTypeEnum,()>) -> (LBox<expr> list) {
let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(0,_e_); [e] }
fn _semaction_rule_65_(parser:&mut ZCParser<RetTypeEnum,()>) -> (LBox<expr> list) {
let mut ls = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<(LBox<expr> list)>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e = parser.lbx(0,_e_); e::ls }
fn _semaction_rule_66_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut n = if let RetTypeEnum::Enumvariant_3(_x_3)=parser.popstack().value { _x_3 } else {<int>::default()}; Integer(n) }
fn _semaction_rule_67_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut f = if let RetTypeEnum::Enumvariant_4(_x_4)=parser.popstack().value { _x_4 } else {<float>::default()}; Floatpt(f) }
fn _semaction_rule_68_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut s = if let RetTypeEnum::Enumvariant_6(_x_6)=parser.popstack().value { _x_6 } else {<string>::default()}; Strlit(s) }
fn _semaction_rule_69_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut ls = if let RetTypeEnum::Enumvariant_12(_x_12)=parser.popstack().value { _x_12 } else {<(LBox<expr> list)>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Listseq(ls) }
fn _semaction_rule_70_(parser:&mut ZCParser<RetTypeEnum,()>) -> expr {
let mut _item4_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _e2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e2 = parser.lbx(3,_e2_); let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut e1 = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; Listdefault(e1, e2) }
fn _semaction_rule_71_(parser:&mut ZCParser<RetTypeEnum,()>) -> lltype {
let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; LLint }
fn _semaction_rule_72_(parser:&mut ZCParser<RetTypeEnum,()>) -> lltype {
let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; LLfloat }
fn _semaction_rule_73_(parser:&mut ZCParser<RetTypeEnum,()>) -> lltype {
let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; LLstring }
fn _semaction_rule_74_(parser:&mut ZCParser<RetTypeEnum,()>) -> lltype {
let mut _item2_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut _item1_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; let mut t = if let RetTypeEnum::Enumvariant_13(_x_13)=parser.popstack().value { _x_13 } else {<lltype>::default()}; LLlist(t) }
fn _semaction_rule_75_(parser:&mut ZCParser<RetTypeEnum,()>) -> () {
let mut _item0_ = if let RetTypeEnum::Enumvariant_0(_x_0)=parser.popstack().value { _x_0 } else {<expr>::default()}; <()>::default()}
pub fn make_parser() -> ZCParser<RetTypeEnum,()>
{
let mut parser1:ZCParser<RetTypeEnum,()> = ZCParser::new(76,138);
let mut rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("start");
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Stmts");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_0_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Stmts");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_1_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Stmts");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_2_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("StmtList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_7(_semaction_rule_3_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("StmtList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_7(_semaction_rule_4_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("StmtList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_7(_semaction_rule_5_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("BlockStmt");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_6_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Expr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_7_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Expr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_8_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Stmt");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_9_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Stmt");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_10_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Param");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_9(_semaction_rule_11_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Param");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_9(_semaction_rule_12_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("TypedParam");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_9(_semaction_rule_13_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Stmt");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_14_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("DefineExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_15_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("BlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_16_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("BlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_17_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("BlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_18_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("BlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_19_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_20_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_21_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_22_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_23_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("LValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_24_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("LValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_25_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_26_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_27_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ParamList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_10(_semaction_rule_28_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ParamList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_10(_semaction_rule_29_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ParamList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_10(_semaction_rule_30_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ReturnType");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_13(_semaction_rule_31_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ReturnType");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_13(_semaction_rule_32_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("NonBlockExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_33_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("OrExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_34_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("AndExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_35_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("EqExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_36_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("CompExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_37_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("PlusExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_38_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("TimesExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_39_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("UnaryExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_40_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("UnaryExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_41_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_42_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("OrExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_43_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("AndExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_44_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("EqExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_45_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("EqExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_46_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("CompExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_47_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("CompExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_48_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("CompExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_49_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("CompExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_50_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("PlusExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_51_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("PlusExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_52_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("PlusExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_53_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("TimesExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_54_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("TimesExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_55_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("TimesExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_56_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("UnaryExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_57_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("UnaryExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_58_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("UnaryExpr");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_59_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_60_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_61_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_62_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ArgList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_12(_semaction_rule_63_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ArgList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_12(_semaction_rule_64_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("ArgList");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_12(_semaction_rule_65_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_66_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_67_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_68_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_69_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("RValue");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_0(_semaction_rule_70_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Type");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_13(_semaction_rule_71_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Type");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_13(_semaction_rule_72_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Type");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_13(_semaction_rule_73_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("Type");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_13(_semaction_rule_74_(parser)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<RetTypeEnum,()>::new_skeleton("START");
rule.Ruleaction = |parser|{ RetTypeEnum::Enumvariant_1(_semaction_rule_75_(parser)) };
parser1.Rules.push(rule);
parser1.Errsym = "";
parser1.resynch.insert("SEMICOLON");
for i in 0..2227 {
let symi = ((TABLE[i] & 0x0000ffff00000000) >> 32) as usize;
let sti = ((TABLE[i] & 0xffff000000000000) >> 48) as usize;
parser1.RSM[sti].insert(SYMBOLS[symi],decode_action(TABLE[i]));
}
for s in SYMBOLS { parser1.Symset.insert(s); }
load_extras(&mut parser1);
return parser1;
} //make_parser
pub fn parse_with<'t>(parser:&mut ZCParser<RetTypeEnum,()>, lexer:&mut toddlexer<'t>) -> Result<expr,expr>
{
lexer.shared_state = Rc::clone(&parser.shared_state);
if let RetTypeEnum::Enumvariant_0(_xres_) = parser.parse(lexer) {
if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
} else { Err(<expr>::default())}
}//parse_with public function
pub fn parse_train_with<'t>(parser:&mut ZCParser<RetTypeEnum,()>, lexer:&mut toddlexer<'t>, parserpath:&str) -> Result<expr,expr>
{
lexer.shared_state = Rc::clone(&parser.shared_state);
if let RetTypeEnum::Enumvariant_0(_xres_) = parser.parse_train(lexer,parserpath) {
if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
} else { Err(<expr>::default())}
}//parse_train_with public function
//Enum for return values
pub enum RetTypeEnum {
Enumvariant_3(int),
Enumvariant_1(()),
Enumvariant_4(float),
Enumvariant_6(string),
Enumvariant_7(Vec<expr>),
Enumvariant_13(lltype),
Enumvariant_0(expr),
Enumvariant_9((lltype*string)),
Enumvariant_2((usize,usize)),
Enumvariant_12((LBox<expr> list)),
Enumvariant_10((LBox<lltype*string> list)),
}
impl Default for RetTypeEnum { fn default()->Self {RetTypeEnum::Enumvariant_0(<expr>::default())} }
// Lexical Scanner using RawToken and StrTokenizer
pub struct toddlexer<'t> {
stk: StrTokenizer<'t>,
keywords: HashSet<&'static str>,
lexnames: HashMap<&'static str,&'static str>,
shared_state: Rc<RefCell<()>>,
}
impl<'t> toddlexer<'t>
{
pub fn from_str(s:&'t str) -> toddlexer<'t> {
Self::new(StrTokenizer::from_str(s))
}
pub fn from_source(s:&'t LexSource<'t>) -> toddlexer<'t> {
Self::new(StrTokenizer::from_source(s))
}
pub fn new(mut stk:StrTokenizer<'t>) -> toddlexer<'t> {
let mut lexnames = HashMap::with_capacity(64);
let mut keywords = HashSet::with_capacity(64);
let shared_state = Rc::new(RefCell::new(<()>::default()));
for kw in ["string","while","void","define","print","or","not","if","in","and","else","do","then","lambda","neq","let","_WILDCARD_TOKEN_","eq","int","float",] {keywords.insert(kw);}
for c in ['(','[','-','~','/','*','=','}',':','>','%',',',')','<',']','.','^',';','+','{',] {stk.add_single(c);}
for d in ["<=",">=",] {stk.add_double(d);}
for d in [] {stk.add_triple(d);}
for (k,v) in [(r"let","LET"),(r"if","IF"),(r"(","LPAREN"),(r"<=","LESSEQ"),(r"do","DO"),(r"string","T_STRING"),(r"neq","NEQ"),(r"[","LSQUAREB"),(r"in","IN"),(r"-","MINUS"),(r"~","NEGATE"),(r"/","DIV"),(r"*","TIMES"),(r"=","ASSIGN"),(r"}","RCURLYB"),(r":","COLON"),(r"else","ELSE"),(r">","GREATER"),(r"and","AND"),(r"%","MOD"),(r"while","WHILE"),(r",","COMMA"),(r"eq","EQ"),(r"not","NOT"),(r"then","THEN"),(r")","RPAREN"),(r"<","LESS"),(r"print","PRINT"),(r"]","RSQUAREB"),(r".","DOT"),(r"lambda","LAMBDA"),(r"or","OR"),(r"^","CARET"),(r"int","T_INT"),(r">=","GREATEREQ"),(r"void","T_VOID"),(r";","SEMICOLON"),(r"float","T_FLOAT"),(r"define","DEFINE"),(r"+","PLUS"),(r"{","LCURLYB"),] {lexnames.insert(k,v);}
toddlexer {stk,keywords,lexnames,shared_state,}
}
}
impl<'t> Tokenizer<'t,RetTypeEnum> for toddlexer<'t>
{
fn nextsym(&mut self) -> Option<TerminalToken<'t,RetTypeEnum>> {
let tokopt = self.stk.next_token();
if let None = tokopt {return None;}
let token = tokopt.unwrap();
match token.0 {
RawToken::Alphanum(sym) if self.keywords.contains(sym) => {
let truesym = self.lexnames.get(sym).unwrap_or(&sym);
Some(TerminalToken::from_raw(token,truesym,<RetTypeEnum>::default()))
},
RawToken:: Num => Some(TerminalToken::from_raw(token,"Integer",RetTypeEnum::Enumvariant_3( int
))),
RawToken:: Float => Some(TerminalToken::from_raw(token,"Float",RetTypeEnum::Enumvariant_4( float
))),
RawToken:: StrLit => Some(TerminalToken::from_raw(token,"StringLit",RetTypeEnum::Enumvariant_6( (fun x -> x)
))),
RawToken:: Alphanum => Some(TerminalToken::from_raw(token,"Var",RetTypeEnum::Enumvariant_6( (fun x -> x)
))),
RawToken::Symbol(s) if self.lexnames.contains_key(s) => {
let tname = self.lexnames.get(s).unwrap();
Some(TerminalToken::from_raw(token,tname,<RetTypeEnum>::default()))
},
RawToken::Symbol(s) => Some(TerminalToken::from_raw(token,s,<RetTypeEnum>::default())),
RawToken::Alphanum(s) => Some(TerminalToken::from_raw(token,s,<RetTypeEnum>::default())),
_ => Some(TerminalToken::from_raw(token,"<LexicalError>",<RetTypeEnum>::default())),
}
}
fn linenum(&self) -> usize {self.stk.line()}
fn column(&self) -> usize {self.stk.column()}
fn position(&self) -> usize {self.stk.current_position()}
fn current_line(&self) -> &str {self.stk.current_line()}
fn get_line(&self,i:usize) -> Option<&str> {self.stk.get_line(i)}
fn get_slice(&self,s:usize,l:usize) -> &str {self.stk.get_slice(s,l)}
fn transform_wildcard(&self,t:TerminalToken<'t,RetTypeEnum>) -> TerminalToken<'t,RetTypeEnum> { TerminalToken::new(t.sym,RetTypeEnum::Enumvariant_2((self.stk.previous_position(),self.stk.current_position())),t.line,t.column) }
}//impl Tokenizer
fn load_extras(parser:&mut ZCParser<RetTypeEnum,()>)
{
}//end of load_extras: don't change this line as it affects augmentation