//Parser generated by rustlr
#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_mut)]
#![allow(unused_imports)]
#![allow(unused_assignments)]
extern crate rustlr;
use rustlr::{RuntimeParser,RProduction,Stateaction,decode_action};
use crate::abstract_syntax::*;
use crate::abstract_syntax::Expr::*;
const SYMBOLS:[&'static str;32] = ["E","ES","+","-","*","/","%","^","(",")","COLON","=","<","<=","==",".",";","&&","OROR","!","if","else","while","let","cin","cout","lambda","Var","Val","Str","START","EOF"];
const TABLE:[u64;1226] = [81604575232,85899608064,107374772224,94489804800,120259477504,65537,12885229568,103079870464,98785034240,34360459264,115964575744,111669280768,281487862661120,281483568218112,281547992334336,281530812268544,281505042923520,281535107170304,281552287498240,281500747759616,281496453054464,281526517432320,281492157431808,281608120696835,281543697498112,563065919176704,844545189609472,844519419936768,844536599412736,844506534707200,844540894707712,844528010002432,844437815361536,844510829740032,844424931835905,844459290591232,844532304904192,844523715166208,1125998691876864,1125912792072192,1126020166320128,1126002986713088,1125985806450688,1126011576123392,1125934267301888,1125994396647424,1126015871418368,1126007281614848,1125981511417856,1125899908612097,1407469373358080,1407387768782848,1407486552834048,1407495143030784,1407490848129024,1407409244012544,1407374885388289,1407460783161344,1407473668587520,1407482258325504,1407456488128512,1407477963423744,1688879925035010,1688983004250114,1688922874707970,1688944349544450,1688931464642562,1688888514969602,1688948644511746,1688940054577154,1688970119348226,1688927169675266,1688905694838786,1688957234446338,1688875630067714,1688867040133122,1688901399871490,1688871335100418,1688918579740674,1688965824380930,1688892809936898,1688862745165826,1688884220002306,1688909989806082,1688858450198530,1688961529413634,1688952939479042,1688935759609858,1970363493449730,1970350608547842,1970436507893762,1970402148155394,1970423622991874,1970457982730242,1970333428678658,1970342018613250,1970337723645954,1970359198482434,1970419328024578,1970427917959170,1970384968286210,1970367788417026,1970445097828354,1970410738089986,1970346313580546,1970415033057282,1970432212926466,1970440802861058,1970376378351618,1970372083515392,1970354903515138,1970380673318914,1970406443122690,1970397853188098,1970393558220802,2251834175389696,2533274792427521,2533360690003968,2533399346544640,2533390754971648,2533395049873408,2533373575430144,2533382165168128,2533309150855168,2533287675625472,2533356394971136,2533369280200704,2533386459676672,2533377870266368,2814852846518274,2814792716976130,2814771242139650,2814835666649090,2814809896845314,2814844256583682,2814822781747202,2814784127041538,2814827076714498,2814766947172354,2814801306910722,2814861436452866,2814762652205058,2814775537106946,2814882911289346,2814839961616386,2814788422008834,2814865731420162,2814779832074242,2814758357237762,2814848551550978,2814818486779906,2814805601878018,2814831371681794,2814857141485570,2814870026387458,3096340710096896,3096336413097984,3096323528851456,3096306348392448,3096319233622016,3096259104276480,3096224746045441,3096327823687680,3096345003294720,3096237629046784,3096310643425280,3096332118589440,3377815686938624,3659294956716032,3659209057697792,3659256301813760,3659290661814272,3659277777108992,3659260596846592,3659187582468096,3659273482272768,3659174699597825,3659269187043328,3659282072010752,3659286366519296,3940684034408448,3940761343229952,3940649676374017,3940744163753984,3940731278524416,3940769933426688,3940757048721408,3940748458983424,3940735573557248,3940662559178752,3940752753819648,3940765638524928,4222124653150209,4222210550267904,4222236319940608,4222159011119104,4222223435694080,4222137535889408,4222206255235072,4222227730530304,4222240615235584,4222219140464640,4222244910137344,4222232025432064,4503694117175296,4503599629926401,4503707002142720,4503702707240960,4503698412404736,4503715591946240,4503711296651264,4503681231945728,4503719886848000,4503633987829760,4503612512600064,4503685526978560,4785181978853376,4785190568656896,4785169093885952,4785108964540416,4785087489310720,4785074606702593,4785160503689216,4785186273361920,4785194863558656,4785173389115392,4785156208656384,4785177683951616,5066631185367040,5066648365826048,5066549583478785,5066665545367552,5066562466021376,5066652660662272,5066644070596608,5066635480399872,5066669840269312,5066583941251072,5066656955564032,5066661250072576,5348110457110528,5348123342536704,5348136226783232,5348140522078208,5348024560254977,5348144816979968,5348037442732032,5348127637372928,5348106162077696,5348131932274688,5348058917961728,5348119047307264,5629559665393666,5629525305655298,5629533894672384,5629568255328258,5629602614083584,5629611203493888,5629512419442688,5629508125786114,5629551075459074,5629555370426370,5629576845262850,5629542485524482,5629632679837698,5629572550295554,5629594024017920,5629499537031169,5629529600622594,5629615498788864,5629606908985344,5629538190557186,5629516715720706,5629589730164738,5629598319247360,5629503832064001,5629585433821184,5629581138788352,5629619793690624,5629521010688002,5911094770401280,5911069000728576,5911086180204544,5911073295958016,5911060410531840,5911077590794240,5911008871383040,5911090475499520,5910974513872897,5911056115499008,5911081885696000,5910987396153344,6192552567504896,6192569747111936,6192561156915200,6192565452210176,6192462372864000,6192535387242496,6192543977439232,6192531092209664,6192548272668672,6192483848093696,6192556862406656,6192449490649089,6474023249379328,6473958824804352,6473937349574656,6474040428920832,6474031839117312,6474036133625856,6474006068920320,6474044723822592,6474010363953152,6474018954149888,6473924467425281,6474027544215552,6755506815827968,6755515405631488,6755412326285312,6755519700533248,6755399444201473,6755433801515008,6755481045630976,6755498226089984,6755493930860544,6755502520926208,6755485340663808,6755511110336512,7036938845487104,7318405230297090,7318379460689920,7318443885002754,7318426705133570,7318456769904642,7318465359839234,7318357985984512,7318439590035458,7318388050427906,7318383755460610,7318375165526016,7318431000100866,7318409525264386,7318418115198978,7318370870820864,7318448179970050,7318400935329794,7318392345395202,7318362280427520,7318482539708418,7318452474937346,7318422410166274,7318435295068162,7318366575198208,7318461064871938,7318469654806530,7599880206745600,7599923156221952,7599910270795776,7599931745959936,7599841551908864,7599845847531520,7599850142236672,7599893091975168,7599884501647360,7599897386811392,7599824374464513,7599905975762944,7599901681975296,7599940335763456,7599936040468480,7599875911909376,7599944630665216,7599927451058176,7599858731646976,7599837259431936,7599854437400576,7599832962695168,7599918860992512,7881385248423938,7881325118947328,7881406723260418,7881342298750978,7881380953456642,7881393838358530,7881338003783682,7881312233979906,7881359478620162,7881415313195010,7881398133325826,7881368068554754,7881389543391234,7881411018227714,7881350888685570,7881307939012610,7881376658489346,7881402428293122,7881355183652866,7881329414111232,7881316528619520,7881372363522050,7881419608162306,7881333708816386,7881432493064194,7881320824242176,8162894584086528,8162877404479488,8162881699381248,8162890289184768,8162808685068288,8162774328016897,8162787209838592,8162873109643264,8162885993889792,8162868814413824,8162855929184256,8162860224217088,8444356676091904,8444369560797184,8444283661778944,8444335200927744,8444365265895424,8444352381190144,8444249304793089,8444343791124480,8444360970600448,8444262186549248,8444348086353920,8444330905894912,8725835947507714,8725780113588224,8725732869537792,8725823062605826,8725737163980800,8725827357573122,8725818767638530,8725767228030978,8725750049079296,8725775818752000,8725792997834754,8725741458751488,8725805882736642,8725797293654016,8725814472671234,8725810177703938,8725840242475010,8725754344243200,8725745754374144,8725762933063682,8725857422344194,8725801587769346,8725844537442306,8725831652540418,8725784408489984,8725758638096386,9007332398989314,9007289449316354,9007272269447170,9007212139905026,9007250794610690,9007285154349058,9007298039250946,9007302334218242,9007229319774210,9007280859381762,9007207844937730,9007237909708802,9007220729839618,9007225024806914,9007255089577986,9007259384545282,9007242204676098,9007216434872322,9007233614741506,9007276564414466,9007306629185538,9007267974479874,9007310924152834,9007315219120130,9007293744283650,9007319514087426,9288768721256448,9288790196027392,9288704297992194,9288777311322112,9288695708057602,9288755836026880,9288742952697858,9288760131059712,9288725772828674,9288700003024898,9288687116681216,9288734362763266,9288674234990593,9288773016485888,9288730067795970,9288691413090306,9288712887926786,9288794490929152,9288682823155714,9288781606223872,9288785900732416,9288721477992448,9288708591910912,9288751542632450,9288747247665154,9570187866472448,9570222223785984,9570166388883456,9570162094112768,9570157799669760,9570205043720192,9570226518949888,9570174979211264,9570170684506112,9570200748883968,9570209338621952,9570179274375168,9570217928949760,9851671433183232,10133172176551938,10133193651388418,10133137816813570,10133112047009794,10133210831257602,10133176471519234,10133159291650050,10133133521846274,10133185061453826,10133219421192194,10133154996682754,10133107752042498,10133129227796480,10133202241323010,10133142111780866,10133150701715458,10133167881584642,10133232306094082,10133116341977090,10133180766486530,10133206536290306,10133189356421122,10133124932632576,10133215126224898,10133120637927424,10133197946355714,10414690103197698,10414595614638080,10414677218295810,10414707283066882,10414664333393922,10414681513263106,10414668628361218,10414655743459330,10414694398164994,10414612793786370,10414685808230402,10414599909343232,10414651448492034,10414617088753666,10414625678688258,10414629973655554,10414660038426626,10414604204507136,10414634268622850,10414591319015424,10414642858557442,10414608498819074,10414647153917952,10414582729801728,10414672923328514,10414587024244736,10696130720301058,10696109245464578,10696070591348736,10696083475660802,10696066295726080,10696079181217792,10696169375006722,10696062000955392,10696147900170242,10696156490104834,10696165080039426,10696117835399170,10696074886053888,10696160785072130,10696182259908610,10696135015268354,10696092065595394,10696122130628608,10696152195137538,10696100655529986,10696104950497282,10696087770628098,10696057706512384,10696139310235650,10696143605202946,10696126425333762,10977601401585666,10977562746880002,10977631466356738,10977618581454850,10977554157928448,10977627171389442,10977584221716482,10977597106618370,10977644351258626,10977532682108930,10977549862764544,10977567041847298,10977545568059392,10977579926749186,10977536977076226,10977635761324034,10977622876422146,10977605696552962,10977575631781890,10977614286487554,10977609991520258,10977640056291330,10977558451912706,10977657236160514,10977592811651074,10977541272436736,11259054903853058,11259029134639104,11259115033395202,11259033429016578,11259072084049920,11259097853526018,11259080673656834,11259089263591426,11259037723983874,11259024839475200,11259084968624130,11259059198820354,11259110738427906,11259093558558722,11259007659933696,11259076378689538,11259106443460610,11259050608885762,11259102148493314,11259119328362498,11259011954376704,11259132213264386,11259067788754946,11259016249147392,11259042018951170,11259020544770048,11540512700891138,11540577125400578,11540581420367874,11540486931087360,11540495521480704,11540525585793026,11540585715335170,11540551355596802,11540555650564098,11540529880760322,11540516995858434,11540504111349760,11540491225858048,11540508405923842,11540547060629506,11540594305269762,11540534175727618,11540568535465986,11540607190171650,11540564240498690,11540542765662210,11540572830433282,11540590010302466,11540482636644352,11540559945531394,11540499816185856,11822047806750722,11822000562110466,11822060691652610,11822004857077762,11821987677208578,11822009152045058,11822026331914242,11821966202372098,11821970497339394,11822043511783426,11821991972175874,11821961907404802,11822052101718018,11822082166489090,11822034921848834,11822017741979650,11821974792306690,11821979088060416,11821983382241282,11822056396685314,11822069281587202,11822064986619906,11822039216816130,11822030626881538,11822022036946946,11821957612437506,12103497014181888,12103441179279360,12103449769607168,12103492721770496,12103475539279872,12103432590065664,12103454064771072,12103479834116096,12103436884508672,12103501309345792,12103445474902016,12103484129017856,12385032120827906,12384950516449282,12384933336580098,12385010645991426,12384941926514690,12384989171154946,12384980581220354,12384924746645506,12384929041612802,12385002056056834,12385019235926018,12384916156710914,12385014940958722,12384907566776322,12385006351024130,12384976286253058,12384920451678210,12384954811416578,12384937631547394,12384993466122242,12384959106383874,12384984876187650,12384997761089538,12384971991285762,12384967696318466,12384911861743618,12666494212177922,12666395428323328,12666472737341442,12666468442374146,12666442672570370,12666477032308738,12666459852439554,12666416902766594,12666399723028480,12666386837929984,12666429787537408,12666455557472258,12666434082439168,12666412607799298,12666464147406850,12666391132700672,12666408312832002,12666485622243330,12666507097079810,12666382543486976,12666489917210626,12666481327276034,12666404018192384,12666446967603200,12666451262504962,12666425492701184,12947952008626178,12947930533789698,12947883289149442,12947964893528066,12947887584116738,12947960598560770,12947947713658882,12947891879084034,12947870404247554,12947917648887810,12947878994182146,12947857519345666,12947956303593474,12947934828756994,12947939123724290,12947926238822402,12947861814312962,12947982073397250,12947921943855106,12947909058953218,12947874699214850,12947900469018626,12947866109280258,12947943418691586,12947904763985922,12947969188495362,13229375445598210,13229457049976834,13229366855663618,13229358265729026,13229362560696322,13229431280173058,13229336790892546,13229418395271170,13229345380827138,13229409805336578,13229392625467394,13229405510369282,13229426985205762,13229379740565506,13229414100303874,13229349675794434,13229396920434690,13229341085859842,13229439870107650,13229332495925250,13229401215401986,13229384035532802,13229422690238466,13229435575140354,13229444165074946,13229353971613696,13510919141588994,13510854717079554,13510850422112258,13510824653160448,13510859012046850,13510901961719810,13510841832177666,13510837537210370,13510914846621698,13510889076817922,13510932026490882,13510867601981442,13510893371785218,13510910551654402,13510811768061952,13510807472439298,13510897666752514,13510906256687106,13510880486883330,13510884781850626,13510820358455296,13510876191916034,13510816062832640,13510871896948738,13510828948324352,13510833242243074,13792372643856384,13792273862623233,13792286744051712,13792359758430208,13792394118299648,13792389823397888,13792308219281408,13792385528102912,13792381233594368,13792368348626944,13792355463397376,13792376938692608,14073774606581760,14073826146320384,14073804671090688,14073757427040256,14073839033712640,14073817556320256,14073761721483264,14073766016253952,14073800376254464,14073821851156480,14073778901745664,14073770311876608,14073808965992448,14355335481524224,14355236697473024,14355326892113920,14355309711851520,14355322597277696,14355339776819200,14355258172702720,14355331187015680,14355318302048256,14355344071720960,14355305416818688,14355223816175617,14636741740003330,14636819049414658,14636784689676290,14636767509807106,14636788984643586,14636806164512770,14636771804577792,14636814754447362,14636831934316546,14636711674904576,14636733150068738,14636724560003072,14636715969675264,14636776099741698,14636750329675776,14636720265297920,14636801869545474,14636797574578178,14636793279610882,14636728855166976,14636758919413760,14636810459480066,14636707380461568,14636737445036034,14636754624512000,14636780394708994,14918212424368128,14918225306386432,14918190946385920,14918195242008576,14918251076452352,14918199536713728,14918246781288448,14918242486452224,14918186651615232,14918182357172224,14918203831877632,14918233896124416,14918229601222656,15199687401144320,15199700283097088,15199726053163008,15199657333882880,15199704577933312,15199670218719232,15199678808588288,15199661628325888,15199665923096576,15199721757999104,15199708872835072,15199717463162880,15199674513424384,15481243978235906,15481136604053506,15481239683268610,15481183848693762,15481162373857282,15481201028562946,15481218208432130,15481205323530242,15481213913464834,15481231093334018,15481196733595650,15481209618497538,15481226798366722,15481140899020802,15481192438628354,15481153783922690,15481222503399426,15481175258759170,15481166668824578,15481179553726466,15481256863137794,15481235388301314,15481132309086210,15481145193988098,15481158078889986,15481149488955394,15762710365077504,15762693185601536,15762697480830976,15762633056256000,15762684595404800,15762680300371968,15762598699925505,15762706070568960,15762718955274240,15762701775667200,15762714660372480,15762611581026304,16044193931984896,16044142393622530,16044155277082624,16044159572115456,16044099443949570,16044163868459010,16044181047279616,16044086557736960,16044103738916866,16044206818131970,16044073675325441,16044168162312192,16044185341788160,16044176752377856,16044082264080386,16044189637083136,16044095148982274,16044112328851458,16044116623818754,16044146688589826,16044133803687938,16044172457541632,16044077971668993,16044125213753346,16044108032966656,16044090854014978,16044129508720642,16044150983557122,16325617370136578,16325604484775936,16325656024842242,16325668909744130,16325565829939200,16325630255038466,16325625960071170,16325574420267008,16325561535168512,16325647434907650,16325651729874946,16325578715430912,16325660319809538,16325570125561856,16325583010398210,16325557240725504,16325621664841728,16325600189939712,16325643139940354,16325591600332802,16325638844973058,16325664614776834,16325587305365506,16325681794646018,16325608779677696,16325634550005762,16607118115733504,16607126705799168,16607139590504448,16607122410962944,16607131000700928,16607135295209472,16607057986387968,16607109525536768,16607143885406208,16607036511158272,16607023630188545,16607105230503936,16888524373688320,16888558732640258,16888597387345922,16888515783360512,16888532962836482,16888507193032706,16888554437672962,16888528668852224,16888584502444034,16888520078983168,16888511488000002,16888618862182402,16888567322574850,16888614567215106,16888588798132226,16888610272247810,16888593092378626,16888575912509442,16888605977280514,16888550142705666,16888580207476738,16888571617542146,16888601682313218,17170085248630784,17170093838827520,17170059478958080,17169973583675393,17170089543925760,17170068069154816,17170007939809280,17170080954122240,17169986464579584,17170055183925248,17170072364384256,17170076659220480,17451538750504962,17451560225341442,17451568815276034,17451491505864706,17451487210897410,17451517275668482,17451470031028226,17451482915930114,17451478620962818,17451500095799298,17451525865603074,17451461441093634,17451581700177922,17451555930374146,17451564520308738,17451457146126338,17451547340439554,17451504390766594,17451474325995522,17451551635406850,17451534455537666,17451543045472258,17451508685733890,17451521570635778,17451530160570370,17451465736060930,17732936418721792,17732940713492480,17732992253558784,17732953598984192,17732966486835200,17732949303820288,17732932124278784,17732945009115136,17732996548395008,17733000843558912,17732975073492992,17732983663230976,17732979368329216,18014454345629698,18014411395956738,18014407100989442,18014480115564546,18014419985891330,18014450050662402,18014415690924034,18014432870924290,18014510180335618,18014531655172098,18014458640596994,18014484410531842,18014441460858882,18014493000466434,18014428575825922,18014475820466178,18014471525498882,18014518770270210,18014514475302914,18014467230531586,18014501590401026,18014488705499138,18014424280858626,18014497295433730,18014505885368322,18014437165891586,18295976566915074,18295933616652288,18295903552405504,18295963682013186,18295886372143104,18295967976980482,18295959387045890,18295989451816962,18295942207176706,18295955092078594,18295946501816320,18295899257241600,18295907847438338,18295929321750528,18295916437372930,18295980861882370,18295972271947778,18295912142405634,18295985156849666,18295890666913792,18295993746784258,18295882077700096,18295894962536448,18296006631686146,18295950797111298,18295925026914304,18577391413559298,18577421478526976,18577378529116160,18577382823624706,18577430068264962,18577481607872514,18577438658199554,18577434363232258,18577460133036034,18577468722970626,18577374233952256,18577464428003330,18577404298461184,18577451543101442,18577365643624448,18577447248134146,18577357054410752,18577442953166850,18577400003624960,18577417183363074,18577408593362944,18577387118592002,18577361348853760,18577455838068738,18577369939247104,18577425773297666,18858930814386176,18858926519484416,18858909339222016,18858917929418752,18858905044189184,18858943699091456,18858939404189696,18858935108894720,18858922224648192,18858836324843520,18858823444070401,18858857800073216,19140384316981250,19140410086785026,19140401496850434,19140341367308290,19140375727046658,19140431561621506,19140397201883138,19140319892668416,19140337072340994,19140349957046272,19140332777373698,19140354251882496,19140371431948288,19140388611948546,19140405791817730,19140307007832064,19140367137112066,19140418676719618,19140315597045760,19140414381752322,19140358546784256,19140380022013954,19140311302275072,19140392906915842,19140328482537472,19140324187373568,];
pub fn make_parser() -> RuntimeParser<Expr,Expr>
{
let mut parser1:RuntimeParser<Expr,Expr> = RuntimeParser::new(29,69);
let mut rule = RProduction::<Expr,Expr>::new_skeleton("start");
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let n:Expr=parser.stack.pop().unwrap().value; n };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ parser.stack.pop(); let e:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); e };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ parser.stack.pop(); let x:Expr=parser.stack.pop().unwrap().value; let mut f:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); App(getstr(f),rx(x)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ parser.stack.pop(); Uniop(2,rx(Nothing)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let s:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Uniop(3,rx(s)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let e:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Uniop(3,rx(e)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(0,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(1,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(2,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(3,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(4,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(5,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(7,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(8,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(9,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); parser.stack.pop(); Binop(10,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(11,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; Binop(12,rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let e:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Uniop(0,rx(e)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let e:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Uniop(1,rx(e)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let e2:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let e1:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let mut x:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Letexp(getstr(x),rx(e1),rx(e2)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let e:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let mut x:Expr=parser.stack.pop().unwrap().value; Assign(getstr(x),rx(e)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let e:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let mut x:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Lambda(getstr(x),rx(e)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let b:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let a:Expr=parser.stack.pop().unwrap().value; let c:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); Ifelse(rx(c),rx(a),rx(b)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let es:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let e:Expr=parser.stack.pop().unwrap().value; Seq(rx(e),rx(es)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("ES");
rule.Ruleaction = |parser|{ Nothing };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("ES");
rule.Ruleaction = |parser|{ let es:Expr=parser.stack.pop().unwrap().value; parser.stack.pop(); let e:Expr=parser.stack.pop().unwrap().value; Seq(rx(e),rx(es)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("E");
rule.Ruleaction = |parser|{ let mut x:Expr=parser.stack.pop().unwrap().value; Var(getstr(x)) };
parser1.Rules.push(rule);
rule = RProduction::<Expr,Expr>::new_skeleton("START");
rule.Ruleaction = |parser|{ parser.stack.pop(); return <Expr>::default();};
parser1.Rules.push(rule);
parser1.Errsym = "";
for i in 0..1226 {
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
fn load_extras(parser:&mut RuntimeParser<Expr,Expr>)
{
}//end of load_extras: don't change this line as it affects augmentation