//Parser generated by rustlr for grammar zclbamj
#![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(irrefutable_let_patterns)]
use std::any::Any;
extern crate rustlr;
use rustlr::{Tokenizer,TerminalToken,ZCParser,ZCRProduction,Stateaction,decode_action,LBox,lbdown,lbup,lbget,unbox};
use crate::lbasyntax::*;
use crate::lbasyntax::Construct::*;
use crate::lbasyntax::Expr::*;
use crate::lbasyntax::Stat::*;
static SYMBOLS:[&'static str;58] = ["ID","STRING","BOOL","INTEGER","class","public","static","void","main","String","extends","return","length","(",")","[","]",";","DOT","!",",","new","this","LBR","RBR","OROR","int","boolean","if","else","while","==","=","+","-","*","/","<","&&","MOD","Program","MainCl","ClassDec","ClassDecl","Extension","VarDec","MethodDec","Decl","FormalLst","FormalRst","Type","Stat","Stats","Exp","ExpLst","ExpRst","START","EOF"];
static TABLE:[u64;1263] = [171798888449,176093724673,17180000256,281719789977602,281492156710914,281659660566529,562949953748992,844669743267843,1126144719978498,1125917087105024,1126080295927809,1407473668325376,1688849860853760,1970342017040386,1970569650307074,2251821289177088,2533373575036930,2533463769677825,2533317740855296,2814775537762304,3096323528982528,3377699721510912,3659204763058176,3940761343754242,3940671149441026,3940688329310210,3940649674604546,3940752753819650,3940765638721538,3940851538526209,3940679739375618,4222223435235330,4503633988288512,4785272174149633,4785113260621824,4785104670621696,4785190569836544,4785074605326336,4785096080424960,4785267878920193,4785186274934784,4785289353822209,4785177684738048,5066605417267200,5348024558944258,5629611204083714,5629602614149122,5629521009770498,5629615499051010,5629529599705090,5629538189639682,5629499534934018,5910974512889856,6192694301032450,6192466667765762,6474040430100480,6474139214741505,6474036135198720,6473924465590272,6473963120885760,6473954530885632,6755438096547842,6755420916678658,6755399441842178,6755511110991874,6755515405959170,6755429506613250,6755502521057282,7036874418946050,7318413821083648,7318349395787778,7599824372563970,7881299349143554,8162812981477376,8444386742566912,8444322317991936,8725724280389632,9007267976642560,9288738658451456,9570187863326722,9570196453261314,9570265172738050,9570205043195906,9570153503588354,9570162093522946,9570278057639938,9570170683457538,9570247992868866,9570252287836162,9570149208621058,9570230812999682,9570269467705346,9570179273392130,9570157798555650,9570273762672642,9570260877770754,9570239402934274,9570243697901570,9851851820761089,9851714382004224,9851637072723968,9851632777822208,9851705792331776,9851628482592768,9851718676709376,9851680022331392,9851624187559936,10133154999304192,10414574139408386,10696117837692928,10977609994403842,10977683008847874,10977691598782466,10977601404469250,10977665828978690,10977597109501954,10977584224600066,10977687303815170,10977631469240322,10977588519567362,10977674418913282,10977592814534658,10977678713880578,10977670123945986,10977657239044098,11259166576082944,11259145101049856,11259132215820288,11259072086736896,11259076381114368,11259149395755008,11259162280853504,11259157986017280,11259063496278016,11259153690853376,11259106446606336,11259140805885952,11540615782334466,11540551357825026,11540637257170946,11540607192399874,11540547062857730,11540538472923138,11540632962203650,11540628667236354,11540641552138242,11540581422596098,11540620077301762,11540542767890434,11540534177955842,11540624372269058,11540559947759618,11822026334404610,11822107938783234,11822056399175682,11822090758914050,11822103643815938,11822017744470018,11822082168979458,11822034924339202,11822099348848642,11822022039437314,11822095053881346,11822013449502722,11822112233750530,11822009154535426,11822116528717826,12103424002686976,12103535671771136,12384980582727680,12384903272988672,12384898977955840,12384954812727296,12384993467105280,12384911863119872,12384907568218112,12385126612729857,12384989172400128,12666446969503746,12666532868849666,12666524278915074,12666451264471042,12666537163816962,12666442674536450,12666528573882370,12666434084601858,12666507099045890,12666459854405634,12666519983947778,12666515688980482,12666541458784258,12666438379569154,12666481329242114,12947934831247362,12947994960789506,12947913356410882,12947956306083842,12947917651378178,12948012140658690,12948003550724098,12947909061443586,12947990665822210,12947921946345474,12947926241312770,12947999255756802,12948007845691394,12948016435625986,12947982075887618,13229328203120640,13229418397237248,13229414102532096,13229551542927361,13229323908087808,13229336793251840,13229332498350080,13229405512859648,13229379742859264,13510859012505602,13510828948652032,13510798883356672,13510910552965120,13511013634801665,13510914847866880,13511005044932609,13510837538652160,13792273863278592,14073748840054784,14355314009374720,14355228109963264,14355232405192704,14355223814930432,14355305419702272,14355236700094464,14355451450097665,14355318304079872,14355279649701888,14636793280790528,14636780396412928,14636703086673920,14636711676805120,14636926426873857,14636788986085376,14636707381903360,14636754626412544,14636698791641088,14918182358614016,14918268257501184,14918263962796032,14918255373123584,14918186653515776,14918229603123200,14918173768351744,14918401403650049,14918178063384576,15199653040095232,15199876380426241,15199657335324672,15199648745062400,15199704579833856,15199738939506688,15199661630226432,15199743234211840,15199730349834240,15481132312035328,15481136606937088,15481218210922496,15481123721773056,15481205326544896,15481128016805888,15481213916217344,15481351357202433,15481179556544512,15762611583647744,15762826333978625,15762693187633152,15762602993516544,15762654533255168,15762688892928000,15762607288745984,15762598698483712,15762680303255552,16044301310754817,16044168164343808,16044086560358400,16044129509965824,16044073675194368,16044082265456640,16044155279966208,16044163869638656,16044077970227200,16325643141054464,16325630256676864,16325638846349312,16325776287531009,16325557242167296,16325552946937856,16325561537069056,16325548651905024,16325604486676480,16607122410700802,16607135295602690,16607062281158658,16607079461027842,16607032216387586,16607045101289474,16607139590569986,16607070871093250,16607027921420290,16607105230831618,16607036511354882,16607126705668098,16607152475471874,16607118115733506,16607113820766210,16607148180504578,16607143885537282,16607053691224066,16607023626452994,16888554440097792,16888502900359168,16888580210098176,16888588799770624,16888498605326336,16888726241017857,16888507195588608,16888511490490368,16888593094475776,17169986467201024,17170201217794049,17169973582036992,17170029416808448,17170055186808832,17169982172299264,17169977877069824,17170068071186432,17170063776481280,17451512985812992,17732979372654592,18014475822170112,18014566017138688,18014561721909248,18014553131909120,18014540246941696,18014531656876032,18014557427073024,18014505887662080,18014462937333760,18014458644398080,18014548836810752,18014544542105600,18296023813521408,18295933618356226,18295937913323522,18296019518816256,18296006632800258,18296040993849344,18295946503258114,18295942208290818,18296028108619776,18296036697571330,18295980862996482,18296015223652352,18295950798880768,18295959388160002,18296032402604034,18577348468342784,18858883574661120,19140358551437312,19421932309774338,19421919424872450,19421936604741634,19421837820493826,19421850705395714,19421859295330306,19421846410428418,19421833525526530,19421923719839746,19421906539970562,19421915129905154,19421842115461122,19421829233246208,19421940899708930,19421928014807042,19421880770166786,19703407287336960,19703355747926016,19703325682434048,19703394402369536,19703402992173056,19703411582173184,19703390107205632,19703317094924288,19703312797597696,19703415877402624,19703398697074688,19703381517139968,19984882263064578,19984865083916288,19984873673785344,19984796363718658,19984869379080192,19984856493260802,19984792068751362,19984783478816770,19984890854113280,19984886558883840,19984809248620546,19984800659144704,19984877968883712,19984787773784066,19984830724636672,20266344354283522,20266284224741378,20266275635855360,20266357239185410,20266305699577858,20266271339839490,20266258454937602,20266361534152706,20266340059316226,20266348649250818,20266267044872194,20266365830823936,20266352945594368,20266262749904898,20266331469381634,20547780676354050,20547819332501504,20547832215961602,20547836510928898,20547806446157826,20547759201517570,20547815036092418,20547742021648386,20547827922305024,20547733431713794,20547840807534592,20547737726681090,20547823627206656,20547746316615682,20547750612566016,20829212703457282,20829307192737794,20829255653130242,20829315782672386,20829294307835906,20829302897770498,20829298602803202,20829290012868610,20829221293391874,20829281422934018,20829208408489986,20829311487705090,20829234178293762,20829225589276672,20829216998424578,21110756399775746,21110700565987328,21110769285922816,21110709155135490,21110730629971970,21110764990758912,21110696270233602,21110687680299010,21110691975266306,21110790760955904,21110782169579522,21110777875726336,21110683385331714,21110786464546818,21110773580627968,21392158361976834,21392205606617090,21392231376420866,21392261441191938,21392252852436992,21392257146224642,21392162656944130,21392239966355458,21392265737666560,21392171246878722,21392166951911426,21392248557338624,21392175542697984,21392184131780610,21392244261322754,21673714944180224,21673633338949634,21673650519408640,21673637633916930,21673646223851522,21673732123197442,21673719239344128,21673740714377216,21673680584900608,21673723534049280,21673736419147776,21673641928884226,21673727829147648,21673659108753410,21673706354114560,21955155560366082,21955108315725826,21955125496119296,21955189920104450,21955207099973634,21955121200627714,21955181330169858,21955112610693122,21955202805858304,21955198510039042,21955134085529602,21955194215071746,21955211394940930,21955116905660418,21955215689908226,22236673487470592,22236609062043650,22236630536880130,22236587587207170,22236583292239874,22236682076487682,22236686372569088,22236656306683906,22236600472829952,22236596177141762,22236591882174466,22236664897601536,22236669192765440,22236690667798528,22236677782568960,22518225775886337,22518011024703488,22518002434572288,22517998139539456,22518006729801728,22518053974310912,22518092628688896,22518079744311296,22518088333983744,22799533248937984,23081098417668098,23081115597537282,23081033993158658,23081021108256770,23081107007602690,23081111302569986,23081012518322178,23081025403224066,23081094122700802,23081055467995138,23081016813289474,23081089827733506,23081102712635394,23081081237798914,23081008223354882,23362483197509634,23362508972228608,23362633526345729,23643996833972224,23925471810748416,24206929604575232,24206860884967424,24206942488952832,24206852294836224,24206938194247680,24206856590065664,24207079931576321,24206903834574848,24207075636543489,24206847999803392,24206908130263042,24488477595533314,24488430350893058,24488486185467906,24488400286121986,24488383106252802,24488464710631426,24488391696187394,24488490480435202,24488469005598722,24488408876056578,24488456120696834,24488387401220098,24488395991154690,24488473300566018,24488481890500610,24769866676305920,24769862378389504,24769952572964864,24769905328717824,24769956868128768,24769875263225856,24769948277866496,24769939687997440,24769961162964992,24769943983161344,24769965458194432,24769931097931776,25051436139479042,25051333060263938,25051406074707970,25051431844511746,25051418959609858,25051345945165826,25051380304904194,25051350240133122,25051423254577154,25051341650198530,25051337355231234,25051440434446338,25051427549544450,25051414664642562,25051358830067714,25332786560499712,25332859574812672,25332747905204224,25332863869714432,25332777970499584,25332962658680833,25614283011129346,25895800938102786,25895706448822274,25895745103527938,25895697858887682,25895736513593346,25895788053200898,25895710743789570,25895921202102273,25895727923658754,25895792348168194,25895809528037378,25895702153854978,25895818117971970,25895813823004674,25895753693462530,25895826707906562,25895779463266306,25895796643135490,26177228670173186,26177284504748034,26177301684617218,26177267324878850,26177271619846146,26177254439976962,26177220080238594,26177396178878465,26177288799715330,26177263029911554,26177293094682626,26177177130565634,26177202900369410,26177275914813442,26177172835598338,26177181425532930,26177185720500226,26177211490304002,26458707944079362,26458780958195712,26458789548261376,26458811023228928,26458884040622081,26458725123489792,26458815318458368,26458755188981760,26458733716701184,26458793843425280,26458712238653440,26458806728392704,26458802433228800,26458798138130432,26740182923739136,27021765271355394,27021670782074882,27021683666976770,27021675077042178,27021662192140290,27021743796518914,27021666487107586,27021756681420802,27021657897172994,27021748091486210,27021760976388098,27021730911617026,27021752386453506,27021705141813250,27021739501551618,27303072747683840,27584642209480704,27584775357792257,27584646509101056,27584762467385345,27584650804199424,27584560605495296,27584547724787712,27584667983544320,27584594969231360,27584556310593536,27584663683399680,27584637914775552,27584659388497920,27584586374184960,27584577784184832,27584629325103104,27584676573937664,27584766767988737,27584603555102720,27584552015364096,27584740998250497,27866104301813760,27866121485811712,27866151550648320,27866022701498368,27866117186191360,27866061350895616,27866052760895488,27866138660110336,27866142960254976,27866078531813376,27866215974961153,27866031287304192,27866069945942016,27866026992074752,27866134365208576,27866112891486208,27866250334502913,27866035582205952,27866125780975616,27866241744699393,27866237444096001,28147501968785408,28147579278524416,28147725311803393,28147497673752576,28147592162902016,28147510558916608,28147587868196864,28147506264014848,28147553508524032,28429032780988418,28710516346978306,28710555001683970,28710520641945602,28710602246324226,28710589361422338,28710507757043714,28710606541291522,28710593656389634,28710533526847490,28710615131226114,28710610836258818,28710512052011010,28710580771487746,28710524936912898,28710597951356930,28992008506441728,28991982731722754,28992133062131713,29273453420085248,29554979932798976,29555027177046016,29555018587242496,29555022881947648,29554949871697920,29555014292078592,29555005702012928,29555031472209920,29555040062275584,29555035767046144,29554936986861568,29836360419180544,29836575172395009,29836442023165952,29836356124278784,29836437728460800,29836347534016512,29836351829049344,29836403368787968,29836429138788352,30117942768697346,30117822509613058,30117904113991682,30117921293860866,30117861164318722,30117878344187906,30117934178762754,30117912703926274,30117826804580354,30117916998893570,30117852574384130,30117925588828162,30117869754253314,30117831099547650,30117938473730050,30117835394514946,30117951358631938,30399422040965122,30399336141619202,30399400566128642,30399426335932418,30399297486913538,30399391976194050,30399387681226754,30399413451030530,30399306076848130,30399396271161346,30399327551684610,30399344731553794,30399310371815426,30399353321488386,30399301781880834,30399417745997826,30399409156063234,30399379091292162,30680931378528258,30680939968462850,30680914198659074,30680927083560962,30680905608724482,30680935673495554,30680879838920706,30680849774149634,30680909908279296,30680836889247746,30680922788593666,30680918493626370,30680772462903298,30962256029614082,30962247439679490,30962277504450562,30962329044058114,30962367698763778,30962376288698370,30962363403796482,30962251734646786,30962470784401409,30962341928960002,30962303274254338,30962346223927298,30962350518894594,30962286094385154,30962260324581378,30962337633992706,30962294684319746,30962359108829186,31243778257453056,31525313356300290,31525300471398402,31525197392183298,31525309061332994,31525227456954370,31525218867019778,31525236046888962,31806775455580160,32088301967441920,32088224657702912,32088280492408832,32088211772866560,32088207478292482,32088233250914304,32088293377638400,32088314852671488,32088306262605824,32088310557442048,32088297672343552,32088289082474496,32088383576342529,32088254723194880,32369682452316162,32651097301123072,32651153135894528,32651191790272512,32651187495567360,32651105891385344,32651178905894912,32651324939894785,32651101596155904,32651110186287104,32932572283404288,33214055844806656,33214141743693824,33214060139708416,33214137448988672,33214103089315840,33214128859316224,33214051549577216,33214274893447169,33214047254544384,33495655375962112,33495663966027776,33495586656419840,33495681146159104,33495629606748160,33495672555896832,33495595251400704,33495668261191680,33495685440995328,33495599541256192,33495689736224768,33495676850995200,33777010093129728,33777087402409984,33777091697115136,33777053042737152,33777224846999553,33777078812737536,33776997207965696,33777005798227968,33777001502998528,34058601038282752,34058575269724160,34058686931730433,34058553789448192,34058562379120640,34058699822137345,34058519433576448,34058476479709184,34058588147744768,34058691232333825,34058583852843008,34058502248529920,34058510838530048,34058472189132800,34058592447889408,34058665462595585,34058485069840384,34058570973446144,34058566673825792,34058528019447808,34058480774938624,34340002996158464,34339955751649280,34340028766158848,34340174800551937,34339947161387008,34339951456419840,34340041650536448,34340037355831296,34339960046551040,34621666948612098,34621439315345410,34902957245464578,35184513826291712,35184449401520128,35184539596488704,35184505236226048,35184526711259136,35184522416160768,35184436516683776,35184479467012096,35184432227024896,35184535301259264,35184531006423040,35184518121455616,35466001687314434,35465902908833792,35466014572216322,35465988802412546,35465980212477954,35465993097379842,35465911493001218,35466005982281730,35465924377903106,35466010277249026,35465954442674178,35465997392347138,35747468074876928,35747476664680448,35747485254680576,35747390770511872,35747429420433408,35747489549910016,35747480959844352,35747399354941440,35747386470105088,35747463779713024,35747472369582080,35747455189647360,36028912985178114,36028925870080002,36028921575112706,36028891510341634,36028844265701378,36028835675766786,36028878625439746,36028801316028418,36028887215374338,36028900100276226,36028917280145410,36028908690210818,36028895805308930,36028797021061122,36028827085832194,36028852855635970,36028805610995714,36028809905963010,36310349308362752,36310413733134336,36310418028298240,36310439503331328,36310336423526400,36310422323003392,36310435208101888,36310405143068672,36310345018966016,36310379373854720,36310430913265664,36310426618101760,36591759858925570,36591746974023682,36591828578402306,36591751268990978,36591845758271490,36591875823042562,36591755563958274,36591850053238786,36591794218663938,36591802808598530,36591867233107970,36591841463304194,36591862938140674,36591871528075266,36591777038794754,36591858643173378,36591837168336898,36591785628729346,36873299261784064,36873385161523200,36873286376947712,36873380866686976,36873355096489984,36873376571523072,36873389456752640,36873363686555648,36873372276424704,36873329327276032,36873282087550976,36873367981719552,37154915978117121,37154825782099968,37154791417643008,37154812891561984,37154795717263360,37154709813657600,37154890206412801,37154808596660224,37154787122937856,37154735582347264,37154911675547649,37154701223526400,37154744177393664,37154726992347136,37154778533265408,37154752763265024,37154696932950016,37154817191706624,37154705518755840,37154924565954561,37436184790368256,37436176200237056,37436262099648512,37436266394353664,37436399541944321,37436253509976064,37436403839795201,37436232035663874,37436227739975680,37436180495466496,37436171905204224,37717711306620930,37717805795901442,37717801500934146,37717754256293890,37717780026097666,37717810090868738,37717797205966850,37717784327290880,37717788616032258,37717814385836034,37717724191522818,37717792910999554,37999134742740994,37999121857839106,37999212052152322,37999203462217730,37999233526988802,37999250706857986,37999237821956098,37999177692413954,37999242116923394,37999130447773698,37999160512544770,37999151922610178,37999169102479362,37999126152806402,37999246411890690,37999224937054210,37999216347119618,37999220642086914,38280725688942592,38280717098549248,38280790113255425,38280687029780480,38280626899189760,38280695624105984,38280644084236288,38280811582390273,38280635489189888,38280609720500224,38280652670107648,38280596839792640,38280605425598464,38280601130369024,38280712798404608,38280708503502848,38280824472797185,38280678440108032,38280691324485632,38280815885156353,38562076106096642,38562196372652032,38562183480279042,38562119055769602,38562110465835010,38562170595377154,38562101875900418,38562192070213634,38562080401063938,38562071811129346,38562174890344450,38562162005442562,38562084696031234,38562153415507970,38562187775246338,38562166300409858,38562127645704194,38562200660148226,38843606924918784,39125103370240000,39125026060500992,39125021765468160,39125116254617600,39125111959912448,39125249405419521,39125030355730432,39125034650632192,39125077600239616,39406608410476546,39406599820541954,39406543985967106,39406591230607362,39406586935640066,39406496741326850,39406501036294146,39406578345705474,39406505331261442,39406612705443842,39406552575901698,39406595525574658,39406621295378434,39406625590345730,39406535396032514,39406617000411138,39406509626228738,39406526806097922,39688061913333760,39688053323661312,39688018967789568,39688164996808705,39688027553660928,39688100572495872,39688186465943553,39688010372743168,39688091982102528,39688087681957888,39688190768971777,39688001782743040,39688070507659264,39687984604053504,39687971723345920,39687980309151744,39688083387056128,39687976013922304,39688199356350465,39688066208038912,39969592724815874,39969579839913986,39969524005339138,39969597019783170,39969609904685058,39969519716859904,39969511120437250,39969554070110210,39969605609717762,39969614199652354,39969601314750466,39969588429848578,40251029047803904,40251089177280512,40251084882051072,40251076292050944,40251063407083520,40251067702247424,40251071996952576,40250998982311936,40250986097475584,40250994693636096,40251054817017856,40251080587214848,40532452482613250,40532400943005698,40532443892678658,40532499727253506,40532491137318914,40532512612155394,40532409532940290,40532495432286210,40532405237972994,40532508317188098,40532396648038402,40532525497057282,40532426712809474,40532516907122690,40532478252417026,40532435302744066,40532486842351618,40532521202089986,40813880215011330,40813991884161026,40813961819389954,40813918869716994,40813996179128322,40813970409324546,40813966114357250,40813884509978626,40813875920044034,40813983294226434,40813910279782402,40813927459651586,40813974704291842,40813871625076738,40814000474095618,40813953229455362,40813987589193730,40813901689847810,41095462565838850,41095402436296706,41095458270871554,41095376666492930,41095385256427522,41095428206100482,41095359486623746,41095475450740738,41095393846362114,41095350896689154,41095436796035074,41095441091002370,41095346601721858,41095471155773442,41095445385969666,41095355191656450,41095466860806146,41095449680936962,];
fn _semaction_for_0_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Construct<'parser_lt> {
let mut cs = lbdown!(parser.popstack().value,Vec<ClassDec<'parser_lt>>); let mut mc = lbdown!(parser.popstack().value,Mainclass<'parser_lt>); Program(mc,cs) }
fn _semaction_for_1_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Mainclass<'parser_lt> {
let mut _item16_ = parser.popstack().value; let mut _item15_ = parser.popstack().value; let mut _item14_ = lbdown!(parser.popstack().value,Vec<Stat<'parser_lt>>); let mut _item13_ = parser.popstack().value; let mut _item12_ = parser.popstack().value; let mut _item11_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item10_ = parser.popstack().value; let mut _item9_ = parser.popstack().value; let mut _item8_ = parser.popstack().value; let mut _item7_ = parser.popstack().value; let mut _item6_ = parser.popstack().value; let mut _item5_ = parser.popstack().value; let mut _item4_ = parser.popstack().value; let mut _item3_ = parser.popstack().value; let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = parser.popstack().value;
if let (Stms(thebody),Id(an),Id(cn),)=(&mut *_item14_,&mut *_item11_,&mut *_item1_,) {
Maincl(Mainclass{classname:cn,
argvname:an,
body: Blockst(thebody),
})
} else {parser.report("(Stms(thebody),Id(an),Id(cn),)"); <Mainclass<'parser_lt>>::default()} }
fn _semaction_for_2_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<ClassDec<'parser_lt>> {
Classes(Vec::new()) }
fn _semaction_for_3_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<ClassDec<'parser_lt>> {
let mut _item1_ = lbdown!(parser.popstack().value,ClassDec<'parser_lt>); let mut _item0_ = lbdown!(parser.popstack().value,Vec<ClassDec<'parser_lt>>);
if let (Class(cl),Classes(mut cs),)=(&mut *_item1_,&mut *_item0_,) {
cs.push(makelbox!(_item1_,cl)); Classes(cs)
} else {parser.report("(Class(cl),Classes(mut cs),)"); <Vec<ClassDec<'parser_lt>>>::default()} }
fn _semaction_for_4_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> ClassDec<'parser_lt> {
let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<Construct<'parser_lt>>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = parser.popstack().value;
if let (Decs(mut ds),Id(sup),Id(name),)=(&mut *_item4_,&mut *_item2_,&mut *_item1_,) {
let mut vdecs=Vec::new();
let mut mdecs=Vec::new();
separatedecs(ds,&mut vdecs,&mut mdecs); /*split var and method declarations*/
Class(ClassDec {superclass:sup,
classname:name,
vars:vdecs,
methods:mdecs})
} else {parser.report("(Decs(mut ds),Id(sup),Id(name),)"); <ClassDec<'parser_lt>>::default()} }
fn _semaction_for_5_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut sup = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = parser.popstack().value; sup }
fn _semaction_for_6_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
Id("Object".to_owned()) }
fn _semaction_for_7_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> VarDec<'parser_lt> {
let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = lbdown!(parser.popstack().value,&'parser_lt str);
if let (Id(v),Id(t),)=(&mut *_item1_,&mut *_item0_,) { Vdec(VarDec{dname:v,dtype:t,initval:Nothing,}) } else {parser.report("(Id(v),Id(t),)"); <VarDec<'parser_lt>>::default()} }
fn _semaction_for_8_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> VarDec<'parser_lt> {
let mut _item4_ = parser.popstack().value; let mut _item3_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = lbdown!(parser.popstack().value,&'parser_lt str);
if let (Exp(e),Id(v),Id(t),)=(&mut *_item3_,&mut *_item1_,&mut *_item0_,) {
Vdec(VarDec{dname:v,dtype:t,initval:e})
} else {parser.report("(Exp(e),Id(v),Id(t),)"); <VarDec<'parser_lt>>::default()} }
fn _semaction_for_9_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> MethodDec<'parser_lt> {
let mut _item8_ = parser.popstack().value; let mut _item7_ = lbdown!(parser.popstack().value,Vec<Stat<'parser_lt>>); let mut _item6_ = parser.popstack().value; let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<VarDec<'parser_lt>>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = parser.popstack().value;
if let (Stms(mbody),Vdecs(args),Id(name),Id(ty),)=(&mut *_item7_,&mut *_item4_,&mut *_item2_,&mut *_item1_,) {
Method(MethodDec{ formals:args,
body: mbody,
classname:ty,
methodname:name, })
} else {parser.report("(Stms(mbody),Vdecs(args),Id(name),Id(ty),)"); <MethodDec<'parser_lt>>::default()} }
fn _semaction_for_10_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Construct<'parser_lt>> {
Decs(Vec::new()) }
fn _semaction_for_11_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Construct<'parser_lt>> {
let mut v = lbdown!(parser.popstack().value,VarDec<'parser_lt>); let mut _item0_ = lbdown!(parser.popstack().value,Vec<Construct<'parser_lt>>);
if let (Decs(mut ds),)=(&mut *_item0_,) { ds.push(makelbox!(_v_,v)); Decs(ds) } else {parser.report("(Decs(mut ds),)"); <Vec<Construct<'parser_lt>>>::default()} }
fn _semaction_for_12_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Construct<'parser_lt>> {
let mut m = lbdown!(parser.popstack().value,MethodDec<'parser_lt>); let mut _item0_ = lbdown!(parser.popstack().value,Vec<Construct<'parser_lt>>);
if let (Decs(mut ds),)=(&mut *_item0_,) { ds.push(makelbox!(_m_,m)); Decs(ds) } else {parser.report("(Decs(mut ds),)"); <Vec<Construct<'parser_lt>>>::default()} }
fn _semaction_for_13_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec<'parser_lt>> {
Vdecs(Vec::new()) }
fn _semaction_for_14_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec<'parser_lt>> {
let mut _item2_ = lbdown!(parser.popstack().value,Vec<VarDec<'parser_lt>>); let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = lbdown!(parser.popstack().value,&'parser_lt str);
if let (Vdecs(mut frs),Id(a),Id(ty),)=(&mut *_item2_,&mut *_item1_,&mut *_item0_,) {
frs.push(parser.lb(VarDec{dname:a,dtype:ty,initval:Nothing}));
Vdecs(frs)
} else {parser.report("(Vdecs(mut frs),Id(a),Id(ty),)"); <Vec<VarDec<'parser_lt>>>::default()} }
fn _semaction_for_15_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec<'parser_lt>> {
Vdecs(Vec::new()) }
fn _semaction_for_16_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec<'parser_lt>> {
let mut _item3_ = lbdown!(parser.popstack().value,Vec<VarDec<'parser_lt>>); let mut _item2_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = parser.popstack().value;
if let (Vdecs(mut frs),Id(a),Id(ty),)=(&mut *_item3_,&mut *_item2_,&mut *_item1_,) {
frs.push(parser.lb(VarDec{dname:a,dtype:ty,initval:Nothing}));
Vdecs(frs)
} else {parser.report("(Vdecs(mut frs),Id(a),Id(ty),)"); <Vec<VarDec<'parser_lt>>>::default()} }
fn _semaction_for_17_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut _item2_ = parser.popstack().value; let mut _item1_ = parser.popstack().value; let mut _item0_ = parser.popstack().value; return Id("int[]".to_owned()); }
fn _semaction_for_18_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut _item0_ = parser.popstack().value; return Id("boolean".to_owned()); }
fn _semaction_for_19_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut _item0_ = parser.popstack().value; return Id("String".to_owned()); }
fn _semaction_for_20_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut _item0_ = parser.popstack().value; return Id("int".to_owned()); }
fn _semaction_for_21_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut _item0_ = parser.popstack().value; return Id("void".to_owned()); }
fn _semaction_for_22_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> &'parser_lt str {
let mut c = lbdown!(parser.popstack().value,&'parser_lt str); c }
fn _semaction_for_23_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Stat<'parser_lt>> {
Stms(Vec::new()) }
fn _semaction_for_24_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Stat<'parser_lt>> {
let mut _item1_ = lbdown!(parser.popstack().value,Stat<'parser_lt>); let mut _item0_ = lbdown!(parser.popstack().value,Vec<Stat<'parser_lt>>);
if let (Stm(s),Stms(mut sv),)=(&mut *_item1_,&mut *_item0_,) { sv.push(makelbox!(_item1_,s)); Stms(sv) } else {parser.report("(Stm(s),Stms(mut sv),)"); <Vec<Stat<'parser_lt>>>::default()} }
fn _semaction_for_25_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,Vec<Stat<'parser_lt>>); let mut _item0_ = parser.popstack().value;
if let (Stms(sv),)=(&mut *_item1_,) { Stm(Blockst(sv)) } else {parser.report("(Stms(sv),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_26_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item6_ = lbdown!(parser.popstack().value,Stat<'parser_lt>); let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Stat<'parser_lt>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = parser.popstack().value;
if let (Stm(b),Stm(a),Exp(c),)=(&mut *_item6_,&mut *_item4_,&mut *_item2_,) {
Stm(Ifstat(makelbox!(_item2_,c), makelbox!(_item4_,a), makelbox!(_item6_,b)))
} else {parser.report("(Stm(b),Stm(a),Exp(c),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_27_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item4_ = lbdown!(parser.popstack().value,Stat<'parser_lt>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = parser.popstack().value;
if let (Stm(a),Exp(c),)=(&mut *_item4_,&mut *_item2_,) { Stm(Ifstat(makelbox!(_item2_,c),makelbox!(_item4_,a),parser.lbx(5,Nopst))) } else {parser.report("(Stm(a),Exp(c),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_28_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item4_ = lbdown!(parser.popstack().value,Stat<'parser_lt>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = parser.popstack().value;
if let (Stm(s),Exp(c),)=(&mut *_item4_,&mut *_item2_,) { Stm(Whilest(parser.lbx(2,c),parser.lbx(4,s))) } else {parser.report("(Stm(s),Exp(c),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_29_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,&'parser_lt str);
if let (Exp(e),Id(v),)=(&mut *_item2_,&mut *_item0_,) { Stm(Assignst(v,parser.lbx(2,e))) } else {parser.report("(Exp(e),Id(v),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_30_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item6_ = parser.popstack().value; let mut _item5_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item4_ = parser.popstack().value; let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(e),Exp(i),Exp(v),)=(&mut *_item5_,&mut *_item2_,&mut *_item0_,) {
Stm(ArAssignst(parser.lbx(0,v),parser.lbx(2,i),parser.lbx(5,e)))
} else {parser.report("(Exp(e),Exp(i),Exp(v),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_31_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item6_ = parser.popstack().value; let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<Expr<'parser_lt>>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exps(args),Id(m),Exp(obj),)=(&mut *_item4_,&mut *_item2_,&mut *_item0_,) {
Stm(Callstat(parser.lb(obj),m,args))
} else {parser.report("(Exps(args),Id(m),Exp(obj),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_32_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item0_ = parser.popstack().value;
if let (Exp(e),)=(&mut *_item1_,) { Stm(Returnst(parser.lbx(1,e))) } else {parser.report("(Exp(e),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_33_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat<'parser_lt> {
let mut _item0_ = lbdown!(parser.popstack().value,VarDec<'parser_lt>);
if let (Vdec(v),)=(&mut *_item0_,) { Stm(Vardecst(v.dname,v.dtype,parser.lb(v.initval)))} else {parser.report("(Vdec(v),)"); <Stat<'parser_lt>>::default()} }
fn _semaction_for_34_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_35_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_36_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_37_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_38_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_39_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_40_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item1_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item0_ = parser.popstack().value;
if let (Exp(a),)=(&mut *_item1_,) { Exp(Notexp(parser.lbx(1,a))) } else {parser.report("(Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_41_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("<",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_42_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("%",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_43_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("==",parser.lb(a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_44_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exp(i),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("[]",parser.lb(a),parser.lbx(2,i)))} else {parser.report("(Exp(i),Exp(a),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_45_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Id(field),Exp(obj),)=(&mut *_item2_,&mut *_item0_,) { Exp(Field(field,parser.lb(obj))) } else {parser.report("(Id(field),Exp(obj),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_46_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<Expr<'parser_lt>>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exps(args),Id(f),Exp(obj),)=(&mut *_item4_,&mut *_item2_,&mut *_item0_,) { Exp(Callexp(parser.lb(obj),f,args)) } else {parser.report("(Exps(args),Id(f),Exp(obj),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_47_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut i = lbdown!(parser.popstack().value,i32); i }
fn _semaction_for_48_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut s = lbdown!(parser.popstack().value,&'parser_lt str); s }
fn _semaction_for_49_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut b = lbdown!(parser.popstack().value,bool); unbox!{b} }
fn _semaction_for_50_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item0_ = lbdown!(parser.popstack().value,&'parser_lt str);
if let (Id(x),)=(&mut *_item0_,) { Exp(Var(x)) } else {parser.report("(Id(x),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_51_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item0_ = parser.popstack().value; Exp(Thisptr) }
fn _semaction_for_52_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item4_ = parser.popstack().value; let mut _item3_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item2_ = parser.popstack().value; let mut _item1_ = parser.popstack().value; let mut _item0_ = parser.popstack().value;
if let (Exp(s),)=(&mut *_item3_,) { Exp(Newarray(parser.lbx(3,s))) } else {parser.report("(Exp(s),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_53_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item3_ = parser.popstack().value; let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,&'parser_lt str); let mut _item0_ = parser.popstack().value;
if let (Id(x),)=(&mut *_item1_,) { Exp(Newobj(x)) } else {parser.report("(Id(x),)"); <Expr<'parser_lt>>::default()} }
fn _semaction_for_54_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr<'parser_lt> {
let mut _item2_ = parser.popstack().value; let mut e = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item0_ = parser.popstack().value; e }
fn _semaction_for_55_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr<'parser_lt>> {
Exps(Vec::new()) }
fn _semaction_for_56_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr<'parser_lt>> {
let mut _item1_ = lbdown!(parser.popstack().value,Vec<Expr<'parser_lt>>); let mut _item0_ = lbdown!(parser.popstack().value,Expr<'parser_lt>);
if let (Exps(mut er),Exp(e),)=(&mut *_item1_,&mut *_item0_,) { er.push(parser.lb(e)); Exps(er) } else {parser.report("(Exps(mut er),Exp(e),)"); <Vec<Expr<'parser_lt>>>::default()} }
fn _semaction_for_57_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr<'parser_lt>> {
Exps(Vec::new()) }
fn _semaction_for_58_<'parser_lt>(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr<'parser_lt>> {
let mut _item2_ = lbdown!(parser.popstack().value,Vec<Expr<'parser_lt>>); let mut _item1_ = lbdown!(parser.popstack().value,Expr<'parser_lt>); let mut _item0_ = parser.popstack().value;
if let (Exps(mut er),Exp(e),)=(&mut *_item2_,&mut *_item1_,) { er.push(parser.lbx(1,e)); Exps(er) } else {parser.report("(Exps(mut er),Exp(e),)"); <Vec<Expr<'parser_lt>>>::default()} }
fn _semaction_for_59_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> LBox<dyn Any> {
let mut _item0_ = lbdown!(parser.popstack().value,Construct<'parser_lt>); <LBox<dyn Any>>::default()}
pub fn make_parser() -> ZCParser<LBox<dyn Any>,LBox<dyn Any>>
{
let mut parser1:ZCParser<LBox<dyn Any>,LBox<dyn Any>> = ZCParser::new(60,147);
let mut rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("start");
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Program");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_0_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("MainCl");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_1_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ClassDecl");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_2_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ClassDecl");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_3_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ClassDec");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_4_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Extension");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_5_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Extension");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_6_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("VarDec");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_7_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("VarDec");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_8_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("MethodDec");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_9_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Decl");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_10_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Decl");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_11_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Decl");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_12_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("FormalLst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_13_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("FormalLst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_14_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("FormalRst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_15_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("FormalRst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_16_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Type");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_17_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Type");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_18_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Type");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_19_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Type");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_20_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Type");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_21_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Type");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_22_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stats");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_23_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stats");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_24_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_25_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_26_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_27_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_28_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_29_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_30_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_31_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_32_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Stat");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_33_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_34_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_35_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_36_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_37_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_38_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_39_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_40_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_41_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_42_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_43_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_44_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_45_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_46_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_47_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_48_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_49_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_50_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_51_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_52_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_53_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("Exp");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_54_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ExpLst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_55_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ExpLst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_56_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ExpRst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_57_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("ExpRst");
rule.Ruleaction = |parser|{ lbup!( LBox::new(_semaction_for_58_(parser),parser.linenum,parser.column)) };
parser1.Rules.push(rule);
rule = ZCRProduction::<LBox<dyn Any>,LBox<dyn Any>>::new_skeleton("START");
rule.Ruleaction = |parser|{ _semaction_for_59_(parser) };
parser1.Rules.push(rule);
parser1.Errsym = "";
parser1.resynch.insert(";");
for i in 0..1263 {
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
//Enum for return values
enum RetTypeEnum<'parser_lt> {
Enumvariant_1(&'parser_lt str),
Enumvariant_2(bool),
Enumvariant_3(i32),
Enumvariant_0(LBox<dyn Any>),
Enumvariant_4(Construct<'parser_lt>),
Enumvariant_5(Mainclass<'parser_lt>),
Enumvariant_6(ClassDec<'parser_lt>),
Enumvariant_7(Vec<ClassDec<'parser_lt>>),
Enumvariant_8(VarDec<'parser_lt>),
Enumvariant_9(MethodDec<'parser_lt>),
Enumvariant_10(Vec<Construct<'parser_lt>>),
Enumvariant_11(Vec<VarDec<'parser_lt>>),
Enumvariant_12(Stat<'parser_lt>),
Enumvariant_13(Vec<Stat<'parser_lt>>),
Enumvariant_14(Expr<'parser_lt>),
Enumvariant_15(Vec<Expr<'parser_lt>>),
}
impl<'parser_lt> Default for RetTypeEnum<'parser_lt> { fn default()->Self {RetTypeEnum::Enumvariant_0(<LBox<dyn Any>>::default())} }
fn load_extras(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>)
{
}//end of load_extras: don't change this line as it affects augmentation