//Parser generated by rustlr for grammar pascal
#![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)]
#![allow(unreachable_patterns)]
use std::rc::Rc;
use std::cell::RefCell;
extern crate rustlr;
use rustlr::{Tokenizer,TerminalToken,ZCParser,ZCRProduction,Stateaction,decode_action};
use rustlr::{StrTokenizer,RawToken,LexSource};
use std::collections::{HashMap,HashSet};
static SYMBOLS:[&'static str;142] = ["_WILDCARD_TOKEN_","TERMINAL0","TERMINAL1","TERMINAL2","TERMINAL3","TERMINAL4","TERMINAL5","TERMINAL6","TERMINAL7","TERMINAL8","TERMINAL9","TERMINAL10","TERMINAL11","TERMINAL12","TERMINAL13","TERMINAL14","TERMINAL15","UNSIGNED_INT","UNSIGNED_REAL","STRING","IDENTIFIER","NE","LE","GE","BECOMES","DIV","MOD","NIL","IN","OR","AND","NOT","DOTDOT","IF","THEN","ELSE","CASE","OF","REPEAT","UNTIL","WHILE","DO","FOR","TO","DOWNTO","SBEGIN","END","WITH","GOTO","CONST","VAR","TYPE","ARRAY","RECORD","SET","SFILE","FUNCTION","PROCEDURE","LABEL","PACKED","PROGRAM","actual_param","actual_params","actuals_list","add_op","assignment","block","body","case_label","case_label_list","case_list","case_list_elem","colon_things","compound_stmt","const_dcl_part","const_def","const_defs","constant","declaration","declarations","direction","expression","expressions","external_files","factor","field_list","fixed_part","formal_p_sect","formal_p_sects","formal_params","func_heading","function_form","ident","index_spec","index_specs","index_t_list","label","label_dcl_part","labels","member","member_list","members","mult_op","new_id_list","newident","newident_list","opt_declarations","param_group","paramtype","proc_dcl_part","proc_heading","proc_or_func","procedure_call","program","rec_var_list","record_section","record_var","relational_op","set","simple_expr","simple_type","statement","statement_part","statements","struct_type","tag_field","term","type","type_dcl_part","type_def","type_defs","unsigned_lit","unsigned_num","var_dcl_part","variable","variable_dcl","variable_dcls","variant","variant_part","variants","START","EOF"];
static TABLE:[u64;2548] = [257698168832,485331369985,282080567099395,563035853029376,563396630216705,844781412810753,844489354969088,844446405033986,1125921393213442,1125968637853698,1126037357330434,1125929983148034,1125904213344258,1125938573082626,1125964342886402,1407825855643649,1407817265643521,1407460783161344,1407821560741889,1688871335755776,1970393560711170,1970329136201730,1970363492401152,2251868533948416,2533313449492482,2533279089754114,2533343514263554,2815320998739969,2815166380638209,2815299523969025,2815089070768129,2815226510376961,2814990287044608,2815033236127745,2815136315604993,2814968812273664,2815217920180225,2814943040897026,2815084775931905,2814964517044224,2815205034557441,2814960221618176,2815222215475201,2814998876520448,2814994581749760,2815067595538433,3096671422447617,3096310643425280,3377721195495426,3659385151225858,3659415215996930,3659389446193154,3659423805931522,3659393741160450,3659419510964226,3659367971356674,3940963208658945,3940842949705728,3941173662121985,4222317924909058,4222335104778242,4222373759483906,4222343694712834,4222339399745538,4222365169549314,4222369464516610,4503814376390658,4503792901554178,4503840146194434,4503810081423362,4503844441161730,4503818671357954,4503848736129026,4785401023954945,4785396728922113,4785160503689216,4785521283104769,5066562468184064,5348269372145664,5348441171034113,5348497005871105,5348359567507457,5348492710576129,5348595789135873,5348411106000897,5348217831358466,5348574314364929,5348239307440128,5348273666916352,5348243602669568,5348265077440512,5348501300772865,5348342385934337,5348235012014080,5629572551344128,5629911853694977,5629920443760641,5911219324518402,5911223619485698,5911184964780034,5911167784910850,5911189259747330,5911193554714626,5911215029551106,6192470965288960,6474371143827457,6474010363953152,6755850415570945,6755979264720897,6755983559622657,6755841823145985,6755485340663808,6755846118244353,7037114936721410,7037093461884930,7037123526656002,7037084871950338,7037067692081154,7037089166917634,7037119231688706,7318542668529666,7318559848398850,7318594208137218,7318564143366146,7318568438333442,7318589913169922,7318598503104514,7600271050932225,7599910270795776,7881385247506432,7881857696923649,7881853401890817,7881746027839489,8162989077430274,8162984782462978,8162967602593794,8163014847234050,8162993372397570,8163023437168642,8163019142201346,8444270779564032,8725793001832450,8725762937061378,8725728577323010,9007220735606786,9007212145672194,9288695706484738,9288687116550146,9570290946342912,9570329601179648,9570462744576001,9570677492613121,9570724737384449,9570222225293312,9570170689290242,9570428385492993,9570351075164160,9570235111636992,9570668902875137,9570312421113856,9570321010851840,9570303830917120,9570346782949378,9570342483918848,9570630248562689,9570355370917888,9570544348889089,9570561528889345,9851645660954626,10133120640942080,10414604207652864,10696654705393666,10977743135440898,10977717365637122,10977734545506306,10977773200211970,10977768905244674,10977738840473602,10977764610277378,11259020544245762,11259037724114946,11540641549910018,11540624370040834,11540512700891138,11540478341152770,11540671614681090,11540495521021954,11821987681271808,11821970501337088,12103900741828609,12103509902819328,12103840612089857,12103664518496256,12103995230191617,12103896446926849,12103668813201408,12103810547056641,12103892151631873,12103763302219777,12103638748495872,12103673107972096,12103643043725312,12103741826990081,12103707471249409,12103973755420673,12103759007383553,12103879266009089,12103634453069824,12103617272348674,12103711766151169,12384967699791874,12384963404824576,12384920455151618,12385281232338945,12666378252058624,12947870408704000,13229345384366082,13510803182125058,13510867606372354,13511181139443713,13511189729443841,13510863311667200,13510820361732098,13792295335755778,14073770315743232,14355253882454016,14636982261645313,14637115402485761,14637154056404993,14637248545816577,14636917834121216,14637038092615681,14637171237322753,14637270020587521,14637033797779457,14636784693215232,14636892062744578,14637085337452545,14636986557267969,14636909243465728,14637166942027777,14637016617385985,14636913538891776,14637175532224513,14636939308892160,14636947898368000,14636943603597312,14918195246071808,14918371339796480,15200224273694721,15200146964480001,15199734645850112,15200138374414337,15200043885199361,15481136609951744,15481226804396032,15481132315181056,15481166674788352,15762766205747202,15762796270518274,15762620176859138,16044224003768322,16044095154749442,16044176759128066,16044116629585922,16044138103242752,16044339966771201,16044271248408578,16044241183637506,16044086564814850,16044082269847554,16325716159365122,16325698979495938,16325570130477058,16325746224136194,16607027927252992,16888571623899136,16889061250826241,16888554444357632,16888563034423296,16888846501543937,16889009710235649,16888893745463297,16888584506114048,16888614573965312,16888580214358016,16888507199520768,16889005415792641,16888859386970113,16888631753375744,16889065545728001,16888575918473216,16889039775137793,16888532969259008,16889074134941697,17170089550675968,17170038011133952,17169982176231424,17170059482824704,17170549111652353,17170106730086400,17170334363680769,17170484686946305,17170029421068288,17170480392503297,17170050895183872,17170368722173953,17170055191068672,17170514751848449,17170321479237633,17170536227536897,17170007945969664,17170046600609792,17170540522438657,17451598886469634,17451646131109890,17451470037450754,17451616066338818,17732970788880386,17732975083847682,17733121112735746,17733082458030082,17732957903978498,17733043803324418,17733052393259010,17733013738553346,17732953609011202,17732962198945794,17732966493913090,17733069573128194,17733108227833858,17733022328487938,17732927839207426,17732987968749570,17732949314043906,17733030918422530,17732983673782274,17733073868095490,17732945019076610,17733035213389826,17732992263716866,17733112522801154,17733018033520642,17732936429142018,17732940724109314,17732932134174722,17733091047964674,17733099637899266,17733026623455234,17733048098291714,17733060983193602,17732979378814978,18014419990609922,18014578902499328,18014918204194817,18014677686812673,18014553132236800,18014471526612992,18014600376483840,18014591785238528,18014974038704129,18014561722433536,18014570312171520,18014540247662592,18014810830209025,18014879549882369,18014712045895681,18014484412956672,18014793650208769,18014604672237568,18014566019497986,18014926798061569,18295989457518592,18296436134379521,18296221386211329,18296268629016577,18296234270523393,18296380299345921,18295959389667328,18295955097911296,18295946507452416,18295907852812288,18296440429281281,18295937917976576,18295929327910912,18295882083074048,18295950802026496,18296006636929024,18296384593788929,18296449018494977,18296414658691073,18577760787496961,18577421480034304,18859218584403969,18858909343088640,19140448746668034,19140319897649154,19140465926537218,19140495991308290,19422095523446785,19422018207285250,19421992437481474,19421859292643328,19422022502252546,19421988142514178,19422013912317954,19421983847546882,19421966667677698,19422220072058881,19703321391005696,19703325685579776,19703334273220608,19703643514667009,19703579090485249,19703329982185472,19703815313620993,19703304212447232,19703282737479680,19984972455411714,19984963865477122,19984933800706050,19984968160444418,19984916620836866,19984938095673346,19984942390640642,20266271340298240,20266610648350721,20547694783102976,20829169756340226,21110644733116418,21392166954139650,21392119709499394,21673946877526017,21673951172427777,21674024187133953,21674032776937473,21673787963604992,21673659106328576,21673813726658560,21674045661577217,21673959762558977,21673818021363712,21674015588810753,21674019883909121,21955134086905856,21955443329859585,21955275826069504,21955112617246720,21955580768485377,21955378905088001,21955125499265024,21955563588419585,21955284415676416,21955271530708992,21955615127306241,21955104026132480,21955121204690944,21955129795870720,21955082551164928,21955280120905728,21955091142737920,21955593653780481,21955301596069888,22236609059749888,22236965542232065,22236767977275394,22236974134657025,22236716437667842,22236733617537026,22236763682308098,22237102990426113,22236772272242690,22236742207471618,22236969837330433,22236737912504322,22518002441584640,22799541837758466,22799494593118210,23081141365768194,23081167135571970,23081192905375746,23081158545637378,23081197200343042,23081162840604674,23081502150885377,23081033989881856,23081188610408450,23081394770214913,23362496088244224,23362504679424000,23362753788641281,23362457434718208,23362659299229696,23362676479623168,23362650709622784,23362508970459136,23362968537726977,23362655004459008,23362646414262272,23362818213412865,23362990010859521,23362478909685760,23362487500800000,23362938471972865,23362955652038657,23362466026291200,23362500382818304,23643919528493056,23925536233357312,23925527643160576,23925948549627905,23925553413423104,23925544823095296,23925458923880448,23925892721475585,23925785341132801,23925540530421762,23925566296162304,23925854060806145,23925652197736449,23925514758586368,23925579183161344,23925570595192834,23925768161132545,23925686556819457,23925574887407616,23925394501533698,23925446037536768,24206998327066626,24206860888113154,24207015506935810,24207045571706882,24206869478047746,24488499078889474,24488361639936002,24488365929529344,24488335864692736,24488331569922048,24769836615335936,24769974054354944,25051281524588546,25051324474261506,25051393193738242,25051315884326914,25051401783672834,25051440438378498,25051457618247682,25051461913214978,25051320179294210,25051410373607426,25051363128967170,25051337357983744,25051397488705538,25051307294392322,25051371718901762,25051302999425026,25051285819555842,25051431848443906,25051380308836354,25051449028313090,25051298704457730,25051328769228802,25051470503149570,25051333064196098,25051418963542018,25051367423934466,25051290114523138,25051384603803650,25051341654130690,25051294409490434,25051277229621250,25051311589359618,25051539225444353,25051423258509314,25332924006072322,25332786567118850,25614308784144384,25614618027950081,25895710753488898,25895736523292674,25895818127671298,25895706458521602,25895757998129154,25895809537736706,25895788062900226,25895740818259970,25895865372311554,25895723638390786,25895856782376962,25895835307540482,25895826717605890,25895800947802114,25895822422638594,25895796652834818,25895873962246146,25895895437082626,25895843897475074,25895792357867522,25895848192442370,25895702163554306,25895766588063746,25895727933358082,25895715048456194,25895882552180738,25895753703161858,25895805242769410,25895719343423490,25895886847148034,25895745113227266,25895732228325378,25895749408194562,26177748366393345,26177207200710656,26177714006589441,26177250149924864,26177258737565696,26177533618421761,26177567976914945,26177683941687297,26177305984827392,26177739777179649,26177228675809280,26177254445809664,26177520736796673,26177735482277889,26177245855350784,26177237265874944,26177288805416960,26177181430972416,26177679647244289,26458703652519936,26458725126635520,26459042953625601,26458733714276352,26459158918397953,26459210458988545,26459188983300097,26459214753890305,26458720832061440,26458763782127616,26459008595132417,26459000008540161,26459223343104001,26459154623954945,26458682177421312,26458995713638401,26458712242585600,26458780961538048,26458729422520320,26458656407683072,26740255938248704,26740187219296256,26740178629230592,26740200103346176,26740204399230976,26740633895108609,26740393381134337,26740517930336257,26740689730600961,26740131384393728,26740157154131968,26740483571843073,26740208690987008,26740470690414593,26740384791134209,26740685435699201,26740238758838272,26740663960010753,26740629600665601,26740698319814657,26740195808772096,27021748095418370,27021610660134914,27021640724905986,27021765275287554,27021619246399490,27021700854448130,27021606365167618,27021795340058626,27303227363688448,27303253133950976,27303485061660673,27303270315720706,27303266016690176,27303158644408320,27303467881660417,27303278903689216,27303553781334017,27303386277347329,27303235953885184,27303094222061570,27303351918264321,27303274607935488,27303592442724353,27303214479114240,27303223071080450,27303145758064640,27303648270155777,27303244543623168,27303240250949634,27584715223269378,27584672273596418,27584569194381314,27584706633334786,27584736698105858,27584693748432898,27584659388694530,27584616439021570,27584607849086978,27584599259152386,27584667978629122,27584577784315906,27584723813203970,27584655093727234,27584646503792642,27584637913858050,27584642208825346,27584685158498306,27584594964185090,27584564899414018,27584573489348610,27584582079283202,27584745288040450,27584676568563714,27584732403138562,27584698043400194,27584586374250498,27584552014512130,27584603554119682,27866220271370242,27866044177711106,27866173026729986,27866078540464128,27866069947514882,27866211681435650,27866026997841922,27866147259285504,27866181616664578,27866198796533762,27866052770267136,27866091422351362,27866525216800769,27866112899678208,27866168731762690,27866117194842112,27866057065037824,27866190206599170,27866207386468354,27866297583599617,27866142964514816,27866121490071552,27866048474972160,27866160141828098,27866082835300352,27866061357580290,28147656596455424,28429140160610306,28429011311591426,28429067146166274,28428998426689538,28429002721656834,28429148750544898,28429071441133570,28429410746105857,28429032786427906,28429131570675714,28429157340479490,28429170225381378,28428976951853058,28429118685773826,28429101508722688,28429007016624130,28429019901526018,28429041376362498,28428989839441920,28429161635446786,28429080033689600,28429084328787968,28429024199376896,28428994131722242,28429092915970050,28429062851198978,28429097210937346,28429028491460610,28429122980741122,28429110095839234,28710615138238466,28710632318107650,28710645203009538,28710572188565506,28710451929481218,28710593663401986,28710546418761730,28710559303663618,28710477699284994,28710606548303874,28710636613074946,28710576483532802,28710516353990658,28710507764056066,28710555008696322,28710499174121474,28710537828827138,28710503469088770,28710460515352576,28710585073467394,28710567893598210,28710469109350402,28710473404317698,28710490580189184,28710597958369282,28710456220581888,28710486289219586,28710623728173058,28710494879154178,28710481994252290,28710464814383106,28710542123794434,28991987032981504,28992485249384449,28991999917031424,28992038572523520,28992004212916224,28992008504672256,28991931198078976,28992489544286209,28992283390509057,28992498133499905,28992429414350849,28992317744021505,28992055751933952,28991995622457344,29273547903598594,29273517838827522,29273582263336962,29273496363991042,29273535018696706,29273423349547010,29273522133794818,29273526428762114,29273466299219970,29273457709285378,29273595148238850,29273556493533186,29273453414318082,29273492069023746,29273504953925634,29273427644514306,29273487774056450,29273543608631298,29273414759612418,29273431939481602,29273509248892930,29273586558304258,29273436234448898,29273401874710530,29273444824383490,29273565083467778,29273573673402370,29273449119350786,29273419054579714,29555448086921217,29555233338949633,29555379367772161,29554936986402816,29554954166337536,29554958458093568,29554945575878656,29555439497707521,29555005705355264,29554988525944832,29555435202805761,29554881151500288,29554949870452736,29555267697442817,29555413732622337,29836480682065920,29836772745412609,29836910179516417,29836858638925825,29836429143048192,29836424847163392,29836463502655488,29836854344482817,29836777040445441,29836695435935745,29836781335216129,29836433434804224,29836381897949184,29836742674153473,29836403373047808,29836394786586626,29836888703827969,29836420552589312,29836923063631873,29836914474418177,29836708315660289,29836356128210944,29836411963113472,30117934187413506,30117981432053762,30117959957217282,30117848288067586,30117891237740546,30117929892446210,30117861172969474,30117942777348098,30117843993100290,30118011496824834,30117921302511618,30117826813231106,30117990021988354,30118020086759426,30117869762904066,30117972842119170,30117912712577026,30117874057871362,30117878352838658,30117917007544322,30117882647805954,30117968547151874,30118007201857538,30117839698132994,30117856878002178,30117951367282690,30117947072315394,30117998611922946,30117852583034882,30399443523207170,30399391983599618,30399404868501506,30399387688632322,30399482177912834,30399447818174466,30399396278566914,30399486472880130,30399417753403394,30399344738959362,30399349033926658,30399426343337986,30399314674188290,30399422048370690,30399464998043650,30399318969155586,30399323264122882,30399357623861250,30399456408109058,30399353328893954,30399366213795842,30399434933272578,30399409163468802,30399301789286402,30399495062814722,30399331854057474,30399336149024770,30399473587978242,30399327559090178,30680905612197888,30681167604285441,30681279274614785,30680836893245440,30680854073180160,30680781058342912,30681335109648385,30681347993763841,30681313639792641,30681133245792257,30680858364936192,30680845482721280,30681339404550145,30680849777295360,30680888432787456,30962372002709506,30962367707742210,30962273218461698,30962277513428994,30962359117807618,30962346232905730,30962397772513282,30962354822840322,30962316168134658,30962384887611394,30962436427218946,30962376297676802,30962337642971138,30962406362447874,30962286103363586,30962268923494402,30962423542317058,30962307578200066,30962251743625218,30962303283232770,30962393477545986,30962341937938434,30962445017153538,30962281808396290,30962294693298178,30962298988265474,30962264628527106,30962432132251650,30962414952382466,31243731011764224,31243808318357504,31243778256601088,31243756781502464,31243855565619200,31244229228036097,31244289357971457,31243795436142592,31244297947185153,31244070319751169,31244285063069697,31244083199213569,31243804026601472,31243838386208768,31244117557706753,31244263587381249,31243799730716672,31244233522479105,31243786846666752,31525214581882882,31525304776196098,31525343430901762,31525248941621250,31525223171817474,31525218876850178,31525373495672834,31525253236588546,31525364905738242,31525201696980994,31525287596326914,31525257531555842,31525326251032578,31525266121490434,31525231761752066,31525382085607426,31525244646653954,31525309071163394,31525334840967170,31525386380574722,31525236056719362,31525356315803650,31525296186261506,31525394970509314,31525321956065282,31525317661097986,31525347725869058,31525227466784770,31525291891294210,31806728213233666,31806861357219842,31806869947154434,31806706738397186,31806676673626114,31806741098135554,31806732508200962,31806792637743106,31806796932710402,31806831292448770,31806818407546882,31806698148462594,31806702443429890,31806784047808514,31806723918266370,31806779752841218,31806766867939330,31806857062252546,31806822702514178,31806689558528002,31806801227677698,31806711033364482,31806693853495298,31806719623299074,31806848472317954,31806839882383362,31806762572972034,31806771162906626,31806809817612290,32088181714845698,32088323448766466,32088284794060802,32088168829943810,32088194599747586,32088177419878402,32088332038701058,32088314858831874,32088241844387842,32088293383995394,32088173124911106,32088259024257026,32088186009812994,32088207484649474,32088164534976514,32088216074584066,32088336333668354,32088237549420546,32088254729289730,32088271909158914,32088297678962690,32088198894714882,32088203189682178,32088267614191618,32088306268897282,32088344923602946,32088246139355138,32088151650074626,32088276204126210,32369798427967488,32651264814809088,32651118778843136,32932718316748800,33214068733313026,33214214762201090,33214197582331906,33214244826972162,33495625320562688,33777018681294850,34058669752057858,34058510838267906,34058476478529538,34058540903038978,34058493658398722,34058519428202498,34340033062174720,34340024474533888,34340514107228161,34340342308601857,34340020179959808,34621443612016642,34621460791885826,34621490856656898,34621559576133634,34621469381820418,34621426432147458,34621619705675778,34903464060846081,34902983015596032,34903292262088705,34902974427955200,34902970133381120,35184376385175554,35184410744913922,35184440809684994,35184569658703874,35184419334848514,35184393565044738,35184509529161730,35465868541689858,35747360697876482,35747343518007298,36029016066883586,36029046131654658,36028990297079810,36029007476948994,36029037541720066,36029041836687362,36029011771916290,36310340720590850,36310293475950594,36592206546993153,36592197952798721,36592189354475521,36591832871993344,36592193649573889,36873243437105152,36873290681810944,37154765650526210,37154718405885954,37436193382662146,37436240627302402,37717715604209666,37717668359569410,37999126164209664,38280618309713922,38280794403373058,38280665554354178,38562080412663808,38843705713295360,39125043239976962,39125219333636098,39125090484617218,39406634191945728,39688130643558400,39969893370101761,39969532592521216,39969889075003393,39969897678110721,40251364051714049,40251286755540993,40250943147933698,40251368346812417,40251119241592834,40251291050704897,40251415604625409,40251007569231872,40251076302405632,40251372655214593,40251514388938753,40532418123792386,40532443893596162,40532435303661570,40532534086860802,40532594217451522,40532465368432642,40813893102075906,41095582832001024,41095879189790721,41095578537230336,41095569947033600,41095574242394112,41376907489968128,41658318032076802,41940166681100289,41939857433362432,42221267983466498,42502742960308226,42784415507873794,42784436982710274,42784441277677570,42784411212906498,42784389738070018,42784445572644866,42784406917939202,43065838946615298,43065692917727234,43065869011386370,43347232316915712,43347721944760321,43347541556264961,43347644643934209,43628694407282688,43628784603103232,43628818964938754,43628771720298498,43628814665908224,43628934926565377,43628776012906496,43628827552907264,43628788900167682,43628642871279618,43629016530878465,43628707293626368,43628793192841216,43628823257153536,43629141095546881,43629033710878721,43628900567482369,43629196919373825,43628801783169024,43629102430552065,43628763128332288,43910208047022082,43910122147676162,43910139327545346,43910117852708866,43910186572185602,43910220931923970,43910216636956674,43910100672839682,43910285356433410,43910195162120194,43910130737610754,43910126442643458,43910263881596930,43910156507414530,43910281061466114,43910190867152898,43910225226891266,43910152212447234,43910104967806978,43910203752054786,43910135032578050,43910165097349122,43910293946368002,43910272471531522,43910246701727746,43910233816825858,43910109262774274,43910113557741570,43910143622512642,43910242406760450,43910255291662338,43910147917479938,44191695908765698,44191683023863810,44191622894321666,44191588534583298,44191708793667586,44191605714452482,44191627189288962,44191601419485186,44191584239616002,44191665843994626,44191760333275138,44191614304387074,44191747448373250,44191631484256258,44191721678569474,44191730268504066,44191691613798402,44191592829550594,44191674433929218,44191670138961922,44191768923209730,44191618599354370,44191738858438658,44191717383602178,44191575649681410,44191661549027330,44191579944648706,44191597124517890,44191700203732994,44191756038307842,44191678728896514,44191610009419778,44191640074190850,44473243896053762,44473196651413506,44473067802394626,44473213831282690,44754568556052480,44754559966183424,45036034939748354,45036043529682946,45317539977560066,45317780502675457,45317509912788994,45317475559931904,45599014954205186,45598984889434114,45880489938059264,45880459873222656,46162093755400194,46161917661741058,46162046510759938,46162063690629122,46443448475451394,46443444180484098,46443405525778434,46443452770418690,46443379755974658,46443427000614914,46443457065385986,46443435590549506,46443487130157058,46443504310026242,46724923452882946,46724910567981058,46724919157915650,46724927747850242,46724979287457794,46724932042817538,46724854733406210,46724962107588610,47006398429462530,47006394134495234,47006329709985794,47006402724429826,47006385544560642,47006437084168194,47006454264037378,47006407019397122,47287851930943490,47287869110812674,47287804686303234,47287881995714562,47287877700747266,47287912060485634,47287873405779970,47287860520878082,47287830456107010,47287929240354818,47569279663079426,47569344087588866,47569356972490754,47569305432883202,47569348382556162,47569326907719682,47569404217131010,47569387037261826,47569335497654274,47569352677523458,47850754639396866,47850862013579266,47850879193448450,47850810473971714,47850801884037122,47850831948808194,47850827653840898,47850819063906306,47850780409200642,47850823358873602,48132294040813570,48132306925715458,48132285450878978,48132302630748162,48132276860944386,48132336990486530,48132298335780866,48132229616304130,48132354170355714,48132255386107906,48413769015492608,48414262937321473,48413781897707520,48413777605951488,48413811965558784,48413730360852480,48413773310066688,48413751835951104,48414056778563585,48414091137056769,48414258642419713,48413760426016768,48414237166731265,48414207110152193,48413704591114240,48414271526535169,48413829144969216,48414202807386113,48695252582662144,48695304121679872,48695286942269440,48695737914032129,48695256874418176,48695531755274241,48695712151699457,48695235402727424,48695243992203264,48695746503245825,48695248286777344,48695179567824896,48695677784096769,48695733619130369,48695566113767425,48976654546305026,48976723265781762,48976680316108802,48976718970814466,48976779100356610,48976731855716354,48976727560749058,48976761920487426,48976701790945282,48976710380879874,49258176767852546,49258198242689026,49258254077263874,49258206832623618,49258236897394690,49258193947721730,49258202537656322,49258155293016066,49258129523212290,49258185357787138,49539660335022082,49539711874629634,49539668924956674,49539604500447234,49539729054498818,49539677514891266,49539681809858562,49539673219923970,49821143899045888,49821148193619968,49821105245519872,49821637821661185,49821152490225664,49821156781260800,49821268454408194,49821092360749058,49821367245733889,49821371540439041,49821375835602945,49821401605341185,49821362950569985,49821126720487424,49821466022707201,50103121386799105,50102610286280704,50102906647019521,50103052667650049,50102679005233152,50102940997320705,50103108502683649,50102554451378176,50103112797585409,50102623170330624,50102661825822720,50102627466215424,50102618875756544,50102631757971456,50384102445416450,50384153985024002,50384029430972418,50384098150449154,50384136805154818,50384085265547266,50384093855481858,50384106740383746,50665581717028866,50665504407617538,50665560242192386,50665577422061570,50665611781799938,50665568832126978,50665573127094274,50665628961669122,50947103938510850,50947048103936002,50947043808968706,50947056693870594,50947035219034114,50947086758641666,50947052398903298,50946979384459266,51228518785744898,51228531670646786,51228578915287042,51228454361235458,51228561735417858,51228527375679490,51228510195810306,51228523080712194,51509998057160706,51509993762193410,51509929337683970,51510053891735554,51510002352128002,51510006647095298,51509985172258818,51510036711866370,51791533164003330,51791442969690114,51791485919363074,51791520279101442,51791571818708994,51791421494853634,51791434379755522,51791494509297666,51791425789820930,51791490214330370,51791507394199554,51791400020017154,51791430084788226,51791464444526594,51791503099232258,51791563228774402,51791593293545474,51791524574068738,51791515984134146,51791580408643586,51791584703610882,51791546048905218,51791417199886338,51791451559624706,51791412904919042,51791447264657410,51791455854592002,51791554638839810,51791541753937922,52073068269142018,52073029614436354,52072874995613698,52073308789800961,52072930830188546,52073016729534466,52072999552417792,52073021024501762,52072905060384770,52072969484894210,52072917945286658,52072965189926914,52072960894959618,52072939420123138,52073008139599874,52072978077384704,52072900765417474,52072887883137024,52073038204370946,52072982372483072,52073046794305538,52072926535221250,52072990959730690,52072909355352066,52072892175482882,52072922243072000,52073059679207426,52072995254697986,52072896470450178,52073055384240130,52354384338223104,52354392923504642,52635859310477314,52635958099247104,52635867900411906,52917342877057026,52917334287122434,53198817858420736,53480421677924354,53480297126625280,53480284238970882,53480262766690304,53480413087989762,53480443152760834,53480383023218690,53480370138316802,53480391613153282,53480404498055170,53480279944003586,53480335778578434,53480249879232514,53480365843349506,53480305713807362,53480683673354241,53480314303741954,53480352960937984,53480267059101698,53480430267858946,53480434562826242,53480357256036352,53480395908120578,53480271354068994,53480340073545730,53480292828905474,53480301418840066,53480275649036290,53480344368513026,53480374435971072,53761789286744064,54043363038461954,54043676568846337,54043345858592770,54043358741397504,54043367331135488,54043217009573890,54043268545576960,54043397395447808,54043281431920640,54043771057668097,54043350151200768,54043337266626560,54043401691201536,54043590669172737,54043375921463296,54043509064859649,54043393103233026,54043474705776641,54043715235086337,54043388804202496,54043607849172993,54324747820990464,54324786476482560,54325031289487361,54324803655892992,54325065647980545,54325233153343489,54324756408631296,54324704871776256,54325246037458945,54325237448245249,54325177318309889,54324752116875264,54325211677655041,54324734936940544,54324726346874880,54324743526416384,54325181612752897,54325018413170689,54324679102038016,54606287220047872,54606626522267649,54606317284556800,54606308694818816,54606300104622080,54606351644622848,54606557802594305,54606312991883266,54606343056654338,54606338757623808,54606325874884608,54606347348869120,54606218498998272,54606459018280961,54606424659197953,54606231385341952,54606166962995202,54606721011089409,54606540622594049,54606295812014082,54606665188638721,54887706362052608,54887629055459328,54888183106764801,54888161631076353,54887654825197568,54887753609314304,54887736429903872,54888195990880257,54887968366723073,54888015601401857,54888127271731201,54888187401666561,54887693479837696,54887981242908673,54887676300296192,54887684890361856,54888131566174209,54887702070296576,54887697774411776,55169142681370626,55169232875683842,55169134091436034,55169293005225986,55169116911566850,55169164156207106,55169099731697666,55450574708604930,55450617658277890,55450591888474114,55450767982133250,55450609068343298,55450639133114370,55450707852591106,55732092635054082,55732049685381122,55732114109890562,55732182829367298,55732066865250306,55732242958909442,55732084045119490,56013559021633538,56013717935423490,56013657805881346,56013524661895170,56013589086404610,56013567611568130,56013541841764354,56295064066981890,56295016822341634,56576556218449920,56576685075726336,56576916996030465,56576710838779904,56576921299255297,56576929889058817,56576856874680321,56576942773698561,56576843996856321,56576912700932097,56576715133485056,56857966775500802,56857949595631618,56858014020141058,57139673691324416,57139506175737856,57139884144852993,57139815425310721,57139643626487808,57421290395402241,57420972564807680,57420981152448512,57421410661302273,57421462192848897,57420976861413376,57420968270233600,57421303287054337,57420929616707584,57420959682789376,57421225970630657,57420951091675136,57702434659500032,57702623638323200,57702426068385792,57702597868322816,57702404593418240,57702447541518336,57702700947341313,57702602163159040,57702456129159168,57702765372112897,57702413184991232,57702885630672897,57702937169559553,57702902810738689,57702593572962304,57702606457929728,57702915702849537,57702451838124032,57702443246944256,57984412146270209,57983901045096448,57983922518228992,57983879570128896,57984175931260929,57984240347316225,57983918223654912,57983926814834688,57983931105869824,58265401791545344,58265650900762625,58265393200365568,58265887122980865,58265835591630849,58265384612921344,58265354546839552,58265406082580480,58265715325534209,58265376021807104,58265397494939648,58546863891808256,58828467717603328,59109942681075714,59109766587416578,59109813832056834,59391288808636418,59391417657655298,59672892634234882,59672763785216002,59672716554141696,59954616732811265,59954255955492864,59954565193269249,59954706926993409,60235649328021504,60517188714561538,60517317563580418,60517141469921282,60798792540422146,60798663691403266,60798616446763010,61080138670538754,61080091425898498,61361721024970754,61361583586017282,61643217475207170,61643187410436098,61643041381548034,61643170230566914,61924670981079042,61924653801209858,61924524952190978,61924683865980930,61924542132060162,61924597966635010,61924546427027458,61924516362256386,61924692455915522,61924589376700418,61924499182387202,61924632326373378,61924645211275266,61924512067289090,61924640916307970,61924555016962050,61924619441471490,61924520657223682,61924585081733122,61924615146504194,61924606556569602,61924563606896642,61924550721994754,61924507772321794,61924503477354498,61924537837092866,61924679571013634,61924593671667714,61924533542125570,61924602261602306,61924623736438786,61924529247158274,61924662391144450,62206532501241857,62206480960651265,62206047168888832,62206055756529664,62206330637385729,62206042874314752,62206025694773248,62206364995878913,62206511025553409,62206317762445313,62206103003791360,62206004219674624,62206051464773632,62206536796143617,62206476666208257,62206545385357313,62206034284838912,62205978449936384,62206085824380928,62488011772854273,62487839972589569,62487560801091584,62487577980502016,62487955937361921,62487500671483904,62487479196385280,62487509261549568,62487951642918913,62488020362067969,62487522145599488,62487453426647040,62487805614096385,62487526441484288,62487517851025408,62487792739221505,62487530733240320,62487986002264065,62488007477952513,62768988533686274,62768958468915202,63050905890783233,63050403380068352,63050510754512896,63050901596340225,63050476394905600,63050429149806592,63050755567517697,63050467804446720,63050935955685377,63050450624905216,63050656793362433,63050789926010881,63050480686661632,63050459214970880,63050742686089217,63050961726275585,63050957431373825,63050970315489281,63050472099020800,63050527933923328,63331994321420290,63332058745929730,63331912717041666,63331899832139778,63331959961681922,63332045861027842,63332037271093250,63331921306976258,63331968551616514,63331886947237890,63331964256649218,63331917012008962,63332007206322178,63332020091224066,63332067335864322,63332028681158658,63331938486845442,63331972846583810,63331929896910850,63331891242205186,63331878357303298,63331904127107074,63331998616387586,63331981436518402,63331925601943554,63331874062336002,63331990026452994,63331895537172482,63331977141551106,63332015796256770,63331908422074370,63331882652270594,63332054450962434,63613379107291136,63613383399899138,63613533723754498,63613512248918018,63613529428787202,63613469301538816,63613349040160770,63613503658983426,63613520838852610,63613542313689090,63613619625852929,63613482184146946,63613490774081538,63613400582717440,63613366220029954,63613413464670210,63613391989833730,63613495069048834,63894987226349570,63894948574265344,63895004406218754,63894918506872834,63894888442101762,63894931394330624,63894944276676610,63894914211905538,63894970046480386,63894995816284162,63894875557199874,63895008701186050,63894845492428802,63894858377330690,63894866967265282,63895017291120642,63894871264919552,63894939981709314,63894836904984576,63894854082363394,63894909916938242,63894957161578498,63894879852167170,63894927099232256,63894978636414978,63894965751513090,63895257811648513,63894841197461506,63894849787396098,63894824017592322,64176492275761152,64176316182167552,64457773969965058,64457808329703426,64739283306479618,64739248946741250,65020741102993410,65020917196652546,65302233269010432,65302198909206528,65583776957399042,65583708237922306,65583691058053122,65583729712758786,65583867151712258,65583807022170114,65583794137268226,65583759777529858,65583686763085826,65583703942955010,65583699647987714,65583845676875778,65583764072497154,65583789842300930,65583673878183938,65583854266810370,65583837086941186,65583858561777666,65583695353020418,65583725417791490,65583819907072002,65583781252366338,65583721122824194,65583716827856898,65583738302693378,65583798432235522,65583768367464450,65583828497006594,65583815612104706,65865221866127360,65865200392011776,65865655657889793,65865260521619456,65865651363446785,65865707198480385,65865539693117441,65865685722791937,65865217571553280,65865226162012160,65865153147174912,65865720082595841,65865277701029888,65865505334624257,65865569769553921,65865208982077440,65865178916913152,65865230453768192,65865492454899713,65865711493382145,66146675368722432,66146752677740544,66146701138722816,66147186470092801,66147014669828097,66146692548263936,66146696842838016,66146735498330112,66147195059306497,66146967436918785,66146980311334913,66146683958788096,66147182175191041,66146705430478848,66147126340157441,66147130634600449,66146653893623808,66147160699502593,66146628123885568,66428150348840962,66428223363284994,66428262017990658,66428128874004482,66428253428056066,66428120284069890,66428201888448514,66428098809233410,66428189003546626,66428279197859842,66428283492827138,66428244838121474,66428163233742850,66428141758906370,66428111694135298,66428133168971778,66428115989102594,66428193298513922,66428184708579330,66428219068317698,66428231953219586,66428206183415810,66428214773350402,66428124579037186,66428270607925250,66428146053873666,66428292082761730,66428240543154178,66428154643808258,66709573785550850,66709590965420034,66709638210060290,66709745584242690,66709621030191106,66709603850321922,66709736994308098,66709719814438914,66709663979864066,66709659684896770,66709629620125698,66709758469144578,66709689749667842,66709681159733250,66709698339602434,66709608145289218,66709715519471618,66709668274831362,66709586670452738,66709625325158402,66709676864765954,66709728404373506,66709599555354626,66709616735223810,66709595260387330,66709754174177282,66709694044635138,66709706929537026,66709767059079170,66991065938853890,66991194787872770,66991211967741954,66991242032513026,67272669764648962,67272717009289218,67272686944518146,67272540915630082,67554191985737730,67554015892078594,67554161920966658,67554144752041984,67835658383523840,67835654088622080,67835813002477569,68117013088632834,68116965843992578,68398427948515328,68680117673656320,68961390774583298,68961438019223554,69242865751228418,69242912995868674,69524366510260224,69524357920260096,69805841471897602,69805832881963010,70087466772332546,70087290678673410,70087337923313666,70368782834925570,70368941748715522,70368765655056386,70368791424860162,70368812899696642,70650416725688322,70650287876669442,70650240632029186,70931715608412162,70931732788281346,70931741378215938,70931762853052418,70931891702071298,71213190585384962,71213366679044098,71213237830025218,71495138023899137,71495236808212481,71495095070097409,71494665562816514,71494798717288448,71495090761695233,71494729984114688,71495086466596865,71494841656475650,71494712807456770,71776277993291776,72057598344429570,72057752963186690,72339073327955968,72620702908809218,72902096283893760,72902534373048321,72902246610698240,72902091989319680,72902061927366656,72902100580499456,72902414114488321,72902585911934977,72902074810761216,72902250905534464,72902564447322113,72902083401875456,72902255200305152,72902349689716737,72902272380698624,72902551553114113,72902104871534592,72902242315337728,72902053335793664,73183541200683010,73183532610748418,73465037648756738,73465007583985666,73464973234929664,73746482560434178,73746512625205250,74028116450213890,74027940356554754,74028069205573634,74028086385442818,74309690219560961,74309788996534273,74309466872872960,74309449694314496,74309685924397057,74309428219346944,74309960795488257,74309415334576130,74309591428235266,74309475464052736,74309724579168257,74309471167447040,74309698812837889,74309479755087872,74591349868724225,74591040631013376,74591049221341184,74591032041275392,74590890309451778,74591066403110914,74591388537978881,74591444357545985,74591062104080384,74590941845454848,74591281149050881,74591148005654529,74590954731798528,74591010566504448,74591070695325696,74591182364737537,74591263969050625,74591074991079424,74591023451078656,74872429708509184,74872416826294272,74872421120868352,74872425417474048,74872378172768256,74872399647735808,74872738949955585,74872910748909569,74872674532589569,74872635881488385,75153866037133314,75153857447198722,75435341014040578,75435332424105986,75717047912497153,75716923357921280,75716949128183808,75716940537856000,75716919065313282,75716854638641152,75717249775566849,75716936245182466,75716970602168320,75717082271580161,75716910473347072,75716841752297472,75717288444952577,75716931948118016,75717344264388609,75716790216294402,75716974897922048,75716966309953538,75717181055893505,75717163875893249,75716962010923008,75998316733530114,75998278078824450,75998329618432002,75998252309020674,75998376863072258,75998308143595522,75998359683203074,75998325323464706,75998299553660930,75998321028497410,76279727285665794,76279791710175234,76279851839717378,76279783120240642,76279774530306050,76279804595077122,76279800300109826,76279753055469570,76279796005142530,76279834659848194,76561326816034816,76561266686558208,76561249507016704,76561760608387073,76561202262179840,76561700478451713,76561270981132288,76561309636624384,76561756313485313,76561279568773120,76561541576458241,76561704772894721,76561734837796865,76561275277017088,76561769197600769,76561554449629185,76561228031918080,76561258097082368,76561588808122369,76843115337547777,76842754541617152,76843068092841985,76843072387940353,77124152227725312,77405695911264256,77406134010642433,77405704498905088,77405691616690176,77406185539305473,77405700207869952,77405683029245952,77406013741858817,77405949317087233,77405652963164160,77405674438131712,77687252505133056,77968637271605250,77968590026964994,77968766120624130,78250241097203714,78250112248184834,78531574344974336,78531913647194113,78531595818106880,78531600114712576,78532115521994753,78532085446148097,78531716074700802,78531810575056897,78531814874415105,78532106932125697,78531587225681922,78531591523532800,78531539981041666,78531849229828097,78531552870006784,78531604405747712,78813388635439105,78813079382458368,79094489933938690,79094666027597826,79094537178578946,79376016453664768,79376510375493633,79376454540001281,79376304216735745,79376450245558273,79376076583141376,79376007864188928,79376020748238848,79376518964707329,79376029335879680,79375977799024640,79376338575228929,79376506080591873,79376059403730944,79376025044123648,79375999274123264,79376484604903425,79375952029286400,79376291344285697,79657615985541122,79657439891881986,79938914868723714,79939090962382850,80220372665696258,80220407025434626,80502010849722370,80501993669853186,80501864820834306,80502040914493442,80783494429212672,81064814773403650,81064840543207426,81346405727993856,81627764740718592,81627790510456832,81909617674616833,81909664918339585,81909304122408960,82190731857166338,82190740447100930,82472563322650625,82472249788661760,82472498897879041,82472400113696768,82472391523500032,82472713656991745,82472211135528960,82472683581210625,82472224018923520,82472700761276417,82472241197481984,82472254079696896,82472395818860544,82472202543955968,82472421588860928,82472232610037760,82472404408467456,82472735120097281,82472245492056064,82753664647757824,82753711875948546,82753840724967426,83035186852921346,83035139608281090,83035315701940226,83316597421375488,83316631778492416,83598227000459266,83879581722345474,83879611787116546,84161430357213185,84161593565708289,84161297213816833,84161159774666752,84161331572899841,84161499076886529,84161537747648513,84161224199241728,84161219903488000,84161103939960832,84161211312242688,84161172659240960,84161039517614082,84161198429503488,84161185546502146,84161181249437696,84161168366632962,84161215611273218,84161413177212929,84161091053617152,84161189839175680,84442939709980673,84442578912804864,84724126923948032,85005528866226176,85005889662156801,85005842418892801,85286965208350720,85568461642203138,85568414397562882,85568590491222018,85850263041671169,85850198624305153,85850456327716865,85849936620158978,85849945212583936,85849902264483840,85850159969533953,85849949509189632,85850434840625153,85849953800224768,85850065469177858,85849923739451392,85849889375518722,85850164268892161,85849940918009856,86131407318482944,86412839332020226,86412968181039106,86412985360908290,86413015425679362,86694297142427648,86976231680704513,86975991157817344,86975853707067392,86976021222653952,86976162956640257,87257290030776322,87257264260972546,87538876691513344,87820261456936962,87820390305955842,87820214212296706,88101689188745218,88102032803430401,88102037091516417,88102260429750273,88101753610043392,88102118696026113,88102114387623937,88101822343217152,88102110092525569,88102161645436929,88101736433385474,88383228590620672,88383537844977665,88664686389035010,88664639144394754,88946487798464513,88946178544041984,89227636357726208,89509089844592642,89509064074788866,89790539051302914,89790586295943170,90072014026113026,90072190119772162,90072061270753282,];
pub fn make_parser() -> ZCParser<(),()>
{
let mut parser1:ZCParser<(),()> = ZCParser::new(178,321);
let mut rule = ZCRProduction::<(),()>::new_skeleton("start");
rule = ZCRProduction::<(),()>::new_skeleton("program");
rule.Ruleaction = |parser|{ let mut _item5_ = parser.popstack(); let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("external_files");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("external_files");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("block");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("opt_declarations");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("opt_declarations");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declarations");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declarations");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declaration");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declaration");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declaration");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declaration");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("declaration");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("label_dcl_part");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("labels");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("labels");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("label");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("const_dcl_part");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("const_defs");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("const_defs");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("const_def");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("constant");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("unsigned_num");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("unsigned_num");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type_dcl_part");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type_defs");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type_defs");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type_def");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("type");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_type");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_type");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_type");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("struct_type");
rule.Ruleaction = |parser|{ let mut _item5_ = parser.popstack(); let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("struct_type");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("struct_type");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("struct_type");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("index_t_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("index_t_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("field_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("field_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("field_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("fixed_part");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("fixed_part");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("record_section");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("record_section");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variant_part");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("tag_field");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("tag_field");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variants");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variants");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variant");
rule.Ruleaction = |parser|{ let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variant");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("var_dcl_part");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable_dcls");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable_dcls");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable_dcl");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("newident_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("new_id_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("new_id_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("proc_dcl_part");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("proc_or_func");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("proc_or_func");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("proc_heading");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("func_heading");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("function_form");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("function_form");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("body");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("body");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_params");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_params");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_p_sects");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_p_sects");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_p_sect");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_p_sect");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_p_sect");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("formal_p_sect");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("param_group");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("paramtype");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("paramtype");
rule.Ruleaction = |parser|{ let mut _item5_ = parser.popstack(); let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("paramtype");
rule.Ruleaction = |parser|{ let mut _item6_ = parser.popstack(); let mut _item5_ = parser.popstack(); let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("index_specs");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("index_specs");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("index_spec");
rule.Ruleaction = |parser|{ let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement_part");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("compound_stmt");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statements");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statements");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item5_ = parser.popstack(); let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item7_ = parser.popstack(); let mut _item6_ = parser.popstack(); let mut _item5_ = parser.popstack(); let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("statement");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("direction");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("direction");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("assignment");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("procedure_call");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("actual_params");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("actual_params");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("actuals_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("actuals_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("actual_param");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("actual_param");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("colon_things");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("colon_things");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_list_elem");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_list_elem");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_label_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_label_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("case_label");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("rec_var_list");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("rec_var_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("expression");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("expression");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("relational_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_expr");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_expr");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_expr");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("simple_expr");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("add_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("add_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("add_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("term");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("term");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("mult_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("mult_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("mult_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("mult_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("mult_op");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("factor");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("factor");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("factor");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("factor");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("factor");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("unsigned_lit");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("unsigned_lit");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("unsigned_lit");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("set");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("member_list");
rule.Ruleaction = |parser|{ <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("member_list");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("members");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("members");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("member");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("member");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable");
rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("variable");
rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("expressions");
rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("expressions");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("record_var");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("ident");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("newident");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
rule = ZCRProduction::<(),()>::new_skeleton("START");
rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
parser1.Rules.push(rule);
parser1.Errsym = "";
for i in 0..2548 {
let symi = ((TABLE[i] & 0x0000ffff00000000) >> 32) as usize;
let sti = ((TABLE[i] & 0xffff000000000000) >> 48) as usize;
parser1.RSM[sti].insert(SYMBOLS[symi],decode_action(TABLE[i]));
}
for s in SYMBOLS { parser1.Symset.insert(s); }
load_extras(&mut parser1);
return parser1;
} //make_parser
pub fn parse_with<'t>(parser:&mut ZCParser<(),()>, lexer:&mut dyn Tokenizer<'t,()>) -> Result<(),()>
{
let _xres_ = parser.parse(lexer); if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
}//parse_with public function
pub fn parse_train_with<'t>(parser:&mut ZCParser<(),()>, lexer:&mut dyn Tokenizer<'t,()>, parserpath:&str) -> Result<(),()>
{
let _xres_ = parser.parse_train(lexer,parserpath); if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
}//parse_train_with public function
// Lexical Scanner using RawToken and StrTokenizer
pub struct pascallexer<'t> {
stk: StrTokenizer<'t>,
keywords: HashSet<&'static str>,
lexnames: HashMap<&'static str,&'static str>,
shared_state: Rc<RefCell<()>>,
}
impl<'t> pascallexer<'t>
{
pub fn from_str(s:&'t str) -> pascallexer<'t> {
Self::new(StrTokenizer::from_str(s))
}
pub fn from_source(s:&'t LexSource<'t>) -> pascallexer<'t> {
Self::new(StrTokenizer::from_source(s))
}
pub fn new(mut stk:StrTokenizer<'t>) -> pascallexer<'t> {
let mut lexnames = HashMap::with_capacity(64);
let mut keywords = HashSet::with_capacity(64);
let shared_state = Rc::new(RefCell::new(<()>::default()));
for kw in ["IDENTIFIER","OR","CASE","WITH","NIL","STRING","END","PROGRAM","SET","FOR","AND","SBEGIN","FUNCTION","BECOMES","DO","_WILDCARD_TOKEN_","IN","TO","MOD","DOTDOT","DOWNTO","REPEAT","UNTIL","GOTO","NOT","OF","WHILE","LE","ARRAY","ELSE","TYPE","NE","THEN","CONST","SFILE","IF","VAR","LABEL","GE","PACKED","UNSIGNED_INT","UNSIGNED_REAL","DIV","PROCEDURE","RECORD",] {keywords.insert(kw);}
for c in ['=',';',')','<','+','[','^','>','.',':',']',',','-','(','/','*',] {stk.add_single(c);}
for d in [] {stk.add_double(d);}
for d in [] {stk.add_triple(d);}
for (k,v) in [(r"=","TERMINAL6"),(r";","TERMINAL4"),(r")","TERMINAL15"),(r"<","TERMINAL13"),(r"+","TERMINAL7"),(r"[","TERMINAL1"),(r"^","TERMINAL9"),(r">","TERMINAL5"),(r".","TERMINAL2"),(r":","TERMINAL0"),(r"]","TERMINAL10"),(r",","TERMINAL8"),(r"-","TERMINAL12"),(r"(","TERMINAL14"),(r"/","TERMINAL3"),(r"*","TERMINAL11"),] {lexnames.insert(k,v);}
pascallexer {stk,keywords,lexnames,shared_state}
}
}
impl<'t> Tokenizer<'t,()> for pascallexer<'t>
{
fn nextsym(&mut self) -> Option<TerminalToken<'t,()>> {
let tokopt = self.stk.next_token();
if let None = tokopt {return None;}
let token = tokopt.unwrap();
match token.0 {
RawToken::Alphanum(sym) if self.keywords.contains(sym) => {
let truesym = self.lexnames.get(sym).unwrap_or(&sym);
Some(TerminalToken::from_raw(token,truesym,<()>::default()))
},
RawToken::Symbol(s) if self.lexnames.contains_key(s) => {
let tname = self.lexnames.get(s).unwrap();
Some(TerminalToken::from_raw(token,tname,<()>::default()))
},
RawToken::Symbol(s) => Some(TerminalToken::from_raw(token,s,<()>::default())),
RawToken::Alphanum(s) => Some(TerminalToken::from_raw(token,s,<()>::default())),
_ => Some(TerminalToken::from_raw(token,"<LexicalError>",<()>::default())),
}
}
fn linenum(&self) -> usize {self.stk.line()}
fn column(&self) -> usize {self.stk.column()}
fn position(&self) -> usize {self.stk.current_position()}
fn current_line(&self) -> &str {self.stk.current_line()}
fn get_line(&self,i:usize) -> Option<&str> {self.stk.get_line(i)}
fn get_slice(&self,s:usize,l:usize) -> &str {self.stk.get_slice(s,l)}
}//impl Tokenizer
fn load_extras(parser:&mut ZCParser<(),()>)
{
}//end of load_extras: don't change this line as it affects augmentation