rustlr 0.1.0

LR(1)/LALR(1) parser generator for rust
Documentation
//Parser generated by rustlr

#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_mut)]
#![allow(unused_assignments)]
extern crate rustlr;
use rustlr::{RuntimeParser,RProduction,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] = [111669411840,107374706688,103079870464,85900066816,34359803904,115964313600,98784837632,131073,12885360640,120259477504,81604706304,94490066944,281474977562625,281586646122496,281509336514560,281595236188160,281487862071296,281569466777600,281578056581120,281556581416960,281582351417344,281560876777472,281590941745152,281573761548288,563001494339584,562967134404608,562962839961600,562958544535552,563083097407491,563027263815680,562971429699584,563018673946624,563022969241600,562975724470272,562980019699712,563005789569024,563010084667392,844467881574402,844523716149250,844497946345474,844506536280066,844510831247362,844528011116546,844502241312770,844442111770626,844450701705218,844545190985730,844459291639810,844446406737922,844472176541696,844433521836034,844476471508994,844454996672514,844480766476290,844437816803330,844558075887618,844485061443586,844493651378178,844463586607106,844536601051138,844532306083842,844519421181954,844515126214658,844540896018434,1126015872794624,1407460783620096,1407482258259968,1407477963423744,1407456488259584,1407486552965120,1407469373620224,1407374885453825,1407490847866880,1407495143030784,1407387768913920,1407409243357184,1407473668390912,1688862745165826,1688879925035010,1688905694838786,1688918579740674,1688935759609858,1688957234446338,1688909989806082,1688983004250114,1688875630067714,1688858450198530,1688867040133122,1688948644511746,1688884220002306,1688922874707970,1688952939479042,1688970119348226,1688940054577154,1688901399871490,1688927169675266,1688944349544450,1688892809936898,1688871335100418,1688931464642562,1688965824380930,1688961529413634,1688888514969602,1970432211681280,1970440801288192,1970410737041408,1970423621812224,1970337722335232,1970436506386432,1970359196778496,1970324838940673,1970419327041536,1970406441680896,1970445096452096,1970427916845056,2251902893555712,2251799815716865,2251885713752064,2251881418391552,2251911483097088,2251924369833984,2251894303752192,2251915777998848,2251834173489152,2251812699045888,2251907188391936,2251920073162752,2251898598522880,2533390756675584,2814809896845314,2814788422008834,2814801306910722,2814822781747202,2814758357237762,2814762652205058,2814771242139650,2814857141485570,2814805601878018,2814882911289346,2814818486779906,2814848551550978,2814831371681794,2814775537106946,2814766947172354,2814861436452866,2814839961616386,2814792716976130,2814835666649090,2814844256583682,2814865731420162,2814784127041538,2814779832074242,2814870026387458,2814852846518274,2814827076714498,3096332118523904,3096327823687680,3096345003294720,3096340708130816,3096237629177856,3096336413229056,3096323528654848,3096310643884032,3096224746045441,3096319233884160,3096306348523520,3096259103621120,3377734082560000,3659187583778816,3659234828484608,3659226238156800,3659243417763840,3659252007632896,3659191878221824,3659230533386240,3659213354303488,3659183288352768,3659204763516928,3659196173516800,3659200468287488,3659247713058816,3940718395195394,3940649676374017,3940705510293506,3940666855587842,3940765638262784,3940709805260802,3940752753819648,3940761343361024,3940658265653250,3940731278655488,3940722690162690,3940701215326210,3940679740489730,3940675445522434,3940684033753088,3940757048655872,3940769933426688,3940688330424322,3940735574016000,3940662559309824,3940748458786816,3940726985129986,3940671150555138,3940696920358912,3940744164016128,4222236320071680,4222206255366144,4222124653150209,4222137536020480,4222219140726784,4222210550726656,4222240614973440,4222244910137344,4222223435497472,4222227730530304,4222159010463744,4222232025366528,4503612512731136,4503719886848000,4503698412208128,4503621103845378,4503603924959233,4503668348485634,4503608218943490,4503655463583746,4503702707240960,4503715591684096,4503711296782336,4503707002077184,4503694117437440,4503642578681858,4503681232076800,4503732772995074,4503689823322114,4503651168616450,4503625398812674,4503638283714562,4503659758551042,4503599629926401,4503672643452930,4503629693779970,4503633987174400,4503676938420226,4503685527437312,4503616808878082,4785108963885056,4785156208787456,4785160504147968,4785181978787840,4785194863558656,4785177683951616,4785186273492992,4785169094148096,4785087489441792,4785074606768129,4785190568394752,4785173388918784,5066669840269312,5066652660662272,5066562466152448,5066644070858752,5066648365629440,5066583940595712,5066635480858624,5066549583544321,5066661250203648,5066631185498112,5066656955498496,5066665545105408,5348119047569408,5348037442863104,5348024560320513,5348110457569280,5348058917306368,5348123342340096,5348144816979968,5348131932209152,5348140521816064,5348127637372928,5348106162208768,5348136226914304,5629606908919808,5629598319050752,5629594024280064,5629581138919424,5629512419573760,5629611203624960,5629602614083584,5629615498526720,5629585434279936,5629533894017024,5629619793690624,5629499537096705,5911077590794240,5911081885630464,5911086180335616,5911069000990720,5911073295761408,5911056115630080,5911090475237376,5910987396284416,5911094770401280,5911008870727680,5910974513872897,5911060410990592,6192531092340736,6192561157046272,6192552567504896,6192462372995072,6192543977701376,6192449490649089,6192569747111936,6192483847438336,6192565451948032,6192556862341120,6192548272472064,6192535387701248,6474027544215552,6474040428658688,6474031839051776,6474044723822592,6474010364411904,6473924467425281,6474018954412032,6473958824148992,6473937349705728,6474023249182720,6474006069051392,6474036133756928,6755433800859648,6755515405369344,6755502520926208,6755493931122688,6755498225893376,6755511110467584,6755485341122560,6755412326416384,6755399444201473,6755519700533248,6755506815762432,6755481045762048,7036887303127040,7036981792473088,7036977497636864,7036960317833216,7036973202604032,7036994677243904,7036956022472704,7036874420977665,7036908777570304,7036986087178240,7036990382080000,7036968907833344,7318448179314688,7318362279837696,7318349397753857,7318383754280960,7318465358790656,7318430999183360,7318452474347520,7318435294543872,7318456769183744,7318461063888896,7318443884544000,7318469653954560,7599944630665216,7599927451058176,7599940335501312,7599936040599552,7599918861254656,7599824374530049,7599923156025344,7599910271254528,7599905975894016,7599837256548352,7599858730991616,7599931745894400,7881363775815680,8162881700036610,8162795800887296,8162894584938498,8162782915723264,8162812980559874,8162804390887424,8162890289971202,8162885995003906,8162864520167426,8162843045330946,8162847340298242,8162834455396354,8162868815134722,8162817275527170,8162825865461762,8162860225200130,8162855930232834,8162877405069314,8162851635265538,8162907469840386,8162800095657984,8162787211149312,8162873110102018,8162808685592578,8162791505592320,8162830160429058,8444322316943362,8444266482302976,8444309432041474,8444275072368640,8444287957204994,8444262187401218,8444257892433922,8444292252172290,8444318021976066,8444343791779842,8444279367598080,8444356676681730,8444365266616322,8444382446485506,8444352381714434,8444360971649026,8444335201845250,8444300842106882,8444339496812546,8444369561583618,8444326611910658,8444305137074178,8444270777597952,8444348086747138,8444330906877954,8444283662237698,8725805882736642,8725758638096386,8725750049079296,8725818767638530,8725741459013632,8725762933063682,8725754344308736,8725844537442306,8725780114178048,8725732869144576,8725801587769346,8725823062605826,8725810177703938,8725831652540418,8725792997834754,8725835947507714,8725784409276416,8725767228030978,8725737164570624,8725797293850624,8725827357573122,8725745754308608,8725814472671234,8725857422344194,8725775818948608,8725840242475010,9007280859381762,9007233614741506,9007220729839618,9007225024806914,9007272269447170,9007293744283650,9007242204676098,9007319514087426,9007259384545282,9007255089577986,9007229319774210,9007285154349058,9007237909708802,9007315219120130,9007250794610690,9007216434872322,9007306629185538,9007310924152834,9007289449316354,9007332398989314,9007302334218242,9007276564414466,9007298039250946,9007207844937730,9007212139905026,9007267974479874,9288721479565312,9570265172475904,9570269467639808,9570217928687616,9570209339408384,9570170684440576,9570230812868608,9570222223982592,9570174979211264,9570252288032768,9570260877574144,9570162096668672,9570226518556672,9570256582868992,9570235108229120,9570157799276544,9570183567966208,9570247992999936,9570149211701249,9570243698229248,9570166389145600,9570205044310016,9570200749080576,9570179274440704,9851722969710592,9851658544676864,9851740149186560,9851731559579648,9851735854284800,9851705789579264,9851710084939776,9851727264743424,9851624188542977,9851744444350464,9851718674939904,9851637070233600,10133232305635330,10133219420733442,10133150701256706,10133112046551042,10133202240864258,10133137816354818,10133154996224002,10133107751583746,10133197945896962,10133167881125890,10133116341518338,10133180766027778,10133142111322114,10133215125766146,10133172176093186,10133129226420226,10133189355962370,10133193650929666,10133176471060482,10133124931452930,10133206535831554,10133210830798850,10133133521387522,10133185060995074,10133120636485634,10133159291191298,10414629974441984,10414591319277568,10414587024834560,10414604204572672,10414599909343232,10414595614572544,10414625679212544,10414651448688640,10414634269540352,10414647154114560,10414612796735488,10414582729408512,10414642858819584,10696109246251008,10696156490301442,10696165080236034,10696070591283200,10696135015464962,10696066295988224,10696062001545216,10696160785268738,10696079181283328,10696092065792002,10696130720497666,10696169375203330,10696057706119168,10696074886053888,10696087770824706,10696126425530370,10696122130825216,10696104951152640,10696083475857410,10696139310432258,10696182260105218,10696117835595778,10696152195334146,10696100655923200,10696147900366850,10696143605399554,10977597107535872,10977536978255872,10977601402109952,10977592814993408,10977541272698880,10977554157993984,10977584222961664,10977575632633856,10977549862764544,10977579927863296,10977532682829824,10977545567993856,11259042019672066,11259024839802882,11259119329083394,11259076379410434,11259033429737474,11259072084443138,11259102149214210,11259093559279618,11259059199541250,11259029134770178,11259097854246914,11259037724704770,11259110739148802,11259067789475842,11259080674377730,11259054904573954,11259115034116098,11259011954900994,11259020544835586,11259050609606658,11259084969345026,11259016249868290,11259089264312322,11259132213985282,11259007659933698,11259106444181506,11540547060105218,11540512700366850,11540525585268738,11540564239974402,11540516995334146,11540555650039810,11540594304745474,11540585714810882,11540486930563074,11540542765137922,11540482635595778,11540551355072514,11540508405399554,11540499816185856,11540534175203330,11540572829908994,11540577124876290,11540491225530370,11540590009778178,11540568534941698,11540607189647362,11540559945007106,11540495521415168,11540529880236034,11540581419843586,11540504111415296,11821970498125824,11822004856815618,11821983381979138,11822047806488578,11821991971913730,11822000561848322,11821961908387840,11822082166226946,11822052101455874,11822022036684802,11821974792896512,11821979088125952,11822069281325058,11822009151782914,11822043511521282,11822030626619394,11822034921586690,11822056396423170,11821987676946434,11822026331652098,11822060691390466,11822017741717506,11822064986357762,11821966202830848,11821957612175362,11822039216553986,12103535668363266,12103484128755714,12103441179082754,12103501308624898,12103436884115458,12103479833788418,12103509898559490,12103445474050050,12103475538821122,12103514193526786,12103454064836608,12103432589148162,12103505603592194,12103497013657602,12103518488494082,12103531373395970,12103458358951938,12103539963330562,12103466948886530,12103527078428674,12103544258297858,12103522783461378,12103449769017346,12103557143199746,12103492718690306,12103462653919234,12385010645270530,12384920451547136,12384929041547264,12384907566383104,12384937630826498,12384980580499458,12384984875466754,12384916156252160,12384997760368642,12384933335859202,12384993465401346,12385006350303234,12385002055335938,12384971991089152,12385032120107010,12385014940237826,12385019235205122,12384924746317824,12384911861809152,12384954810695682,12384967695597570,12384959105662978,12384989170434050,12384941925793794,12384976285532162,12384950515728386,12666412607733762,12666404018257920,12666468442308610,12666386838519808,12666459852374018,12666425492635650,12666429787602946,12666472737275906,12666382543093760,12666391132962816,12666395428257792,12666507097014274,12666477032243202,12666442672504834,12666451262439426,12666485622177794,12666494212112386,12666399723028480,12666455557406722,12666464147341314,12666416902701058,12666489917145090,12666434082570242,12666481327210498,12666446967472130,12666408312766466,12947887583985666,12947900468887554,12947883289018370,12947956303462402,12947952008495106,12947857519214594,12947909058822146,12947947713527810,12947917648756738,12947870404116482,12947921943724034,12947861814181890,12947874699083778,12947934828625922,12947904763854850,12947926238691330,12947943418560514,12947939123593218,12947891878952962,12947878994968576,12947982073266178,12947960598429698,12947930533658626,12947969188364290,12947964893396994,12947866109149186,13229418395402242,13229375445729282,13229444165206018,13229414100434946,13229366855794690,13229362560827394,13229405510500354,13229426985336834,13229396920565762,13229435575271426,13229401215533058,13229409805467650,13229349675925506,13229392625598466,13229336791023618,13229431280304130,13229341085990914,13229439870238722,13229457050107906,13229358265860098,13229353970892802,13229379740696578,13229345380958210,13229332496056322,13229422690369538,13229384035663874,13510859012571138,13510850422636546,13510906257211394,13510828948389888,13510932027015170,13510897667276802,13510914847145986,13510901962244098,13510854717603842,13510867602505730,13510919142113282,13510833242767362,13510893372309506,13510910552178690,13510871897931776,13510811768651776,13510841832701954,13510876192440322,13510820358389760,13510824653160448,13510884782374914,13510807473225728,13510889077342210,13510880487407618,13510816063094784,13510837537734658,13792394118365186,13792291039805440,13792407003267074,13792351168692226,13792364053594114,13792312513986562,13792316808953858,13792333988823042,13792372643528706,13792385528430594,13792389823397890,13792381233463298,13792359758626818,13792308219019266,13792346873724930,13792282449215490,13792376938496002,13792295335100416,13792325398888450,13792299629871104,13792368348561410,13792342578757634,13792355463659522,13792303925100544,13792329693855746,13792286744182786,14073860505468930,14073826145730562,14073847620567042,14073808965861378,14073757426647040,14073774606581760,14073839030632450,14073830440697858,14073761722073088,14073791785992194,14073766016516096,14073821851353088,14073834735665154,14073843325599746,14073800375926786,14073804670894082,14073770311811072,14073869095403522,14073787491024898,14073864800436226,14073783196057602,14073881980305410,14073778901811200,14073856210501634,14073817555795970,14073851915534338,14355331187802114,14355245288521728,14355292533096450,14355318302900226,14355339777736706,14355283943489536,14355266763292674,14355296828063744,14355275353161728,14355326892834818,14355249583292416,14355356957605890,14355335482769410,14355344072704002,14355322597867522,14355314007932930,14355301123031042,14355253878521856,14355279648391168,14355240993226752,14355305417998338,14355232403357696,14355236698783744,14355262468325378,14355309712965634,14355258173358082,14636733148758016,14636819048431616,14636806163660800,14636698792820737,14636801868824576,14636810458365952,14636797573791744,14636784689020928,14636711674314752,14636793279021056,14636814753267712,14636780393660416,14918173769596929,14918255370371072,14918294025142272,14918259665731584,14918268255731712,14918285435076608,14918276845535232,14918186651025408,14918289729978368,14918272550502400,14918208125468672,14918281140371456,15199657333489664,15199717462900736,15199721758195712,15199726052769792,15199665923358720,15199704578523136,15199738940686336,15199661628915712,15199700283293696,15199674513424384,15199678808653824,15199670218653696,15199708873621504,15481235388497920,15481231093792768,15481136604446720,15481226798956544,15481158078889984,15481209619152896,15481239683399680,15481222503923712,15481205323792384,15481218209153024,15481243978563584,15481123723149313,15762658827042816,15762654531944448,15762620172075008,15762671711617024,15762628762075136,15762650236715008,15762607286910976,15762676006191104,15762637354631168,15762624466845696,15762667416322048,15762611582337024,15762615876780032,16044125212246018,16044103737409538,16044133802180610,16044090852507650,16044181046820866,16044086557540354,16044142392115202,16044095147474946,16044146687082498,16044206816624642,16044150982049794,16044129507213314,16044082262573058,16044163866951682,16044099442442242,16044168161918978,16044159571984386,16044185341788162,16044176751853570,16044172456886274,16044116622311426,16044189636755458,16044155277017090,16044112327344130,16044193931722754,16044108032376834,16325552948379649,16325668908695552,16325600190464002,16325574420660226,16325681794842626,16325565830725634,16325664613531648,16325591600529410,16325621665300482,16325656023924736,16325548651773953,16325634549284864,16325643139284992,16325570125692930,16325617370333186,16325630253924352,16325608780398594,16325638845169666,16325587305562114,16325583009021952,16325647434055680,16325651729088512,16325578715627522,16325561534578688,16325604485431298,16325557240791042,16325660318629888,16325625960267778,16607049396977664,16607040806912000,16607126706585602,16607066577043458,16607118116651010,16607096641748992,16607135296520194,16607092346847234,16607036512468992,16607105231749122,16607131001552898,16607057987108866,16607075166846976,16607032217042944,16607139591487490,16607062282076162,16607156771356674,16607079462076416,16607122411618306,16607143886454786,16607113821683714,16607053692207104,16607083757174784,16607100936781826,16607109526716418,16607045102206976,16888515783622656,16888541556572160,16888575913033728,16888567323164672,16888524373688320,16888558733885440,16888571618459648,16888528668917760,16888520078917632,16888511489179648,16888507193753600,16888554438787072,16888550143557632,17170089543663616,17170093838827520,17170059479416832,17170072364187648,17169973583675393,17170007939153920,17170068069416960,17170055184056320,17169986464710656,17170085248761856,17170080954056704,17170076659220480,17451457146454018,17451478622339072,17451530160898050,17451474327109632,17451547340767234,17451508686061570,17451517275996162,17451465737043968,17451555930701826,17451525865930754,17451534455865346,17451568815603714,17451560225669122,17451504391094274,17451470032338944,17451500096126978,17451482916257794,17451564520636418,17451521570963458,17451551635734530,17451461441421314,17451538751553538,17451543045799938,17733043792248832,17732923537162241,17733030907478016,17733026612641792,17732936418131968,17733035202183168,17733022317608960,17733018022838272,17732957892575232,17733009432838144,17733039497084928,17733005137477632,18014471525498882,18014510180335618,18014428575825922,18014450050662402,18014493000466434,18014505885368322,18014497295433730,18014501590401026,18014488705499138,18014415690924034,18014518770270210,18014424280858626,18014407100989442,18014441460858882,18014514475302914,18014432870924290,18014419985891330,18014411395956738,18014531655172098,18014480115564546,18014484410531842,18014467230531586,18014454345629698,18014458640596994,18014437165891586,18014475820466178,18295955090898944,18295873490649089,18295959386259456,18295989450506240,18295976566063104,18295972271030272,18295907845996544,18295967976259584,18295886371553280,18295993745670144,18295985155604480,18295980860899328,18577447248658434,18577374233952256,18577417183887362,18577451543625730,18577481608396802,18577404299051008,18577434363756546,18577468723494914,18577369939181568,18577378529181696,18577464428527618,18577438658723842,18577408594149376,18577442953691138,18577382824148994,18577357054017536,18577430068789250,18577400003821568,18577421478723584,18577455838593026,18577425773821954,18577361349443584,18577391414083586,18577460133560322,18577387119116290,18577365643886592,18858832030728192,18858857800335362,18858844915892224,18858956584583170,18858883570860032,18858874980532224,18858909339942914,18858896455434240,18858849210662912,18858943699681282,18858862095302658,18858939404713986,18858900750008322,18858905044975618,18858917929877506,18858913634910210,18858879275761664,18858930814779394,18858922224844802,18858836326154240,18858853505892352,18858926519812098,18858935109746690,18858866390269954,18858840620597248,18858892160073730,19140397201883138,19140358547570688,19140431561621506,19140332777373698,19140388611948546,19140307007438848,19140341367308290,19140315597307904,19140349957242880,19140367137112066,19140337072340994,19140371432144896,19140392906915842,19140414381752322,19140401496850434,19140410086785026,19140328482603008,19140384316981250,19140405791817730,19140418676719618,19140311302864896,19140380022013954,19140324187373568,19140354252472320,19140375727046658,19140319892602880,];

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]));
 }

 return parser1;
} //make_parser