//Parser generated by rustlr for grammar lbamj
#![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] = [17180000256,176093724673,171798888449,281719789977602,281492156710914,281659660566529,562949953748992,844669743267843,1126080295927809,1126144719978498,1125917087105024,1407473668325376,1688849860853760,1970569650307074,1970342017040386,2251821289177088,2533317740855296,2533373575036930,2533463769677825,2814775537762304,3096323528982528,3377699721510912,3659204763058176,3940752753819650,3940761343754242,3940765638721538,3940649674604546,3940688329310210,3940679739375618,3940671149441026,3940851538526209,4222223435235330,4503633988288512,4785177684803584,4785190569902080,4785267879051265,4785272173821953,4785096080293888,4785074605916160,4785186274869248,4785104670621696,4785289353756673,4785113260359680,5066605417267200,5348063212994562,5348136227438594,5348140522405890,5348127637504002,5348054623059970,5348046033125378,5348024558288898,5629499536179200,5911086181711872,5910974512758784,5911189261320193,5911090476744704,5911013167202304,5911004577464320,6192449488355330,6192488143060994,6192565452472322,6192552567570434,6192470963191810,6192561157505026,6192479553126402,6473941644476418,6474169277743106,6755399442300930,7036938844372992,7036874419077122,7318349395656706,7599824372563970,7881299349340162,8162812981477376,8444386742566912,8444322317991936,8725724280389632,9007267976642560,9288738658451456,9570239402934274,9570260877770754,9570196453261314,9570247992868866,9570243697901570,9570252287836162,9570157798555650,9570205043195906,9570265172738050,9570153503588354,9570149208621058,9570230812999682,9570170683457538,9570187863326722,9570278057639938,9570273762672642,9570269467705346,9570162093522946,9570179273392130,9851632777428992,9851718676905984,9851851820695553,9851637072855040,9851624187887616,9851714382004224,9851680022396928,9851705791938560,9851628482723840,10133154999304192,10414574139408386,10696117837692928,10977687304273920,10977678714208256,10977597110091776,10977601404731392,10977683009044480,10977665829371904,10977631469895680,10977670124011520,10977674419044352,10977657239044096,10977691599306752,10977588519501824,11259145100525570,11259076381048834,11259072086081538,11259140805558274,11259132215623682,11259166575362050,11259153690460162,11259084970983426,11259063496146946,11259157985427458,11259106445819906,11259149395492866,11259162280394754,11259059201179650,11259067791114242,11540474048151552,11540529882660864,11540482637692928,11540701682466817,11540568537169920,11540564242268160,11540555652202496,11540486933118976,11540478342987776,11822103644012546,11822017744666626,11822112233947138,11822090759110658,11822116528914434,11822009154732034,11822099349045250,11822107938979842,11822013449699330,11822022039633922,11822026334601218,11822095054077954,11822034924535810,11822082169176066,11822056399372290,12103424002752512,12103535671836672,12385053597237250,12385062187171842,12385045007302658,12385066482139138,12385006352596994,12385040712335362,12384963402924034,12385049302269954,12384959107956738,12384967697891330,12385032122400770,12384971992858626,12384984877760514,12385057892204546,12384976287825922,12666601589506049,12666429789503488,12666382544535552,12666378249830400,12666468444012544,12666455559045120,12666373954994176,12666464149110784,12666386839961600,12947934831312898,12947956306149378,12947990665887746,12948012140724226,12947926241378306,12947913356476418,12947982075953154,12947921946411010,12947994960855042,12947999255822338,12947917651443714,12947909061509122,12948003550789634,12948007845756930,12948016435691522,13229491412205570,13229465642401794,13229401217892354,13229396922925058,13229487117238274,13229482822270978,13229474232336386,13229384038023170,13229469937369090,13229478527303682,13229457052467202,13229409807826946,13229388332990466,13229431282663426,13229392627957762,13510910552899584,13510798883946496,13511005044867073,13511013634867201,13510828948652032,13510859012505602,13510837538390016,13510914847932416,13792273863278592,14073761723514880,14073753133383680,14073839032664064,14073843327565824,14073976473321473,14073804673056768,14073757428088832,14073748838547456,14073830442598400,14355318304276480,14355451450097665,14355232404799488,14355279649767424,14355314009374720,14355236700225536,14355228110094336,14355305419309056,14355223815258112,14636788986085376,14636703086804992,14636711676936192,14636707381510144,14636780396019712,14636698791968768,14636754626478080,14636926426873857,14636793280987136,14918173768679424,14918263962796032,14918186653646848,14918229603188736,14918268257697792,14918255372730368,14918178063515648,14918401403650049,14918182358220800,15199653040226304,15199738939506688,15199743234408448,15199657334931456,15199661630357504,15199704579899392,15199730349441024,15199648745390080,15199876380426241,15481123723935744,15762611583778816,15762654533320704,15762598698811392,15762688892928000,15762826333978625,15762693187829760,15762680302862336,15762602993647616,15762607288352768,16044301310754817,16044155279572992,16044163869638656,16044129510031360,16044168164540416,16044086560489472,16044077970358272,16044073675522048,16044082265063424,16325557241774080,16325604486742016,16325561537200128,16325638846349312,16325552947068928,16325630256283648,16325776287531009,16325548652232704,16325643141251072,16607118117961728,16607113823059968,16607023628943360,16607027923779584,16607036513910784,16607251264307201,16607079463452672,16607105232994304,16607032218484736,16888507193098242,16888601682378754,16888593092444162,16888537257869314,16888588797476866,16888614567280642,16888623157215234,16888618862247938,16888498603163650,16888610272313346,16888502898130946,16888597387411458,16888554437738498,16888511488065538,16888545847803906,16888520078000130,16888627452182530,16888528667934722,16888580207542274,17170029416873984,17169986467332096,17169982171906048,17170055186415616,17169977877200896,17169973582364672,17170068071383040,17170063776481280,17170201217794049,17451616063651840,17451512983191554,17451534458028034,17451607472472066,17451598883389440,17451581702668290,17451517278158850,17451594588356608,17451525869076480,17451555932864514,17451508688224258,17451590293716992,17451603178553344,17451611767439362,17451521573126146,17732987962523648,18014454349365248,18296023813521408,18296019518488576,18295980864372736,18295933621108736,18296028108685312,18295950799208448,18296040993783808,18295937913978880,18296006633521152,18296036698750976,18296015223848960,18296032403521536,18577408597884928,18858823445118976,19140358551437312,19421880771215360,19421940900626432,19421906540363776,19421842118148096,19421923720364032,19421932310364160,19421850706051072,19421915130691584,19421837820821504,19421936605593600,19421928015527936,19421919425331200,19703334271909890,19703321387008002,19703415877337088,19703398697074688,19703407286353922,19703317092040706,19703355747926016,19703411582304256,19703390107402240,19703402992238592,19703308502106114,19703394402041856,19703325682761728,19703312797073410,19703381516550146,19984865082802178,19984886557638658,19984809248227330,19984877968949248,19984800659472384,19984856492867586,19984830723063810,19984873673785344,19984882262671362,19984796363325442,19984783478423554,19984890854047744,19984869377769474,19984787773390850,19984792068358146,20266365830758400,20266340059316226,20266352945659904,20266344354283522,20266258454937602,20266284224741378,20266361534152706,20266262749904898,20266271339839490,20266357239185410,20266267044872194,20266275636183040,20266305699577858,20266331469381634,20266348649250818,20547742022041602,20547823627206656,20547750612893696,20547815037534208,20547806447206400,20547737727074306,20547746317008898,20547780678057984,20547840807469056,20547832216354818,20547819332173824,20547759201910786,20547827922370560,20547733432107010,20547836512436224,20829302898360322,20829307193327618,20829294308425730,20829212704047106,20829221293981698,20829216999014402,20829208409079810,20829204116865024,20829281423523842,20829290013458434,20829311488294914,20829315783262210,20829298603393026,20829255653720066,20829234178883586,20829225588948994,21110769284546562,21110687680167938,21110730629840898,21110777874481154,21110782169448450,21110691975135234,21110786464415746,21110773579513858,21110696270102530,21110709155004418,21110756399644674,21110764989579266,21110700566315008,21110790759383042,21110683385200642,21392239966224386,21392248557338624,21392162656813058,21392244262305792,21392261441060866,21392257146093570,21392265737601024,21392231376289794,21392175543025664,21392184131649538,21392158361845762,21392205606486018,21392166951780354,21392171246747650,21392252852502528,21673732123000834,21673659108556802,21673736417968130,21673714944376832,21673680583393282,21673719239016448,21673706353197058,21673740714311680,21673723534049280,21673637633720322,21673633338753026,21673650519736320,21673641928687618,21673646223654914,21673727829213184,21955207099973634,21955155560366082,21955108315725826,21955112610693122,21955198510039042,21955194215071746,21955215689908226,21955134085529602,21955121200627714,21955189920104450,21955116905660418,21955181330169858,21955125496446976,21955202805923840,21955211394940930,22236609062043650,22236669192437760,22236600473157632,22236664897798144,22236591882174466,22236673487470592,22236587587207170,22236677782634496,22236630536880130,22236690667732992,22236583292239874,22236596177141762,22236682076487682,22236686372700160,22236656306683906,22518011024834560,22518092628885504,22518088333983744,22518006729408512,22518053974376448,22517998139867136,22518002434703360,22518079743918080,22518225775886337,22799533248937984,23081111302569986,23081089827733506,23081115597537282,23081012518322178,23081102712635394,23081021108256770,23081025403224066,23081081237798914,23081107007602690,23081055467995138,23081094122700802,23081033993158658,23081016813289474,23081098417668098,23081008223354882,23362521857130496,23643958174220290,23643983949004800,23644108503121921,23925471810748416,24206994028888066,24206925309411330,24206989733920770,24207011208757250,24206921014444034,24206998323855362,24206908129542146,24206933899345922,24206916719476738,24207002618822658,24206912424509442,24206955374182402,24207006913789954,24206981143986178,24207015503724546,24488404580892672,24488383106973698,24488335861809152,24488554908286977,24488550613254145,24488331566383104,24488322976841728,24488327271677952,24488413170958336,24488417465860096,24488378811351040,24769943982833664,24769965458128896,24769939688194048,24769862378323968,24769956867866624,24769952573030400,24769875263553536,24769961163096064,24769866676305920,24769948277866496,24769905328717824,24769931097866240,25051436139479042,25051414664642562,25051333060263938,25051423254577154,25051358830067714,25051431844511746,25051418959609858,25051406074707970,25051427549544450,25051380304904194,25051345945165826,25051337355231234,25051440434446338,25051341650198530,25051350240133122,25332786560172034,25332842394746882,25332777970237442,25332760790368258,25332756495400962,25332752200433666,25332829509844994,25332859574616066,25332863869583362,25332795150106626,25332868164550658,25332803740041218,25332838099779586,25332850984681474,25332876754485250,25332846689714178,25332747905466370,25332971248615425,25614437635457025,25614334551457792,25614261536948224,25614252947210240,25614222882504704,25614338846490624,25895757987840002,26177254439976962,26177263029911554,26177271619846146,26177177130565634,26177228670173186,26177288799715330,26177220080238594,26177211490304002,26177396178878465,26177202900369410,26177293094682626,26177181425532930,26177172835598338,26177275914813442,26177284504748034,26177301684617218,26177267324878850,26177185720500226,26458811023360000,26458815318392832,26458884040622081,26458798138130432,26458707944079362,26458780958130176,26458806728130560,26458712238587904,26458793843097600,26458789548457984,26458755188981760,26458725123817472,26458733716701184,26458802433294336,26740182923739136,27021662192140290,27021675077042178,27021666487107586,27021739501551618,27021670782074882,27021683666976770,27021760976388098,27021765271355394,27021730911617026,27021752386453506,27021756681420802,27021743796518914,27021705141813250,27021748091486210,27021657897172994,27303111397212160,27303184411721728,27303287490609153,27303291791278081,27303266021605377,27303085628915712,27303072747814912,27303175827226624,27303162938064896,27303119992848384,27303193006768128,27303128578457600,27303102807474176,27303081333489664,27303201597161472,27303167232966656,27303171532128256,27303188706754560,27303300381016065,27303077038784512,27303154347999232,27584547724984320,27866250334437377,27866061350633472,27866026992205824,27866069946269696,27866237444030465,27866151550582784,27866134365143040,27866121485549568,27866142960189440,27866215975026689,27866031286910976,27866112891486208,27866022701236224,27866138660175872,27866117186387968,27866052760895488,27866125780975616,27866078531878912,27866035582337024,27866241744699393,27866104301420544,28147592163098624,28147501968916480,28147587868196864,28147579278131200,28147497674080256,28147553508589568,28147510559047680,28147725311803393,28147506263621632,28429032780988418,28710597951356930,28710507757043714,28710610836258818,28710512052011010,28710602246324226,28710520641945602,28710533526847490,28710589361422338,28710524936912898,28710593656389634,28710580771487746,28710516346978306,28710606541291522,28710555001683970,28710615131226114,28991978443309056,29273474894921728,29273462010085376,29273547905236992,29273552200400896,29273560790466560,29273504956088320,29273543610204160,29273556495237120,29273530725236736,29273565085499392,29273539315564544,29554936982405122,29555027176718338,29554949867307010,29555022881751042,29555014291816450,29555031471685634,29555040061620226,29555035766652930,29554979932078082,29555018586783746,29555010001305600,29555005701881858,29554872556060674,29836570877427713,29836442022117378,29836459201986562,29836467791921154,29836360417738754,29836386187542530,29836476381855746,29836351827804162,29836446317084674,29836377597607938,29836347532836866,29836429137215490,29836437727150082,29836450612051970,29836403367411714,29836463496953858,29836394777477122,29836356122771458,30117938473730050,30117942768697346,30117831099547650,30117904113991682,30117925588828162,30117916998893570,30117878344187906,30117835394514946,30117822509613058,30117912703926274,30117934178762754,30117951358631938,30117861164318722,30117869754253314,30117826804580354,30117852574384130,30117921293860866,30399409154490370,30399327550111746,30399413449457666,30399336140046338,30399297485340674,30399318960177154,30399400564555778,30680888427741186,30680785348526082,30680875542839298,30680811118329858,30680772463624194,30680781053558786,30680866952904706,30680871247872002,30680802528395266,30680862657937410,30680828298199042,30680897017675778,30680819708264450,30680884132773890,30680776758591490,30680854068002818,30680901312643074,30680892722708482,30962303280611328,31243735302864896,31243731007438848,31243726712733696,31243816906915840,31243804021948416,31243812612014080,31243950056079361,31243778252406784,31243722417897472,31525283296903168,31525257522118658,31525407852986369,31806775455580160,32088383576342529,32088314852605952,32088233250914304,32088211772801024,32088306262343680,32088280492343296,32088207478292482,32088301967507456,32088310557573120,32088254723194880,32088297672343552,32088293377310720,32088224658030592,32088289082671104,32369678159249408,32369716813758464,32369849963184129,32369622324740096,32369703928791040,32369712518856704,32369630914281472,32369635209707520,32369626619576320,32651097306693632,32932653882212352,32932576572997632,32932662472278016,32932628112670720,32932585163128832,32932580867702784,32932666767179776,32932799916736513,32932572278161408,33214137448988672,33214128858923008,33214103089381376,33214274893512705,33214141743890432,33214060139839488,33214047254872064,33214051549708288,33214055844413440,33495552295108608,33495616720601088,33495736978243585,33495642494402560,33495625316237312,33495535116550144,33495621019762688,33495603835633664,33495578066092032,33495633899356160,33495749868650497,33495569480482816,33495526526418944,33495741278912513,33495638194388992,33495560884846592,33495612425699328,33495522235449344,33495715509239809,33495530821124096,33495651084795904,33777005797834752,33777224847065089,33777053042802688,33777001503129600,33777091697311744,33777010093260800,33777078812344320,33777087402409984,33776997208293376,34058613919645696,34058622509318144,34058549495005184,34058639689580544,34058579560169472,34058536609775616,34058618214285312,34058626804482048,34058631099318272,34058635394547712,34058545205018624,34058605329317888,34340007289290754,34621666948612098,34621439315345410,34902957245464578,35184531006160896,35184449401847808,35184518121127936,35184522416160768,35184526711324672,35184535301390336,35184432227024896,35184436516618240,35184479467012096,35184505236160512,35184539596423168,35184513826488320,35466010277249026,35465911493001218,35466014572216322,35465993097379842,35465980212477954,35465954442674178,35465988802412546,35465924377903106,35465997392347138,35466001687314434,35465902908833792,35466005982281730,35747480959582208,35747386470039552,35747468074549248,35747463779909632,35747399355269120,35747489549844480,35747485254811648,35747476664745984,35747472369582080,35747455189581824,35747390770511872,35747429420433408,36028874331979776,36028947346292736,36028951641456640,36028904397144064,36028964526555136,36028955936292864,36028861446750208,36028938756620288,36028960231522304,36028943051259904,36028870042255360,36028930166292480,36310280587247618,36310396551364610,36310392256397314,36310302062084098,36310319241953282,36310375076528130,36310271997313026,36310276292280322,36310400846331906,36310370781560834,36310353601691650,36310383666462722,36310362191626242,36310310652018690,36310387961430018,36310327831887874,36310366486593538,36310284882214914,36591880119713792,36591901594877952,36591807110840320,36591910184943616,36591897299714048,36591914479976448,36591824285401088,36591905889714176,36591893004681216,36591888710041600,36591854350565376,36591811400171520,36873312145506306,36873230541127682,36873260605898754,36873325030408194,36873342210277378,36873337915310082,36873252015964162,36873269195833346,36873226246160386,36873350800211970,36873316440473602,36873320735440898,36873346505244674,36873277785767938,36873234836094978,36873221951193090,36873303555571714,36873333620342786,37154911675482113,37154890206478337,37154817191641088,37154825782034432,37154795717001216,37154705518362624,37154808596594688,37154744177721344,37154915978117121,37154696932687872,37154709813788672,37154701223657472,37154726992347136,37154787122937856,37154752763330560,37154778532872192,37154735582085120,37154924565889025,37154791417839616,37154812891627520,37436176200368128,37436262099648512,37436227740041216,37436171905531904,37436184790499328,37436399541944321,37436403839795201,37436266394550272,37436253509582848,37436232035663874,37436180495073280,37717814385836034,37717810090868738,37717788616032258,37717780026097666,37717797205966850,37717801500934146,37717754256293890,37717792910999554,37717805795901442,37717711306620930,37717724191522818,37717784327290880,37999134742740994,37999220642086914,37999130447773698,37999233526988802,37999151922610178,37999216347119618,37999246411890690,37999242116923394,37999169102479362,37999237821956098,37999224937054210,37999126152806402,37999212052152322,37999250706857986,37999203462217730,37999160512544770,37999177692413954,37999121857839106,38280635488927744,38280708503437312,38280790113320961,38280596839530496,38280691324682240,38280811582324737,38280609720631296,38280687029780480,38280815885156353,38280717098483712,38280824472731649,38280626899189760,38280601130500096,38280678439714816,38280605425205248,38280695623843840,38280644084563968,38280652670173184,38280725688877056,38280712798470144,38562119055769602,38562101875900418,38562080401063938,38562174890344450,38562166300409858,38562170595377154,38562084696031234,38562127645704194,38562076106096642,38562153415507970,38562071811129346,38562183480279042,38562162005442562,38562200660148226,38562110465835010,38562192070213634,38562196372652032,38562187775246338,38843606924918784,39125077600305152,39125249405419521,39125026060632064,39125034650763264,39125116254814208,39125111959912448,39125030355337216,39125021765795840,39125103369846784,39406608410476546,39406552575901698,39406591230607362,39406501036294146,39406496741326850,39406578345705474,39406621295378434,39406526806097922,39406535396032514,39406509626228738,39406617000411138,39406625590345730,39406543985967106,39406505331261442,39406599820541954,39406612705443842,39406595525574658,39406586935640066,39687971723083776,39688070507397120,39688186465878017,39688027553726464,39688087682023424,39688190768971777,39688061913333760,39688083386990592,39688199356284929,39688053323268096,39688066208235520,39688010372481024,39687984604184576,39687980308758528,39687976014053376,39688018968117248,39688164996874241,39688100572430336,39688001782743040,39688091982036992,39969588429848578,39969554070110210,39969511120437250,39969601314750466,39969579839913986,39969519716859904,39969609904685058,39969597019783170,39969524005339138,39969605609717762,39969614199652354,39969592724815874,40251076292116480,40250994693636096,40251054816952320,40251067701919744,40251084882182144,40251063407280128,40250998982639616,40251080586952704,40251071996952576,40251029047803904,40250986097410048,40251089177214976,40532521202089986,40532525497057282,40532405237972994,40532396648038402,40532491137318914,40532409532940290,40532486842351618,40532478252417026,40532435302744066,40532400943005698,40532508317188098,40532499727253506,40532452482613250,40532443892678658,40532516907122690,40532495432286210,40532512612155394,40532426712809474,40813918869716994,40813901689847810,40813966114357250,40813961819389954,40813987589193730,40813871625076738,40813974704291842,40814000474095618,40813996179128322,40813970409324546,40813875920044034,40813884509978626,40813880215011330,40813927459651586,40813953229455362,40813983294226434,40813910279782402,40813991884161026,41095445385969666,41095385256427522,41095346601721858,41095471155773442,41095359486623746,41095402436296706,41095428206100482,41095350896689154,41095436796035074,41095393846362114,41095355191656450,41095475450740738,41095458270871554,41095466860806146,41095449680936962,41095376666492930,41095462565838850,41095441091002370,];
fn _semaction_for_0_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Construct {
let mut cs = lbdown!(parser.popstack().value,Vec<ClassDec>); let mut mc = lbdown!(parser.popstack().value,Mainclass); Program(mc,cs) }
fn _semaction_for_1_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Mainclass {
let mut _item16_ = parser.popstack().value; let mut _item15_ = parser.popstack().value; let mut _item14_ = lbdown!(parser.popstack().value,Vec<Stat>); let mut _item13_ = parser.popstack().value; let mut _item12_ = parser.popstack().value; let mut _item11_ = lbdown!(parser.popstack().value,String); 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,String); 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>::default()} }
fn _semaction_for_2_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<ClassDec> {
Classes(Vec::new()) }
fn _semaction_for_3_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<ClassDec> {
let mut _item1_ = lbdown!(parser.popstack().value,ClassDec); let mut _item0_ = lbdown!(parser.popstack().value,Vec<ClassDec>);
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>>::default()} }
fn _semaction_for_4_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> ClassDec {
let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<Construct>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,String); let mut _item1_ = lbdown!(parser.popstack().value,String); 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>::default()} }
fn _semaction_for_5_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
let mut sup = lbdown!(parser.popstack().value,String); let mut _item0_ = parser.popstack().value; sup }
fn _semaction_for_6_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
Id("Object".to_owned()) }
fn _semaction_for_7_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> VarDec {
let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,String); let mut _item0_ = lbdown!(parser.popstack().value,String);
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>::default()} }
fn _semaction_for_8_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> VarDec {
let mut _item4_ = parser.popstack().value; let mut _item3_ = lbdown!(parser.popstack().value,Expr); let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,String); let mut _item0_ = lbdown!(parser.popstack().value,String);
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>::default()} }
fn _semaction_for_9_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> MethodDec {
let mut _item8_ = parser.popstack().value; let mut _item7_ = lbdown!(parser.popstack().value,Vec<Stat>); let mut _item6_ = parser.popstack().value; let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<VarDec>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,String); let mut _item1_ = lbdown!(parser.popstack().value,String); 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>::default()} }
fn _semaction_for_10_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Construct> {
Decs(Vec::new()) }
fn _semaction_for_11_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Construct> {
let mut v = lbdown!(parser.popstack().value,VarDec); let mut _item0_ = lbdown!(parser.popstack().value,Vec<Construct>);
if let (Decs(mut ds),)=(&mut *_item0_,) { ds.push(makelbox!(_v_,v)); Decs(ds) } else {parser.report("(Decs(mut ds),)"); <Vec<Construct>>::default()} }
fn _semaction_for_12_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Construct> {
let mut m = lbdown!(parser.popstack().value,MethodDec); let mut _item0_ = lbdown!(parser.popstack().value,Vec<Construct>);
if let (Decs(mut ds),)=(&mut *_item0_,) { ds.push(makelbox!(_m_,m)); Decs(ds) } else {parser.report("(Decs(mut ds),)"); <Vec<Construct>>::default()} }
fn _semaction_for_13_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec> {
Vdecs(Vec::new()) }
fn _semaction_for_14_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec> {
let mut _item2_ = lbdown!(parser.popstack().value,Vec<VarDec>); let mut _item1_ = lbdown!(parser.popstack().value,String); let mut _item0_ = lbdown!(parser.popstack().value,String);
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>>::default()} }
fn _semaction_for_15_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec> {
Vdecs(Vec::new()) }
fn _semaction_for_16_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<VarDec> {
let mut _item3_ = lbdown!(parser.popstack().value,Vec<VarDec>); let mut _item2_ = lbdown!(parser.popstack().value,String); let mut _item1_ = lbdown!(parser.popstack().value,String); 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>>::default()} }
fn _semaction_for_17_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
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:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
let mut _item0_ = parser.popstack().value; return Id("boolean".to_owned()); }
fn _semaction_for_19_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
let mut _item0_ = parser.popstack().value; return Id("String".to_owned()); }
fn _semaction_for_20_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
let mut _item0_ = parser.popstack().value; return Id("int".to_owned()); }
fn _semaction_for_21_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
let mut _item0_ = parser.popstack().value; return Id("void".to_owned()); }
fn _semaction_for_22_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> String {
let mut c = lbdown!(parser.popstack().value,String); c }
fn _semaction_for_23_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Stat> {
Stms(Vec::new()) }
fn _semaction_for_24_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Stat> {
let mut _item1_ = lbdown!(parser.popstack().value,Stat); let mut _item0_ = lbdown!(parser.popstack().value,Vec<Stat>);
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>>::default()} }
fn _semaction_for_25_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,Vec<Stat>); let mut _item0_ = parser.popstack().value;
if let (Stms(sv),)=(&mut *_item1_,) { Stm(Blockst(sv)) } else {parser.report("(Stms(sv),)"); <Stat>::default()} }
fn _semaction_for_26_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item6_ = lbdown!(parser.popstack().value,Stat); let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Stat); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr); 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>::default()} }
fn _semaction_for_27_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item4_ = lbdown!(parser.popstack().value,Stat); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr); 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>::default()} }
fn _semaction_for_28_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item4_ = lbdown!(parser.popstack().value,Stat); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr); 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>::default()} }
fn _semaction_for_29_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,String);
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>::default()} }
fn _semaction_for_30_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item6_ = parser.popstack().value; let mut _item5_ = lbdown!(parser.popstack().value,Expr); let mut _item4_ = parser.popstack().value; let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
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>::default()} }
fn _semaction_for_31_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item6_ = parser.popstack().value; let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<Expr>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,String); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exps(args),Id(m),Exp(obj),)=(&mut *_item4_,&mut *_item2_,&mut *_item0_,) {
Stm(Callstat(parser.lbx(0,obj),m,args))
} else {parser.report("(Exps(args),Id(m),Exp(obj),)"); <Stat>::default()} }
fn _semaction_for_32_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,Expr); let mut _item0_ = parser.popstack().value;
if let (Exp(e),)=(&mut *_item1_,) { Stm(Returnst(parser.lbx(1,e))) } else {parser.report("(Exp(e),)"); <Stat>::default()} }
fn _semaction_for_33_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Stat {
let mut _item0_ = lbdown!(parser.popstack().value,VarDec);
if let (Vdec(v),)=(&mut *_item0_,) { Stm(Vardecst(v.dname,v.dtype,parser.lbx(0,v.initval)))} else {parser.report("(Vdec(v),)"); <Stat>::default()} }
fn _semaction_for_34_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_35_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_36_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_37_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_38_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_39_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("*",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_40_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item1_ = lbdown!(parser.popstack().value,Expr); let mut _item0_ = parser.popstack().value;
if let (Exp(a),)=(&mut *_item1_,) { Exp(Notexp(parser.lbx(1,a))) } else {parser.report("(Exp(a),)"); <Expr>::default()} }
fn _semaction_for_41_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("<",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_42_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("%",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_43_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(b),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("==",parser.lbx(0,a),parser.lbx(2,b)))} else {parser.report("(Exp(b),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_44_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,Expr); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exp(i),Exp(a),)=(&mut *_item2_,&mut *_item0_,) { Exp(Binop("[]",parser.lbx(0,a),parser.lbx(2,i)))} else {parser.report("(Exp(i),Exp(a),)"); <Expr>::default()} }
fn _semaction_for_45_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = lbdown!(parser.popstack().value,String); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Id(field),Exp(obj),)=(&mut *_item2_,&mut *_item0_,) { Exp(Field(field,parser.lbx(0,obj))) } else {parser.report("(Id(field),Exp(obj),)"); <Expr>::default()} }
fn _semaction_for_46_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item5_ = parser.popstack().value; let mut _item4_ = lbdown!(parser.popstack().value,Vec<Expr>); let mut _item3_ = parser.popstack().value; let mut _item2_ = lbdown!(parser.popstack().value,String); let mut _item1_ = parser.popstack().value; let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exps(args),Id(f),Exp(obj),)=(&mut *_item4_,&mut *_item2_,&mut *_item0_,) { Exp(Callexp(parser.lbx(0,obj),f,args)) } else {parser.report("(Exps(args),Id(f),Exp(obj),)"); <Expr>::default()} }
fn _semaction_for_47_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut i = lbdown!(parser.popstack().value,i32); i }
fn _semaction_for_48_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut s = lbdown!(parser.popstack().value,String); s }
fn _semaction_for_49_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut b = lbdown!(parser.popstack().value,bool); unbox!{b} }
fn _semaction_for_50_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item0_ = lbdown!(parser.popstack().value,String);
if let (Id(x),)=(&mut *_item0_,) { Exp(Var(x)) } else {parser.report("(Id(x),)"); <Expr>::default()} }
fn _semaction_for_51_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item0_ = parser.popstack().value; Exp(Thisptr) }
fn _semaction_for_52_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item4_ = parser.popstack().value; let mut _item3_ = lbdown!(parser.popstack().value,Expr); 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>::default()} }
fn _semaction_for_53_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item3_ = parser.popstack().value; let mut _item2_ = parser.popstack().value; let mut _item1_ = lbdown!(parser.popstack().value,String); let mut _item0_ = parser.popstack().value;
if let (Id(x),)=(&mut *_item1_,) { Exp(Newobj(x)) } else {parser.report("(Id(x),)"); <Expr>::default()} }
fn _semaction_for_54_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Expr {
let mut _item2_ = parser.popstack().value; let mut e = lbdown!(parser.popstack().value,Expr); let mut _item0_ = parser.popstack().value; e }
fn _semaction_for_55_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr> {
Exps(Vec::new()) }
fn _semaction_for_56_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr> {
let mut _item1_ = lbdown!(parser.popstack().value,Vec<Expr>); let mut _item0_ = lbdown!(parser.popstack().value,Expr);
if let (Exps(mut er),Exp(e),)=(&mut *_item1_,&mut *_item0_,) { er.push(parser.lbx(0,e)); Exps(er) } else {parser.report("(Exps(mut er),Exp(e),)"); <Vec<Expr>>::default()} }
fn _semaction_for_57_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr> {
Exps(Vec::new()) }
fn _semaction_for_58_(parser:&mut ZCParser<LBox<dyn Any>,LBox<dyn Any>>) -> Vec<Expr> {
let mut _item2_ = lbdown!(parser.popstack().value,Vec<Expr>); let mut _item1_ = lbdown!(parser.popstack().value,Expr); 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>>::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); <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 {
Enumvariant_1(String),
Enumvariant_2(bool),
Enumvariant_3(i32),
Enumvariant_0(LBox<dyn Any>),
Enumvariant_4(Construct),
Enumvariant_5(Mainclass),
Enumvariant_6(ClassDec),
Enumvariant_7(Vec<ClassDec>),
Enumvariant_8(VarDec),
Enumvariant_9(MethodDec),
Enumvariant_10(Vec<Construct>),
Enumvariant_11(Vec<VarDec>),
Enumvariant_12(Stat),
Enumvariant_13(Vec<Stat>),
Enumvariant_14(Expr),
Enumvariant_15(Vec<Expr>),
}
impl Default for RetTypeEnum { 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