The Sol Programming Language!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

parser.output 481KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630
  1. Nonterminals useless in grammar
  2. ident_list
  3. Rules useless in grammar
  4. 117 ident_list: %empty
  5. 118 | IDENT
  6. 119 | ident_list COMMA
  7. 120 | ident_list IDENT
  8. State 10 conflicts: 19 shift/reduce
  9. State 11 conflicts: 19 shift/reduce
  10. State 12 conflicts: 19 shift/reduce
  11. State 21 conflicts: 2 shift/reduce
  12. State 24 conflicts: 19 shift/reduce
  13. State 27 conflicts: 1 shift/reduce
  14. State 33 conflicts: 1 shift/reduce
  15. State 34 conflicts: 1 shift/reduce
  16. State 40 conflicts: 1 shift/reduce
  17. State 57 conflicts: 1 shift/reduce
  18. State 58 conflicts: 1 shift/reduce
  19. State 59 conflicts: 1 shift/reduce
  20. State 71 conflicts: 22 reduce/reduce
  21. State 72 conflicts: 4 reduce/reduce
  22. State 77 conflicts: 1 shift/reduce
  23. State 79 conflicts: 22 reduce/reduce
  24. State 103 conflicts: 19 shift/reduce
  25. State 123 conflicts: 2 shift/reduce
  26. State 124 conflicts: 2 shift/reduce
  27. State 125 conflicts: 2 shift/reduce
  28. State 126 conflicts: 2 shift/reduce
  29. State 127 conflicts: 2 shift/reduce
  30. State 128 conflicts: 2 shift/reduce
  31. State 129 conflicts: 2 shift/reduce
  32. State 130 conflicts: 2 shift/reduce
  33. State 131 conflicts: 2 shift/reduce
  34. State 139 conflicts: 1 shift/reduce
  35. State 142 conflicts: 4 reduce/reduce
  36. State 143 conflicts: 4 reduce/reduce
  37. State 144 conflicts: 1 shift/reduce, 12 reduce/reduce
  38. State 145 conflicts: 1 shift/reduce, 12 reduce/reduce
  39. State 146 conflicts: 4 reduce/reduce
  40. State 147 conflicts: 4 reduce/reduce
  41. State 148 conflicts: 4 reduce/reduce
  42. State 149 conflicts: 4 reduce/reduce
  43. State 150 conflicts: 4 reduce/reduce
  44. State 151 conflicts: 4 reduce/reduce
  45. State 152 conflicts: 15 reduce/reduce
  46. State 153 conflicts: 15 reduce/reduce
  47. State 154 conflicts: 15 reduce/reduce
  48. State 155 conflicts: 15 reduce/reduce
  49. State 156 conflicts: 6 shift/reduce, 16 reduce/reduce
  50. State 157 conflicts: 6 shift/reduce, 16 reduce/reduce
  51. State 158 conflicts: 6 shift/reduce, 16 reduce/reduce
  52. State 159 conflicts: 6 shift/reduce, 16 reduce/reduce
  53. State 160 conflicts: 6 shift/reduce, 16 reduce/reduce
  54. State 161 conflicts: 1 shift/reduce, 15 reduce/reduce
  55. State 164 conflicts: 2 shift/reduce
  56. State 165 conflicts: 2 shift/reduce
  57. State 166 conflicts: 2 shift/reduce
  58. State 167 conflicts: 2 shift/reduce
  59. State 168 conflicts: 2 shift/reduce
  60. State 169 conflicts: 2 shift/reduce
  61. State 170 conflicts: 2 shift/reduce
  62. State 171 conflicts: 2 shift/reduce
  63. State 172 conflicts: 2 shift/reduce
  64. State 185 conflicts: 1 shift/reduce
  65. State 189 conflicts: 19 shift/reduce
  66. State 212 conflicts: 1 shift/reduce
  67. State 217 conflicts: 1 shift/reduce
  68. Grammar
  69. 0 $accept: program $end
  70. 1 program: stmt_list
  71. 2 stmt_list: stmt_list stmt
  72. 3 | %empty
  73. 4 stmt: expr
  74. 5 | RETURN expr
  75. 6 | RETURN
  76. 7 | BREAK
  77. 8 | BREAK expr
  78. 9 | CONTINUE
  79. 10 | CONTINUE expr
  80. 11 | stmt SEMICOLON
  81. 12 expr: control_expr
  82. 13 control_expr: IF expr THEN stmt_list if_termin
  83. 14 | WHILE expr DO stmt_list END
  84. 15 | FOR IDENT IN expr DO stmt_list END
  85. 16 | assign_expr
  86. 17 if_termin: ELSEIF expr THEN stmt_list if_termin
  87. 18 | ELSE stmt_list END
  88. 19 | END
  89. 20 assign_expr: IDENT ASSIGN expr
  90. 21 | IDENT ASSIGNPLUS expr
  91. 22 | IDENT ASSIGNMINUS expr
  92. 23 | IDENT ASSIGNSTAR expr
  93. 24 | IDENT ASSIGNSLASH expr
  94. 25 | IDENT ASSIGNDSTAR expr
  95. 26 | IDENT ASSIGNBAND expr
  96. 27 | IDENT ASSIGNBOR expr
  97. 28 | IDENT ASSIGNBXOR expr
  98. 29 | ex_index_expr ASSIGN expr
  99. 30 | ex_index_expr ASSIGNPLUS expr
  100. 31 | ex_index_expr ASSIGNMINUS expr
  101. 32 | ex_index_expr ASSIGNSTAR expr
  102. 33 | ex_index_expr ASSIGNSLASH expr
  103. 34 | ex_index_expr ASSIGNDSTAR expr
  104. 35 | ex_index_expr ASSIGNBAND expr
  105. 36 | ex_index_expr ASSIGNBOR expr
  106. 37 | ex_index_expr ASSIGNBXOR expr
  107. 38 | logic_expr
  108. 39 logic_expr: logic_expr LAND ulogic_expr
  109. 40 | logic_expr LOR ulogic_expr
  110. 41 | ulogic_expr
  111. 42 ulogic_expr: LNOT ulogic_expr
  112. 43 | rel_expr
  113. 44 rel_expr: term_expr EQUAL rel_expr
  114. 45 | term_expr NEQUAL rel_expr
  115. 46 | term_expr LESS rel_expr
  116. 47 | term_expr GREATER rel_expr
  117. 48 | term_expr LESSEQ rel_expr
  118. 49 | term_expr GREATEREQ rel_expr
  119. 50 | term_expr
  120. 51 term_expr: term_expr PLUS factor_expr
  121. 52 | term_expr MINUS factor_expr
  122. 53 | factor_expr
  123. 54 factor_expr: factor_expr STAR power_expr
  124. 55 | factor_expr SLASH power_expr
  125. 56 | factor_expr PERCENT power_expr
  126. 57 | power_expr
  127. 58 power_expr: tbang_expr DSTAR power_expr
  128. 59 | tbang_expr
  129. 60 tbang_expr: binary_expr TBANG tbang_expr
  130. 61 | binary_expr
  131. 62 binary_expr: binary_expr BAND binary_expr
  132. 63 | binary_expr BOR binary_expr
  133. 64 | binary_expr BXOR binary_expr
  134. 65 | binary_expr LSHIFT binary_expr
  135. 66 | binary_expr RSHIFT binary_expr
  136. 67 | ubinary_expr
  137. 68 ubinary_expr: BNOT ubinary_expr
  138. 69 | ulen_expr
  139. 70 ulen_expr: POUND ulen_expr
  140. 71 | call_expr
  141. 72 call_expr: call_expr LPAREN expr_list RPAREN
  142. 73 | call_expr COLON IDENT LPAREN expr_list RPAREN
  143. 74 | funcdecl_expr
  144. 75 funcdecl_expr: FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  145. 76 | FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  146. 77 | MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  147. 78 | MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  148. 79 | LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  149. 80 | index_expr
  150. 81 index_expr: expr LBRACKET expr RBRACKET
  151. 82 | expr DOT IDENT
  152. 83 | ref_expr
  153. 84 ex_index_expr: expr LBRACKET expr RBRACKET
  154. 85 | expr DOT IDENT
  155. 86 ref_expr: IDENT
  156. 87 | lit_expr
  157. 88 lit_expr: INT
  158. 89 | MINUS INT
  159. 90 | FLOAT
  160. 91 | STRING
  161. 92 | NONE
  162. 93 | gen_expr
  163. 94 gen_expr: LBRACKET expr_list RBRACKET
  164. 95 | LBRACE assoc_list RBRACE
  165. 96 | paren_expr
  166. 97 paren_expr: any_lparen expr RPAREN
  167. 98 expr_list: %empty
  168. 99 | expr
  169. 100 | expr_list COMMA
  170. 101 | expr_list expr
  171. 102 param_list: %empty
  172. 103 | param_list IDENT ASSIGN expr
  173. 104 | param_list STAR IDENT
  174. 105 | param_list IDENT maybe_anno
  175. 106 | param_list COMMA
  176. 107 assoc_list: %empty
  177. 108 | assoc_item
  178. 109 | assoc_list COMMA
  179. 110 | assoc_list assoc_item
  180. 111 assoc_item: LBRACKET expr RBRACKET ASSIGN expr
  181. 112 | IDENT ASSIGN expr
  182. 113 any_lparen: LPAREN
  183. 114 | BLPAREN
  184. 115 maybe_anno: COLON expr
  185. 116 | %empty
  186. Terminals, with rules where they appear
  187. $end (0) 0
  188. error (256)
  189. IF (258) 13
  190. THEN (259) 13 17
  191. ELSEIF (260) 17
  192. ELSE (261) 18
  193. WHILE (262) 14
  194. FOR (263) 15
  195. IN (264) 15
  196. DO (265) 14 15
  197. FUNC (266) 75 76
  198. MACRO (267) 77 78
  199. LAMBDA (268) 79
  200. RETURN (269) 5 6
  201. BREAK (270) 7 8
  202. CONTINUE (271) 9 10
  203. END (272) 14 15 18 19 75 76 77 78 79
  204. NONE (273) 92
  205. IDENT (274) 15 20 21 22 23 24 25 26 27 28 73 75 77 82 85 86 103 104
  206. 105 112
  207. INT (275) 88 89
  208. FLOAT (276) 90
  209. STRING (277) 91
  210. PLUS (278) 51
  211. MINUS (279) 52 89
  212. STAR (280) 54 104
  213. SLASH (281) 55
  214. PERCENT (282) 56
  215. DSTAR (283) 58
  216. BAND (284) 62
  217. BOR (285) 63
  218. BXOR (286) 64
  219. BNOT (287) 68
  220. LAND (288) 39
  221. LOR (289) 40
  222. LNOT (290) 42
  223. ASSIGN (291) 20 29 103 111 112
  224. ASSIGNPLUS (292) 21 30
  225. ASSIGNMINUS (293) 22 31
  226. ASSIGNSTAR (294) 23 32
  227. ASSIGNSLASH (295) 24 33
  228. ASSIGNDSTAR (296) 25 34
  229. ASSIGNBAND (297) 26 35
  230. ASSIGNBOR (298) 27 36
  231. ASSIGNBXOR (299) 28 37
  232. EQUAL (300) 44
  233. NEQUAL (301) 45
  234. LESS (302) 46
  235. GREATER (303) 47
  236. LESSEQ (304) 48
  237. GREATEREQ (305) 49
  238. RSHIFT (306) 66
  239. LSHIFT (307) 65
  240. LBRACE (308) 95
  241. RBRACE (309) 95
  242. BLPAREN (310) 114
  243. LPAREN (311) 72 73 113
  244. RPAREN (312) 72 73 75 76 77 78 79 97
  245. LBRACKET (313) 81 84 94 111
  246. RBRACKET (314) 81 84 94 111
  247. DOT (315) 82 85
  248. COLON (316) 73 115
  249. SEMICOLON (317) 11
  250. COMMA (318) 100 106 109
  251. POUND (319) 70
  252. TBANG (320) 60
  253. Nonterminals, with rules where they appear
  254. $accept (66)
  255. on left: 0
  256. program (67)
  257. on left: 1, on right: 0
  258. stmt_list (68)
  259. on left: 2 3, on right: 1 2 13 14 15 17 18 75 76 77 78
  260. stmt (69)
  261. on left: 4 5 6 7 8 9 10 11, on right: 2 11
  262. expr (70)
  263. on left: 12, on right: 4 5 8 10 13 14 15 17 20 21 22 23 24 25 26
  264. 27 28 29 30 31 32 33 34 35 36 37 79 81 82 84 85 97 99 101 103 111
  265. 112 115
  266. control_expr (71)
  267. on left: 13 14 15 16, on right: 12
  268. if_termin (72)
  269. on left: 17 18 19, on right: 13 17
  270. assign_expr (73)
  271. on left: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
  272. 38, on right: 16
  273. logic_expr (74)
  274. on left: 39 40 41, on right: 38 39 40
  275. ulogic_expr (75)
  276. on left: 42 43, on right: 39 40 41 42
  277. rel_expr (76)
  278. on left: 44 45 46 47 48 49 50, on right: 43 44 45 46 47 48 49
  279. term_expr (77)
  280. on left: 51 52 53, on right: 44 45 46 47 48 49 50 51 52
  281. factor_expr (78)
  282. on left: 54 55 56 57, on right: 51 52 53 54 55 56
  283. power_expr (79)
  284. on left: 58 59, on right: 54 55 56 57 58
  285. tbang_expr (80)
  286. on left: 60 61, on right: 58 59 60
  287. binary_expr (81)
  288. on left: 62 63 64 65 66 67, on right: 60 61 62 63 64 65 66
  289. ubinary_expr (82)
  290. on left: 68 69, on right: 67 68
  291. ulen_expr (83)
  292. on left: 70 71, on right: 69 70
  293. call_expr (84)
  294. on left: 72 73 74, on right: 71 72 73
  295. funcdecl_expr (85)
  296. on left: 75 76 77 78 79 80, on right: 74
  297. index_expr (86)
  298. on left: 81 82 83, on right: 80
  299. ex_index_expr (87)
  300. on left: 84 85, on right: 29 30 31 32 33 34 35 36 37
  301. ref_expr (88)
  302. on left: 86 87, on right: 83
  303. lit_expr (89)
  304. on left: 88 89 90 91 92 93, on right: 87
  305. gen_expr (90)
  306. on left: 94 95 96, on right: 93
  307. paren_expr (91)
  308. on left: 97, on right: 96
  309. expr_list (92)
  310. on left: 98 99 100 101, on right: 72 73 94 100 101
  311. param_list (93)
  312. on left: 102 103 104 105 106, on right: 75 76 77 78 79 103 104
  313. 105 106
  314. assoc_list (94)
  315. on left: 107 108 109 110, on right: 95 109 110
  316. assoc_item (95)
  317. on left: 111 112, on right: 108 110
  318. any_lparen (96)
  319. on left: 113 114, on right: 75 76 77 78 79 97
  320. maybe_anno (97)
  321. on left: 115 116, on right: 75 76 77 78 79 105
  322. State 0
  323. 0 $accept: . program $end
  324. 1 program: . stmt_list
  325. 2 stmt_list: . stmt_list stmt
  326. 3 | . %empty
  327. $default reduce using rule 3 (stmt_list)
  328. program go to state 1
  329. stmt_list go to state 2
  330. State 1
  331. 0 $accept: program . $end
  332. $end shift, and go to state 3
  333. State 2
  334. 1 program: stmt_list . [$end]
  335. 2 stmt_list: stmt_list . stmt
  336. 4 stmt: . expr
  337. 5 | . RETURN expr
  338. 6 | . RETURN
  339. 7 | . BREAK
  340. 8 | . BREAK expr
  341. 9 | . CONTINUE
  342. 10 | . CONTINUE expr
  343. 11 | . stmt SEMICOLON
  344. 12 expr: . control_expr
  345. 13 control_expr: . IF expr THEN stmt_list if_termin
  346. 14 | . WHILE expr DO stmt_list END
  347. 15 | . FOR IDENT IN expr DO stmt_list END
  348. 16 | . assign_expr
  349. 20 assign_expr: . IDENT ASSIGN expr
  350. 21 | . IDENT ASSIGNPLUS expr
  351. 22 | . IDENT ASSIGNMINUS expr
  352. 23 | . IDENT ASSIGNSTAR expr
  353. 24 | . IDENT ASSIGNSLASH expr
  354. 25 | . IDENT ASSIGNDSTAR expr
  355. 26 | . IDENT ASSIGNBAND expr
  356. 27 | . IDENT ASSIGNBOR expr
  357. 28 | . IDENT ASSIGNBXOR expr
  358. 29 | . ex_index_expr ASSIGN expr
  359. 30 | . ex_index_expr ASSIGNPLUS expr
  360. 31 | . ex_index_expr ASSIGNMINUS expr
  361. 32 | . ex_index_expr ASSIGNSTAR expr
  362. 33 | . ex_index_expr ASSIGNSLASH expr
  363. 34 | . ex_index_expr ASSIGNDSTAR expr
  364. 35 | . ex_index_expr ASSIGNBAND expr
  365. 36 | . ex_index_expr ASSIGNBOR expr
  366. 37 | . ex_index_expr ASSIGNBXOR expr
  367. 38 | . logic_expr
  368. 39 logic_expr: . logic_expr LAND ulogic_expr
  369. 40 | . logic_expr LOR ulogic_expr
  370. 41 | . ulogic_expr
  371. 42 ulogic_expr: . LNOT ulogic_expr
  372. 43 | . rel_expr
  373. 44 rel_expr: . term_expr EQUAL rel_expr
  374. 45 | . term_expr NEQUAL rel_expr
  375. 46 | . term_expr LESS rel_expr
  376. 47 | . term_expr GREATER rel_expr
  377. 48 | . term_expr LESSEQ rel_expr
  378. 49 | . term_expr GREATEREQ rel_expr
  379. 50 | . term_expr
  380. 51 term_expr: . term_expr PLUS factor_expr
  381. 52 | . term_expr MINUS factor_expr
  382. 53 | . factor_expr
  383. 54 factor_expr: . factor_expr STAR power_expr
  384. 55 | . factor_expr SLASH power_expr
  385. 56 | . factor_expr PERCENT power_expr
  386. 57 | . power_expr
  387. 58 power_expr: . tbang_expr DSTAR power_expr
  388. 59 | . tbang_expr
  389. 60 tbang_expr: . binary_expr TBANG tbang_expr
  390. 61 | . binary_expr
  391. 62 binary_expr: . binary_expr BAND binary_expr
  392. 63 | . binary_expr BOR binary_expr
  393. 64 | . binary_expr BXOR binary_expr
  394. 65 | . binary_expr LSHIFT binary_expr
  395. 66 | . binary_expr RSHIFT binary_expr
  396. 67 | . ubinary_expr
  397. 68 ubinary_expr: . BNOT ubinary_expr
  398. 69 | . ulen_expr
  399. 70 ulen_expr: . POUND ulen_expr
  400. 71 | . call_expr
  401. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  402. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  403. 74 | . funcdecl_expr
  404. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  405. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  406. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  407. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  408. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  409. 80 | . index_expr
  410. 81 index_expr: . expr LBRACKET expr RBRACKET
  411. 82 | . expr DOT IDENT
  412. 83 | . ref_expr
  413. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  414. 85 | . expr DOT IDENT
  415. 86 ref_expr: . IDENT
  416. 87 | . lit_expr
  417. 88 lit_expr: . INT
  418. 89 | . MINUS INT
  419. 90 | . FLOAT
  420. 91 | . STRING
  421. 92 | . NONE
  422. 93 | . gen_expr
  423. 94 gen_expr: . LBRACKET expr_list RBRACKET
  424. 95 | . LBRACE assoc_list RBRACE
  425. 96 | . paren_expr
  426. 97 paren_expr: . any_lparen expr RPAREN
  427. 113 any_lparen: . LPAREN
  428. 114 | . BLPAREN
  429. IF shift, and go to state 4
  430. WHILE shift, and go to state 5
  431. FOR shift, and go to state 6
  432. FUNC shift, and go to state 7
  433. MACRO shift, and go to state 8
  434. LAMBDA shift, and go to state 9
  435. RETURN shift, and go to state 10
  436. BREAK shift, and go to state 11
  437. CONTINUE shift, and go to state 12
  438. NONE shift, and go to state 13
  439. IDENT shift, and go to state 14
  440. INT shift, and go to state 15
  441. FLOAT shift, and go to state 16
  442. STRING shift, and go to state 17
  443. MINUS shift, and go to state 18
  444. BNOT shift, and go to state 19
  445. LNOT shift, and go to state 20
  446. LBRACE shift, and go to state 21
  447. BLPAREN shift, and go to state 22
  448. LPAREN shift, and go to state 23
  449. LBRACKET shift, and go to state 24
  450. POUND shift, and go to state 25
  451. $default reduce using rule 1 (program)
  452. stmt go to state 26
  453. expr go to state 27
  454. control_expr go to state 28
  455. assign_expr go to state 29
  456. logic_expr go to state 30
  457. ulogic_expr go to state 31
  458. rel_expr go to state 32
  459. term_expr go to state 33
  460. factor_expr go to state 34
  461. power_expr go to state 35
  462. tbang_expr go to state 36
  463. binary_expr go to state 37
  464. ubinary_expr go to state 38
  465. ulen_expr go to state 39
  466. call_expr go to state 40
  467. funcdecl_expr go to state 41
  468. index_expr go to state 42
  469. ex_index_expr go to state 43
  470. ref_expr go to state 44
  471. lit_expr go to state 45
  472. gen_expr go to state 46
  473. paren_expr go to state 47
  474. any_lparen go to state 48
  475. State 3
  476. 0 $accept: program $end .
  477. $default accept
  478. State 4
  479. 12 expr: . control_expr
  480. 13 control_expr: . IF expr THEN stmt_list if_termin
  481. 13 | IF . expr THEN stmt_list if_termin
  482. 14 | . WHILE expr DO stmt_list END
  483. 15 | . FOR IDENT IN expr DO stmt_list END
  484. 16 | . assign_expr
  485. 20 assign_expr: . IDENT ASSIGN expr
  486. 21 | . IDENT ASSIGNPLUS expr
  487. 22 | . IDENT ASSIGNMINUS expr
  488. 23 | . IDENT ASSIGNSTAR expr
  489. 24 | . IDENT ASSIGNSLASH expr
  490. 25 | . IDENT ASSIGNDSTAR expr
  491. 26 | . IDENT ASSIGNBAND expr
  492. 27 | . IDENT ASSIGNBOR expr
  493. 28 | . IDENT ASSIGNBXOR expr
  494. 29 | . ex_index_expr ASSIGN expr
  495. 30 | . ex_index_expr ASSIGNPLUS expr
  496. 31 | . ex_index_expr ASSIGNMINUS expr
  497. 32 | . ex_index_expr ASSIGNSTAR expr
  498. 33 | . ex_index_expr ASSIGNSLASH expr
  499. 34 | . ex_index_expr ASSIGNDSTAR expr
  500. 35 | . ex_index_expr ASSIGNBAND expr
  501. 36 | . ex_index_expr ASSIGNBOR expr
  502. 37 | . ex_index_expr ASSIGNBXOR expr
  503. 38 | . logic_expr
  504. 39 logic_expr: . logic_expr LAND ulogic_expr
  505. 40 | . logic_expr LOR ulogic_expr
  506. 41 | . ulogic_expr
  507. 42 ulogic_expr: . LNOT ulogic_expr
  508. 43 | . rel_expr
  509. 44 rel_expr: . term_expr EQUAL rel_expr
  510. 45 | . term_expr NEQUAL rel_expr
  511. 46 | . term_expr LESS rel_expr
  512. 47 | . term_expr GREATER rel_expr
  513. 48 | . term_expr LESSEQ rel_expr
  514. 49 | . term_expr GREATEREQ rel_expr
  515. 50 | . term_expr
  516. 51 term_expr: . term_expr PLUS factor_expr
  517. 52 | . term_expr MINUS factor_expr
  518. 53 | . factor_expr
  519. 54 factor_expr: . factor_expr STAR power_expr
  520. 55 | . factor_expr SLASH power_expr
  521. 56 | . factor_expr PERCENT power_expr
  522. 57 | . power_expr
  523. 58 power_expr: . tbang_expr DSTAR power_expr
  524. 59 | . tbang_expr
  525. 60 tbang_expr: . binary_expr TBANG tbang_expr
  526. 61 | . binary_expr
  527. 62 binary_expr: . binary_expr BAND binary_expr
  528. 63 | . binary_expr BOR binary_expr
  529. 64 | . binary_expr BXOR binary_expr
  530. 65 | . binary_expr LSHIFT binary_expr
  531. 66 | . binary_expr RSHIFT binary_expr
  532. 67 | . ubinary_expr
  533. 68 ubinary_expr: . BNOT ubinary_expr
  534. 69 | . ulen_expr
  535. 70 ulen_expr: . POUND ulen_expr
  536. 71 | . call_expr
  537. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  538. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  539. 74 | . funcdecl_expr
  540. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  541. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  542. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  543. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  544. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  545. 80 | . index_expr
  546. 81 index_expr: . expr LBRACKET expr RBRACKET
  547. 82 | . expr DOT IDENT
  548. 83 | . ref_expr
  549. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  550. 85 | . expr DOT IDENT
  551. 86 ref_expr: . IDENT
  552. 87 | . lit_expr
  553. 88 lit_expr: . INT
  554. 89 | . MINUS INT
  555. 90 | . FLOAT
  556. 91 | . STRING
  557. 92 | . NONE
  558. 93 | . gen_expr
  559. 94 gen_expr: . LBRACKET expr_list RBRACKET
  560. 95 | . LBRACE assoc_list RBRACE
  561. 96 | . paren_expr
  562. 97 paren_expr: . any_lparen expr RPAREN
  563. 113 any_lparen: . LPAREN
  564. 114 | . BLPAREN
  565. IF shift, and go to state 4
  566. WHILE shift, and go to state 5
  567. FOR shift, and go to state 6
  568. FUNC shift, and go to state 7
  569. MACRO shift, and go to state 8
  570. LAMBDA shift, and go to state 9
  571. NONE shift, and go to state 13
  572. IDENT shift, and go to state 14
  573. INT shift, and go to state 15
  574. FLOAT shift, and go to state 16
  575. STRING shift, and go to state 17
  576. MINUS shift, and go to state 18
  577. BNOT shift, and go to state 19
  578. LNOT shift, and go to state 20
  579. LBRACE shift, and go to state 21
  580. BLPAREN shift, and go to state 22
  581. LPAREN shift, and go to state 23
  582. LBRACKET shift, and go to state 24
  583. POUND shift, and go to state 25
  584. expr go to state 49
  585. control_expr go to state 28
  586. assign_expr go to state 29
  587. logic_expr go to state 30
  588. ulogic_expr go to state 31
  589. rel_expr go to state 32
  590. term_expr go to state 33
  591. factor_expr go to state 34
  592. power_expr go to state 35
  593. tbang_expr go to state 36
  594. binary_expr go to state 37
  595. ubinary_expr go to state 38
  596. ulen_expr go to state 39
  597. call_expr go to state 40
  598. funcdecl_expr go to state 41
  599. index_expr go to state 42
  600. ex_index_expr go to state 43
  601. ref_expr go to state 44
  602. lit_expr go to state 45
  603. gen_expr go to state 46
  604. paren_expr go to state 47
  605. any_lparen go to state 48
  606. State 5
  607. 12 expr: . control_expr
  608. 13 control_expr: . IF expr THEN stmt_list if_termin
  609. 14 | . WHILE expr DO stmt_list END
  610. 14 | WHILE . expr DO stmt_list END
  611. 15 | . FOR IDENT IN expr DO stmt_list END
  612. 16 | . assign_expr
  613. 20 assign_expr: . IDENT ASSIGN expr
  614. 21 | . IDENT ASSIGNPLUS expr
  615. 22 | . IDENT ASSIGNMINUS expr
  616. 23 | . IDENT ASSIGNSTAR expr
  617. 24 | . IDENT ASSIGNSLASH expr
  618. 25 | . IDENT ASSIGNDSTAR expr
  619. 26 | . IDENT ASSIGNBAND expr
  620. 27 | . IDENT ASSIGNBOR expr
  621. 28 | . IDENT ASSIGNBXOR expr
  622. 29 | . ex_index_expr ASSIGN expr
  623. 30 | . ex_index_expr ASSIGNPLUS expr
  624. 31 | . ex_index_expr ASSIGNMINUS expr
  625. 32 | . ex_index_expr ASSIGNSTAR expr
  626. 33 | . ex_index_expr ASSIGNSLASH expr
  627. 34 | . ex_index_expr ASSIGNDSTAR expr
  628. 35 | . ex_index_expr ASSIGNBAND expr
  629. 36 | . ex_index_expr ASSIGNBOR expr
  630. 37 | . ex_index_expr ASSIGNBXOR expr
  631. 38 | . logic_expr
  632. 39 logic_expr: . logic_expr LAND ulogic_expr
  633. 40 | . logic_expr LOR ulogic_expr
  634. 41 | . ulogic_expr
  635. 42 ulogic_expr: . LNOT ulogic_expr
  636. 43 | . rel_expr
  637. 44 rel_expr: . term_expr EQUAL rel_expr
  638. 45 | . term_expr NEQUAL rel_expr
  639. 46 | . term_expr LESS rel_expr
  640. 47 | . term_expr GREATER rel_expr
  641. 48 | . term_expr LESSEQ rel_expr
  642. 49 | . term_expr GREATEREQ rel_expr
  643. 50 | . term_expr
  644. 51 term_expr: . term_expr PLUS factor_expr
  645. 52 | . term_expr MINUS factor_expr
  646. 53 | . factor_expr
  647. 54 factor_expr: . factor_expr STAR power_expr
  648. 55 | . factor_expr SLASH power_expr
  649. 56 | . factor_expr PERCENT power_expr
  650. 57 | . power_expr
  651. 58 power_expr: . tbang_expr DSTAR power_expr
  652. 59 | . tbang_expr
  653. 60 tbang_expr: . binary_expr TBANG tbang_expr
  654. 61 | . binary_expr
  655. 62 binary_expr: . binary_expr BAND binary_expr
  656. 63 | . binary_expr BOR binary_expr
  657. 64 | . binary_expr BXOR binary_expr
  658. 65 | . binary_expr LSHIFT binary_expr
  659. 66 | . binary_expr RSHIFT binary_expr
  660. 67 | . ubinary_expr
  661. 68 ubinary_expr: . BNOT ubinary_expr
  662. 69 | . ulen_expr
  663. 70 ulen_expr: . POUND ulen_expr
  664. 71 | . call_expr
  665. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  666. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  667. 74 | . funcdecl_expr
  668. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  669. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  670. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  671. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  672. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  673. 80 | . index_expr
  674. 81 index_expr: . expr LBRACKET expr RBRACKET
  675. 82 | . expr DOT IDENT
  676. 83 | . ref_expr
  677. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  678. 85 | . expr DOT IDENT
  679. 86 ref_expr: . IDENT
  680. 87 | . lit_expr
  681. 88 lit_expr: . INT
  682. 89 | . MINUS INT
  683. 90 | . FLOAT
  684. 91 | . STRING
  685. 92 | . NONE
  686. 93 | . gen_expr
  687. 94 gen_expr: . LBRACKET expr_list RBRACKET
  688. 95 | . LBRACE assoc_list RBRACE
  689. 96 | . paren_expr
  690. 97 paren_expr: . any_lparen expr RPAREN
  691. 113 any_lparen: . LPAREN
  692. 114 | . BLPAREN
  693. IF shift, and go to state 4
  694. WHILE shift, and go to state 5
  695. FOR shift, and go to state 6
  696. FUNC shift, and go to state 7
  697. MACRO shift, and go to state 8
  698. LAMBDA shift, and go to state 9
  699. NONE shift, and go to state 13
  700. IDENT shift, and go to state 14
  701. INT shift, and go to state 15
  702. FLOAT shift, and go to state 16
  703. STRING shift, and go to state 17
  704. MINUS shift, and go to state 18
  705. BNOT shift, and go to state 19
  706. LNOT shift, and go to state 20
  707. LBRACE shift, and go to state 21
  708. BLPAREN shift, and go to state 22
  709. LPAREN shift, and go to state 23
  710. LBRACKET shift, and go to state 24
  711. POUND shift, and go to state 25
  712. expr go to state 50
  713. control_expr go to state 28
  714. assign_expr go to state 29
  715. logic_expr go to state 30
  716. ulogic_expr go to state 31
  717. rel_expr go to state 32
  718. term_expr go to state 33
  719. factor_expr go to state 34
  720. power_expr go to state 35
  721. tbang_expr go to state 36
  722. binary_expr go to state 37
  723. ubinary_expr go to state 38
  724. ulen_expr go to state 39
  725. call_expr go to state 40
  726. funcdecl_expr go to state 41
  727. index_expr go to state 42
  728. ex_index_expr go to state 43
  729. ref_expr go to state 44
  730. lit_expr go to state 45
  731. gen_expr go to state 46
  732. paren_expr go to state 47
  733. any_lparen go to state 48
  734. State 6
  735. 15 control_expr: FOR . IDENT IN expr DO stmt_list END
  736. IDENT shift, and go to state 51
  737. State 7
  738. 75 funcdecl_expr: FUNC . IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  739. 76 | FUNC . any_lparen param_list RPAREN maybe_anno stmt_list END
  740. 113 any_lparen: . LPAREN
  741. 114 | . BLPAREN
  742. IDENT shift, and go to state 52
  743. BLPAREN shift, and go to state 22
  744. LPAREN shift, and go to state 23
  745. any_lparen go to state 53
  746. State 8
  747. 77 funcdecl_expr: MACRO . IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  748. 78 | MACRO . any_lparen param_list RPAREN maybe_anno stmt_list END
  749. 113 any_lparen: . LPAREN
  750. 114 | . BLPAREN
  751. IDENT shift, and go to state 54
  752. BLPAREN shift, and go to state 22
  753. LPAREN shift, and go to state 23
  754. any_lparen go to state 55
  755. State 9
  756. 79 funcdecl_expr: LAMBDA . any_lparen param_list RPAREN maybe_anno expr END
  757. 113 any_lparen: . LPAREN
  758. 114 | . BLPAREN
  759. BLPAREN shift, and go to state 22
  760. LPAREN shift, and go to state 23
  761. any_lparen go to state 56
  762. State 10
  763. 5 stmt: RETURN . expr
  764. 6 | RETURN . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  765. 12 expr: . control_expr
  766. 13 control_expr: . IF expr THEN stmt_list if_termin
  767. 14 | . WHILE expr DO stmt_list END
  768. 15 | . FOR IDENT IN expr DO stmt_list END
  769. 16 | . assign_expr
  770. 20 assign_expr: . IDENT ASSIGN expr
  771. 21 | . IDENT ASSIGNPLUS expr
  772. 22 | . IDENT ASSIGNMINUS expr
  773. 23 | . IDENT ASSIGNSTAR expr
  774. 24 | . IDENT ASSIGNSLASH expr
  775. 25 | . IDENT ASSIGNDSTAR expr
  776. 26 | . IDENT ASSIGNBAND expr
  777. 27 | . IDENT ASSIGNBOR expr
  778. 28 | . IDENT ASSIGNBXOR expr
  779. 29 | . ex_index_expr ASSIGN expr
  780. 30 | . ex_index_expr ASSIGNPLUS expr
  781. 31 | . ex_index_expr ASSIGNMINUS expr
  782. 32 | . ex_index_expr ASSIGNSTAR expr
  783. 33 | . ex_index_expr ASSIGNSLASH expr
  784. 34 | . ex_index_expr ASSIGNDSTAR expr
  785. 35 | . ex_index_expr ASSIGNBAND expr
  786. 36 | . ex_index_expr ASSIGNBOR expr
  787. 37 | . ex_index_expr ASSIGNBXOR expr
  788. 38 | . logic_expr
  789. 39 logic_expr: . logic_expr LAND ulogic_expr
  790. 40 | . logic_expr LOR ulogic_expr
  791. 41 | . ulogic_expr
  792. 42 ulogic_expr: . LNOT ulogic_expr
  793. 43 | . rel_expr
  794. 44 rel_expr: . term_expr EQUAL rel_expr
  795. 45 | . term_expr NEQUAL rel_expr
  796. 46 | . term_expr LESS rel_expr
  797. 47 | . term_expr GREATER rel_expr
  798. 48 | . term_expr LESSEQ rel_expr
  799. 49 | . term_expr GREATEREQ rel_expr
  800. 50 | . term_expr
  801. 51 term_expr: . term_expr PLUS factor_expr
  802. 52 | . term_expr MINUS factor_expr
  803. 53 | . factor_expr
  804. 54 factor_expr: . factor_expr STAR power_expr
  805. 55 | . factor_expr SLASH power_expr
  806. 56 | . factor_expr PERCENT power_expr
  807. 57 | . power_expr
  808. 58 power_expr: . tbang_expr DSTAR power_expr
  809. 59 | . tbang_expr
  810. 60 tbang_expr: . binary_expr TBANG tbang_expr
  811. 61 | . binary_expr
  812. 62 binary_expr: . binary_expr BAND binary_expr
  813. 63 | . binary_expr BOR binary_expr
  814. 64 | . binary_expr BXOR binary_expr
  815. 65 | . binary_expr LSHIFT binary_expr
  816. 66 | . binary_expr RSHIFT binary_expr
  817. 67 | . ubinary_expr
  818. 68 ubinary_expr: . BNOT ubinary_expr
  819. 69 | . ulen_expr
  820. 70 ulen_expr: . POUND ulen_expr
  821. 71 | . call_expr
  822. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  823. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  824. 74 | . funcdecl_expr
  825. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  826. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  827. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  828. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  829. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  830. 80 | . index_expr
  831. 81 index_expr: . expr LBRACKET expr RBRACKET
  832. 82 | . expr DOT IDENT
  833. 83 | . ref_expr
  834. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  835. 85 | . expr DOT IDENT
  836. 86 ref_expr: . IDENT
  837. 87 | . lit_expr
  838. 88 lit_expr: . INT
  839. 89 | . MINUS INT
  840. 90 | . FLOAT
  841. 91 | . STRING
  842. 92 | . NONE
  843. 93 | . gen_expr
  844. 94 gen_expr: . LBRACKET expr_list RBRACKET
  845. 95 | . LBRACE assoc_list RBRACE
  846. 96 | . paren_expr
  847. 97 paren_expr: . any_lparen expr RPAREN
  848. 113 any_lparen: . LPAREN
  849. 114 | . BLPAREN
  850. IF shift, and go to state 4
  851. WHILE shift, and go to state 5
  852. FOR shift, and go to state 6
  853. FUNC shift, and go to state 7
  854. MACRO shift, and go to state 8
  855. LAMBDA shift, and go to state 9
  856. NONE shift, and go to state 13
  857. IDENT shift, and go to state 14
  858. INT shift, and go to state 15
  859. FLOAT shift, and go to state 16
  860. STRING shift, and go to state 17
  861. MINUS shift, and go to state 18
  862. BNOT shift, and go to state 19
  863. LNOT shift, and go to state 20
  864. LBRACE shift, and go to state 21
  865. BLPAREN shift, and go to state 22
  866. LPAREN shift, and go to state 23
  867. LBRACKET shift, and go to state 24
  868. POUND shift, and go to state 25
  869. IF [reduce using rule 6 (stmt)]
  870. WHILE [reduce using rule 6 (stmt)]
  871. FOR [reduce using rule 6 (stmt)]
  872. FUNC [reduce using rule 6 (stmt)]
  873. MACRO [reduce using rule 6 (stmt)]
  874. LAMBDA [reduce using rule 6 (stmt)]
  875. NONE [reduce using rule 6 (stmt)]
  876. IDENT [reduce using rule 6 (stmt)]
  877. INT [reduce using rule 6 (stmt)]
  878. FLOAT [reduce using rule 6 (stmt)]
  879. STRING [reduce using rule 6 (stmt)]
  880. MINUS [reduce using rule 6 (stmt)]
  881. BNOT [reduce using rule 6 (stmt)]
  882. LNOT [reduce using rule 6 (stmt)]
  883. LBRACE [reduce using rule 6 (stmt)]
  884. BLPAREN [reduce using rule 6 (stmt)]
  885. LPAREN [reduce using rule 6 (stmt)]
  886. LBRACKET [reduce using rule 6 (stmt)]
  887. POUND [reduce using rule 6 (stmt)]
  888. $default reduce using rule 6 (stmt)
  889. expr go to state 57
  890. control_expr go to state 28
  891. assign_expr go to state 29
  892. logic_expr go to state 30
  893. ulogic_expr go to state 31
  894. rel_expr go to state 32
  895. term_expr go to state 33
  896. factor_expr go to state 34
  897. power_expr go to state 35
  898. tbang_expr go to state 36
  899. binary_expr go to state 37
  900. ubinary_expr go to state 38
  901. ulen_expr go to state 39
  902. call_expr go to state 40
  903. funcdecl_expr go to state 41
  904. index_expr go to state 42
  905. ex_index_expr go to state 43
  906. ref_expr go to state 44
  907. lit_expr go to state 45
  908. gen_expr go to state 46
  909. paren_expr go to state 47
  910. any_lparen go to state 48
  911. State 11
  912. 7 stmt: BREAK . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  913. 8 | BREAK . expr
  914. 12 expr: . control_expr
  915. 13 control_expr: . IF expr THEN stmt_list if_termin
  916. 14 | . WHILE expr DO stmt_list END
  917. 15 | . FOR IDENT IN expr DO stmt_list END
  918. 16 | . assign_expr
  919. 20 assign_expr: . IDENT ASSIGN expr
  920. 21 | . IDENT ASSIGNPLUS expr
  921. 22 | . IDENT ASSIGNMINUS expr
  922. 23 | . IDENT ASSIGNSTAR expr
  923. 24 | . IDENT ASSIGNSLASH expr
  924. 25 | . IDENT ASSIGNDSTAR expr
  925. 26 | . IDENT ASSIGNBAND expr
  926. 27 | . IDENT ASSIGNBOR expr
  927. 28 | . IDENT ASSIGNBXOR expr
  928. 29 | . ex_index_expr ASSIGN expr
  929. 30 | . ex_index_expr ASSIGNPLUS expr
  930. 31 | . ex_index_expr ASSIGNMINUS expr
  931. 32 | . ex_index_expr ASSIGNSTAR expr
  932. 33 | . ex_index_expr ASSIGNSLASH expr
  933. 34 | . ex_index_expr ASSIGNDSTAR expr
  934. 35 | . ex_index_expr ASSIGNBAND expr
  935. 36 | . ex_index_expr ASSIGNBOR expr
  936. 37 | . ex_index_expr ASSIGNBXOR expr
  937. 38 | . logic_expr
  938. 39 logic_expr: . logic_expr LAND ulogic_expr
  939. 40 | . logic_expr LOR ulogic_expr
  940. 41 | . ulogic_expr
  941. 42 ulogic_expr: . LNOT ulogic_expr
  942. 43 | . rel_expr
  943. 44 rel_expr: . term_expr EQUAL rel_expr
  944. 45 | . term_expr NEQUAL rel_expr
  945. 46 | . term_expr LESS rel_expr
  946. 47 | . term_expr GREATER rel_expr
  947. 48 | . term_expr LESSEQ rel_expr
  948. 49 | . term_expr GREATEREQ rel_expr
  949. 50 | . term_expr
  950. 51 term_expr: . term_expr PLUS factor_expr
  951. 52 | . term_expr MINUS factor_expr
  952. 53 | . factor_expr
  953. 54 factor_expr: . factor_expr STAR power_expr
  954. 55 | . factor_expr SLASH power_expr
  955. 56 | . factor_expr PERCENT power_expr
  956. 57 | . power_expr
  957. 58 power_expr: . tbang_expr DSTAR power_expr
  958. 59 | . tbang_expr
  959. 60 tbang_expr: . binary_expr TBANG tbang_expr
  960. 61 | . binary_expr
  961. 62 binary_expr: . binary_expr BAND binary_expr
  962. 63 | . binary_expr BOR binary_expr
  963. 64 | . binary_expr BXOR binary_expr
  964. 65 | . binary_expr LSHIFT binary_expr
  965. 66 | . binary_expr RSHIFT binary_expr
  966. 67 | . ubinary_expr
  967. 68 ubinary_expr: . BNOT ubinary_expr
  968. 69 | . ulen_expr
  969. 70 ulen_expr: . POUND ulen_expr
  970. 71 | . call_expr
  971. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  972. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  973. 74 | . funcdecl_expr
  974. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  975. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  976. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  977. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  978. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  979. 80 | . index_expr
  980. 81 index_expr: . expr LBRACKET expr RBRACKET
  981. 82 | . expr DOT IDENT
  982. 83 | . ref_expr
  983. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  984. 85 | . expr DOT IDENT
  985. 86 ref_expr: . IDENT
  986. 87 | . lit_expr
  987. 88 lit_expr: . INT
  988. 89 | . MINUS INT
  989. 90 | . FLOAT
  990. 91 | . STRING
  991. 92 | . NONE
  992. 93 | . gen_expr
  993. 94 gen_expr: . LBRACKET expr_list RBRACKET
  994. 95 | . LBRACE assoc_list RBRACE
  995. 96 | . paren_expr
  996. 97 paren_expr: . any_lparen expr RPAREN
  997. 113 any_lparen: . LPAREN
  998. 114 | . BLPAREN
  999. IF shift, and go to state 4
  1000. WHILE shift, and go to state 5
  1001. FOR shift, and go to state 6
  1002. FUNC shift, and go to state 7
  1003. MACRO shift, and go to state 8
  1004. LAMBDA shift, and go to state 9
  1005. NONE shift, and go to state 13
  1006. IDENT shift, and go to state 14
  1007. INT shift, and go to state 15
  1008. FLOAT shift, and go to state 16
  1009. STRING shift, and go to state 17
  1010. MINUS shift, and go to state 18
  1011. BNOT shift, and go to state 19
  1012. LNOT shift, and go to state 20
  1013. LBRACE shift, and go to state 21
  1014. BLPAREN shift, and go to state 22
  1015. LPAREN shift, and go to state 23
  1016. LBRACKET shift, and go to state 24
  1017. POUND shift, and go to state 25
  1018. IF [reduce using rule 7 (stmt)]
  1019. WHILE [reduce using rule 7 (stmt)]
  1020. FOR [reduce using rule 7 (stmt)]
  1021. FUNC [reduce using rule 7 (stmt)]
  1022. MACRO [reduce using rule 7 (stmt)]
  1023. LAMBDA [reduce using rule 7 (stmt)]
  1024. NONE [reduce using rule 7 (stmt)]
  1025. IDENT [reduce using rule 7 (stmt)]
  1026. INT [reduce using rule 7 (stmt)]
  1027. FLOAT [reduce using rule 7 (stmt)]
  1028. STRING [reduce using rule 7 (stmt)]
  1029. MINUS [reduce using rule 7 (stmt)]
  1030. BNOT [reduce using rule 7 (stmt)]
  1031. LNOT [reduce using rule 7 (stmt)]
  1032. LBRACE [reduce using rule 7 (stmt)]
  1033. BLPAREN [reduce using rule 7 (stmt)]
  1034. LPAREN [reduce using rule 7 (stmt)]
  1035. LBRACKET [reduce using rule 7 (stmt)]
  1036. POUND [reduce using rule 7 (stmt)]
  1037. $default reduce using rule 7 (stmt)
  1038. expr go to state 58
  1039. control_expr go to state 28
  1040. assign_expr go to state 29
  1041. logic_expr go to state 30
  1042. ulogic_expr go to state 31
  1043. rel_expr go to state 32
  1044. term_expr go to state 33
  1045. factor_expr go to state 34
  1046. power_expr go to state 35
  1047. tbang_expr go to state 36
  1048. binary_expr go to state 37
  1049. ubinary_expr go to state 38
  1050. ulen_expr go to state 39
  1051. call_expr go to state 40
  1052. funcdecl_expr go to state 41
  1053. index_expr go to state 42
  1054. ex_index_expr go to state 43
  1055. ref_expr go to state 44
  1056. lit_expr go to state 45
  1057. gen_expr go to state 46
  1058. paren_expr go to state 47
  1059. any_lparen go to state 48
  1060. State 12
  1061. 9 stmt: CONTINUE . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  1062. 10 | CONTINUE . expr
  1063. 12 expr: . control_expr
  1064. 13 control_expr: . IF expr THEN stmt_list if_termin
  1065. 14 | . WHILE expr DO stmt_list END
  1066. 15 | . FOR IDENT IN expr DO stmt_list END
  1067. 16 | . assign_expr
  1068. 20 assign_expr: . IDENT ASSIGN expr
  1069. 21 | . IDENT ASSIGNPLUS expr
  1070. 22 | . IDENT ASSIGNMINUS expr
  1071. 23 | . IDENT ASSIGNSTAR expr
  1072. 24 | . IDENT ASSIGNSLASH expr
  1073. 25 | . IDENT ASSIGNDSTAR expr
  1074. 26 | . IDENT ASSIGNBAND expr
  1075. 27 | . IDENT ASSIGNBOR expr
  1076. 28 | . IDENT ASSIGNBXOR expr
  1077. 29 | . ex_index_expr ASSIGN expr
  1078. 30 | . ex_index_expr ASSIGNPLUS expr
  1079. 31 | . ex_index_expr ASSIGNMINUS expr
  1080. 32 | . ex_index_expr ASSIGNSTAR expr
  1081. 33 | . ex_index_expr ASSIGNSLASH expr
  1082. 34 | . ex_index_expr ASSIGNDSTAR expr
  1083. 35 | . ex_index_expr ASSIGNBAND expr
  1084. 36 | . ex_index_expr ASSIGNBOR expr
  1085. 37 | . ex_index_expr ASSIGNBXOR expr
  1086. 38 | . logic_expr
  1087. 39 logic_expr: . logic_expr LAND ulogic_expr
  1088. 40 | . logic_expr LOR ulogic_expr
  1089. 41 | . ulogic_expr
  1090. 42 ulogic_expr: . LNOT ulogic_expr
  1091. 43 | . rel_expr
  1092. 44 rel_expr: . term_expr EQUAL rel_expr
  1093. 45 | . term_expr NEQUAL rel_expr
  1094. 46 | . term_expr LESS rel_expr
  1095. 47 | . term_expr GREATER rel_expr
  1096. 48 | . term_expr LESSEQ rel_expr
  1097. 49 | . term_expr GREATEREQ rel_expr
  1098. 50 | . term_expr
  1099. 51 term_expr: . term_expr PLUS factor_expr
  1100. 52 | . term_expr MINUS factor_expr
  1101. 53 | . factor_expr
  1102. 54 factor_expr: . factor_expr STAR power_expr
  1103. 55 | . factor_expr SLASH power_expr
  1104. 56 | . factor_expr PERCENT power_expr
  1105. 57 | . power_expr
  1106. 58 power_expr: . tbang_expr DSTAR power_expr
  1107. 59 | . tbang_expr
  1108. 60 tbang_expr: . binary_expr TBANG tbang_expr
  1109. 61 | . binary_expr
  1110. 62 binary_expr: . binary_expr BAND binary_expr
  1111. 63 | . binary_expr BOR binary_expr
  1112. 64 | . binary_expr BXOR binary_expr
  1113. 65 | . binary_expr LSHIFT binary_expr
  1114. 66 | . binary_expr RSHIFT binary_expr
  1115. 67 | . ubinary_expr
  1116. 68 ubinary_expr: . BNOT ubinary_expr
  1117. 69 | . ulen_expr
  1118. 70 ulen_expr: . POUND ulen_expr
  1119. 71 | . call_expr
  1120. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  1121. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  1122. 74 | . funcdecl_expr
  1123. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1124. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  1125. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1126. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  1127. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  1128. 80 | . index_expr
  1129. 81 index_expr: . expr LBRACKET expr RBRACKET
  1130. 82 | . expr DOT IDENT
  1131. 83 | . ref_expr
  1132. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  1133. 85 | . expr DOT IDENT
  1134. 86 ref_expr: . IDENT
  1135. 87 | . lit_expr
  1136. 88 lit_expr: . INT
  1137. 89 | . MINUS INT
  1138. 90 | . FLOAT
  1139. 91 | . STRING
  1140. 92 | . NONE
  1141. 93 | . gen_expr
  1142. 94 gen_expr: . LBRACKET expr_list RBRACKET
  1143. 95 | . LBRACE assoc_list RBRACE
  1144. 96 | . paren_expr
  1145. 97 paren_expr: . any_lparen expr RPAREN
  1146. 113 any_lparen: . LPAREN
  1147. 114 | . BLPAREN
  1148. IF shift, and go to state 4
  1149. WHILE shift, and go to state 5
  1150. FOR shift, and go to state 6
  1151. FUNC shift, and go to state 7
  1152. MACRO shift, and go to state 8
  1153. LAMBDA shift, and go to state 9
  1154. NONE shift, and go to state 13
  1155. IDENT shift, and go to state 14
  1156. INT shift, and go to state 15
  1157. FLOAT shift, and go to state 16
  1158. STRING shift, and go to state 17
  1159. MINUS shift, and go to state 18
  1160. BNOT shift, and go to state 19
  1161. LNOT shift, and go to state 20
  1162. LBRACE shift, and go to state 21
  1163. BLPAREN shift, and go to state 22
  1164. LPAREN shift, and go to state 23
  1165. LBRACKET shift, and go to state 24
  1166. POUND shift, and go to state 25
  1167. IF [reduce using rule 9 (stmt)]
  1168. WHILE [reduce using rule 9 (stmt)]
  1169. FOR [reduce using rule 9 (stmt)]
  1170. FUNC [reduce using rule 9 (stmt)]
  1171. MACRO [reduce using rule 9 (stmt)]
  1172. LAMBDA [reduce using rule 9 (stmt)]
  1173. NONE [reduce using rule 9 (stmt)]
  1174. IDENT [reduce using rule 9 (stmt)]
  1175. INT [reduce using rule 9 (stmt)]
  1176. FLOAT [reduce using rule 9 (stmt)]
  1177. STRING [reduce using rule 9 (stmt)]
  1178. MINUS [reduce using rule 9 (stmt)]
  1179. BNOT [reduce using rule 9 (stmt)]
  1180. LNOT [reduce using rule 9 (stmt)]
  1181. LBRACE [reduce using rule 9 (stmt)]
  1182. BLPAREN [reduce using rule 9 (stmt)]
  1183. LPAREN [reduce using rule 9 (stmt)]
  1184. LBRACKET [reduce using rule 9 (stmt)]
  1185. POUND [reduce using rule 9 (stmt)]
  1186. $default reduce using rule 9 (stmt)
  1187. expr go to state 59
  1188. control_expr go to state 28
  1189. assign_expr go to state 29
  1190. logic_expr go to state 30
  1191. ulogic_expr go to state 31
  1192. rel_expr go to state 32
  1193. term_expr go to state 33
  1194. factor_expr go to state 34
  1195. power_expr go to state 35
  1196. tbang_expr go to state 36
  1197. binary_expr go to state 37
  1198. ubinary_expr go to state 38
  1199. ulen_expr go to state 39
  1200. call_expr go to state 40
  1201. funcdecl_expr go to state 41
  1202. index_expr go to state 42
  1203. ex_index_expr go to state 43
  1204. ref_expr go to state 44
  1205. lit_expr go to state 45
  1206. gen_expr go to state 46
  1207. paren_expr go to state 47
  1208. any_lparen go to state 48
  1209. State 13
  1210. 92 lit_expr: NONE .
  1211. $default reduce using rule 92 (lit_expr)
  1212. State 14
  1213. 20 assign_expr: IDENT . ASSIGN expr
  1214. 21 | IDENT . ASSIGNPLUS expr
  1215. 22 | IDENT . ASSIGNMINUS expr
  1216. 23 | IDENT . ASSIGNSTAR expr
  1217. 24 | IDENT . ASSIGNSLASH expr
  1218. 25 | IDENT . ASSIGNDSTAR expr
  1219. 26 | IDENT . ASSIGNBAND expr
  1220. 27 | IDENT . ASSIGNBOR expr
  1221. 28 | IDENT . ASSIGNBXOR expr
  1222. 86 ref_expr: IDENT . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, COLON, SEMICOLON, COMMA, POUND, TBANG]
  1223. ASSIGN shift, and go to state 60
  1224. ASSIGNPLUS shift, and go to state 61
  1225. ASSIGNMINUS shift, and go to state 62
  1226. ASSIGNSTAR shift, and go to state 63
  1227. ASSIGNSLASH shift, and go to state 64
  1228. ASSIGNDSTAR shift, and go to state 65
  1229. ASSIGNBAND shift, and go to state 66
  1230. ASSIGNBOR shift, and go to state 67
  1231. ASSIGNBXOR shift, and go to state 68
  1232. $default reduce using rule 86 (ref_expr)
  1233. State 15
  1234. 88 lit_expr: INT .
  1235. $default reduce using rule 88 (lit_expr)
  1236. State 16
  1237. 90 lit_expr: FLOAT .
  1238. $default reduce using rule 90 (lit_expr)
  1239. State 17
  1240. 91 lit_expr: STRING .
  1241. $default reduce using rule 91 (lit_expr)
  1242. State 18
  1243. 89 lit_expr: MINUS . INT
  1244. INT shift, and go to state 69
  1245. State 19
  1246. 12 expr: . control_expr
  1247. 13 control_expr: . IF expr THEN stmt_list if_termin
  1248. 14 | . WHILE expr DO stmt_list END
  1249. 15 | . FOR IDENT IN expr DO stmt_list END
  1250. 16 | . assign_expr
  1251. 20 assign_expr: . IDENT ASSIGN expr
  1252. 21 | . IDENT ASSIGNPLUS expr
  1253. 22 | . IDENT ASSIGNMINUS expr
  1254. 23 | . IDENT ASSIGNSTAR expr
  1255. 24 | . IDENT ASSIGNSLASH expr
  1256. 25 | . IDENT ASSIGNDSTAR expr
  1257. 26 | . IDENT ASSIGNBAND expr
  1258. 27 | . IDENT ASSIGNBOR expr
  1259. 28 | . IDENT ASSIGNBXOR expr
  1260. 29 | . ex_index_expr ASSIGN expr
  1261. 30 | . ex_index_expr ASSIGNPLUS expr
  1262. 31 | . ex_index_expr ASSIGNMINUS expr
  1263. 32 | . ex_index_expr ASSIGNSTAR expr
  1264. 33 | . ex_index_expr ASSIGNSLASH expr
  1265. 34 | . ex_index_expr ASSIGNDSTAR expr
  1266. 35 | . ex_index_expr ASSIGNBAND expr
  1267. 36 | . ex_index_expr ASSIGNBOR expr
  1268. 37 | . ex_index_expr ASSIGNBXOR expr
  1269. 38 | . logic_expr
  1270. 39 logic_expr: . logic_expr LAND ulogic_expr
  1271. 40 | . logic_expr LOR ulogic_expr
  1272. 41 | . ulogic_expr
  1273. 42 ulogic_expr: . LNOT ulogic_expr
  1274. 43 | . rel_expr
  1275. 44 rel_expr: . term_expr EQUAL rel_expr
  1276. 45 | . term_expr NEQUAL rel_expr
  1277. 46 | . term_expr LESS rel_expr
  1278. 47 | . term_expr GREATER rel_expr
  1279. 48 | . term_expr LESSEQ rel_expr
  1280. 49 | . term_expr GREATEREQ rel_expr
  1281. 50 | . term_expr
  1282. 51 term_expr: . term_expr PLUS factor_expr
  1283. 52 | . term_expr MINUS factor_expr
  1284. 53 | . factor_expr
  1285. 54 factor_expr: . factor_expr STAR power_expr
  1286. 55 | . factor_expr SLASH power_expr
  1287. 56 | . factor_expr PERCENT power_expr
  1288. 57 | . power_expr
  1289. 58 power_expr: . tbang_expr DSTAR power_expr
  1290. 59 | . tbang_expr
  1291. 60 tbang_expr: . binary_expr TBANG tbang_expr
  1292. 61 | . binary_expr
  1293. 62 binary_expr: . binary_expr BAND binary_expr
  1294. 63 | . binary_expr BOR binary_expr
  1295. 64 | . binary_expr BXOR binary_expr
  1296. 65 | . binary_expr LSHIFT binary_expr
  1297. 66 | . binary_expr RSHIFT binary_expr
  1298. 67 | . ubinary_expr
  1299. 68 ubinary_expr: . BNOT ubinary_expr
  1300. 68 | BNOT . ubinary_expr
  1301. 69 | . ulen_expr
  1302. 70 ulen_expr: . POUND ulen_expr
  1303. 71 | . call_expr
  1304. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  1305. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  1306. 74 | . funcdecl_expr
  1307. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1308. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  1309. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1310. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  1311. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  1312. 80 | . index_expr
  1313. 81 index_expr: . expr LBRACKET expr RBRACKET
  1314. 82 | . expr DOT IDENT
  1315. 83 | . ref_expr
  1316. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  1317. 85 | . expr DOT IDENT
  1318. 86 ref_expr: . IDENT
  1319. 87 | . lit_expr
  1320. 88 lit_expr: . INT
  1321. 89 | . MINUS INT
  1322. 90 | . FLOAT
  1323. 91 | . STRING
  1324. 92 | . NONE
  1325. 93 | . gen_expr
  1326. 94 gen_expr: . LBRACKET expr_list RBRACKET
  1327. 95 | . LBRACE assoc_list RBRACE
  1328. 96 | . paren_expr
  1329. 97 paren_expr: . any_lparen expr RPAREN
  1330. 113 any_lparen: . LPAREN
  1331. 114 | . BLPAREN
  1332. IF shift, and go to state 4
  1333. WHILE shift, and go to state 5
  1334. FOR shift, and go to state 6
  1335. FUNC shift, and go to state 7
  1336. MACRO shift, and go to state 8
  1337. LAMBDA shift, and go to state 9
  1338. NONE shift, and go to state 13
  1339. IDENT shift, and go to state 14
  1340. INT shift, and go to state 15
  1341. FLOAT shift, and go to state 16
  1342. STRING shift, and go to state 17
  1343. MINUS shift, and go to state 18
  1344. BNOT shift, and go to state 19
  1345. LNOT shift, and go to state 20
  1346. LBRACE shift, and go to state 21
  1347. BLPAREN shift, and go to state 22
  1348. LPAREN shift, and go to state 23
  1349. LBRACKET shift, and go to state 24
  1350. POUND shift, and go to state 25
  1351. expr go to state 70
  1352. control_expr go to state 28
  1353. assign_expr go to state 29
  1354. logic_expr go to state 30
  1355. ulogic_expr go to state 31
  1356. rel_expr go to state 32
  1357. term_expr go to state 33
  1358. factor_expr go to state 34
  1359. power_expr go to state 35
  1360. tbang_expr go to state 36
  1361. binary_expr go to state 37
  1362. ubinary_expr go to state 71
  1363. ulen_expr go to state 39
  1364. call_expr go to state 40
  1365. funcdecl_expr go to state 41
  1366. index_expr go to state 42
  1367. ex_index_expr go to state 43
  1368. ref_expr go to state 44
  1369. lit_expr go to state 45
  1370. gen_expr go to state 46
  1371. paren_expr go to state 47
  1372. any_lparen go to state 48
  1373. State 20
  1374. 12 expr: . control_expr
  1375. 13 control_expr: . IF expr THEN stmt_list if_termin
  1376. 14 | . WHILE expr DO stmt_list END
  1377. 15 | . FOR IDENT IN expr DO stmt_list END
  1378. 16 | . assign_expr
  1379. 20 assign_expr: . IDENT ASSIGN expr
  1380. 21 | . IDENT ASSIGNPLUS expr
  1381. 22 | . IDENT ASSIGNMINUS expr
  1382. 23 | . IDENT ASSIGNSTAR expr
  1383. 24 | . IDENT ASSIGNSLASH expr
  1384. 25 | . IDENT ASSIGNDSTAR expr
  1385. 26 | . IDENT ASSIGNBAND expr
  1386. 27 | . IDENT ASSIGNBOR expr
  1387. 28 | . IDENT ASSIGNBXOR expr
  1388. 29 | . ex_index_expr ASSIGN expr
  1389. 30 | . ex_index_expr ASSIGNPLUS expr
  1390. 31 | . ex_index_expr ASSIGNMINUS expr
  1391. 32 | . ex_index_expr ASSIGNSTAR expr
  1392. 33 | . ex_index_expr ASSIGNSLASH expr
  1393. 34 | . ex_index_expr ASSIGNDSTAR expr
  1394. 35 | . ex_index_expr ASSIGNBAND expr
  1395. 36 | . ex_index_expr ASSIGNBOR expr
  1396. 37 | . ex_index_expr ASSIGNBXOR expr
  1397. 38 | . logic_expr
  1398. 39 logic_expr: . logic_expr LAND ulogic_expr
  1399. 40 | . logic_expr LOR ulogic_expr
  1400. 41 | . ulogic_expr
  1401. 42 ulogic_expr: . LNOT ulogic_expr
  1402. 42 | LNOT . ulogic_expr
  1403. 43 | . rel_expr
  1404. 44 rel_expr: . term_expr EQUAL rel_expr
  1405. 45 | . term_expr NEQUAL rel_expr
  1406. 46 | . term_expr LESS rel_expr
  1407. 47 | . term_expr GREATER rel_expr
  1408. 48 | . term_expr LESSEQ rel_expr
  1409. 49 | . term_expr GREATEREQ rel_expr
  1410. 50 | . term_expr
  1411. 51 term_expr: . term_expr PLUS factor_expr
  1412. 52 | . term_expr MINUS factor_expr
  1413. 53 | . factor_expr
  1414. 54 factor_expr: . factor_expr STAR power_expr
  1415. 55 | . factor_expr SLASH power_expr
  1416. 56 | . factor_expr PERCENT power_expr
  1417. 57 | . power_expr
  1418. 58 power_expr: . tbang_expr DSTAR power_expr
  1419. 59 | . tbang_expr
  1420. 60 tbang_expr: . binary_expr TBANG tbang_expr
  1421. 61 | . binary_expr
  1422. 62 binary_expr: . binary_expr BAND binary_expr
  1423. 63 | . binary_expr BOR binary_expr
  1424. 64 | . binary_expr BXOR binary_expr
  1425. 65 | . binary_expr LSHIFT binary_expr
  1426. 66 | . binary_expr RSHIFT binary_expr
  1427. 67 | . ubinary_expr
  1428. 68 ubinary_expr: . BNOT ubinary_expr
  1429. 69 | . ulen_expr
  1430. 70 ulen_expr: . POUND ulen_expr
  1431. 71 | . call_expr
  1432. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  1433. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  1434. 74 | . funcdecl_expr
  1435. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1436. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  1437. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1438. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  1439. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  1440. 80 | . index_expr
  1441. 81 index_expr: . expr LBRACKET expr RBRACKET
  1442. 82 | . expr DOT IDENT
  1443. 83 | . ref_expr
  1444. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  1445. 85 | . expr DOT IDENT
  1446. 86 ref_expr: . IDENT
  1447. 87 | . lit_expr
  1448. 88 lit_expr: . INT
  1449. 89 | . MINUS INT
  1450. 90 | . FLOAT
  1451. 91 | . STRING
  1452. 92 | . NONE
  1453. 93 | . gen_expr
  1454. 94 gen_expr: . LBRACKET expr_list RBRACKET
  1455. 95 | . LBRACE assoc_list RBRACE
  1456. 96 | . paren_expr
  1457. 97 paren_expr: . any_lparen expr RPAREN
  1458. 113 any_lparen: . LPAREN
  1459. 114 | . BLPAREN
  1460. IF shift, and go to state 4
  1461. WHILE shift, and go to state 5
  1462. FOR shift, and go to state 6
  1463. FUNC shift, and go to state 7
  1464. MACRO shift, and go to state 8
  1465. LAMBDA shift, and go to state 9
  1466. NONE shift, and go to state 13
  1467. IDENT shift, and go to state 14
  1468. INT shift, and go to state 15
  1469. FLOAT shift, and go to state 16
  1470. STRING shift, and go to state 17
  1471. MINUS shift, and go to state 18
  1472. BNOT shift, and go to state 19
  1473. LNOT shift, and go to state 20
  1474. LBRACE shift, and go to state 21
  1475. BLPAREN shift, and go to state 22
  1476. LPAREN shift, and go to state 23
  1477. LBRACKET shift, and go to state 24
  1478. POUND shift, and go to state 25
  1479. expr go to state 70
  1480. control_expr go to state 28
  1481. assign_expr go to state 29
  1482. logic_expr go to state 30
  1483. ulogic_expr go to state 72
  1484. rel_expr go to state 32
  1485. term_expr go to state 33
  1486. factor_expr go to state 34
  1487. power_expr go to state 35
  1488. tbang_expr go to state 36
  1489. binary_expr go to state 37
  1490. ubinary_expr go to state 38
  1491. ulen_expr go to state 39
  1492. call_expr go to state 40
  1493. funcdecl_expr go to state 41
  1494. index_expr go to state 42
  1495. ex_index_expr go to state 43
  1496. ref_expr go to state 44
  1497. lit_expr go to state 45
  1498. gen_expr go to state 46
  1499. paren_expr go to state 47
  1500. any_lparen go to state 48
  1501. State 21
  1502. 95 gen_expr: LBRACE . assoc_list RBRACE
  1503. 107 assoc_list: . %empty [IDENT, RBRACE, LBRACKET, COMMA]
  1504. 108 | . assoc_item
  1505. 109 | . assoc_list COMMA
  1506. 110 | . assoc_list assoc_item
  1507. 111 assoc_item: . LBRACKET expr RBRACKET ASSIGN expr
  1508. 112 | . IDENT ASSIGN expr
  1509. IDENT shift, and go to state 73
  1510. LBRACKET shift, and go to state 74
  1511. IDENT [reduce using rule 107 (assoc_list)]
  1512. LBRACKET [reduce using rule 107 (assoc_list)]
  1513. $default reduce using rule 107 (assoc_list)
  1514. assoc_list go to state 75
  1515. assoc_item go to state 76
  1516. State 22
  1517. 114 any_lparen: BLPAREN .
  1518. $default reduce using rule 114 (any_lparen)
  1519. State 23
  1520. 113 any_lparen: LPAREN .
  1521. $default reduce using rule 113 (any_lparen)
  1522. State 24
  1523. 12 expr: . control_expr
  1524. 13 control_expr: . IF expr THEN stmt_list if_termin
  1525. 14 | . WHILE expr DO stmt_list END
  1526. 15 | . FOR IDENT IN expr DO stmt_list END
  1527. 16 | . assign_expr
  1528. 20 assign_expr: . IDENT ASSIGN expr
  1529. 21 | . IDENT ASSIGNPLUS expr
  1530. 22 | . IDENT ASSIGNMINUS expr
  1531. 23 | . IDENT ASSIGNSTAR expr
  1532. 24 | . IDENT ASSIGNSLASH expr
  1533. 25 | . IDENT ASSIGNDSTAR expr
  1534. 26 | . IDENT ASSIGNBAND expr
  1535. 27 | . IDENT ASSIGNBOR expr
  1536. 28 | . IDENT ASSIGNBXOR expr
  1537. 29 | . ex_index_expr ASSIGN expr
  1538. 30 | . ex_index_expr ASSIGNPLUS expr
  1539. 31 | . ex_index_expr ASSIGNMINUS expr
  1540. 32 | . ex_index_expr ASSIGNSTAR expr
  1541. 33 | . ex_index_expr ASSIGNSLASH expr
  1542. 34 | . ex_index_expr ASSIGNDSTAR expr
  1543. 35 | . ex_index_expr ASSIGNBAND expr
  1544. 36 | . ex_index_expr ASSIGNBOR expr
  1545. 37 | . ex_index_expr ASSIGNBXOR expr
  1546. 38 | . logic_expr
  1547. 39 logic_expr: . logic_expr LAND ulogic_expr
  1548. 40 | . logic_expr LOR ulogic_expr
  1549. 41 | . ulogic_expr
  1550. 42 ulogic_expr: . LNOT ulogic_expr
  1551. 43 | . rel_expr
  1552. 44 rel_expr: . term_expr EQUAL rel_expr
  1553. 45 | . term_expr NEQUAL rel_expr
  1554. 46 | . term_expr LESS rel_expr
  1555. 47 | . term_expr GREATER rel_expr
  1556. 48 | . term_expr LESSEQ rel_expr
  1557. 49 | . term_expr GREATEREQ rel_expr
  1558. 50 | . term_expr
  1559. 51 term_expr: . term_expr PLUS factor_expr
  1560. 52 | . term_expr MINUS factor_expr
  1561. 53 | . factor_expr
  1562. 54 factor_expr: . factor_expr STAR power_expr
  1563. 55 | . factor_expr SLASH power_expr
  1564. 56 | . factor_expr PERCENT power_expr
  1565. 57 | . power_expr
  1566. 58 power_expr: . tbang_expr DSTAR power_expr
  1567. 59 | . tbang_expr
  1568. 60 tbang_expr: . binary_expr TBANG tbang_expr
  1569. 61 | . binary_expr
  1570. 62 binary_expr: . binary_expr BAND binary_expr
  1571. 63 | . binary_expr BOR binary_expr
  1572. 64 | . binary_expr BXOR binary_expr
  1573. 65 | . binary_expr LSHIFT binary_expr
  1574. 66 | . binary_expr RSHIFT binary_expr
  1575. 67 | . ubinary_expr
  1576. 68 ubinary_expr: . BNOT ubinary_expr
  1577. 69 | . ulen_expr
  1578. 70 ulen_expr: . POUND ulen_expr
  1579. 71 | . call_expr
  1580. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  1581. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  1582. 74 | . funcdecl_expr
  1583. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1584. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  1585. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1586. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  1587. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  1588. 80 | . index_expr
  1589. 81 index_expr: . expr LBRACKET expr RBRACKET
  1590. 82 | . expr DOT IDENT
  1591. 83 | . ref_expr
  1592. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  1593. 85 | . expr DOT IDENT
  1594. 86 ref_expr: . IDENT
  1595. 87 | . lit_expr
  1596. 88 lit_expr: . INT
  1597. 89 | . MINUS INT
  1598. 90 | . FLOAT
  1599. 91 | . STRING
  1600. 92 | . NONE
  1601. 93 | . gen_expr
  1602. 94 gen_expr: . LBRACKET expr_list RBRACKET
  1603. 94 | LBRACKET . expr_list RBRACKET
  1604. 95 | . LBRACE assoc_list RBRACE
  1605. 96 | . paren_expr
  1606. 97 paren_expr: . any_lparen expr RPAREN
  1607. 98 expr_list: . %empty [IF, WHILE, FOR, FUNC, MACRO, LAMBDA, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, RBRACKET, COMMA, POUND]
  1608. 99 | . expr
  1609. 100 | . expr_list COMMA
  1610. 101 | . expr_list expr
  1611. 113 any_lparen: . LPAREN
  1612. 114 | . BLPAREN
  1613. IF shift, and go to state 4
  1614. WHILE shift, and go to state 5
  1615. FOR shift, and go to state 6
  1616. FUNC shift, and go to state 7
  1617. MACRO shift, and go to state 8
  1618. LAMBDA shift, and go to state 9
  1619. NONE shift, and go to state 13
  1620. IDENT shift, and go to state 14
  1621. INT shift, and go to state 15
  1622. FLOAT shift, and go to state 16
  1623. STRING shift, and go to state 17
  1624. MINUS shift, and go to state 18
  1625. BNOT shift, and go to state 19
  1626. LNOT shift, and go to state 20
  1627. LBRACE shift, and go to state 21
  1628. BLPAREN shift, and go to state 22
  1629. LPAREN shift, and go to state 23
  1630. LBRACKET shift, and go to state 24
  1631. POUND shift, and go to state 25
  1632. IF [reduce using rule 98 (expr_list)]
  1633. WHILE [reduce using rule 98 (expr_list)]
  1634. FOR [reduce using rule 98 (expr_list)]
  1635. FUNC [reduce using rule 98 (expr_list)]
  1636. MACRO [reduce using rule 98 (expr_list)]
  1637. LAMBDA [reduce using rule 98 (expr_list)]
  1638. NONE [reduce using rule 98 (expr_list)]
  1639. IDENT [reduce using rule 98 (expr_list)]
  1640. INT [reduce using rule 98 (expr_list)]
  1641. FLOAT [reduce using rule 98 (expr_list)]
  1642. STRING [reduce using rule 98 (expr_list)]
  1643. MINUS [reduce using rule 98 (expr_list)]
  1644. BNOT [reduce using rule 98 (expr_list)]
  1645. LNOT [reduce using rule 98 (expr_list)]
  1646. LBRACE [reduce using rule 98 (expr_list)]
  1647. BLPAREN [reduce using rule 98 (expr_list)]
  1648. LPAREN [reduce using rule 98 (expr_list)]
  1649. LBRACKET [reduce using rule 98 (expr_list)]
  1650. POUND [reduce using rule 98 (expr_list)]
  1651. $default reduce using rule 98 (expr_list)
  1652. expr go to state 77
  1653. control_expr go to state 28
  1654. assign_expr go to state 29
  1655. logic_expr go to state 30
  1656. ulogic_expr go to state 31
  1657. rel_expr go to state 32
  1658. term_expr go to state 33
  1659. factor_expr go to state 34
  1660. power_expr go to state 35
  1661. tbang_expr go to state 36
  1662. binary_expr go to state 37
  1663. ubinary_expr go to state 38
  1664. ulen_expr go to state 39
  1665. call_expr go to state 40
  1666. funcdecl_expr go to state 41
  1667. index_expr go to state 42
  1668. ex_index_expr go to state 43
  1669. ref_expr go to state 44
  1670. lit_expr go to state 45
  1671. gen_expr go to state 46
  1672. paren_expr go to state 47
  1673. expr_list go to state 78
  1674. any_lparen go to state 48
  1675. State 25
  1676. 12 expr: . control_expr
  1677. 13 control_expr: . IF expr THEN stmt_list if_termin
  1678. 14 | . WHILE expr DO stmt_list END
  1679. 15 | . FOR IDENT IN expr DO stmt_list END
  1680. 16 | . assign_expr
  1681. 20 assign_expr: . IDENT ASSIGN expr
  1682. 21 | . IDENT ASSIGNPLUS expr
  1683. 22 | . IDENT ASSIGNMINUS expr
  1684. 23 | . IDENT ASSIGNSTAR expr
  1685. 24 | . IDENT ASSIGNSLASH expr
  1686. 25 | . IDENT ASSIGNDSTAR expr
  1687. 26 | . IDENT ASSIGNBAND expr
  1688. 27 | . IDENT ASSIGNBOR expr
  1689. 28 | . IDENT ASSIGNBXOR expr
  1690. 29 | . ex_index_expr ASSIGN expr
  1691. 30 | . ex_index_expr ASSIGNPLUS expr
  1692. 31 | . ex_index_expr ASSIGNMINUS expr
  1693. 32 | . ex_index_expr ASSIGNSTAR expr
  1694. 33 | . ex_index_expr ASSIGNSLASH expr
  1695. 34 | . ex_index_expr ASSIGNDSTAR expr
  1696. 35 | . ex_index_expr ASSIGNBAND expr
  1697. 36 | . ex_index_expr ASSIGNBOR expr
  1698. 37 | . ex_index_expr ASSIGNBXOR expr
  1699. 38 | . logic_expr
  1700. 39 logic_expr: . logic_expr LAND ulogic_expr
  1701. 40 | . logic_expr LOR ulogic_expr
  1702. 41 | . ulogic_expr
  1703. 42 ulogic_expr: . LNOT ulogic_expr
  1704. 43 | . rel_expr
  1705. 44 rel_expr: . term_expr EQUAL rel_expr
  1706. 45 | . term_expr NEQUAL rel_expr
  1707. 46 | . term_expr LESS rel_expr
  1708. 47 | . term_expr GREATER rel_expr
  1709. 48 | . term_expr LESSEQ rel_expr
  1710. 49 | . term_expr GREATEREQ rel_expr
  1711. 50 | . term_expr
  1712. 51 term_expr: . term_expr PLUS factor_expr
  1713. 52 | . term_expr MINUS factor_expr
  1714. 53 | . factor_expr
  1715. 54 factor_expr: . factor_expr STAR power_expr
  1716. 55 | . factor_expr SLASH power_expr
  1717. 56 | . factor_expr PERCENT power_expr
  1718. 57 | . power_expr
  1719. 58 power_expr: . tbang_expr DSTAR power_expr
  1720. 59 | . tbang_expr
  1721. 60 tbang_expr: . binary_expr TBANG tbang_expr
  1722. 61 | . binary_expr
  1723. 62 binary_expr: . binary_expr BAND binary_expr
  1724. 63 | . binary_expr BOR binary_expr
  1725. 64 | . binary_expr BXOR binary_expr
  1726. 65 | . binary_expr LSHIFT binary_expr
  1727. 66 | . binary_expr RSHIFT binary_expr
  1728. 67 | . ubinary_expr
  1729. 68 ubinary_expr: . BNOT ubinary_expr
  1730. 69 | . ulen_expr
  1731. 70 ulen_expr: . POUND ulen_expr
  1732. 70 | POUND . ulen_expr
  1733. 71 | . call_expr
  1734. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  1735. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  1736. 74 | . funcdecl_expr
  1737. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1738. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  1739. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  1740. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  1741. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  1742. 80 | . index_expr
  1743. 81 index_expr: . expr LBRACKET expr RBRACKET
  1744. 82 | . expr DOT IDENT
  1745. 83 | . ref_expr
  1746. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  1747. 85 | . expr DOT IDENT
  1748. 86 ref_expr: . IDENT
  1749. 87 | . lit_expr
  1750. 88 lit_expr: . INT
  1751. 89 | . MINUS INT
  1752. 90 | . FLOAT
  1753. 91 | . STRING
  1754. 92 | . NONE
  1755. 93 | . gen_expr
  1756. 94 gen_expr: . LBRACKET expr_list RBRACKET
  1757. 95 | . LBRACE assoc_list RBRACE
  1758. 96 | . paren_expr
  1759. 97 paren_expr: . any_lparen expr RPAREN
  1760. 113 any_lparen: . LPAREN
  1761. 114 | . BLPAREN
  1762. IF shift, and go to state 4
  1763. WHILE shift, and go to state 5
  1764. FOR shift, and go to state 6
  1765. FUNC shift, and go to state 7
  1766. MACRO shift, and go to state 8
  1767. LAMBDA shift, and go to state 9
  1768. NONE shift, and go to state 13
  1769. IDENT shift, and go to state 14
  1770. INT shift, and go to state 15
  1771. FLOAT shift, and go to state 16
  1772. STRING shift, and go to state 17
  1773. MINUS shift, and go to state 18
  1774. BNOT shift, and go to state 19
  1775. LNOT shift, and go to state 20
  1776. LBRACE shift, and go to state 21
  1777. BLPAREN shift, and go to state 22
  1778. LPAREN shift, and go to state 23
  1779. LBRACKET shift, and go to state 24
  1780. POUND shift, and go to state 25
  1781. expr go to state 70
  1782. control_expr go to state 28
  1783. assign_expr go to state 29
  1784. logic_expr go to state 30
  1785. ulogic_expr go to state 31
  1786. rel_expr go to state 32
  1787. term_expr go to state 33
  1788. factor_expr go to state 34
  1789. power_expr go to state 35
  1790. tbang_expr go to state 36
  1791. binary_expr go to state 37
  1792. ubinary_expr go to state 38
  1793. ulen_expr go to state 79
  1794. call_expr go to state 40
  1795. funcdecl_expr go to state 41
  1796. index_expr go to state 42
  1797. ex_index_expr go to state 43
  1798. ref_expr go to state 44
  1799. lit_expr go to state 45
  1800. gen_expr go to state 46
  1801. paren_expr go to state 47
  1802. any_lparen go to state 48
  1803. State 26
  1804. 2 stmt_list: stmt_list stmt . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, POUND]
  1805. 11 stmt: stmt . SEMICOLON
  1806. SEMICOLON shift, and go to state 80
  1807. $default reduce using rule 2 (stmt_list)
  1808. State 27
  1809. 4 stmt: expr . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  1810. 81 index_expr: expr . LBRACKET expr RBRACKET
  1811. 82 | expr . DOT IDENT
  1812. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  1813. 85 | expr . DOT IDENT
  1814. LBRACKET shift, and go to state 81
  1815. DOT shift, and go to state 82
  1816. LBRACKET [reduce using rule 4 (stmt)]
  1817. $default reduce using rule 4 (stmt)
  1818. State 28
  1819. 12 expr: control_expr .
  1820. $default reduce using rule 12 (expr)
  1821. State 29
  1822. 16 control_expr: assign_expr .
  1823. $default reduce using rule 16 (control_expr)
  1824. State 30
  1825. 38 assign_expr: logic_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  1826. 39 logic_expr: logic_expr . LAND ulogic_expr
  1827. 40 | logic_expr . LOR ulogic_expr
  1828. LAND shift, and go to state 83
  1829. LOR shift, and go to state 84
  1830. $default reduce using rule 38 (assign_expr)
  1831. State 31
  1832. 41 logic_expr: ulogic_expr .
  1833. $default reduce using rule 41 (logic_expr)
  1834. State 32
  1835. 43 ulogic_expr: rel_expr .
  1836. $default reduce using rule 43 (ulogic_expr)
  1837. State 33
  1838. 44 rel_expr: term_expr . EQUAL rel_expr
  1839. 45 | term_expr . NEQUAL rel_expr
  1840. 46 | term_expr . LESS rel_expr
  1841. 47 | term_expr . GREATER rel_expr
  1842. 48 | term_expr . LESSEQ rel_expr
  1843. 49 | term_expr . GREATEREQ rel_expr
  1844. 50 | term_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  1845. 51 term_expr: term_expr . PLUS factor_expr
  1846. 52 | term_expr . MINUS factor_expr
  1847. PLUS shift, and go to state 85
  1848. MINUS shift, and go to state 86
  1849. EQUAL shift, and go to state 87
  1850. NEQUAL shift, and go to state 88
  1851. LESS shift, and go to state 89
  1852. GREATER shift, and go to state 90
  1853. LESSEQ shift, and go to state 91
  1854. GREATEREQ shift, and go to state 92
  1855. MINUS [reduce using rule 50 (rel_expr)]
  1856. $default reduce using rule 50 (rel_expr)
  1857. State 34
  1858. 53 term_expr: factor_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  1859. 54 factor_expr: factor_expr . STAR power_expr
  1860. 55 | factor_expr . SLASH power_expr
  1861. 56 | factor_expr . PERCENT power_expr
  1862. STAR shift, and go to state 93
  1863. SLASH shift, and go to state 94
  1864. PERCENT shift, and go to state 95
  1865. STAR [reduce using rule 53 (term_expr)]
  1866. $default reduce using rule 53 (term_expr)
  1867. State 35
  1868. 57 factor_expr: power_expr .
  1869. $default reduce using rule 57 (factor_expr)
  1870. State 36
  1871. 58 power_expr: tbang_expr . DSTAR power_expr
  1872. 59 | tbang_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  1873. DSTAR shift, and go to state 96
  1874. $default reduce using rule 59 (power_expr)
  1875. State 37
  1876. 60 tbang_expr: binary_expr . TBANG tbang_expr
  1877. 61 | binary_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  1878. 62 binary_expr: binary_expr . BAND binary_expr
  1879. 63 | binary_expr . BOR binary_expr
  1880. 64 | binary_expr . BXOR binary_expr
  1881. 65 | binary_expr . LSHIFT binary_expr
  1882. 66 | binary_expr . RSHIFT binary_expr
  1883. BAND shift, and go to state 97
  1884. BOR shift, and go to state 98
  1885. BXOR shift, and go to state 99
  1886. RSHIFT shift, and go to state 100
  1887. LSHIFT shift, and go to state 101
  1888. TBANG shift, and go to state 102
  1889. $default reduce using rule 61 (tbang_expr)
  1890. State 38
  1891. 67 binary_expr: ubinary_expr .
  1892. $default reduce using rule 67 (binary_expr)
  1893. State 39
  1894. 69 ubinary_expr: ulen_expr .
  1895. $default reduce using rule 69 (ubinary_expr)
  1896. State 40
  1897. 71 ulen_expr: call_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND, TBANG]
  1898. 72 call_expr: call_expr . LPAREN expr_list RPAREN
  1899. 73 | call_expr . COLON IDENT LPAREN expr_list RPAREN
  1900. LPAREN shift, and go to state 103
  1901. COLON shift, and go to state 104
  1902. LPAREN [reduce using rule 71 (ulen_expr)]
  1903. $default reduce using rule 71 (ulen_expr)
  1904. State 41
  1905. 74 call_expr: funcdecl_expr .
  1906. $default reduce using rule 74 (call_expr)
  1907. State 42
  1908. 80 funcdecl_expr: index_expr .
  1909. $default reduce using rule 80 (funcdecl_expr)
  1910. State 43
  1911. 29 assign_expr: ex_index_expr . ASSIGN expr
  1912. 30 | ex_index_expr . ASSIGNPLUS expr
  1913. 31 | ex_index_expr . ASSIGNMINUS expr
  1914. 32 | ex_index_expr . ASSIGNSTAR expr
  1915. 33 | ex_index_expr . ASSIGNSLASH expr
  1916. 34 | ex_index_expr . ASSIGNDSTAR expr
  1917. 35 | ex_index_expr . ASSIGNBAND expr
  1918. 36 | ex_index_expr . ASSIGNBOR expr
  1919. 37 | ex_index_expr . ASSIGNBXOR expr
  1920. ASSIGN shift, and go to state 105
  1921. ASSIGNPLUS shift, and go to state 106
  1922. ASSIGNMINUS shift, and go to state 107
  1923. ASSIGNSTAR shift, and go to state 108
  1924. ASSIGNSLASH shift, and go to state 109
  1925. ASSIGNDSTAR shift, and go to state 110
  1926. ASSIGNBAND shift, and go to state 111
  1927. ASSIGNBOR shift, and go to state 112
  1928. ASSIGNBXOR shift, and go to state 113
  1929. State 44
  1930. 83 index_expr: ref_expr .
  1931. $default reduce using rule 83 (index_expr)
  1932. State 45
  1933. 87 ref_expr: lit_expr .
  1934. $default reduce using rule 87 (ref_expr)
  1935. State 46
  1936. 93 lit_expr: gen_expr .
  1937. $default reduce using rule 93 (lit_expr)
  1938. State 47
  1939. 96 gen_expr: paren_expr .
  1940. $default reduce using rule 96 (gen_expr)
  1941. State 48
  1942. 12 expr: . control_expr
  1943. 13 control_expr: . IF expr THEN stmt_list if_termin
  1944. 14 | . WHILE expr DO stmt_list END
  1945. 15 | . FOR IDENT IN expr DO stmt_list END
  1946. 16 | . assign_expr
  1947. 20 assign_expr: . IDENT ASSIGN expr
  1948. 21 | . IDENT ASSIGNPLUS expr
  1949. 22 | . IDENT ASSIGNMINUS expr
  1950. 23 | . IDENT ASSIGNSTAR expr
  1951. 24 | . IDENT ASSIGNSLASH expr
  1952. 25 | . IDENT ASSIGNDSTAR expr
  1953. 26 | . IDENT ASSIGNBAND expr
  1954. 27 | . IDENT ASSIGNBOR expr
  1955. 28 | . IDENT ASSIGNBXOR expr
  1956. 29 | . ex_index_expr ASSIGN expr
  1957. 30 | . ex_index_expr ASSIGNPLUS expr
  1958. 31 | . ex_index_expr ASSIGNMINUS expr
  1959. 32 | . ex_index_expr ASSIGNSTAR expr
  1960. 33 | . ex_index_expr ASSIGNSLASH expr
  1961. 34 | . ex_index_expr ASSIGNDSTAR expr
  1962. 35 | . ex_index_expr ASSIGNBAND expr
  1963. 36 | . ex_index_expr ASSIGNBOR expr
  1964. 37 | . ex_index_expr ASSIGNBXOR expr
  1965. 38 | . logic_expr
  1966. 39 logic_expr: . logic_expr LAND ulogic_expr
  1967. 40 | . logic_expr LOR ulogic_expr
  1968. 41 | . ulogic_expr
  1969. 42 ulogic_expr: . LNOT ulogic_expr
  1970. 43 | . rel_expr
  1971. 44 rel_expr: . term_expr EQUAL rel_expr
  1972. 45 | . term_expr NEQUAL rel_expr
  1973. 46 | . term_expr LESS rel_expr
  1974. 47 | . term_expr GREATER rel_expr
  1975. 48 | . term_expr LESSEQ rel_expr
  1976. 49 | . term_expr GREATEREQ rel_expr
  1977. 50 | . term_expr
  1978. 51 term_expr: . term_expr PLUS factor_expr
  1979. 52 | . term_expr MINUS factor_expr
  1980. 53 | . factor_expr
  1981. 54 factor_expr: . factor_expr STAR power_expr
  1982. 55 | . factor_expr SLASH power_expr
  1983. 56 | . factor_expr PERCENT power_expr
  1984. 57 | . power_expr
  1985. 58 power_expr: . tbang_expr DSTAR power_expr
  1986. 59 | . tbang_expr
  1987. 60 tbang_expr: . binary_expr TBANG tbang_expr
  1988. 61 | . binary_expr
  1989. 62 binary_expr: . binary_expr BAND binary_expr
  1990. 63 | . binary_expr BOR binary_expr
  1991. 64 | . binary_expr BXOR binary_expr
  1992. 65 | . binary_expr LSHIFT binary_expr
  1993. 66 | . binary_expr RSHIFT binary_expr
  1994. 67 | . ubinary_expr
  1995. 68 ubinary_expr: . BNOT ubinary_expr
  1996. 69 | . ulen_expr
  1997. 70 ulen_expr: . POUND ulen_expr
  1998. 71 | . call_expr
  1999. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2000. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2001. 74 | . funcdecl_expr
  2002. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2003. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2004. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2005. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2006. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2007. 80 | . index_expr
  2008. 81 index_expr: . expr LBRACKET expr RBRACKET
  2009. 82 | . expr DOT IDENT
  2010. 83 | . ref_expr
  2011. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2012. 85 | . expr DOT IDENT
  2013. 86 ref_expr: . IDENT
  2014. 87 | . lit_expr
  2015. 88 lit_expr: . INT
  2016. 89 | . MINUS INT
  2017. 90 | . FLOAT
  2018. 91 | . STRING
  2019. 92 | . NONE
  2020. 93 | . gen_expr
  2021. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2022. 95 | . LBRACE assoc_list RBRACE
  2023. 96 | . paren_expr
  2024. 97 paren_expr: . any_lparen expr RPAREN
  2025. 97 | any_lparen . expr RPAREN
  2026. 113 any_lparen: . LPAREN
  2027. 114 | . BLPAREN
  2028. IF shift, and go to state 4
  2029. WHILE shift, and go to state 5
  2030. FOR shift, and go to state 6
  2031. FUNC shift, and go to state 7
  2032. MACRO shift, and go to state 8
  2033. LAMBDA shift, and go to state 9
  2034. NONE shift, and go to state 13
  2035. IDENT shift, and go to state 14
  2036. INT shift, and go to state 15
  2037. FLOAT shift, and go to state 16
  2038. STRING shift, and go to state 17
  2039. MINUS shift, and go to state 18
  2040. BNOT shift, and go to state 19
  2041. LNOT shift, and go to state 20
  2042. LBRACE shift, and go to state 21
  2043. BLPAREN shift, and go to state 22
  2044. LPAREN shift, and go to state 23
  2045. LBRACKET shift, and go to state 24
  2046. POUND shift, and go to state 25
  2047. expr go to state 114
  2048. control_expr go to state 28
  2049. assign_expr go to state 29
  2050. logic_expr go to state 30
  2051. ulogic_expr go to state 31
  2052. rel_expr go to state 32
  2053. term_expr go to state 33
  2054. factor_expr go to state 34
  2055. power_expr go to state 35
  2056. tbang_expr go to state 36
  2057. binary_expr go to state 37
  2058. ubinary_expr go to state 38
  2059. ulen_expr go to state 39
  2060. call_expr go to state 40
  2061. funcdecl_expr go to state 41
  2062. index_expr go to state 42
  2063. ex_index_expr go to state 43
  2064. ref_expr go to state 44
  2065. lit_expr go to state 45
  2066. gen_expr go to state 46
  2067. paren_expr go to state 47
  2068. any_lparen go to state 48
  2069. State 49
  2070. 13 control_expr: IF expr . THEN stmt_list if_termin
  2071. 81 index_expr: expr . LBRACKET expr RBRACKET
  2072. 82 | expr . DOT IDENT
  2073. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  2074. 85 | expr . DOT IDENT
  2075. THEN shift, and go to state 115
  2076. LBRACKET shift, and go to state 81
  2077. DOT shift, and go to state 82
  2078. State 50
  2079. 14 control_expr: WHILE expr . DO stmt_list END
  2080. 81 index_expr: expr . LBRACKET expr RBRACKET
  2081. 82 | expr . DOT IDENT
  2082. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  2083. 85 | expr . DOT IDENT
  2084. DO shift, and go to state 116
  2085. LBRACKET shift, and go to state 81
  2086. DOT shift, and go to state 82
  2087. State 51
  2088. 15 control_expr: FOR IDENT . IN expr DO stmt_list END
  2089. IN shift, and go to state 117
  2090. State 52
  2091. 75 funcdecl_expr: FUNC IDENT . any_lparen param_list RPAREN maybe_anno stmt_list END
  2092. 113 any_lparen: . LPAREN
  2093. 114 | . BLPAREN
  2094. BLPAREN shift, and go to state 22
  2095. LPAREN shift, and go to state 23
  2096. any_lparen go to state 118
  2097. State 53
  2098. 76 funcdecl_expr: FUNC any_lparen . param_list RPAREN maybe_anno stmt_list END
  2099. 102 param_list: . %empty
  2100. 103 | . param_list IDENT ASSIGN expr
  2101. 104 | . param_list STAR IDENT
  2102. 105 | . param_list IDENT maybe_anno
  2103. 106 | . param_list COMMA
  2104. $default reduce using rule 102 (param_list)
  2105. param_list go to state 119
  2106. State 54
  2107. 77 funcdecl_expr: MACRO IDENT . any_lparen param_list RPAREN maybe_anno stmt_list END
  2108. 113 any_lparen: . LPAREN
  2109. 114 | . BLPAREN
  2110. BLPAREN shift, and go to state 22
  2111. LPAREN shift, and go to state 23
  2112. any_lparen go to state 120
  2113. State 55
  2114. 78 funcdecl_expr: MACRO any_lparen . param_list RPAREN maybe_anno stmt_list END
  2115. 102 param_list: . %empty
  2116. 103 | . param_list IDENT ASSIGN expr
  2117. 104 | . param_list STAR IDENT
  2118. 105 | . param_list IDENT maybe_anno
  2119. 106 | . param_list COMMA
  2120. $default reduce using rule 102 (param_list)
  2121. param_list go to state 121
  2122. State 56
  2123. 79 funcdecl_expr: LAMBDA any_lparen . param_list RPAREN maybe_anno expr END
  2124. 102 param_list: . %empty
  2125. 103 | . param_list IDENT ASSIGN expr
  2126. 104 | . param_list STAR IDENT
  2127. 105 | . param_list IDENT maybe_anno
  2128. 106 | . param_list COMMA
  2129. $default reduce using rule 102 (param_list)
  2130. param_list go to state 122
  2131. State 57
  2132. 5 stmt: RETURN expr . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  2133. 81 index_expr: expr . LBRACKET expr RBRACKET
  2134. 82 | expr . DOT IDENT
  2135. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  2136. 85 | expr . DOT IDENT
  2137. LBRACKET shift, and go to state 81
  2138. DOT shift, and go to state 82
  2139. LBRACKET [reduce using rule 5 (stmt)]
  2140. $default reduce using rule 5 (stmt)
  2141. State 58
  2142. 8 stmt: BREAK expr . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  2143. 81 index_expr: expr . LBRACKET expr RBRACKET
  2144. 82 | expr . DOT IDENT
  2145. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  2146. 85 | expr . DOT IDENT
  2147. LBRACKET shift, and go to state 81
  2148. DOT shift, and go to state 82
  2149. LBRACKET [reduce using rule 8 (stmt)]
  2150. $default reduce using rule 8 (stmt)
  2151. State 59
  2152. 10 stmt: CONTINUE expr . [$end, IF, ELSEIF, ELSE, WHILE, FOR, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, LBRACKET, SEMICOLON, POUND]
  2153. 81 index_expr: expr . LBRACKET expr RBRACKET
  2154. 82 | expr . DOT IDENT
  2155. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  2156. 85 | expr . DOT IDENT
  2157. LBRACKET shift, and go to state 81
  2158. DOT shift, and go to state 82
  2159. LBRACKET [reduce using rule 10 (stmt)]
  2160. $default reduce using rule 10 (stmt)
  2161. State 60
  2162. 12 expr: . control_expr
  2163. 13 control_expr: . IF expr THEN stmt_list if_termin
  2164. 14 | . WHILE expr DO stmt_list END
  2165. 15 | . FOR IDENT IN expr DO stmt_list END
  2166. 16 | . assign_expr
  2167. 20 assign_expr: . IDENT ASSIGN expr
  2168. 20 | IDENT ASSIGN . expr
  2169. 21 | . IDENT ASSIGNPLUS expr
  2170. 22 | . IDENT ASSIGNMINUS expr
  2171. 23 | . IDENT ASSIGNSTAR expr
  2172. 24 | . IDENT ASSIGNSLASH expr
  2173. 25 | . IDENT ASSIGNDSTAR expr
  2174. 26 | . IDENT ASSIGNBAND expr
  2175. 27 | . IDENT ASSIGNBOR expr
  2176. 28 | . IDENT ASSIGNBXOR expr
  2177. 29 | . ex_index_expr ASSIGN expr
  2178. 30 | . ex_index_expr ASSIGNPLUS expr
  2179. 31 | . ex_index_expr ASSIGNMINUS expr
  2180. 32 | . ex_index_expr ASSIGNSTAR expr
  2181. 33 | . ex_index_expr ASSIGNSLASH expr
  2182. 34 | . ex_index_expr ASSIGNDSTAR expr
  2183. 35 | . ex_index_expr ASSIGNBAND expr
  2184. 36 | . ex_index_expr ASSIGNBOR expr
  2185. 37 | . ex_index_expr ASSIGNBXOR expr
  2186. 38 | . logic_expr
  2187. 39 logic_expr: . logic_expr LAND ulogic_expr
  2188. 40 | . logic_expr LOR ulogic_expr
  2189. 41 | . ulogic_expr
  2190. 42 ulogic_expr: . LNOT ulogic_expr
  2191. 43 | . rel_expr
  2192. 44 rel_expr: . term_expr EQUAL rel_expr
  2193. 45 | . term_expr NEQUAL rel_expr
  2194. 46 | . term_expr LESS rel_expr
  2195. 47 | . term_expr GREATER rel_expr
  2196. 48 | . term_expr LESSEQ rel_expr
  2197. 49 | . term_expr GREATEREQ rel_expr
  2198. 50 | . term_expr
  2199. 51 term_expr: . term_expr PLUS factor_expr
  2200. 52 | . term_expr MINUS factor_expr
  2201. 53 | . factor_expr
  2202. 54 factor_expr: . factor_expr STAR power_expr
  2203. 55 | . factor_expr SLASH power_expr
  2204. 56 | . factor_expr PERCENT power_expr
  2205. 57 | . power_expr
  2206. 58 power_expr: . tbang_expr DSTAR power_expr
  2207. 59 | . tbang_expr
  2208. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2209. 61 | . binary_expr
  2210. 62 binary_expr: . binary_expr BAND binary_expr
  2211. 63 | . binary_expr BOR binary_expr
  2212. 64 | . binary_expr BXOR binary_expr
  2213. 65 | . binary_expr LSHIFT binary_expr
  2214. 66 | . binary_expr RSHIFT binary_expr
  2215. 67 | . ubinary_expr
  2216. 68 ubinary_expr: . BNOT ubinary_expr
  2217. 69 | . ulen_expr
  2218. 70 ulen_expr: . POUND ulen_expr
  2219. 71 | . call_expr
  2220. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2221. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2222. 74 | . funcdecl_expr
  2223. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2224. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2225. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2226. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2227. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2228. 80 | . index_expr
  2229. 81 index_expr: . expr LBRACKET expr RBRACKET
  2230. 82 | . expr DOT IDENT
  2231. 83 | . ref_expr
  2232. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2233. 85 | . expr DOT IDENT
  2234. 86 ref_expr: . IDENT
  2235. 87 | . lit_expr
  2236. 88 lit_expr: . INT
  2237. 89 | . MINUS INT
  2238. 90 | . FLOAT
  2239. 91 | . STRING
  2240. 92 | . NONE
  2241. 93 | . gen_expr
  2242. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2243. 95 | . LBRACE assoc_list RBRACE
  2244. 96 | . paren_expr
  2245. 97 paren_expr: . any_lparen expr RPAREN
  2246. 113 any_lparen: . LPAREN
  2247. 114 | . BLPAREN
  2248. IF shift, and go to state 4
  2249. WHILE shift, and go to state 5
  2250. FOR shift, and go to state 6
  2251. FUNC shift, and go to state 7
  2252. MACRO shift, and go to state 8
  2253. LAMBDA shift, and go to state 9
  2254. NONE shift, and go to state 13
  2255. IDENT shift, and go to state 14
  2256. INT shift, and go to state 15
  2257. FLOAT shift, and go to state 16
  2258. STRING shift, and go to state 17
  2259. MINUS shift, and go to state 18
  2260. BNOT shift, and go to state 19
  2261. LNOT shift, and go to state 20
  2262. LBRACE shift, and go to state 21
  2263. BLPAREN shift, and go to state 22
  2264. LPAREN shift, and go to state 23
  2265. LBRACKET shift, and go to state 24
  2266. POUND shift, and go to state 25
  2267. expr go to state 123
  2268. control_expr go to state 28
  2269. assign_expr go to state 29
  2270. logic_expr go to state 30
  2271. ulogic_expr go to state 31
  2272. rel_expr go to state 32
  2273. term_expr go to state 33
  2274. factor_expr go to state 34
  2275. power_expr go to state 35
  2276. tbang_expr go to state 36
  2277. binary_expr go to state 37
  2278. ubinary_expr go to state 38
  2279. ulen_expr go to state 39
  2280. call_expr go to state 40
  2281. funcdecl_expr go to state 41
  2282. index_expr go to state 42
  2283. ex_index_expr go to state 43
  2284. ref_expr go to state 44
  2285. lit_expr go to state 45
  2286. gen_expr go to state 46
  2287. paren_expr go to state 47
  2288. any_lparen go to state 48
  2289. State 61
  2290. 12 expr: . control_expr
  2291. 13 control_expr: . IF expr THEN stmt_list if_termin
  2292. 14 | . WHILE expr DO stmt_list END
  2293. 15 | . FOR IDENT IN expr DO stmt_list END
  2294. 16 | . assign_expr
  2295. 20 assign_expr: . IDENT ASSIGN expr
  2296. 21 | . IDENT ASSIGNPLUS expr
  2297. 21 | IDENT ASSIGNPLUS . expr
  2298. 22 | . IDENT ASSIGNMINUS expr
  2299. 23 | . IDENT ASSIGNSTAR expr
  2300. 24 | . IDENT ASSIGNSLASH expr
  2301. 25 | . IDENT ASSIGNDSTAR expr
  2302. 26 | . IDENT ASSIGNBAND expr
  2303. 27 | . IDENT ASSIGNBOR expr
  2304. 28 | . IDENT ASSIGNBXOR expr
  2305. 29 | . ex_index_expr ASSIGN expr
  2306. 30 | . ex_index_expr ASSIGNPLUS expr
  2307. 31 | . ex_index_expr ASSIGNMINUS expr
  2308. 32 | . ex_index_expr ASSIGNSTAR expr
  2309. 33 | . ex_index_expr ASSIGNSLASH expr
  2310. 34 | . ex_index_expr ASSIGNDSTAR expr
  2311. 35 | . ex_index_expr ASSIGNBAND expr
  2312. 36 | . ex_index_expr ASSIGNBOR expr
  2313. 37 | . ex_index_expr ASSIGNBXOR expr
  2314. 38 | . logic_expr
  2315. 39 logic_expr: . logic_expr LAND ulogic_expr
  2316. 40 | . logic_expr LOR ulogic_expr
  2317. 41 | . ulogic_expr
  2318. 42 ulogic_expr: . LNOT ulogic_expr
  2319. 43 | . rel_expr
  2320. 44 rel_expr: . term_expr EQUAL rel_expr
  2321. 45 | . term_expr NEQUAL rel_expr
  2322. 46 | . term_expr LESS rel_expr
  2323. 47 | . term_expr GREATER rel_expr
  2324. 48 | . term_expr LESSEQ rel_expr
  2325. 49 | . term_expr GREATEREQ rel_expr
  2326. 50 | . term_expr
  2327. 51 term_expr: . term_expr PLUS factor_expr
  2328. 52 | . term_expr MINUS factor_expr
  2329. 53 | . factor_expr
  2330. 54 factor_expr: . factor_expr STAR power_expr
  2331. 55 | . factor_expr SLASH power_expr
  2332. 56 | . factor_expr PERCENT power_expr
  2333. 57 | . power_expr
  2334. 58 power_expr: . tbang_expr DSTAR power_expr
  2335. 59 | . tbang_expr
  2336. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2337. 61 | . binary_expr
  2338. 62 binary_expr: . binary_expr BAND binary_expr
  2339. 63 | . binary_expr BOR binary_expr
  2340. 64 | . binary_expr BXOR binary_expr
  2341. 65 | . binary_expr LSHIFT binary_expr
  2342. 66 | . binary_expr RSHIFT binary_expr
  2343. 67 | . ubinary_expr
  2344. 68 ubinary_expr: . BNOT ubinary_expr
  2345. 69 | . ulen_expr
  2346. 70 ulen_expr: . POUND ulen_expr
  2347. 71 | . call_expr
  2348. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2349. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2350. 74 | . funcdecl_expr
  2351. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2352. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2353. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2354. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2355. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2356. 80 | . index_expr
  2357. 81 index_expr: . expr LBRACKET expr RBRACKET
  2358. 82 | . expr DOT IDENT
  2359. 83 | . ref_expr
  2360. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2361. 85 | . expr DOT IDENT
  2362. 86 ref_expr: . IDENT
  2363. 87 | . lit_expr
  2364. 88 lit_expr: . INT
  2365. 89 | . MINUS INT
  2366. 90 | . FLOAT
  2367. 91 | . STRING
  2368. 92 | . NONE
  2369. 93 | . gen_expr
  2370. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2371. 95 | . LBRACE assoc_list RBRACE
  2372. 96 | . paren_expr
  2373. 97 paren_expr: . any_lparen expr RPAREN
  2374. 113 any_lparen: . LPAREN
  2375. 114 | . BLPAREN
  2376. IF shift, and go to state 4
  2377. WHILE shift, and go to state 5
  2378. FOR shift, and go to state 6
  2379. FUNC shift, and go to state 7
  2380. MACRO shift, and go to state 8
  2381. LAMBDA shift, and go to state 9
  2382. NONE shift, and go to state 13
  2383. IDENT shift, and go to state 14
  2384. INT shift, and go to state 15
  2385. FLOAT shift, and go to state 16
  2386. STRING shift, and go to state 17
  2387. MINUS shift, and go to state 18
  2388. BNOT shift, and go to state 19
  2389. LNOT shift, and go to state 20
  2390. LBRACE shift, and go to state 21
  2391. BLPAREN shift, and go to state 22
  2392. LPAREN shift, and go to state 23
  2393. LBRACKET shift, and go to state 24
  2394. POUND shift, and go to state 25
  2395. expr go to state 124
  2396. control_expr go to state 28
  2397. assign_expr go to state 29
  2398. logic_expr go to state 30
  2399. ulogic_expr go to state 31
  2400. rel_expr go to state 32
  2401. term_expr go to state 33
  2402. factor_expr go to state 34
  2403. power_expr go to state 35
  2404. tbang_expr go to state 36
  2405. binary_expr go to state 37
  2406. ubinary_expr go to state 38
  2407. ulen_expr go to state 39
  2408. call_expr go to state 40
  2409. funcdecl_expr go to state 41
  2410. index_expr go to state 42
  2411. ex_index_expr go to state 43
  2412. ref_expr go to state 44
  2413. lit_expr go to state 45
  2414. gen_expr go to state 46
  2415. paren_expr go to state 47
  2416. any_lparen go to state 48
  2417. State 62
  2418. 12 expr: . control_expr
  2419. 13 control_expr: . IF expr THEN stmt_list if_termin
  2420. 14 | . WHILE expr DO stmt_list END
  2421. 15 | . FOR IDENT IN expr DO stmt_list END
  2422. 16 | . assign_expr
  2423. 20 assign_expr: . IDENT ASSIGN expr
  2424. 21 | . IDENT ASSIGNPLUS expr
  2425. 22 | . IDENT ASSIGNMINUS expr
  2426. 22 | IDENT ASSIGNMINUS . expr
  2427. 23 | . IDENT ASSIGNSTAR expr
  2428. 24 | . IDENT ASSIGNSLASH expr
  2429. 25 | . IDENT ASSIGNDSTAR expr
  2430. 26 | . IDENT ASSIGNBAND expr
  2431. 27 | . IDENT ASSIGNBOR expr
  2432. 28 | . IDENT ASSIGNBXOR expr
  2433. 29 | . ex_index_expr ASSIGN expr
  2434. 30 | . ex_index_expr ASSIGNPLUS expr
  2435. 31 | . ex_index_expr ASSIGNMINUS expr
  2436. 32 | . ex_index_expr ASSIGNSTAR expr
  2437. 33 | . ex_index_expr ASSIGNSLASH expr
  2438. 34 | . ex_index_expr ASSIGNDSTAR expr
  2439. 35 | . ex_index_expr ASSIGNBAND expr
  2440. 36 | . ex_index_expr ASSIGNBOR expr
  2441. 37 | . ex_index_expr ASSIGNBXOR expr
  2442. 38 | . logic_expr
  2443. 39 logic_expr: . logic_expr LAND ulogic_expr
  2444. 40 | . logic_expr LOR ulogic_expr
  2445. 41 | . ulogic_expr
  2446. 42 ulogic_expr: . LNOT ulogic_expr
  2447. 43 | . rel_expr
  2448. 44 rel_expr: . term_expr EQUAL rel_expr
  2449. 45 | . term_expr NEQUAL rel_expr
  2450. 46 | . term_expr LESS rel_expr
  2451. 47 | . term_expr GREATER rel_expr
  2452. 48 | . term_expr LESSEQ rel_expr
  2453. 49 | . term_expr GREATEREQ rel_expr
  2454. 50 | . term_expr
  2455. 51 term_expr: . term_expr PLUS factor_expr
  2456. 52 | . term_expr MINUS factor_expr
  2457. 53 | . factor_expr
  2458. 54 factor_expr: . factor_expr STAR power_expr
  2459. 55 | . factor_expr SLASH power_expr
  2460. 56 | . factor_expr PERCENT power_expr
  2461. 57 | . power_expr
  2462. 58 power_expr: . tbang_expr DSTAR power_expr
  2463. 59 | . tbang_expr
  2464. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2465. 61 | . binary_expr
  2466. 62 binary_expr: . binary_expr BAND binary_expr
  2467. 63 | . binary_expr BOR binary_expr
  2468. 64 | . binary_expr BXOR binary_expr
  2469. 65 | . binary_expr LSHIFT binary_expr
  2470. 66 | . binary_expr RSHIFT binary_expr
  2471. 67 | . ubinary_expr
  2472. 68 ubinary_expr: . BNOT ubinary_expr
  2473. 69 | . ulen_expr
  2474. 70 ulen_expr: . POUND ulen_expr
  2475. 71 | . call_expr
  2476. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2477. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2478. 74 | . funcdecl_expr
  2479. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2480. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2481. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2482. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2483. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2484. 80 | . index_expr
  2485. 81 index_expr: . expr LBRACKET expr RBRACKET
  2486. 82 | . expr DOT IDENT
  2487. 83 | . ref_expr
  2488. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2489. 85 | . expr DOT IDENT
  2490. 86 ref_expr: . IDENT
  2491. 87 | . lit_expr
  2492. 88 lit_expr: . INT
  2493. 89 | . MINUS INT
  2494. 90 | . FLOAT
  2495. 91 | . STRING
  2496. 92 | . NONE
  2497. 93 | . gen_expr
  2498. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2499. 95 | . LBRACE assoc_list RBRACE
  2500. 96 | . paren_expr
  2501. 97 paren_expr: . any_lparen expr RPAREN
  2502. 113 any_lparen: . LPAREN
  2503. 114 | . BLPAREN
  2504. IF shift, and go to state 4
  2505. WHILE shift, and go to state 5
  2506. FOR shift, and go to state 6
  2507. FUNC shift, and go to state 7
  2508. MACRO shift, and go to state 8
  2509. LAMBDA shift, and go to state 9
  2510. NONE shift, and go to state 13
  2511. IDENT shift, and go to state 14
  2512. INT shift, and go to state 15
  2513. FLOAT shift, and go to state 16
  2514. STRING shift, and go to state 17
  2515. MINUS shift, and go to state 18
  2516. BNOT shift, and go to state 19
  2517. LNOT shift, and go to state 20
  2518. LBRACE shift, and go to state 21
  2519. BLPAREN shift, and go to state 22
  2520. LPAREN shift, and go to state 23
  2521. LBRACKET shift, and go to state 24
  2522. POUND shift, and go to state 25
  2523. expr go to state 125
  2524. control_expr go to state 28
  2525. assign_expr go to state 29
  2526. logic_expr go to state 30
  2527. ulogic_expr go to state 31
  2528. rel_expr go to state 32
  2529. term_expr go to state 33
  2530. factor_expr go to state 34
  2531. power_expr go to state 35
  2532. tbang_expr go to state 36
  2533. binary_expr go to state 37
  2534. ubinary_expr go to state 38
  2535. ulen_expr go to state 39
  2536. call_expr go to state 40
  2537. funcdecl_expr go to state 41
  2538. index_expr go to state 42
  2539. ex_index_expr go to state 43
  2540. ref_expr go to state 44
  2541. lit_expr go to state 45
  2542. gen_expr go to state 46
  2543. paren_expr go to state 47
  2544. any_lparen go to state 48
  2545. State 63
  2546. 12 expr: . control_expr
  2547. 13 control_expr: . IF expr THEN stmt_list if_termin
  2548. 14 | . WHILE expr DO stmt_list END
  2549. 15 | . FOR IDENT IN expr DO stmt_list END
  2550. 16 | . assign_expr
  2551. 20 assign_expr: . IDENT ASSIGN expr
  2552. 21 | . IDENT ASSIGNPLUS expr
  2553. 22 | . IDENT ASSIGNMINUS expr
  2554. 23 | . IDENT ASSIGNSTAR expr
  2555. 23 | IDENT ASSIGNSTAR . expr
  2556. 24 | . IDENT ASSIGNSLASH expr
  2557. 25 | . IDENT ASSIGNDSTAR expr
  2558. 26 | . IDENT ASSIGNBAND expr
  2559. 27 | . IDENT ASSIGNBOR expr
  2560. 28 | . IDENT ASSIGNBXOR expr
  2561. 29 | . ex_index_expr ASSIGN expr
  2562. 30 | . ex_index_expr ASSIGNPLUS expr
  2563. 31 | . ex_index_expr ASSIGNMINUS expr
  2564. 32 | . ex_index_expr ASSIGNSTAR expr
  2565. 33 | . ex_index_expr ASSIGNSLASH expr
  2566. 34 | . ex_index_expr ASSIGNDSTAR expr
  2567. 35 | . ex_index_expr ASSIGNBAND expr
  2568. 36 | . ex_index_expr ASSIGNBOR expr
  2569. 37 | . ex_index_expr ASSIGNBXOR expr
  2570. 38 | . logic_expr
  2571. 39 logic_expr: . logic_expr LAND ulogic_expr
  2572. 40 | . logic_expr LOR ulogic_expr
  2573. 41 | . ulogic_expr
  2574. 42 ulogic_expr: . LNOT ulogic_expr
  2575. 43 | . rel_expr
  2576. 44 rel_expr: . term_expr EQUAL rel_expr
  2577. 45 | . term_expr NEQUAL rel_expr
  2578. 46 | . term_expr LESS rel_expr
  2579. 47 | . term_expr GREATER rel_expr
  2580. 48 | . term_expr LESSEQ rel_expr
  2581. 49 | . term_expr GREATEREQ rel_expr
  2582. 50 | . term_expr
  2583. 51 term_expr: . term_expr PLUS factor_expr
  2584. 52 | . term_expr MINUS factor_expr
  2585. 53 | . factor_expr
  2586. 54 factor_expr: . factor_expr STAR power_expr
  2587. 55 | . factor_expr SLASH power_expr
  2588. 56 | . factor_expr PERCENT power_expr
  2589. 57 | . power_expr
  2590. 58 power_expr: . tbang_expr DSTAR power_expr
  2591. 59 | . tbang_expr
  2592. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2593. 61 | . binary_expr
  2594. 62 binary_expr: . binary_expr BAND binary_expr
  2595. 63 | . binary_expr BOR binary_expr
  2596. 64 | . binary_expr BXOR binary_expr
  2597. 65 | . binary_expr LSHIFT binary_expr
  2598. 66 | . binary_expr RSHIFT binary_expr
  2599. 67 | . ubinary_expr
  2600. 68 ubinary_expr: . BNOT ubinary_expr
  2601. 69 | . ulen_expr
  2602. 70 ulen_expr: . POUND ulen_expr
  2603. 71 | . call_expr
  2604. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2605. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2606. 74 | . funcdecl_expr
  2607. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2608. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2609. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2610. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2611. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2612. 80 | . index_expr
  2613. 81 index_expr: . expr LBRACKET expr RBRACKET
  2614. 82 | . expr DOT IDENT
  2615. 83 | . ref_expr
  2616. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2617. 85 | . expr DOT IDENT
  2618. 86 ref_expr: . IDENT
  2619. 87 | . lit_expr
  2620. 88 lit_expr: . INT
  2621. 89 | . MINUS INT
  2622. 90 | . FLOAT
  2623. 91 | . STRING
  2624. 92 | . NONE
  2625. 93 | . gen_expr
  2626. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2627. 95 | . LBRACE assoc_list RBRACE
  2628. 96 | . paren_expr
  2629. 97 paren_expr: . any_lparen expr RPAREN
  2630. 113 any_lparen: . LPAREN
  2631. 114 | . BLPAREN
  2632. IF shift, and go to state 4
  2633. WHILE shift, and go to state 5
  2634. FOR shift, and go to state 6
  2635. FUNC shift, and go to state 7
  2636. MACRO shift, and go to state 8
  2637. LAMBDA shift, and go to state 9
  2638. NONE shift, and go to state 13
  2639. IDENT shift, and go to state 14
  2640. INT shift, and go to state 15
  2641. FLOAT shift, and go to state 16
  2642. STRING shift, and go to state 17
  2643. MINUS shift, and go to state 18
  2644. BNOT shift, and go to state 19
  2645. LNOT shift, and go to state 20
  2646. LBRACE shift, and go to state 21
  2647. BLPAREN shift, and go to state 22
  2648. LPAREN shift, and go to state 23
  2649. LBRACKET shift, and go to state 24
  2650. POUND shift, and go to state 25
  2651. expr go to state 126
  2652. control_expr go to state 28
  2653. assign_expr go to state 29
  2654. logic_expr go to state 30
  2655. ulogic_expr go to state 31
  2656. rel_expr go to state 32
  2657. term_expr go to state 33
  2658. factor_expr go to state 34
  2659. power_expr go to state 35
  2660. tbang_expr go to state 36
  2661. binary_expr go to state 37
  2662. ubinary_expr go to state 38
  2663. ulen_expr go to state 39
  2664. call_expr go to state 40
  2665. funcdecl_expr go to state 41
  2666. index_expr go to state 42
  2667. ex_index_expr go to state 43
  2668. ref_expr go to state 44
  2669. lit_expr go to state 45
  2670. gen_expr go to state 46
  2671. paren_expr go to state 47
  2672. any_lparen go to state 48
  2673. State 64
  2674. 12 expr: . control_expr
  2675. 13 control_expr: . IF expr THEN stmt_list if_termin
  2676. 14 | . WHILE expr DO stmt_list END
  2677. 15 | . FOR IDENT IN expr DO stmt_list END
  2678. 16 | . assign_expr
  2679. 20 assign_expr: . IDENT ASSIGN expr
  2680. 21 | . IDENT ASSIGNPLUS expr
  2681. 22 | . IDENT ASSIGNMINUS expr
  2682. 23 | . IDENT ASSIGNSTAR expr
  2683. 24 | . IDENT ASSIGNSLASH expr
  2684. 24 | IDENT ASSIGNSLASH . expr
  2685. 25 | . IDENT ASSIGNDSTAR expr
  2686. 26 | . IDENT ASSIGNBAND expr
  2687. 27 | . IDENT ASSIGNBOR expr
  2688. 28 | . IDENT ASSIGNBXOR expr
  2689. 29 | . ex_index_expr ASSIGN expr
  2690. 30 | . ex_index_expr ASSIGNPLUS expr
  2691. 31 | . ex_index_expr ASSIGNMINUS expr
  2692. 32 | . ex_index_expr ASSIGNSTAR expr
  2693. 33 | . ex_index_expr ASSIGNSLASH expr
  2694. 34 | . ex_index_expr ASSIGNDSTAR expr
  2695. 35 | . ex_index_expr ASSIGNBAND expr
  2696. 36 | . ex_index_expr ASSIGNBOR expr
  2697. 37 | . ex_index_expr ASSIGNBXOR expr
  2698. 38 | . logic_expr
  2699. 39 logic_expr: . logic_expr LAND ulogic_expr
  2700. 40 | . logic_expr LOR ulogic_expr
  2701. 41 | . ulogic_expr
  2702. 42 ulogic_expr: . LNOT ulogic_expr
  2703. 43 | . rel_expr
  2704. 44 rel_expr: . term_expr EQUAL rel_expr
  2705. 45 | . term_expr NEQUAL rel_expr
  2706. 46 | . term_expr LESS rel_expr
  2707. 47 | . term_expr GREATER rel_expr
  2708. 48 | . term_expr LESSEQ rel_expr
  2709. 49 | . term_expr GREATEREQ rel_expr
  2710. 50 | . term_expr
  2711. 51 term_expr: . term_expr PLUS factor_expr
  2712. 52 | . term_expr MINUS factor_expr
  2713. 53 | . factor_expr
  2714. 54 factor_expr: . factor_expr STAR power_expr
  2715. 55 | . factor_expr SLASH power_expr
  2716. 56 | . factor_expr PERCENT power_expr
  2717. 57 | . power_expr
  2718. 58 power_expr: . tbang_expr DSTAR power_expr
  2719. 59 | . tbang_expr
  2720. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2721. 61 | . binary_expr
  2722. 62 binary_expr: . binary_expr BAND binary_expr
  2723. 63 | . binary_expr BOR binary_expr
  2724. 64 | . binary_expr BXOR binary_expr
  2725. 65 | . binary_expr LSHIFT binary_expr
  2726. 66 | . binary_expr RSHIFT binary_expr
  2727. 67 | . ubinary_expr
  2728. 68 ubinary_expr: . BNOT ubinary_expr
  2729. 69 | . ulen_expr
  2730. 70 ulen_expr: . POUND ulen_expr
  2731. 71 | . call_expr
  2732. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2733. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2734. 74 | . funcdecl_expr
  2735. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2736. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2737. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2738. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2739. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2740. 80 | . index_expr
  2741. 81 index_expr: . expr LBRACKET expr RBRACKET
  2742. 82 | . expr DOT IDENT
  2743. 83 | . ref_expr
  2744. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2745. 85 | . expr DOT IDENT
  2746. 86 ref_expr: . IDENT
  2747. 87 | . lit_expr
  2748. 88 lit_expr: . INT
  2749. 89 | . MINUS INT
  2750. 90 | . FLOAT
  2751. 91 | . STRING
  2752. 92 | . NONE
  2753. 93 | . gen_expr
  2754. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2755. 95 | . LBRACE assoc_list RBRACE
  2756. 96 | . paren_expr
  2757. 97 paren_expr: . any_lparen expr RPAREN
  2758. 113 any_lparen: . LPAREN
  2759. 114 | . BLPAREN
  2760. IF shift, and go to state 4
  2761. WHILE shift, and go to state 5
  2762. FOR shift, and go to state 6
  2763. FUNC shift, and go to state 7
  2764. MACRO shift, and go to state 8
  2765. LAMBDA shift, and go to state 9
  2766. NONE shift, and go to state 13
  2767. IDENT shift, and go to state 14
  2768. INT shift, and go to state 15
  2769. FLOAT shift, and go to state 16
  2770. STRING shift, and go to state 17
  2771. MINUS shift, and go to state 18
  2772. BNOT shift, and go to state 19
  2773. LNOT shift, and go to state 20
  2774. LBRACE shift, and go to state 21
  2775. BLPAREN shift, and go to state 22
  2776. LPAREN shift, and go to state 23
  2777. LBRACKET shift, and go to state 24
  2778. POUND shift, and go to state 25
  2779. expr go to state 127
  2780. control_expr go to state 28
  2781. assign_expr go to state 29
  2782. logic_expr go to state 30
  2783. ulogic_expr go to state 31
  2784. rel_expr go to state 32
  2785. term_expr go to state 33
  2786. factor_expr go to state 34
  2787. power_expr go to state 35
  2788. tbang_expr go to state 36
  2789. binary_expr go to state 37
  2790. ubinary_expr go to state 38
  2791. ulen_expr go to state 39
  2792. call_expr go to state 40
  2793. funcdecl_expr go to state 41
  2794. index_expr go to state 42
  2795. ex_index_expr go to state 43
  2796. ref_expr go to state 44
  2797. lit_expr go to state 45
  2798. gen_expr go to state 46
  2799. paren_expr go to state 47
  2800. any_lparen go to state 48
  2801. State 65
  2802. 12 expr: . control_expr
  2803. 13 control_expr: . IF expr THEN stmt_list if_termin
  2804. 14 | . WHILE expr DO stmt_list END
  2805. 15 | . FOR IDENT IN expr DO stmt_list END
  2806. 16 | . assign_expr
  2807. 20 assign_expr: . IDENT ASSIGN expr
  2808. 21 | . IDENT ASSIGNPLUS expr
  2809. 22 | . IDENT ASSIGNMINUS expr
  2810. 23 | . IDENT ASSIGNSTAR expr
  2811. 24 | . IDENT ASSIGNSLASH expr
  2812. 25 | . IDENT ASSIGNDSTAR expr
  2813. 25 | IDENT ASSIGNDSTAR . expr
  2814. 26 | . IDENT ASSIGNBAND expr
  2815. 27 | . IDENT ASSIGNBOR expr
  2816. 28 | . IDENT ASSIGNBXOR expr
  2817. 29 | . ex_index_expr ASSIGN expr
  2818. 30 | . ex_index_expr ASSIGNPLUS expr
  2819. 31 | . ex_index_expr ASSIGNMINUS expr
  2820. 32 | . ex_index_expr ASSIGNSTAR expr
  2821. 33 | . ex_index_expr ASSIGNSLASH expr
  2822. 34 | . ex_index_expr ASSIGNDSTAR expr
  2823. 35 | . ex_index_expr ASSIGNBAND expr
  2824. 36 | . ex_index_expr ASSIGNBOR expr
  2825. 37 | . ex_index_expr ASSIGNBXOR expr
  2826. 38 | . logic_expr
  2827. 39 logic_expr: . logic_expr LAND ulogic_expr
  2828. 40 | . logic_expr LOR ulogic_expr
  2829. 41 | . ulogic_expr
  2830. 42 ulogic_expr: . LNOT ulogic_expr
  2831. 43 | . rel_expr
  2832. 44 rel_expr: . term_expr EQUAL rel_expr
  2833. 45 | . term_expr NEQUAL rel_expr
  2834. 46 | . term_expr LESS rel_expr
  2835. 47 | . term_expr GREATER rel_expr
  2836. 48 | . term_expr LESSEQ rel_expr
  2837. 49 | . term_expr GREATEREQ rel_expr
  2838. 50 | . term_expr
  2839. 51 term_expr: . term_expr PLUS factor_expr
  2840. 52 | . term_expr MINUS factor_expr
  2841. 53 | . factor_expr
  2842. 54 factor_expr: . factor_expr STAR power_expr
  2843. 55 | . factor_expr SLASH power_expr
  2844. 56 | . factor_expr PERCENT power_expr
  2845. 57 | . power_expr
  2846. 58 power_expr: . tbang_expr DSTAR power_expr
  2847. 59 | . tbang_expr
  2848. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2849. 61 | . binary_expr
  2850. 62 binary_expr: . binary_expr BAND binary_expr
  2851. 63 | . binary_expr BOR binary_expr
  2852. 64 | . binary_expr BXOR binary_expr
  2853. 65 | . binary_expr LSHIFT binary_expr
  2854. 66 | . binary_expr RSHIFT binary_expr
  2855. 67 | . ubinary_expr
  2856. 68 ubinary_expr: . BNOT ubinary_expr
  2857. 69 | . ulen_expr
  2858. 70 ulen_expr: . POUND ulen_expr
  2859. 71 | . call_expr
  2860. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2861. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2862. 74 | . funcdecl_expr
  2863. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2864. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2865. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2866. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2867. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2868. 80 | . index_expr
  2869. 81 index_expr: . expr LBRACKET expr RBRACKET
  2870. 82 | . expr DOT IDENT
  2871. 83 | . ref_expr
  2872. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  2873. 85 | . expr DOT IDENT
  2874. 86 ref_expr: . IDENT
  2875. 87 | . lit_expr
  2876. 88 lit_expr: . INT
  2877. 89 | . MINUS INT
  2878. 90 | . FLOAT
  2879. 91 | . STRING
  2880. 92 | . NONE
  2881. 93 | . gen_expr
  2882. 94 gen_expr: . LBRACKET expr_list RBRACKET
  2883. 95 | . LBRACE assoc_list RBRACE
  2884. 96 | . paren_expr
  2885. 97 paren_expr: . any_lparen expr RPAREN
  2886. 113 any_lparen: . LPAREN
  2887. 114 | . BLPAREN
  2888. IF shift, and go to state 4
  2889. WHILE shift, and go to state 5
  2890. FOR shift, and go to state 6
  2891. FUNC shift, and go to state 7
  2892. MACRO shift, and go to state 8
  2893. LAMBDA shift, and go to state 9
  2894. NONE shift, and go to state 13
  2895. IDENT shift, and go to state 14
  2896. INT shift, and go to state 15
  2897. FLOAT shift, and go to state 16
  2898. STRING shift, and go to state 17
  2899. MINUS shift, and go to state 18
  2900. BNOT shift, and go to state 19
  2901. LNOT shift, and go to state 20
  2902. LBRACE shift, and go to state 21
  2903. BLPAREN shift, and go to state 22
  2904. LPAREN shift, and go to state 23
  2905. LBRACKET shift, and go to state 24
  2906. POUND shift, and go to state 25
  2907. expr go to state 128
  2908. control_expr go to state 28
  2909. assign_expr go to state 29
  2910. logic_expr go to state 30
  2911. ulogic_expr go to state 31
  2912. rel_expr go to state 32
  2913. term_expr go to state 33
  2914. factor_expr go to state 34
  2915. power_expr go to state 35
  2916. tbang_expr go to state 36
  2917. binary_expr go to state 37
  2918. ubinary_expr go to state 38
  2919. ulen_expr go to state 39
  2920. call_expr go to state 40
  2921. funcdecl_expr go to state 41
  2922. index_expr go to state 42
  2923. ex_index_expr go to state 43
  2924. ref_expr go to state 44
  2925. lit_expr go to state 45
  2926. gen_expr go to state 46
  2927. paren_expr go to state 47
  2928. any_lparen go to state 48
  2929. State 66
  2930. 12 expr: . control_expr
  2931. 13 control_expr: . IF expr THEN stmt_list if_termin
  2932. 14 | . WHILE expr DO stmt_list END
  2933. 15 | . FOR IDENT IN expr DO stmt_list END
  2934. 16 | . assign_expr
  2935. 20 assign_expr: . IDENT ASSIGN expr
  2936. 21 | . IDENT ASSIGNPLUS expr
  2937. 22 | . IDENT ASSIGNMINUS expr
  2938. 23 | . IDENT ASSIGNSTAR expr
  2939. 24 | . IDENT ASSIGNSLASH expr
  2940. 25 | . IDENT ASSIGNDSTAR expr
  2941. 26 | . IDENT ASSIGNBAND expr
  2942. 26 | IDENT ASSIGNBAND . expr
  2943. 27 | . IDENT ASSIGNBOR expr
  2944. 28 | . IDENT ASSIGNBXOR expr
  2945. 29 | . ex_index_expr ASSIGN expr
  2946. 30 | . ex_index_expr ASSIGNPLUS expr
  2947. 31 | . ex_index_expr ASSIGNMINUS expr
  2948. 32 | . ex_index_expr ASSIGNSTAR expr
  2949. 33 | . ex_index_expr ASSIGNSLASH expr
  2950. 34 | . ex_index_expr ASSIGNDSTAR expr
  2951. 35 | . ex_index_expr ASSIGNBAND expr
  2952. 36 | . ex_index_expr ASSIGNBOR expr
  2953. 37 | . ex_index_expr ASSIGNBXOR expr
  2954. 38 | . logic_expr
  2955. 39 logic_expr: . logic_expr LAND ulogic_expr
  2956. 40 | . logic_expr LOR ulogic_expr
  2957. 41 | . ulogic_expr
  2958. 42 ulogic_expr: . LNOT ulogic_expr
  2959. 43 | . rel_expr
  2960. 44 rel_expr: . term_expr EQUAL rel_expr
  2961. 45 | . term_expr NEQUAL rel_expr
  2962. 46 | . term_expr LESS rel_expr
  2963. 47 | . term_expr GREATER rel_expr
  2964. 48 | . term_expr LESSEQ rel_expr
  2965. 49 | . term_expr GREATEREQ rel_expr
  2966. 50 | . term_expr
  2967. 51 term_expr: . term_expr PLUS factor_expr
  2968. 52 | . term_expr MINUS factor_expr
  2969. 53 | . factor_expr
  2970. 54 factor_expr: . factor_expr STAR power_expr
  2971. 55 | . factor_expr SLASH power_expr
  2972. 56 | . factor_expr PERCENT power_expr
  2973. 57 | . power_expr
  2974. 58 power_expr: . tbang_expr DSTAR power_expr
  2975. 59 | . tbang_expr
  2976. 60 tbang_expr: . binary_expr TBANG tbang_expr
  2977. 61 | . binary_expr
  2978. 62 binary_expr: . binary_expr BAND binary_expr
  2979. 63 | . binary_expr BOR binary_expr
  2980. 64 | . binary_expr BXOR binary_expr
  2981. 65 | . binary_expr LSHIFT binary_expr
  2982. 66 | . binary_expr RSHIFT binary_expr
  2983. 67 | . ubinary_expr
  2984. 68 ubinary_expr: . BNOT ubinary_expr
  2985. 69 | . ulen_expr
  2986. 70 ulen_expr: . POUND ulen_expr
  2987. 71 | . call_expr
  2988. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  2989. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  2990. 74 | . funcdecl_expr
  2991. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2992. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  2993. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  2994. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  2995. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  2996. 80 | . index_expr
  2997. 81 index_expr: . expr LBRACKET expr RBRACKET
  2998. 82 | . expr DOT IDENT
  2999. 83 | . ref_expr
  3000. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3001. 85 | . expr DOT IDENT
  3002. 86 ref_expr: . IDENT
  3003. 87 | . lit_expr
  3004. 88 lit_expr: . INT
  3005. 89 | . MINUS INT
  3006. 90 | . FLOAT
  3007. 91 | . STRING
  3008. 92 | . NONE
  3009. 93 | . gen_expr
  3010. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3011. 95 | . LBRACE assoc_list RBRACE
  3012. 96 | . paren_expr
  3013. 97 paren_expr: . any_lparen expr RPAREN
  3014. 113 any_lparen: . LPAREN
  3015. 114 | . BLPAREN
  3016. IF shift, and go to state 4
  3017. WHILE shift, and go to state 5
  3018. FOR shift, and go to state 6
  3019. FUNC shift, and go to state 7
  3020. MACRO shift, and go to state 8
  3021. LAMBDA shift, and go to state 9
  3022. NONE shift, and go to state 13
  3023. IDENT shift, and go to state 14
  3024. INT shift, and go to state 15
  3025. FLOAT shift, and go to state 16
  3026. STRING shift, and go to state 17
  3027. MINUS shift, and go to state 18
  3028. BNOT shift, and go to state 19
  3029. LNOT shift, and go to state 20
  3030. LBRACE shift, and go to state 21
  3031. BLPAREN shift, and go to state 22
  3032. LPAREN shift, and go to state 23
  3033. LBRACKET shift, and go to state 24
  3034. POUND shift, and go to state 25
  3035. expr go to state 129
  3036. control_expr go to state 28
  3037. assign_expr go to state 29
  3038. logic_expr go to state 30
  3039. ulogic_expr go to state 31
  3040. rel_expr go to state 32
  3041. term_expr go to state 33
  3042. factor_expr go to state 34
  3043. power_expr go to state 35
  3044. tbang_expr go to state 36
  3045. binary_expr go to state 37
  3046. ubinary_expr go to state 38
  3047. ulen_expr go to state 39
  3048. call_expr go to state 40
  3049. funcdecl_expr go to state 41
  3050. index_expr go to state 42
  3051. ex_index_expr go to state 43
  3052. ref_expr go to state 44
  3053. lit_expr go to state 45
  3054. gen_expr go to state 46
  3055. paren_expr go to state 47
  3056. any_lparen go to state 48
  3057. State 67
  3058. 12 expr: . control_expr
  3059. 13 control_expr: . IF expr THEN stmt_list if_termin
  3060. 14 | . WHILE expr DO stmt_list END
  3061. 15 | . FOR IDENT IN expr DO stmt_list END
  3062. 16 | . assign_expr
  3063. 20 assign_expr: . IDENT ASSIGN expr
  3064. 21 | . IDENT ASSIGNPLUS expr
  3065. 22 | . IDENT ASSIGNMINUS expr
  3066. 23 | . IDENT ASSIGNSTAR expr
  3067. 24 | . IDENT ASSIGNSLASH expr
  3068. 25 | . IDENT ASSIGNDSTAR expr
  3069. 26 | . IDENT ASSIGNBAND expr
  3070. 27 | . IDENT ASSIGNBOR expr
  3071. 27 | IDENT ASSIGNBOR . expr
  3072. 28 | . IDENT ASSIGNBXOR expr
  3073. 29 | . ex_index_expr ASSIGN expr
  3074. 30 | . ex_index_expr ASSIGNPLUS expr
  3075. 31 | . ex_index_expr ASSIGNMINUS expr
  3076. 32 | . ex_index_expr ASSIGNSTAR expr
  3077. 33 | . ex_index_expr ASSIGNSLASH expr
  3078. 34 | . ex_index_expr ASSIGNDSTAR expr
  3079. 35 | . ex_index_expr ASSIGNBAND expr
  3080. 36 | . ex_index_expr ASSIGNBOR expr
  3081. 37 | . ex_index_expr ASSIGNBXOR expr
  3082. 38 | . logic_expr
  3083. 39 logic_expr: . logic_expr LAND ulogic_expr
  3084. 40 | . logic_expr LOR ulogic_expr
  3085. 41 | . ulogic_expr
  3086. 42 ulogic_expr: . LNOT ulogic_expr
  3087. 43 | . rel_expr
  3088. 44 rel_expr: . term_expr EQUAL rel_expr
  3089. 45 | . term_expr NEQUAL rel_expr
  3090. 46 | . term_expr LESS rel_expr
  3091. 47 | . term_expr GREATER rel_expr
  3092. 48 | . term_expr LESSEQ rel_expr
  3093. 49 | . term_expr GREATEREQ rel_expr
  3094. 50 | . term_expr
  3095. 51 term_expr: . term_expr PLUS factor_expr
  3096. 52 | . term_expr MINUS factor_expr
  3097. 53 | . factor_expr
  3098. 54 factor_expr: . factor_expr STAR power_expr
  3099. 55 | . factor_expr SLASH power_expr
  3100. 56 | . factor_expr PERCENT power_expr
  3101. 57 | . power_expr
  3102. 58 power_expr: . tbang_expr DSTAR power_expr
  3103. 59 | . tbang_expr
  3104. 60 tbang_expr: . binary_expr TBANG tbang_expr
  3105. 61 | . binary_expr
  3106. 62 binary_expr: . binary_expr BAND binary_expr
  3107. 63 | . binary_expr BOR binary_expr
  3108. 64 | . binary_expr BXOR binary_expr
  3109. 65 | . binary_expr LSHIFT binary_expr
  3110. 66 | . binary_expr RSHIFT binary_expr
  3111. 67 | . ubinary_expr
  3112. 68 ubinary_expr: . BNOT ubinary_expr
  3113. 69 | . ulen_expr
  3114. 70 ulen_expr: . POUND ulen_expr
  3115. 71 | . call_expr
  3116. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  3117. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  3118. 74 | . funcdecl_expr
  3119. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3120. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  3121. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3122. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  3123. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  3124. 80 | . index_expr
  3125. 81 index_expr: . expr LBRACKET expr RBRACKET
  3126. 82 | . expr DOT IDENT
  3127. 83 | . ref_expr
  3128. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3129. 85 | . expr DOT IDENT
  3130. 86 ref_expr: . IDENT
  3131. 87 | . lit_expr
  3132. 88 lit_expr: . INT
  3133. 89 | . MINUS INT
  3134. 90 | . FLOAT
  3135. 91 | . STRING
  3136. 92 | . NONE
  3137. 93 | . gen_expr
  3138. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3139. 95 | . LBRACE assoc_list RBRACE
  3140. 96 | . paren_expr
  3141. 97 paren_expr: . any_lparen expr RPAREN
  3142. 113 any_lparen: . LPAREN
  3143. 114 | . BLPAREN
  3144. IF shift, and go to state 4
  3145. WHILE shift, and go to state 5
  3146. FOR shift, and go to state 6
  3147. FUNC shift, and go to state 7
  3148. MACRO shift, and go to state 8
  3149. LAMBDA shift, and go to state 9
  3150. NONE shift, and go to state 13
  3151. IDENT shift, and go to state 14
  3152. INT shift, and go to state 15
  3153. FLOAT shift, and go to state 16
  3154. STRING shift, and go to state 17
  3155. MINUS shift, and go to state 18
  3156. BNOT shift, and go to state 19
  3157. LNOT shift, and go to state 20
  3158. LBRACE shift, and go to state 21
  3159. BLPAREN shift, and go to state 22
  3160. LPAREN shift, and go to state 23
  3161. LBRACKET shift, and go to state 24
  3162. POUND shift, and go to state 25
  3163. expr go to state 130
  3164. control_expr go to state 28
  3165. assign_expr go to state 29
  3166. logic_expr go to state 30
  3167. ulogic_expr go to state 31
  3168. rel_expr go to state 32
  3169. term_expr go to state 33
  3170. factor_expr go to state 34
  3171. power_expr go to state 35
  3172. tbang_expr go to state 36
  3173. binary_expr go to state 37
  3174. ubinary_expr go to state 38
  3175. ulen_expr go to state 39
  3176. call_expr go to state 40
  3177. funcdecl_expr go to state 41
  3178. index_expr go to state 42
  3179. ex_index_expr go to state 43
  3180. ref_expr go to state 44
  3181. lit_expr go to state 45
  3182. gen_expr go to state 46
  3183. paren_expr go to state 47
  3184. any_lparen go to state 48
  3185. State 68
  3186. 12 expr: . control_expr
  3187. 13 control_expr: . IF expr THEN stmt_list if_termin
  3188. 14 | . WHILE expr DO stmt_list END
  3189. 15 | . FOR IDENT IN expr DO stmt_list END
  3190. 16 | . assign_expr
  3191. 20 assign_expr: . IDENT ASSIGN expr
  3192. 21 | . IDENT ASSIGNPLUS expr
  3193. 22 | . IDENT ASSIGNMINUS expr
  3194. 23 | . IDENT ASSIGNSTAR expr
  3195. 24 | . IDENT ASSIGNSLASH expr
  3196. 25 | . IDENT ASSIGNDSTAR expr
  3197. 26 | . IDENT ASSIGNBAND expr
  3198. 27 | . IDENT ASSIGNBOR expr
  3199. 28 | . IDENT ASSIGNBXOR expr
  3200. 28 | IDENT ASSIGNBXOR . expr
  3201. 29 | . ex_index_expr ASSIGN expr
  3202. 30 | . ex_index_expr ASSIGNPLUS expr
  3203. 31 | . ex_index_expr ASSIGNMINUS expr
  3204. 32 | . ex_index_expr ASSIGNSTAR expr
  3205. 33 | . ex_index_expr ASSIGNSLASH expr
  3206. 34 | . ex_index_expr ASSIGNDSTAR expr
  3207. 35 | . ex_index_expr ASSIGNBAND expr
  3208. 36 | . ex_index_expr ASSIGNBOR expr
  3209. 37 | . ex_index_expr ASSIGNBXOR expr
  3210. 38 | . logic_expr
  3211. 39 logic_expr: . logic_expr LAND ulogic_expr
  3212. 40 | . logic_expr LOR ulogic_expr
  3213. 41 | . ulogic_expr
  3214. 42 ulogic_expr: . LNOT ulogic_expr
  3215. 43 | . rel_expr
  3216. 44 rel_expr: . term_expr EQUAL rel_expr
  3217. 45 | . term_expr NEQUAL rel_expr
  3218. 46 | . term_expr LESS rel_expr
  3219. 47 | . term_expr GREATER rel_expr
  3220. 48 | . term_expr LESSEQ rel_expr
  3221. 49 | . term_expr GREATEREQ rel_expr
  3222. 50 | . term_expr
  3223. 51 term_expr: . term_expr PLUS factor_expr
  3224. 52 | . term_expr MINUS factor_expr
  3225. 53 | . factor_expr
  3226. 54 factor_expr: . factor_expr STAR power_expr
  3227. 55 | . factor_expr SLASH power_expr
  3228. 56 | . factor_expr PERCENT power_expr
  3229. 57 | . power_expr
  3230. 58 power_expr: . tbang_expr DSTAR power_expr
  3231. 59 | . tbang_expr
  3232. 60 tbang_expr: . binary_expr TBANG tbang_expr
  3233. 61 | . binary_expr
  3234. 62 binary_expr: . binary_expr BAND binary_expr
  3235. 63 | . binary_expr BOR binary_expr
  3236. 64 | . binary_expr BXOR binary_expr
  3237. 65 | . binary_expr LSHIFT binary_expr
  3238. 66 | . binary_expr RSHIFT binary_expr
  3239. 67 | . ubinary_expr
  3240. 68 ubinary_expr: . BNOT ubinary_expr
  3241. 69 | . ulen_expr
  3242. 70 ulen_expr: . POUND ulen_expr
  3243. 71 | . call_expr
  3244. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  3245. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  3246. 74 | . funcdecl_expr
  3247. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3248. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  3249. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3250. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  3251. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  3252. 80 | . index_expr
  3253. 81 index_expr: . expr LBRACKET expr RBRACKET
  3254. 82 | . expr DOT IDENT
  3255. 83 | . ref_expr
  3256. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3257. 85 | . expr DOT IDENT
  3258. 86 ref_expr: . IDENT
  3259. 87 | . lit_expr
  3260. 88 lit_expr: . INT
  3261. 89 | . MINUS INT
  3262. 90 | . FLOAT
  3263. 91 | . STRING
  3264. 92 | . NONE
  3265. 93 | . gen_expr
  3266. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3267. 95 | . LBRACE assoc_list RBRACE
  3268. 96 | . paren_expr
  3269. 97 paren_expr: . any_lparen expr RPAREN
  3270. 113 any_lparen: . LPAREN
  3271. 114 | . BLPAREN
  3272. IF shift, and go to state 4
  3273. WHILE shift, and go to state 5
  3274. FOR shift, and go to state 6
  3275. FUNC shift, and go to state 7
  3276. MACRO shift, and go to state 8
  3277. LAMBDA shift, and go to state 9
  3278. NONE shift, and go to state 13
  3279. IDENT shift, and go to state 14
  3280. INT shift, and go to state 15
  3281. FLOAT shift, and go to state 16
  3282. STRING shift, and go to state 17
  3283. MINUS shift, and go to state 18
  3284. BNOT shift, and go to state 19
  3285. LNOT shift, and go to state 20
  3286. LBRACE shift, and go to state 21
  3287. BLPAREN shift, and go to state 22
  3288. LPAREN shift, and go to state 23
  3289. LBRACKET shift, and go to state 24
  3290. POUND shift, and go to state 25
  3291. expr go to state 131
  3292. control_expr go to state 28
  3293. assign_expr go to state 29
  3294. logic_expr go to state 30
  3295. ulogic_expr go to state 31
  3296. rel_expr go to state 32
  3297. term_expr go to state 33
  3298. factor_expr go to state 34
  3299. power_expr go to state 35
  3300. tbang_expr go to state 36
  3301. binary_expr go to state 37
  3302. ubinary_expr go to state 38
  3303. ulen_expr go to state 39
  3304. call_expr go to state 40
  3305. funcdecl_expr go to state 41
  3306. index_expr go to state 42
  3307. ex_index_expr go to state 43
  3308. ref_expr go to state 44
  3309. lit_expr go to state 45
  3310. gen_expr go to state 46
  3311. paren_expr go to state 47
  3312. any_lparen go to state 48
  3313. State 69
  3314. 89 lit_expr: MINUS INT .
  3315. $default reduce using rule 89 (lit_expr)
  3316. State 70
  3317. 81 index_expr: expr . LBRACKET expr RBRACKET
  3318. 82 | expr . DOT IDENT
  3319. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  3320. 85 | expr . DOT IDENT
  3321. LBRACKET shift, and go to state 81
  3322. DOT shift, and go to state 82
  3323. State 71
  3324. 67 binary_expr: ubinary_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACKET, DOT, TBANG]
  3325. 68 ubinary_expr: BNOT ubinary_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND, TBANG]
  3326. PLUS reduce using rule 67 (binary_expr)
  3327. PLUS [reduce using rule 68 (ubinary_expr)]
  3328. MINUS reduce using rule 67 (binary_expr)
  3329. MINUS [reduce using rule 68 (ubinary_expr)]
  3330. STAR reduce using rule 67 (binary_expr)
  3331. STAR [reduce using rule 68 (ubinary_expr)]
  3332. SLASH reduce using rule 67 (binary_expr)
  3333. SLASH [reduce using rule 68 (ubinary_expr)]
  3334. PERCENT reduce using rule 67 (binary_expr)
  3335. PERCENT [reduce using rule 68 (ubinary_expr)]
  3336. DSTAR reduce using rule 67 (binary_expr)
  3337. DSTAR [reduce using rule 68 (ubinary_expr)]
  3338. BAND reduce using rule 67 (binary_expr)
  3339. BAND [reduce using rule 68 (ubinary_expr)]
  3340. BOR reduce using rule 67 (binary_expr)
  3341. BOR [reduce using rule 68 (ubinary_expr)]
  3342. BXOR reduce using rule 67 (binary_expr)
  3343. BXOR [reduce using rule 68 (ubinary_expr)]
  3344. LAND reduce using rule 67 (binary_expr)
  3345. LAND [reduce using rule 68 (ubinary_expr)]
  3346. LOR reduce using rule 67 (binary_expr)
  3347. LOR [reduce using rule 68 (ubinary_expr)]
  3348. EQUAL reduce using rule 67 (binary_expr)
  3349. EQUAL [reduce using rule 68 (ubinary_expr)]
  3350. NEQUAL reduce using rule 67 (binary_expr)
  3351. NEQUAL [reduce using rule 68 (ubinary_expr)]
  3352. LESS reduce using rule 67 (binary_expr)
  3353. LESS [reduce using rule 68 (ubinary_expr)]
  3354. GREATER reduce using rule 67 (binary_expr)
  3355. GREATER [reduce using rule 68 (ubinary_expr)]
  3356. LESSEQ reduce using rule 67 (binary_expr)
  3357. LESSEQ [reduce using rule 68 (ubinary_expr)]
  3358. GREATEREQ reduce using rule 67 (binary_expr)
  3359. GREATEREQ [reduce using rule 68 (ubinary_expr)]
  3360. RSHIFT reduce using rule 67 (binary_expr)
  3361. RSHIFT [reduce using rule 68 (ubinary_expr)]
  3362. LSHIFT reduce using rule 67 (binary_expr)
  3363. LSHIFT [reduce using rule 68 (ubinary_expr)]
  3364. LBRACKET reduce using rule 67 (binary_expr)
  3365. LBRACKET [reduce using rule 68 (ubinary_expr)]
  3366. DOT reduce using rule 67 (binary_expr)
  3367. DOT [reduce using rule 68 (ubinary_expr)]
  3368. TBANG reduce using rule 67 (binary_expr)
  3369. TBANG [reduce using rule 68 (ubinary_expr)]
  3370. $default reduce using rule 68 (ubinary_expr)
  3371. State 72
  3372. 41 logic_expr: ulogic_expr . [LAND, LOR, LBRACKET, DOT]
  3373. 42 ulogic_expr: LNOT ulogic_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  3374. LAND reduce using rule 41 (logic_expr)
  3375. LAND [reduce using rule 42 (ulogic_expr)]
  3376. LOR reduce using rule 41 (logic_expr)
  3377. LOR [reduce using rule 42 (ulogic_expr)]
  3378. LBRACKET reduce using rule 41 (logic_expr)
  3379. LBRACKET [reduce using rule 42 (ulogic_expr)]
  3380. DOT reduce using rule 41 (logic_expr)
  3381. DOT [reduce using rule 42 (ulogic_expr)]
  3382. $default reduce using rule 42 (ulogic_expr)
  3383. State 73
  3384. 112 assoc_item: IDENT . ASSIGN expr
  3385. ASSIGN shift, and go to state 132
  3386. State 74
  3387. 12 expr: . control_expr
  3388. 13 control_expr: . IF expr THEN stmt_list if_termin
  3389. 14 | . WHILE expr DO stmt_list END
  3390. 15 | . FOR IDENT IN expr DO stmt_list END
  3391. 16 | . assign_expr
  3392. 20 assign_expr: . IDENT ASSIGN expr
  3393. 21 | . IDENT ASSIGNPLUS expr
  3394. 22 | . IDENT ASSIGNMINUS expr
  3395. 23 | . IDENT ASSIGNSTAR expr
  3396. 24 | . IDENT ASSIGNSLASH expr
  3397. 25 | . IDENT ASSIGNDSTAR expr
  3398. 26 | . IDENT ASSIGNBAND expr
  3399. 27 | . IDENT ASSIGNBOR expr
  3400. 28 | . IDENT ASSIGNBXOR expr
  3401. 29 | . ex_index_expr ASSIGN expr
  3402. 30 | . ex_index_expr ASSIGNPLUS expr
  3403. 31 | . ex_index_expr ASSIGNMINUS expr
  3404. 32 | . ex_index_expr ASSIGNSTAR expr
  3405. 33 | . ex_index_expr ASSIGNSLASH expr
  3406. 34 | . ex_index_expr ASSIGNDSTAR expr
  3407. 35 | . ex_index_expr ASSIGNBAND expr
  3408. 36 | . ex_index_expr ASSIGNBOR expr
  3409. 37 | . ex_index_expr ASSIGNBXOR expr
  3410. 38 | . logic_expr
  3411. 39 logic_expr: . logic_expr LAND ulogic_expr
  3412. 40 | . logic_expr LOR ulogic_expr
  3413. 41 | . ulogic_expr
  3414. 42 ulogic_expr: . LNOT ulogic_expr
  3415. 43 | . rel_expr
  3416. 44 rel_expr: . term_expr EQUAL rel_expr
  3417. 45 | . term_expr NEQUAL rel_expr
  3418. 46 | . term_expr LESS rel_expr
  3419. 47 | . term_expr GREATER rel_expr
  3420. 48 | . term_expr LESSEQ rel_expr
  3421. 49 | . term_expr GREATEREQ rel_expr
  3422. 50 | . term_expr
  3423. 51 term_expr: . term_expr PLUS factor_expr
  3424. 52 | . term_expr MINUS factor_expr
  3425. 53 | . factor_expr
  3426. 54 factor_expr: . factor_expr STAR power_expr
  3427. 55 | . factor_expr SLASH power_expr
  3428. 56 | . factor_expr PERCENT power_expr
  3429. 57 | . power_expr
  3430. 58 power_expr: . tbang_expr DSTAR power_expr
  3431. 59 | . tbang_expr
  3432. 60 tbang_expr: . binary_expr TBANG tbang_expr
  3433. 61 | . binary_expr
  3434. 62 binary_expr: . binary_expr BAND binary_expr
  3435. 63 | . binary_expr BOR binary_expr
  3436. 64 | . binary_expr BXOR binary_expr
  3437. 65 | . binary_expr LSHIFT binary_expr
  3438. 66 | . binary_expr RSHIFT binary_expr
  3439. 67 | . ubinary_expr
  3440. 68 ubinary_expr: . BNOT ubinary_expr
  3441. 69 | . ulen_expr
  3442. 70 ulen_expr: . POUND ulen_expr
  3443. 71 | . call_expr
  3444. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  3445. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  3446. 74 | . funcdecl_expr
  3447. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3448. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  3449. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3450. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  3451. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  3452. 80 | . index_expr
  3453. 81 index_expr: . expr LBRACKET expr RBRACKET
  3454. 82 | . expr DOT IDENT
  3455. 83 | . ref_expr
  3456. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3457. 85 | . expr DOT IDENT
  3458. 86 ref_expr: . IDENT
  3459. 87 | . lit_expr
  3460. 88 lit_expr: . INT
  3461. 89 | . MINUS INT
  3462. 90 | . FLOAT
  3463. 91 | . STRING
  3464. 92 | . NONE
  3465. 93 | . gen_expr
  3466. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3467. 95 | . LBRACE assoc_list RBRACE
  3468. 96 | . paren_expr
  3469. 97 paren_expr: . any_lparen expr RPAREN
  3470. 111 assoc_item: LBRACKET . expr RBRACKET ASSIGN expr
  3471. 113 any_lparen: . LPAREN
  3472. 114 | . BLPAREN
  3473. IF shift, and go to state 4
  3474. WHILE shift, and go to state 5
  3475. FOR shift, and go to state 6
  3476. FUNC shift, and go to state 7
  3477. MACRO shift, and go to state 8
  3478. LAMBDA shift, and go to state 9
  3479. NONE shift, and go to state 13
  3480. IDENT shift, and go to state 14
  3481. INT shift, and go to state 15
  3482. FLOAT shift, and go to state 16
  3483. STRING shift, and go to state 17
  3484. MINUS shift, and go to state 18
  3485. BNOT shift, and go to state 19
  3486. LNOT shift, and go to state 20
  3487. LBRACE shift, and go to state 21
  3488. BLPAREN shift, and go to state 22
  3489. LPAREN shift, and go to state 23
  3490. LBRACKET shift, and go to state 24
  3491. POUND shift, and go to state 25
  3492. expr go to state 133
  3493. control_expr go to state 28
  3494. assign_expr go to state 29
  3495. logic_expr go to state 30
  3496. ulogic_expr go to state 31
  3497. rel_expr go to state 32
  3498. term_expr go to state 33
  3499. factor_expr go to state 34
  3500. power_expr go to state 35
  3501. tbang_expr go to state 36
  3502. binary_expr go to state 37
  3503. ubinary_expr go to state 38
  3504. ulen_expr go to state 39
  3505. call_expr go to state 40
  3506. funcdecl_expr go to state 41
  3507. index_expr go to state 42
  3508. ex_index_expr go to state 43
  3509. ref_expr go to state 44
  3510. lit_expr go to state 45
  3511. gen_expr go to state 46
  3512. paren_expr go to state 47
  3513. any_lparen go to state 48
  3514. State 75
  3515. 95 gen_expr: LBRACE assoc_list . RBRACE
  3516. 109 assoc_list: assoc_list . COMMA
  3517. 110 | assoc_list . assoc_item
  3518. 111 assoc_item: . LBRACKET expr RBRACKET ASSIGN expr
  3519. 112 | . IDENT ASSIGN expr
  3520. IDENT shift, and go to state 73
  3521. RBRACE shift, and go to state 134
  3522. LBRACKET shift, and go to state 74
  3523. COMMA shift, and go to state 135
  3524. assoc_item go to state 136
  3525. State 76
  3526. 108 assoc_list: assoc_item .
  3527. $default reduce using rule 108 (assoc_list)
  3528. State 77
  3529. 81 index_expr: expr . LBRACKET expr RBRACKET
  3530. 82 | expr . DOT IDENT
  3531. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  3532. 85 | expr . DOT IDENT
  3533. 99 expr_list: expr . [IF, WHILE, FOR, FUNC, MACRO, LAMBDA, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, COMMA, POUND]
  3534. LBRACKET shift, and go to state 81
  3535. DOT shift, and go to state 82
  3536. LBRACKET [reduce using rule 99 (expr_list)]
  3537. $default reduce using rule 99 (expr_list)
  3538. State 78
  3539. 12 expr: . control_expr
  3540. 13 control_expr: . IF expr THEN stmt_list if_termin
  3541. 14 | . WHILE expr DO stmt_list END
  3542. 15 | . FOR IDENT IN expr DO stmt_list END
  3543. 16 | . assign_expr
  3544. 20 assign_expr: . IDENT ASSIGN expr
  3545. 21 | . IDENT ASSIGNPLUS expr
  3546. 22 | . IDENT ASSIGNMINUS expr
  3547. 23 | . IDENT ASSIGNSTAR expr
  3548. 24 | . IDENT ASSIGNSLASH expr
  3549. 25 | . IDENT ASSIGNDSTAR expr
  3550. 26 | . IDENT ASSIGNBAND expr
  3551. 27 | . IDENT ASSIGNBOR expr
  3552. 28 | . IDENT ASSIGNBXOR expr
  3553. 29 | . ex_index_expr ASSIGN expr
  3554. 30 | . ex_index_expr ASSIGNPLUS expr
  3555. 31 | . ex_index_expr ASSIGNMINUS expr
  3556. 32 | . ex_index_expr ASSIGNSTAR expr
  3557. 33 | . ex_index_expr ASSIGNSLASH expr
  3558. 34 | . ex_index_expr ASSIGNDSTAR expr
  3559. 35 | . ex_index_expr ASSIGNBAND expr
  3560. 36 | . ex_index_expr ASSIGNBOR expr
  3561. 37 | . ex_index_expr ASSIGNBXOR expr
  3562. 38 | . logic_expr
  3563. 39 logic_expr: . logic_expr LAND ulogic_expr
  3564. 40 | . logic_expr LOR ulogic_expr
  3565. 41 | . ulogic_expr
  3566. 42 ulogic_expr: . LNOT ulogic_expr
  3567. 43 | . rel_expr
  3568. 44 rel_expr: . term_expr EQUAL rel_expr
  3569. 45 | . term_expr NEQUAL rel_expr
  3570. 46 | . term_expr LESS rel_expr
  3571. 47 | . term_expr GREATER rel_expr
  3572. 48 | . term_expr LESSEQ rel_expr
  3573. 49 | . term_expr GREATEREQ rel_expr
  3574. 50 | . term_expr
  3575. 51 term_expr: . term_expr PLUS factor_expr
  3576. 52 | . term_expr MINUS factor_expr
  3577. 53 | . factor_expr
  3578. 54 factor_expr: . factor_expr STAR power_expr
  3579. 55 | . factor_expr SLASH power_expr
  3580. 56 | . factor_expr PERCENT power_expr
  3581. 57 | . power_expr
  3582. 58 power_expr: . tbang_expr DSTAR power_expr
  3583. 59 | . tbang_expr
  3584. 60 tbang_expr: . binary_expr TBANG tbang_expr
  3585. 61 | . binary_expr
  3586. 62 binary_expr: . binary_expr BAND binary_expr
  3587. 63 | . binary_expr BOR binary_expr
  3588. 64 | . binary_expr BXOR binary_expr
  3589. 65 | . binary_expr LSHIFT binary_expr
  3590. 66 | . binary_expr RSHIFT binary_expr
  3591. 67 | . ubinary_expr
  3592. 68 ubinary_expr: . BNOT ubinary_expr
  3593. 69 | . ulen_expr
  3594. 70 ulen_expr: . POUND ulen_expr
  3595. 71 | . call_expr
  3596. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  3597. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  3598. 74 | . funcdecl_expr
  3599. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3600. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  3601. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3602. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  3603. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  3604. 80 | . index_expr
  3605. 81 index_expr: . expr LBRACKET expr RBRACKET
  3606. 82 | . expr DOT IDENT
  3607. 83 | . ref_expr
  3608. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3609. 85 | . expr DOT IDENT
  3610. 86 ref_expr: . IDENT
  3611. 87 | . lit_expr
  3612. 88 lit_expr: . INT
  3613. 89 | . MINUS INT
  3614. 90 | . FLOAT
  3615. 91 | . STRING
  3616. 92 | . NONE
  3617. 93 | . gen_expr
  3618. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3619. 94 | LBRACKET expr_list . RBRACKET
  3620. 95 | . LBRACE assoc_list RBRACE
  3621. 96 | . paren_expr
  3622. 97 paren_expr: . any_lparen expr RPAREN
  3623. 100 expr_list: expr_list . COMMA
  3624. 101 | expr_list . expr
  3625. 113 any_lparen: . LPAREN
  3626. 114 | . BLPAREN
  3627. IF shift, and go to state 4
  3628. WHILE shift, and go to state 5
  3629. FOR shift, and go to state 6
  3630. FUNC shift, and go to state 7
  3631. MACRO shift, and go to state 8
  3632. LAMBDA shift, and go to state 9
  3633. NONE shift, and go to state 13
  3634. IDENT shift, and go to state 14
  3635. INT shift, and go to state 15
  3636. FLOAT shift, and go to state 16
  3637. STRING shift, and go to state 17
  3638. MINUS shift, and go to state 18
  3639. BNOT shift, and go to state 19
  3640. LNOT shift, and go to state 20
  3641. LBRACE shift, and go to state 21
  3642. BLPAREN shift, and go to state 22
  3643. LPAREN shift, and go to state 23
  3644. LBRACKET shift, and go to state 24
  3645. RBRACKET shift, and go to state 137
  3646. COMMA shift, and go to state 138
  3647. POUND shift, and go to state 25
  3648. expr go to state 139
  3649. control_expr go to state 28
  3650. assign_expr go to state 29
  3651. logic_expr go to state 30
  3652. ulogic_expr go to state 31
  3653. rel_expr go to state 32
  3654. term_expr go to state 33
  3655. factor_expr go to state 34
  3656. power_expr go to state 35
  3657. tbang_expr go to state 36
  3658. binary_expr go to state 37
  3659. ubinary_expr go to state 38
  3660. ulen_expr go to state 39
  3661. call_expr go to state 40
  3662. funcdecl_expr go to state 41
  3663. index_expr go to state 42
  3664. ex_index_expr go to state 43
  3665. ref_expr go to state 44
  3666. lit_expr go to state 45
  3667. gen_expr go to state 46
  3668. paren_expr go to state 47
  3669. any_lparen go to state 48
  3670. State 79
  3671. 69 ubinary_expr: ulen_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACKET, DOT, TBANG]
  3672. 70 ulen_expr: POUND ulen_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND, TBANG]
  3673. PLUS reduce using rule 69 (ubinary_expr)
  3674. PLUS [reduce using rule 70 (ulen_expr)]
  3675. MINUS reduce using rule 69 (ubinary_expr)
  3676. MINUS [reduce using rule 70 (ulen_expr)]
  3677. STAR reduce using rule 69 (ubinary_expr)
  3678. STAR [reduce using rule 70 (ulen_expr)]
  3679. SLASH reduce using rule 69 (ubinary_expr)
  3680. SLASH [reduce using rule 70 (ulen_expr)]
  3681. PERCENT reduce using rule 69 (ubinary_expr)
  3682. PERCENT [reduce using rule 70 (ulen_expr)]
  3683. DSTAR reduce using rule 69 (ubinary_expr)
  3684. DSTAR [reduce using rule 70 (ulen_expr)]
  3685. BAND reduce using rule 69 (ubinary_expr)
  3686. BAND [reduce using rule 70 (ulen_expr)]
  3687. BOR reduce using rule 69 (ubinary_expr)
  3688. BOR [reduce using rule 70 (ulen_expr)]
  3689. BXOR reduce using rule 69 (ubinary_expr)
  3690. BXOR [reduce using rule 70 (ulen_expr)]
  3691. LAND reduce using rule 69 (ubinary_expr)
  3692. LAND [reduce using rule 70 (ulen_expr)]
  3693. LOR reduce using rule 69 (ubinary_expr)
  3694. LOR [reduce using rule 70 (ulen_expr)]
  3695. EQUAL reduce using rule 69 (ubinary_expr)
  3696. EQUAL [reduce using rule 70 (ulen_expr)]
  3697. NEQUAL reduce using rule 69 (ubinary_expr)
  3698. NEQUAL [reduce using rule 70 (ulen_expr)]
  3699. LESS reduce using rule 69 (ubinary_expr)
  3700. LESS [reduce using rule 70 (ulen_expr)]
  3701. GREATER reduce using rule 69 (ubinary_expr)
  3702. GREATER [reduce using rule 70 (ulen_expr)]
  3703. LESSEQ reduce using rule 69 (ubinary_expr)
  3704. LESSEQ [reduce using rule 70 (ulen_expr)]
  3705. GREATEREQ reduce using rule 69 (ubinary_expr)
  3706. GREATEREQ [reduce using rule 70 (ulen_expr)]
  3707. RSHIFT reduce using rule 69 (ubinary_expr)
  3708. RSHIFT [reduce using rule 70 (ulen_expr)]
  3709. LSHIFT reduce using rule 69 (ubinary_expr)
  3710. LSHIFT [reduce using rule 70 (ulen_expr)]
  3711. LBRACKET reduce using rule 69 (ubinary_expr)
  3712. LBRACKET [reduce using rule 70 (ulen_expr)]
  3713. DOT reduce using rule 69 (ubinary_expr)
  3714. DOT [reduce using rule 70 (ulen_expr)]
  3715. TBANG reduce using rule 69 (ubinary_expr)
  3716. TBANG [reduce using rule 70 (ulen_expr)]
  3717. $default reduce using rule 70 (ulen_expr)
  3718. State 80
  3719. 11 stmt: stmt SEMICOLON .
  3720. $default reduce using rule 11 (stmt)
  3721. State 81
  3722. 12 expr: . control_expr
  3723. 13 control_expr: . IF expr THEN stmt_list if_termin
  3724. 14 | . WHILE expr DO stmt_list END
  3725. 15 | . FOR IDENT IN expr DO stmt_list END
  3726. 16 | . assign_expr
  3727. 20 assign_expr: . IDENT ASSIGN expr
  3728. 21 | . IDENT ASSIGNPLUS expr
  3729. 22 | . IDENT ASSIGNMINUS expr
  3730. 23 | . IDENT ASSIGNSTAR expr
  3731. 24 | . IDENT ASSIGNSLASH expr
  3732. 25 | . IDENT ASSIGNDSTAR expr
  3733. 26 | . IDENT ASSIGNBAND expr
  3734. 27 | . IDENT ASSIGNBOR expr
  3735. 28 | . IDENT ASSIGNBXOR expr
  3736. 29 | . ex_index_expr ASSIGN expr
  3737. 30 | . ex_index_expr ASSIGNPLUS expr
  3738. 31 | . ex_index_expr ASSIGNMINUS expr
  3739. 32 | . ex_index_expr ASSIGNSTAR expr
  3740. 33 | . ex_index_expr ASSIGNSLASH expr
  3741. 34 | . ex_index_expr ASSIGNDSTAR expr
  3742. 35 | . ex_index_expr ASSIGNBAND expr
  3743. 36 | . ex_index_expr ASSIGNBOR expr
  3744. 37 | . ex_index_expr ASSIGNBXOR expr
  3745. 38 | . logic_expr
  3746. 39 logic_expr: . logic_expr LAND ulogic_expr
  3747. 40 | . logic_expr LOR ulogic_expr
  3748. 41 | . ulogic_expr
  3749. 42 ulogic_expr: . LNOT ulogic_expr
  3750. 43 | . rel_expr
  3751. 44 rel_expr: . term_expr EQUAL rel_expr
  3752. 45 | . term_expr NEQUAL rel_expr
  3753. 46 | . term_expr LESS rel_expr
  3754. 47 | . term_expr GREATER rel_expr
  3755. 48 | . term_expr LESSEQ rel_expr
  3756. 49 | . term_expr GREATEREQ rel_expr
  3757. 50 | . term_expr
  3758. 51 term_expr: . term_expr PLUS factor_expr
  3759. 52 | . term_expr MINUS factor_expr
  3760. 53 | . factor_expr
  3761. 54 factor_expr: . factor_expr STAR power_expr
  3762. 55 | . factor_expr SLASH power_expr
  3763. 56 | . factor_expr PERCENT power_expr
  3764. 57 | . power_expr
  3765. 58 power_expr: . tbang_expr DSTAR power_expr
  3766. 59 | . tbang_expr
  3767. 60 tbang_expr: . binary_expr TBANG tbang_expr
  3768. 61 | . binary_expr
  3769. 62 binary_expr: . binary_expr BAND binary_expr
  3770. 63 | . binary_expr BOR binary_expr
  3771. 64 | . binary_expr BXOR binary_expr
  3772. 65 | . binary_expr LSHIFT binary_expr
  3773. 66 | . binary_expr RSHIFT binary_expr
  3774. 67 | . ubinary_expr
  3775. 68 ubinary_expr: . BNOT ubinary_expr
  3776. 69 | . ulen_expr
  3777. 70 ulen_expr: . POUND ulen_expr
  3778. 71 | . call_expr
  3779. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  3780. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  3781. 74 | . funcdecl_expr
  3782. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3783. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  3784. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3785. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  3786. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  3787. 80 | . index_expr
  3788. 81 index_expr: . expr LBRACKET expr RBRACKET
  3789. 81 | expr LBRACKET . expr RBRACKET
  3790. 82 | . expr DOT IDENT
  3791. 83 | . ref_expr
  3792. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3793. 84 | expr LBRACKET . expr RBRACKET
  3794. 85 | . expr DOT IDENT
  3795. 86 ref_expr: . IDENT
  3796. 87 | . lit_expr
  3797. 88 lit_expr: . INT
  3798. 89 | . MINUS INT
  3799. 90 | . FLOAT
  3800. 91 | . STRING
  3801. 92 | . NONE
  3802. 93 | . gen_expr
  3803. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3804. 95 | . LBRACE assoc_list RBRACE
  3805. 96 | . paren_expr
  3806. 97 paren_expr: . any_lparen expr RPAREN
  3807. 113 any_lparen: . LPAREN
  3808. 114 | . BLPAREN
  3809. IF shift, and go to state 4
  3810. WHILE shift, and go to state 5
  3811. FOR shift, and go to state 6
  3812. FUNC shift, and go to state 7
  3813. MACRO shift, and go to state 8
  3814. LAMBDA shift, and go to state 9
  3815. NONE shift, and go to state 13
  3816. IDENT shift, and go to state 14
  3817. INT shift, and go to state 15
  3818. FLOAT shift, and go to state 16
  3819. STRING shift, and go to state 17
  3820. MINUS shift, and go to state 18
  3821. BNOT shift, and go to state 19
  3822. LNOT shift, and go to state 20
  3823. LBRACE shift, and go to state 21
  3824. BLPAREN shift, and go to state 22
  3825. LPAREN shift, and go to state 23
  3826. LBRACKET shift, and go to state 24
  3827. POUND shift, and go to state 25
  3828. expr go to state 140
  3829. control_expr go to state 28
  3830. assign_expr go to state 29
  3831. logic_expr go to state 30
  3832. ulogic_expr go to state 31
  3833. rel_expr go to state 32
  3834. term_expr go to state 33
  3835. factor_expr go to state 34
  3836. power_expr go to state 35
  3837. tbang_expr go to state 36
  3838. binary_expr go to state 37
  3839. ubinary_expr go to state 38
  3840. ulen_expr go to state 39
  3841. call_expr go to state 40
  3842. funcdecl_expr go to state 41
  3843. index_expr go to state 42
  3844. ex_index_expr go to state 43
  3845. ref_expr go to state 44
  3846. lit_expr go to state 45
  3847. gen_expr go to state 46
  3848. paren_expr go to state 47
  3849. any_lparen go to state 48
  3850. State 82
  3851. 82 index_expr: expr DOT . IDENT
  3852. 85 ex_index_expr: expr DOT . IDENT
  3853. IDENT shift, and go to state 141
  3854. State 83
  3855. 12 expr: . control_expr
  3856. 13 control_expr: . IF expr THEN stmt_list if_termin
  3857. 14 | . WHILE expr DO stmt_list END
  3858. 15 | . FOR IDENT IN expr DO stmt_list END
  3859. 16 | . assign_expr
  3860. 20 assign_expr: . IDENT ASSIGN expr
  3861. 21 | . IDENT ASSIGNPLUS expr
  3862. 22 | . IDENT ASSIGNMINUS expr
  3863. 23 | . IDENT ASSIGNSTAR expr
  3864. 24 | . IDENT ASSIGNSLASH expr
  3865. 25 | . IDENT ASSIGNDSTAR expr
  3866. 26 | . IDENT ASSIGNBAND expr
  3867. 27 | . IDENT ASSIGNBOR expr
  3868. 28 | . IDENT ASSIGNBXOR expr
  3869. 29 | . ex_index_expr ASSIGN expr
  3870. 30 | . ex_index_expr ASSIGNPLUS expr
  3871. 31 | . ex_index_expr ASSIGNMINUS expr
  3872. 32 | . ex_index_expr ASSIGNSTAR expr
  3873. 33 | . ex_index_expr ASSIGNSLASH expr
  3874. 34 | . ex_index_expr ASSIGNDSTAR expr
  3875. 35 | . ex_index_expr ASSIGNBAND expr
  3876. 36 | . ex_index_expr ASSIGNBOR expr
  3877. 37 | . ex_index_expr ASSIGNBXOR expr
  3878. 38 | . logic_expr
  3879. 39 logic_expr: . logic_expr LAND ulogic_expr
  3880. 39 | logic_expr LAND . ulogic_expr
  3881. 40 | . logic_expr LOR ulogic_expr
  3882. 41 | . ulogic_expr
  3883. 42 ulogic_expr: . LNOT ulogic_expr
  3884. 43 | . rel_expr
  3885. 44 rel_expr: . term_expr EQUAL rel_expr
  3886. 45 | . term_expr NEQUAL rel_expr
  3887. 46 | . term_expr LESS rel_expr
  3888. 47 | . term_expr GREATER rel_expr
  3889. 48 | . term_expr LESSEQ rel_expr
  3890. 49 | . term_expr GREATEREQ rel_expr
  3891. 50 | . term_expr
  3892. 51 term_expr: . term_expr PLUS factor_expr
  3893. 52 | . term_expr MINUS factor_expr
  3894. 53 | . factor_expr
  3895. 54 factor_expr: . factor_expr STAR power_expr
  3896. 55 | . factor_expr SLASH power_expr
  3897. 56 | . factor_expr PERCENT power_expr
  3898. 57 | . power_expr
  3899. 58 power_expr: . tbang_expr DSTAR power_expr
  3900. 59 | . tbang_expr
  3901. 60 tbang_expr: . binary_expr TBANG tbang_expr
  3902. 61 | . binary_expr
  3903. 62 binary_expr: . binary_expr BAND binary_expr
  3904. 63 | . binary_expr BOR binary_expr
  3905. 64 | . binary_expr BXOR binary_expr
  3906. 65 | . binary_expr LSHIFT binary_expr
  3907. 66 | . binary_expr RSHIFT binary_expr
  3908. 67 | . ubinary_expr
  3909. 68 ubinary_expr: . BNOT ubinary_expr
  3910. 69 | . ulen_expr
  3911. 70 ulen_expr: . POUND ulen_expr
  3912. 71 | . call_expr
  3913. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  3914. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  3915. 74 | . funcdecl_expr
  3916. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3917. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  3918. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  3919. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  3920. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  3921. 80 | . index_expr
  3922. 81 index_expr: . expr LBRACKET expr RBRACKET
  3923. 82 | . expr DOT IDENT
  3924. 83 | . ref_expr
  3925. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  3926. 85 | . expr DOT IDENT
  3927. 86 ref_expr: . IDENT
  3928. 87 | . lit_expr
  3929. 88 lit_expr: . INT
  3930. 89 | . MINUS INT
  3931. 90 | . FLOAT
  3932. 91 | . STRING
  3933. 92 | . NONE
  3934. 93 | . gen_expr
  3935. 94 gen_expr: . LBRACKET expr_list RBRACKET
  3936. 95 | . LBRACE assoc_list RBRACE
  3937. 96 | . paren_expr
  3938. 97 paren_expr: . any_lparen expr RPAREN
  3939. 113 any_lparen: . LPAREN
  3940. 114 | . BLPAREN
  3941. IF shift, and go to state 4
  3942. WHILE shift, and go to state 5
  3943. FOR shift, and go to state 6
  3944. FUNC shift, and go to state 7
  3945. MACRO shift, and go to state 8
  3946. LAMBDA shift, and go to state 9
  3947. NONE shift, and go to state 13
  3948. IDENT shift, and go to state 14
  3949. INT shift, and go to state 15
  3950. FLOAT shift, and go to state 16
  3951. STRING shift, and go to state 17
  3952. MINUS shift, and go to state 18
  3953. BNOT shift, and go to state 19
  3954. LNOT shift, and go to state 20
  3955. LBRACE shift, and go to state 21
  3956. BLPAREN shift, and go to state 22
  3957. LPAREN shift, and go to state 23
  3958. LBRACKET shift, and go to state 24
  3959. POUND shift, and go to state 25
  3960. expr go to state 70
  3961. control_expr go to state 28
  3962. assign_expr go to state 29
  3963. logic_expr go to state 30
  3964. ulogic_expr go to state 142
  3965. rel_expr go to state 32
  3966. term_expr go to state 33
  3967. factor_expr go to state 34
  3968. power_expr go to state 35
  3969. tbang_expr go to state 36
  3970. binary_expr go to state 37
  3971. ubinary_expr go to state 38
  3972. ulen_expr go to state 39
  3973. call_expr go to state 40
  3974. funcdecl_expr go to state 41
  3975. index_expr go to state 42
  3976. ex_index_expr go to state 43
  3977. ref_expr go to state 44
  3978. lit_expr go to state 45
  3979. gen_expr go to state 46
  3980. paren_expr go to state 47
  3981. any_lparen go to state 48
  3982. State 84
  3983. 12 expr: . control_expr
  3984. 13 control_expr: . IF expr THEN stmt_list if_termin
  3985. 14 | . WHILE expr DO stmt_list END
  3986. 15 | . FOR IDENT IN expr DO stmt_list END
  3987. 16 | . assign_expr
  3988. 20 assign_expr: . IDENT ASSIGN expr
  3989. 21 | . IDENT ASSIGNPLUS expr
  3990. 22 | . IDENT ASSIGNMINUS expr
  3991. 23 | . IDENT ASSIGNSTAR expr
  3992. 24 | . IDENT ASSIGNSLASH expr
  3993. 25 | . IDENT ASSIGNDSTAR expr
  3994. 26 | . IDENT ASSIGNBAND expr
  3995. 27 | . IDENT ASSIGNBOR expr
  3996. 28 | . IDENT ASSIGNBXOR expr
  3997. 29 | . ex_index_expr ASSIGN expr
  3998. 30 | . ex_index_expr ASSIGNPLUS expr
  3999. 31 | . ex_index_expr ASSIGNMINUS expr
  4000. 32 | . ex_index_expr ASSIGNSTAR expr
  4001. 33 | . ex_index_expr ASSIGNSLASH expr
  4002. 34 | . ex_index_expr ASSIGNDSTAR expr
  4003. 35 | . ex_index_expr ASSIGNBAND expr
  4004. 36 | . ex_index_expr ASSIGNBOR expr
  4005. 37 | . ex_index_expr ASSIGNBXOR expr
  4006. 38 | . logic_expr
  4007. 39 logic_expr: . logic_expr LAND ulogic_expr
  4008. 40 | . logic_expr LOR ulogic_expr
  4009. 40 | logic_expr LOR . ulogic_expr
  4010. 41 | . ulogic_expr
  4011. 42 ulogic_expr: . LNOT ulogic_expr
  4012. 43 | . rel_expr
  4013. 44 rel_expr: . term_expr EQUAL rel_expr
  4014. 45 | . term_expr NEQUAL rel_expr
  4015. 46 | . term_expr LESS rel_expr
  4016. 47 | . term_expr GREATER rel_expr
  4017. 48 | . term_expr LESSEQ rel_expr
  4018. 49 | . term_expr GREATEREQ rel_expr
  4019. 50 | . term_expr
  4020. 51 term_expr: . term_expr PLUS factor_expr
  4021. 52 | . term_expr MINUS factor_expr
  4022. 53 | . factor_expr
  4023. 54 factor_expr: . factor_expr STAR power_expr
  4024. 55 | . factor_expr SLASH power_expr
  4025. 56 | . factor_expr PERCENT power_expr
  4026. 57 | . power_expr
  4027. 58 power_expr: . tbang_expr DSTAR power_expr
  4028. 59 | . tbang_expr
  4029. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4030. 61 | . binary_expr
  4031. 62 binary_expr: . binary_expr BAND binary_expr
  4032. 63 | . binary_expr BOR binary_expr
  4033. 64 | . binary_expr BXOR binary_expr
  4034. 65 | . binary_expr LSHIFT binary_expr
  4035. 66 | . binary_expr RSHIFT binary_expr
  4036. 67 | . ubinary_expr
  4037. 68 ubinary_expr: . BNOT ubinary_expr
  4038. 69 | . ulen_expr
  4039. 70 ulen_expr: . POUND ulen_expr
  4040. 71 | . call_expr
  4041. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4042. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4043. 74 | . funcdecl_expr
  4044. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4045. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4046. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4047. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4048. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4049. 80 | . index_expr
  4050. 81 index_expr: . expr LBRACKET expr RBRACKET
  4051. 82 | . expr DOT IDENT
  4052. 83 | . ref_expr
  4053. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4054. 85 | . expr DOT IDENT
  4055. 86 ref_expr: . IDENT
  4056. 87 | . lit_expr
  4057. 88 lit_expr: . INT
  4058. 89 | . MINUS INT
  4059. 90 | . FLOAT
  4060. 91 | . STRING
  4061. 92 | . NONE
  4062. 93 | . gen_expr
  4063. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4064. 95 | . LBRACE assoc_list RBRACE
  4065. 96 | . paren_expr
  4066. 97 paren_expr: . any_lparen expr RPAREN
  4067. 113 any_lparen: . LPAREN
  4068. 114 | . BLPAREN
  4069. IF shift, and go to state 4
  4070. WHILE shift, and go to state 5
  4071. FOR shift, and go to state 6
  4072. FUNC shift, and go to state 7
  4073. MACRO shift, and go to state 8
  4074. LAMBDA shift, and go to state 9
  4075. NONE shift, and go to state 13
  4076. IDENT shift, and go to state 14
  4077. INT shift, and go to state 15
  4078. FLOAT shift, and go to state 16
  4079. STRING shift, and go to state 17
  4080. MINUS shift, and go to state 18
  4081. BNOT shift, and go to state 19
  4082. LNOT shift, and go to state 20
  4083. LBRACE shift, and go to state 21
  4084. BLPAREN shift, and go to state 22
  4085. LPAREN shift, and go to state 23
  4086. LBRACKET shift, and go to state 24
  4087. POUND shift, and go to state 25
  4088. expr go to state 70
  4089. control_expr go to state 28
  4090. assign_expr go to state 29
  4091. logic_expr go to state 30
  4092. ulogic_expr go to state 143
  4093. rel_expr go to state 32
  4094. term_expr go to state 33
  4095. factor_expr go to state 34
  4096. power_expr go to state 35
  4097. tbang_expr go to state 36
  4098. binary_expr go to state 37
  4099. ubinary_expr go to state 38
  4100. ulen_expr go to state 39
  4101. call_expr go to state 40
  4102. funcdecl_expr go to state 41
  4103. index_expr go to state 42
  4104. ex_index_expr go to state 43
  4105. ref_expr go to state 44
  4106. lit_expr go to state 45
  4107. gen_expr go to state 46
  4108. paren_expr go to state 47
  4109. any_lparen go to state 48
  4110. State 85
  4111. 12 expr: . control_expr
  4112. 13 control_expr: . IF expr THEN stmt_list if_termin
  4113. 14 | . WHILE expr DO stmt_list END
  4114. 15 | . FOR IDENT IN expr DO stmt_list END
  4115. 16 | . assign_expr
  4116. 20 assign_expr: . IDENT ASSIGN expr
  4117. 21 | . IDENT ASSIGNPLUS expr
  4118. 22 | . IDENT ASSIGNMINUS expr
  4119. 23 | . IDENT ASSIGNSTAR expr
  4120. 24 | . IDENT ASSIGNSLASH expr
  4121. 25 | . IDENT ASSIGNDSTAR expr
  4122. 26 | . IDENT ASSIGNBAND expr
  4123. 27 | . IDENT ASSIGNBOR expr
  4124. 28 | . IDENT ASSIGNBXOR expr
  4125. 29 | . ex_index_expr ASSIGN expr
  4126. 30 | . ex_index_expr ASSIGNPLUS expr
  4127. 31 | . ex_index_expr ASSIGNMINUS expr
  4128. 32 | . ex_index_expr ASSIGNSTAR expr
  4129. 33 | . ex_index_expr ASSIGNSLASH expr
  4130. 34 | . ex_index_expr ASSIGNDSTAR expr
  4131. 35 | . ex_index_expr ASSIGNBAND expr
  4132. 36 | . ex_index_expr ASSIGNBOR expr
  4133. 37 | . ex_index_expr ASSIGNBXOR expr
  4134. 38 | . logic_expr
  4135. 39 logic_expr: . logic_expr LAND ulogic_expr
  4136. 40 | . logic_expr LOR ulogic_expr
  4137. 41 | . ulogic_expr
  4138. 42 ulogic_expr: . LNOT ulogic_expr
  4139. 43 | . rel_expr
  4140. 44 rel_expr: . term_expr EQUAL rel_expr
  4141. 45 | . term_expr NEQUAL rel_expr
  4142. 46 | . term_expr LESS rel_expr
  4143. 47 | . term_expr GREATER rel_expr
  4144. 48 | . term_expr LESSEQ rel_expr
  4145. 49 | . term_expr GREATEREQ rel_expr
  4146. 50 | . term_expr
  4147. 51 term_expr: . term_expr PLUS factor_expr
  4148. 51 | term_expr PLUS . factor_expr
  4149. 52 | . term_expr MINUS factor_expr
  4150. 53 | . factor_expr
  4151. 54 factor_expr: . factor_expr STAR power_expr
  4152. 55 | . factor_expr SLASH power_expr
  4153. 56 | . factor_expr PERCENT power_expr
  4154. 57 | . power_expr
  4155. 58 power_expr: . tbang_expr DSTAR power_expr
  4156. 59 | . tbang_expr
  4157. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4158. 61 | . binary_expr
  4159. 62 binary_expr: . binary_expr BAND binary_expr
  4160. 63 | . binary_expr BOR binary_expr
  4161. 64 | . binary_expr BXOR binary_expr
  4162. 65 | . binary_expr LSHIFT binary_expr
  4163. 66 | . binary_expr RSHIFT binary_expr
  4164. 67 | . ubinary_expr
  4165. 68 ubinary_expr: . BNOT ubinary_expr
  4166. 69 | . ulen_expr
  4167. 70 ulen_expr: . POUND ulen_expr
  4168. 71 | . call_expr
  4169. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4170. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4171. 74 | . funcdecl_expr
  4172. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4173. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4174. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4175. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4176. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4177. 80 | . index_expr
  4178. 81 index_expr: . expr LBRACKET expr RBRACKET
  4179. 82 | . expr DOT IDENT
  4180. 83 | . ref_expr
  4181. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4182. 85 | . expr DOT IDENT
  4183. 86 ref_expr: . IDENT
  4184. 87 | . lit_expr
  4185. 88 lit_expr: . INT
  4186. 89 | . MINUS INT
  4187. 90 | . FLOAT
  4188. 91 | . STRING
  4189. 92 | . NONE
  4190. 93 | . gen_expr
  4191. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4192. 95 | . LBRACE assoc_list RBRACE
  4193. 96 | . paren_expr
  4194. 97 paren_expr: . any_lparen expr RPAREN
  4195. 113 any_lparen: . LPAREN
  4196. 114 | . BLPAREN
  4197. IF shift, and go to state 4
  4198. WHILE shift, and go to state 5
  4199. FOR shift, and go to state 6
  4200. FUNC shift, and go to state 7
  4201. MACRO shift, and go to state 8
  4202. LAMBDA shift, and go to state 9
  4203. NONE shift, and go to state 13
  4204. IDENT shift, and go to state 14
  4205. INT shift, and go to state 15
  4206. FLOAT shift, and go to state 16
  4207. STRING shift, and go to state 17
  4208. MINUS shift, and go to state 18
  4209. BNOT shift, and go to state 19
  4210. LNOT shift, and go to state 20
  4211. LBRACE shift, and go to state 21
  4212. BLPAREN shift, and go to state 22
  4213. LPAREN shift, and go to state 23
  4214. LBRACKET shift, and go to state 24
  4215. POUND shift, and go to state 25
  4216. expr go to state 70
  4217. control_expr go to state 28
  4218. assign_expr go to state 29
  4219. logic_expr go to state 30
  4220. ulogic_expr go to state 31
  4221. rel_expr go to state 32
  4222. term_expr go to state 33
  4223. factor_expr go to state 144
  4224. power_expr go to state 35
  4225. tbang_expr go to state 36
  4226. binary_expr go to state 37
  4227. ubinary_expr go to state 38
  4228. ulen_expr go to state 39
  4229. call_expr go to state 40
  4230. funcdecl_expr go to state 41
  4231. index_expr go to state 42
  4232. ex_index_expr go to state 43
  4233. ref_expr go to state 44
  4234. lit_expr go to state 45
  4235. gen_expr go to state 46
  4236. paren_expr go to state 47
  4237. any_lparen go to state 48
  4238. State 86
  4239. 12 expr: . control_expr
  4240. 13 control_expr: . IF expr THEN stmt_list if_termin
  4241. 14 | . WHILE expr DO stmt_list END
  4242. 15 | . FOR IDENT IN expr DO stmt_list END
  4243. 16 | . assign_expr
  4244. 20 assign_expr: . IDENT ASSIGN expr
  4245. 21 | . IDENT ASSIGNPLUS expr
  4246. 22 | . IDENT ASSIGNMINUS expr
  4247. 23 | . IDENT ASSIGNSTAR expr
  4248. 24 | . IDENT ASSIGNSLASH expr
  4249. 25 | . IDENT ASSIGNDSTAR expr
  4250. 26 | . IDENT ASSIGNBAND expr
  4251. 27 | . IDENT ASSIGNBOR expr
  4252. 28 | . IDENT ASSIGNBXOR expr
  4253. 29 | . ex_index_expr ASSIGN expr
  4254. 30 | . ex_index_expr ASSIGNPLUS expr
  4255. 31 | . ex_index_expr ASSIGNMINUS expr
  4256. 32 | . ex_index_expr ASSIGNSTAR expr
  4257. 33 | . ex_index_expr ASSIGNSLASH expr
  4258. 34 | . ex_index_expr ASSIGNDSTAR expr
  4259. 35 | . ex_index_expr ASSIGNBAND expr
  4260. 36 | . ex_index_expr ASSIGNBOR expr
  4261. 37 | . ex_index_expr ASSIGNBXOR expr
  4262. 38 | . logic_expr
  4263. 39 logic_expr: . logic_expr LAND ulogic_expr
  4264. 40 | . logic_expr LOR ulogic_expr
  4265. 41 | . ulogic_expr
  4266. 42 ulogic_expr: . LNOT ulogic_expr
  4267. 43 | . rel_expr
  4268. 44 rel_expr: . term_expr EQUAL rel_expr
  4269. 45 | . term_expr NEQUAL rel_expr
  4270. 46 | . term_expr LESS rel_expr
  4271. 47 | . term_expr GREATER rel_expr
  4272. 48 | . term_expr LESSEQ rel_expr
  4273. 49 | . term_expr GREATEREQ rel_expr
  4274. 50 | . term_expr
  4275. 51 term_expr: . term_expr PLUS factor_expr
  4276. 52 | . term_expr MINUS factor_expr
  4277. 52 | term_expr MINUS . factor_expr
  4278. 53 | . factor_expr
  4279. 54 factor_expr: . factor_expr STAR power_expr
  4280. 55 | . factor_expr SLASH power_expr
  4281. 56 | . factor_expr PERCENT power_expr
  4282. 57 | . power_expr
  4283. 58 power_expr: . tbang_expr DSTAR power_expr
  4284. 59 | . tbang_expr
  4285. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4286. 61 | . binary_expr
  4287. 62 binary_expr: . binary_expr BAND binary_expr
  4288. 63 | . binary_expr BOR binary_expr
  4289. 64 | . binary_expr BXOR binary_expr
  4290. 65 | . binary_expr LSHIFT binary_expr
  4291. 66 | . binary_expr RSHIFT binary_expr
  4292. 67 | . ubinary_expr
  4293. 68 ubinary_expr: . BNOT ubinary_expr
  4294. 69 | . ulen_expr
  4295. 70 ulen_expr: . POUND ulen_expr
  4296. 71 | . call_expr
  4297. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4298. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4299. 74 | . funcdecl_expr
  4300. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4301. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4302. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4303. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4304. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4305. 80 | . index_expr
  4306. 81 index_expr: . expr LBRACKET expr RBRACKET
  4307. 82 | . expr DOT IDENT
  4308. 83 | . ref_expr
  4309. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4310. 85 | . expr DOT IDENT
  4311. 86 ref_expr: . IDENT
  4312. 87 | . lit_expr
  4313. 88 lit_expr: . INT
  4314. 89 | . MINUS INT
  4315. 90 | . FLOAT
  4316. 91 | . STRING
  4317. 92 | . NONE
  4318. 93 | . gen_expr
  4319. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4320. 95 | . LBRACE assoc_list RBRACE
  4321. 96 | . paren_expr
  4322. 97 paren_expr: . any_lparen expr RPAREN
  4323. 113 any_lparen: . LPAREN
  4324. 114 | . BLPAREN
  4325. IF shift, and go to state 4
  4326. WHILE shift, and go to state 5
  4327. FOR shift, and go to state 6
  4328. FUNC shift, and go to state 7
  4329. MACRO shift, and go to state 8
  4330. LAMBDA shift, and go to state 9
  4331. NONE shift, and go to state 13
  4332. IDENT shift, and go to state 14
  4333. INT shift, and go to state 15
  4334. FLOAT shift, and go to state 16
  4335. STRING shift, and go to state 17
  4336. MINUS shift, and go to state 18
  4337. BNOT shift, and go to state 19
  4338. LNOT shift, and go to state 20
  4339. LBRACE shift, and go to state 21
  4340. BLPAREN shift, and go to state 22
  4341. LPAREN shift, and go to state 23
  4342. LBRACKET shift, and go to state 24
  4343. POUND shift, and go to state 25
  4344. expr go to state 70
  4345. control_expr go to state 28
  4346. assign_expr go to state 29
  4347. logic_expr go to state 30
  4348. ulogic_expr go to state 31
  4349. rel_expr go to state 32
  4350. term_expr go to state 33
  4351. factor_expr go to state 145
  4352. power_expr go to state 35
  4353. tbang_expr go to state 36
  4354. binary_expr go to state 37
  4355. ubinary_expr go to state 38
  4356. ulen_expr go to state 39
  4357. call_expr go to state 40
  4358. funcdecl_expr go to state 41
  4359. index_expr go to state 42
  4360. ex_index_expr go to state 43
  4361. ref_expr go to state 44
  4362. lit_expr go to state 45
  4363. gen_expr go to state 46
  4364. paren_expr go to state 47
  4365. any_lparen go to state 48
  4366. State 87
  4367. 12 expr: . control_expr
  4368. 13 control_expr: . IF expr THEN stmt_list if_termin
  4369. 14 | . WHILE expr DO stmt_list END
  4370. 15 | . FOR IDENT IN expr DO stmt_list END
  4371. 16 | . assign_expr
  4372. 20 assign_expr: . IDENT ASSIGN expr
  4373. 21 | . IDENT ASSIGNPLUS expr
  4374. 22 | . IDENT ASSIGNMINUS expr
  4375. 23 | . IDENT ASSIGNSTAR expr
  4376. 24 | . IDENT ASSIGNSLASH expr
  4377. 25 | . IDENT ASSIGNDSTAR expr
  4378. 26 | . IDENT ASSIGNBAND expr
  4379. 27 | . IDENT ASSIGNBOR expr
  4380. 28 | . IDENT ASSIGNBXOR expr
  4381. 29 | . ex_index_expr ASSIGN expr
  4382. 30 | . ex_index_expr ASSIGNPLUS expr
  4383. 31 | . ex_index_expr ASSIGNMINUS expr
  4384. 32 | . ex_index_expr ASSIGNSTAR expr
  4385. 33 | . ex_index_expr ASSIGNSLASH expr
  4386. 34 | . ex_index_expr ASSIGNDSTAR expr
  4387. 35 | . ex_index_expr ASSIGNBAND expr
  4388. 36 | . ex_index_expr ASSIGNBOR expr
  4389. 37 | . ex_index_expr ASSIGNBXOR expr
  4390. 38 | . logic_expr
  4391. 39 logic_expr: . logic_expr LAND ulogic_expr
  4392. 40 | . logic_expr LOR ulogic_expr
  4393. 41 | . ulogic_expr
  4394. 42 ulogic_expr: . LNOT ulogic_expr
  4395. 43 | . rel_expr
  4396. 44 rel_expr: . term_expr EQUAL rel_expr
  4397. 44 | term_expr EQUAL . rel_expr
  4398. 45 | . term_expr NEQUAL rel_expr
  4399. 46 | . term_expr LESS rel_expr
  4400. 47 | . term_expr GREATER rel_expr
  4401. 48 | . term_expr LESSEQ rel_expr
  4402. 49 | . term_expr GREATEREQ rel_expr
  4403. 50 | . term_expr
  4404. 51 term_expr: . term_expr PLUS factor_expr
  4405. 52 | . term_expr MINUS factor_expr
  4406. 53 | . factor_expr
  4407. 54 factor_expr: . factor_expr STAR power_expr
  4408. 55 | . factor_expr SLASH power_expr
  4409. 56 | . factor_expr PERCENT power_expr
  4410. 57 | . power_expr
  4411. 58 power_expr: . tbang_expr DSTAR power_expr
  4412. 59 | . tbang_expr
  4413. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4414. 61 | . binary_expr
  4415. 62 binary_expr: . binary_expr BAND binary_expr
  4416. 63 | . binary_expr BOR binary_expr
  4417. 64 | . binary_expr BXOR binary_expr
  4418. 65 | . binary_expr LSHIFT binary_expr
  4419. 66 | . binary_expr RSHIFT binary_expr
  4420. 67 | . ubinary_expr
  4421. 68 ubinary_expr: . BNOT ubinary_expr
  4422. 69 | . ulen_expr
  4423. 70 ulen_expr: . POUND ulen_expr
  4424. 71 | . call_expr
  4425. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4426. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4427. 74 | . funcdecl_expr
  4428. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4429. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4430. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4431. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4432. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4433. 80 | . index_expr
  4434. 81 index_expr: . expr LBRACKET expr RBRACKET
  4435. 82 | . expr DOT IDENT
  4436. 83 | . ref_expr
  4437. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4438. 85 | . expr DOT IDENT
  4439. 86 ref_expr: . IDENT
  4440. 87 | . lit_expr
  4441. 88 lit_expr: . INT
  4442. 89 | . MINUS INT
  4443. 90 | . FLOAT
  4444. 91 | . STRING
  4445. 92 | . NONE
  4446. 93 | . gen_expr
  4447. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4448. 95 | . LBRACE assoc_list RBRACE
  4449. 96 | . paren_expr
  4450. 97 paren_expr: . any_lparen expr RPAREN
  4451. 113 any_lparen: . LPAREN
  4452. 114 | . BLPAREN
  4453. IF shift, and go to state 4
  4454. WHILE shift, and go to state 5
  4455. FOR shift, and go to state 6
  4456. FUNC shift, and go to state 7
  4457. MACRO shift, and go to state 8
  4458. LAMBDA shift, and go to state 9
  4459. NONE shift, and go to state 13
  4460. IDENT shift, and go to state 14
  4461. INT shift, and go to state 15
  4462. FLOAT shift, and go to state 16
  4463. STRING shift, and go to state 17
  4464. MINUS shift, and go to state 18
  4465. BNOT shift, and go to state 19
  4466. LNOT shift, and go to state 20
  4467. LBRACE shift, and go to state 21
  4468. BLPAREN shift, and go to state 22
  4469. LPAREN shift, and go to state 23
  4470. LBRACKET shift, and go to state 24
  4471. POUND shift, and go to state 25
  4472. expr go to state 70
  4473. control_expr go to state 28
  4474. assign_expr go to state 29
  4475. logic_expr go to state 30
  4476. ulogic_expr go to state 31
  4477. rel_expr go to state 146
  4478. term_expr go to state 33
  4479. factor_expr go to state 34
  4480. power_expr go to state 35
  4481. tbang_expr go to state 36
  4482. binary_expr go to state 37
  4483. ubinary_expr go to state 38
  4484. ulen_expr go to state 39
  4485. call_expr go to state 40
  4486. funcdecl_expr go to state 41
  4487. index_expr go to state 42
  4488. ex_index_expr go to state 43
  4489. ref_expr go to state 44
  4490. lit_expr go to state 45
  4491. gen_expr go to state 46
  4492. paren_expr go to state 47
  4493. any_lparen go to state 48
  4494. State 88
  4495. 12 expr: . control_expr
  4496. 13 control_expr: . IF expr THEN stmt_list if_termin
  4497. 14 | . WHILE expr DO stmt_list END
  4498. 15 | . FOR IDENT IN expr DO stmt_list END
  4499. 16 | . assign_expr
  4500. 20 assign_expr: . IDENT ASSIGN expr
  4501. 21 | . IDENT ASSIGNPLUS expr
  4502. 22 | . IDENT ASSIGNMINUS expr
  4503. 23 | . IDENT ASSIGNSTAR expr
  4504. 24 | . IDENT ASSIGNSLASH expr
  4505. 25 | . IDENT ASSIGNDSTAR expr
  4506. 26 | . IDENT ASSIGNBAND expr
  4507. 27 | . IDENT ASSIGNBOR expr
  4508. 28 | . IDENT ASSIGNBXOR expr
  4509. 29 | . ex_index_expr ASSIGN expr
  4510. 30 | . ex_index_expr ASSIGNPLUS expr
  4511. 31 | . ex_index_expr ASSIGNMINUS expr
  4512. 32 | . ex_index_expr ASSIGNSTAR expr
  4513. 33 | . ex_index_expr ASSIGNSLASH expr
  4514. 34 | . ex_index_expr ASSIGNDSTAR expr
  4515. 35 | . ex_index_expr ASSIGNBAND expr
  4516. 36 | . ex_index_expr ASSIGNBOR expr
  4517. 37 | . ex_index_expr ASSIGNBXOR expr
  4518. 38 | . logic_expr
  4519. 39 logic_expr: . logic_expr LAND ulogic_expr
  4520. 40 | . logic_expr LOR ulogic_expr
  4521. 41 | . ulogic_expr
  4522. 42 ulogic_expr: . LNOT ulogic_expr
  4523. 43 | . rel_expr
  4524. 44 rel_expr: . term_expr EQUAL rel_expr
  4525. 45 | . term_expr NEQUAL rel_expr
  4526. 45 | term_expr NEQUAL . rel_expr
  4527. 46 | . term_expr LESS rel_expr
  4528. 47 | . term_expr GREATER rel_expr
  4529. 48 | . term_expr LESSEQ rel_expr
  4530. 49 | . term_expr GREATEREQ rel_expr
  4531. 50 | . term_expr
  4532. 51 term_expr: . term_expr PLUS factor_expr
  4533. 52 | . term_expr MINUS factor_expr
  4534. 53 | . factor_expr
  4535. 54 factor_expr: . factor_expr STAR power_expr
  4536. 55 | . factor_expr SLASH power_expr
  4537. 56 | . factor_expr PERCENT power_expr
  4538. 57 | . power_expr
  4539. 58 power_expr: . tbang_expr DSTAR power_expr
  4540. 59 | . tbang_expr
  4541. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4542. 61 | . binary_expr
  4543. 62 binary_expr: . binary_expr BAND binary_expr
  4544. 63 | . binary_expr BOR binary_expr
  4545. 64 | . binary_expr BXOR binary_expr
  4546. 65 | . binary_expr LSHIFT binary_expr
  4547. 66 | . binary_expr RSHIFT binary_expr
  4548. 67 | . ubinary_expr
  4549. 68 ubinary_expr: . BNOT ubinary_expr
  4550. 69 | . ulen_expr
  4551. 70 ulen_expr: . POUND ulen_expr
  4552. 71 | . call_expr
  4553. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4554. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4555. 74 | . funcdecl_expr
  4556. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4557. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4558. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4559. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4560. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4561. 80 | . index_expr
  4562. 81 index_expr: . expr LBRACKET expr RBRACKET
  4563. 82 | . expr DOT IDENT
  4564. 83 | . ref_expr
  4565. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4566. 85 | . expr DOT IDENT
  4567. 86 ref_expr: . IDENT
  4568. 87 | . lit_expr
  4569. 88 lit_expr: . INT
  4570. 89 | . MINUS INT
  4571. 90 | . FLOAT
  4572. 91 | . STRING
  4573. 92 | . NONE
  4574. 93 | . gen_expr
  4575. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4576. 95 | . LBRACE assoc_list RBRACE
  4577. 96 | . paren_expr
  4578. 97 paren_expr: . any_lparen expr RPAREN
  4579. 113 any_lparen: . LPAREN
  4580. 114 | . BLPAREN
  4581. IF shift, and go to state 4
  4582. WHILE shift, and go to state 5
  4583. FOR shift, and go to state 6
  4584. FUNC shift, and go to state 7
  4585. MACRO shift, and go to state 8
  4586. LAMBDA shift, and go to state 9
  4587. NONE shift, and go to state 13
  4588. IDENT shift, and go to state 14
  4589. INT shift, and go to state 15
  4590. FLOAT shift, and go to state 16
  4591. STRING shift, and go to state 17
  4592. MINUS shift, and go to state 18
  4593. BNOT shift, and go to state 19
  4594. LNOT shift, and go to state 20
  4595. LBRACE shift, and go to state 21
  4596. BLPAREN shift, and go to state 22
  4597. LPAREN shift, and go to state 23
  4598. LBRACKET shift, and go to state 24
  4599. POUND shift, and go to state 25
  4600. expr go to state 70
  4601. control_expr go to state 28
  4602. assign_expr go to state 29
  4603. logic_expr go to state 30
  4604. ulogic_expr go to state 31
  4605. rel_expr go to state 147
  4606. term_expr go to state 33
  4607. factor_expr go to state 34
  4608. power_expr go to state 35
  4609. tbang_expr go to state 36
  4610. binary_expr go to state 37
  4611. ubinary_expr go to state 38
  4612. ulen_expr go to state 39
  4613. call_expr go to state 40
  4614. funcdecl_expr go to state 41
  4615. index_expr go to state 42
  4616. ex_index_expr go to state 43
  4617. ref_expr go to state 44
  4618. lit_expr go to state 45
  4619. gen_expr go to state 46
  4620. paren_expr go to state 47
  4621. any_lparen go to state 48
  4622. State 89
  4623. 12 expr: . control_expr
  4624. 13 control_expr: . IF expr THEN stmt_list if_termin
  4625. 14 | . WHILE expr DO stmt_list END
  4626. 15 | . FOR IDENT IN expr DO stmt_list END
  4627. 16 | . assign_expr
  4628. 20 assign_expr: . IDENT ASSIGN expr
  4629. 21 | . IDENT ASSIGNPLUS expr
  4630. 22 | . IDENT ASSIGNMINUS expr
  4631. 23 | . IDENT ASSIGNSTAR expr
  4632. 24 | . IDENT ASSIGNSLASH expr
  4633. 25 | . IDENT ASSIGNDSTAR expr
  4634. 26 | . IDENT ASSIGNBAND expr
  4635. 27 | . IDENT ASSIGNBOR expr
  4636. 28 | . IDENT ASSIGNBXOR expr
  4637. 29 | . ex_index_expr ASSIGN expr
  4638. 30 | . ex_index_expr ASSIGNPLUS expr
  4639. 31 | . ex_index_expr ASSIGNMINUS expr
  4640. 32 | . ex_index_expr ASSIGNSTAR expr
  4641. 33 | . ex_index_expr ASSIGNSLASH expr
  4642. 34 | . ex_index_expr ASSIGNDSTAR expr
  4643. 35 | . ex_index_expr ASSIGNBAND expr
  4644. 36 | . ex_index_expr ASSIGNBOR expr
  4645. 37 | . ex_index_expr ASSIGNBXOR expr
  4646. 38 | . logic_expr
  4647. 39 logic_expr: . logic_expr LAND ulogic_expr
  4648. 40 | . logic_expr LOR ulogic_expr
  4649. 41 | . ulogic_expr
  4650. 42 ulogic_expr: . LNOT ulogic_expr
  4651. 43 | . rel_expr
  4652. 44 rel_expr: . term_expr EQUAL rel_expr
  4653. 45 | . term_expr NEQUAL rel_expr
  4654. 46 | . term_expr LESS rel_expr
  4655. 46 | term_expr LESS . rel_expr
  4656. 47 | . term_expr GREATER rel_expr
  4657. 48 | . term_expr LESSEQ rel_expr
  4658. 49 | . term_expr GREATEREQ rel_expr
  4659. 50 | . term_expr
  4660. 51 term_expr: . term_expr PLUS factor_expr
  4661. 52 | . term_expr MINUS factor_expr
  4662. 53 | . factor_expr
  4663. 54 factor_expr: . factor_expr STAR power_expr
  4664. 55 | . factor_expr SLASH power_expr
  4665. 56 | . factor_expr PERCENT power_expr
  4666. 57 | . power_expr
  4667. 58 power_expr: . tbang_expr DSTAR power_expr
  4668. 59 | . tbang_expr
  4669. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4670. 61 | . binary_expr
  4671. 62 binary_expr: . binary_expr BAND binary_expr
  4672. 63 | . binary_expr BOR binary_expr
  4673. 64 | . binary_expr BXOR binary_expr
  4674. 65 | . binary_expr LSHIFT binary_expr
  4675. 66 | . binary_expr RSHIFT binary_expr
  4676. 67 | . ubinary_expr
  4677. 68 ubinary_expr: . BNOT ubinary_expr
  4678. 69 | . ulen_expr
  4679. 70 ulen_expr: . POUND ulen_expr
  4680. 71 | . call_expr
  4681. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4682. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4683. 74 | . funcdecl_expr
  4684. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4685. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4686. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4687. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4688. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4689. 80 | . index_expr
  4690. 81 index_expr: . expr LBRACKET expr RBRACKET
  4691. 82 | . expr DOT IDENT
  4692. 83 | . ref_expr
  4693. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4694. 85 | . expr DOT IDENT
  4695. 86 ref_expr: . IDENT
  4696. 87 | . lit_expr
  4697. 88 lit_expr: . INT
  4698. 89 | . MINUS INT
  4699. 90 | . FLOAT
  4700. 91 | . STRING
  4701. 92 | . NONE
  4702. 93 | . gen_expr
  4703. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4704. 95 | . LBRACE assoc_list RBRACE
  4705. 96 | . paren_expr
  4706. 97 paren_expr: . any_lparen expr RPAREN
  4707. 113 any_lparen: . LPAREN
  4708. 114 | . BLPAREN
  4709. IF shift, and go to state 4
  4710. WHILE shift, and go to state 5
  4711. FOR shift, and go to state 6
  4712. FUNC shift, and go to state 7
  4713. MACRO shift, and go to state 8
  4714. LAMBDA shift, and go to state 9
  4715. NONE shift, and go to state 13
  4716. IDENT shift, and go to state 14
  4717. INT shift, and go to state 15
  4718. FLOAT shift, and go to state 16
  4719. STRING shift, and go to state 17
  4720. MINUS shift, and go to state 18
  4721. BNOT shift, and go to state 19
  4722. LNOT shift, and go to state 20
  4723. LBRACE shift, and go to state 21
  4724. BLPAREN shift, and go to state 22
  4725. LPAREN shift, and go to state 23
  4726. LBRACKET shift, and go to state 24
  4727. POUND shift, and go to state 25
  4728. expr go to state 70
  4729. control_expr go to state 28
  4730. assign_expr go to state 29
  4731. logic_expr go to state 30
  4732. ulogic_expr go to state 31
  4733. rel_expr go to state 148
  4734. term_expr go to state 33
  4735. factor_expr go to state 34
  4736. power_expr go to state 35
  4737. tbang_expr go to state 36
  4738. binary_expr go to state 37
  4739. ubinary_expr go to state 38
  4740. ulen_expr go to state 39
  4741. call_expr go to state 40
  4742. funcdecl_expr go to state 41
  4743. index_expr go to state 42
  4744. ex_index_expr go to state 43
  4745. ref_expr go to state 44
  4746. lit_expr go to state 45
  4747. gen_expr go to state 46
  4748. paren_expr go to state 47
  4749. any_lparen go to state 48
  4750. State 90
  4751. 12 expr: . control_expr
  4752. 13 control_expr: . IF expr THEN stmt_list if_termin
  4753. 14 | . WHILE expr DO stmt_list END
  4754. 15 | . FOR IDENT IN expr DO stmt_list END
  4755. 16 | . assign_expr
  4756. 20 assign_expr: . IDENT ASSIGN expr
  4757. 21 | . IDENT ASSIGNPLUS expr
  4758. 22 | . IDENT ASSIGNMINUS expr
  4759. 23 | . IDENT ASSIGNSTAR expr
  4760. 24 | . IDENT ASSIGNSLASH expr
  4761. 25 | . IDENT ASSIGNDSTAR expr
  4762. 26 | . IDENT ASSIGNBAND expr
  4763. 27 | . IDENT ASSIGNBOR expr
  4764. 28 | . IDENT ASSIGNBXOR expr
  4765. 29 | . ex_index_expr ASSIGN expr
  4766. 30 | . ex_index_expr ASSIGNPLUS expr
  4767. 31 | . ex_index_expr ASSIGNMINUS expr
  4768. 32 | . ex_index_expr ASSIGNSTAR expr
  4769. 33 | . ex_index_expr ASSIGNSLASH expr
  4770. 34 | . ex_index_expr ASSIGNDSTAR expr
  4771. 35 | . ex_index_expr ASSIGNBAND expr
  4772. 36 | . ex_index_expr ASSIGNBOR expr
  4773. 37 | . ex_index_expr ASSIGNBXOR expr
  4774. 38 | . logic_expr
  4775. 39 logic_expr: . logic_expr LAND ulogic_expr
  4776. 40 | . logic_expr LOR ulogic_expr
  4777. 41 | . ulogic_expr
  4778. 42 ulogic_expr: . LNOT ulogic_expr
  4779. 43 | . rel_expr
  4780. 44 rel_expr: . term_expr EQUAL rel_expr
  4781. 45 | . term_expr NEQUAL rel_expr
  4782. 46 | . term_expr LESS rel_expr
  4783. 47 | . term_expr GREATER rel_expr
  4784. 47 | term_expr GREATER . rel_expr
  4785. 48 | . term_expr LESSEQ rel_expr
  4786. 49 | . term_expr GREATEREQ rel_expr
  4787. 50 | . term_expr
  4788. 51 term_expr: . term_expr PLUS factor_expr
  4789. 52 | . term_expr MINUS factor_expr
  4790. 53 | . factor_expr
  4791. 54 factor_expr: . factor_expr STAR power_expr
  4792. 55 | . factor_expr SLASH power_expr
  4793. 56 | . factor_expr PERCENT power_expr
  4794. 57 | . power_expr
  4795. 58 power_expr: . tbang_expr DSTAR power_expr
  4796. 59 | . tbang_expr
  4797. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4798. 61 | . binary_expr
  4799. 62 binary_expr: . binary_expr BAND binary_expr
  4800. 63 | . binary_expr BOR binary_expr
  4801. 64 | . binary_expr BXOR binary_expr
  4802. 65 | . binary_expr LSHIFT binary_expr
  4803. 66 | . binary_expr RSHIFT binary_expr
  4804. 67 | . ubinary_expr
  4805. 68 ubinary_expr: . BNOT ubinary_expr
  4806. 69 | . ulen_expr
  4807. 70 ulen_expr: . POUND ulen_expr
  4808. 71 | . call_expr
  4809. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4810. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4811. 74 | . funcdecl_expr
  4812. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4813. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4814. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4815. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4816. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4817. 80 | . index_expr
  4818. 81 index_expr: . expr LBRACKET expr RBRACKET
  4819. 82 | . expr DOT IDENT
  4820. 83 | . ref_expr
  4821. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4822. 85 | . expr DOT IDENT
  4823. 86 ref_expr: . IDENT
  4824. 87 | . lit_expr
  4825. 88 lit_expr: . INT
  4826. 89 | . MINUS INT
  4827. 90 | . FLOAT
  4828. 91 | . STRING
  4829. 92 | . NONE
  4830. 93 | . gen_expr
  4831. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4832. 95 | . LBRACE assoc_list RBRACE
  4833. 96 | . paren_expr
  4834. 97 paren_expr: . any_lparen expr RPAREN
  4835. 113 any_lparen: . LPAREN
  4836. 114 | . BLPAREN
  4837. IF shift, and go to state 4
  4838. WHILE shift, and go to state 5
  4839. FOR shift, and go to state 6
  4840. FUNC shift, and go to state 7
  4841. MACRO shift, and go to state 8
  4842. LAMBDA shift, and go to state 9
  4843. NONE shift, and go to state 13
  4844. IDENT shift, and go to state 14
  4845. INT shift, and go to state 15
  4846. FLOAT shift, and go to state 16
  4847. STRING shift, and go to state 17
  4848. MINUS shift, and go to state 18
  4849. BNOT shift, and go to state 19
  4850. LNOT shift, and go to state 20
  4851. LBRACE shift, and go to state 21
  4852. BLPAREN shift, and go to state 22
  4853. LPAREN shift, and go to state 23
  4854. LBRACKET shift, and go to state 24
  4855. POUND shift, and go to state 25
  4856. expr go to state 70
  4857. control_expr go to state 28
  4858. assign_expr go to state 29
  4859. logic_expr go to state 30
  4860. ulogic_expr go to state 31
  4861. rel_expr go to state 149
  4862. term_expr go to state 33
  4863. factor_expr go to state 34
  4864. power_expr go to state 35
  4865. tbang_expr go to state 36
  4866. binary_expr go to state 37
  4867. ubinary_expr go to state 38
  4868. ulen_expr go to state 39
  4869. call_expr go to state 40
  4870. funcdecl_expr go to state 41
  4871. index_expr go to state 42
  4872. ex_index_expr go to state 43
  4873. ref_expr go to state 44
  4874. lit_expr go to state 45
  4875. gen_expr go to state 46
  4876. paren_expr go to state 47
  4877. any_lparen go to state 48
  4878. State 91
  4879. 12 expr: . control_expr
  4880. 13 control_expr: . IF expr THEN stmt_list if_termin
  4881. 14 | . WHILE expr DO stmt_list END
  4882. 15 | . FOR IDENT IN expr DO stmt_list END
  4883. 16 | . assign_expr
  4884. 20 assign_expr: . IDENT ASSIGN expr
  4885. 21 | . IDENT ASSIGNPLUS expr
  4886. 22 | . IDENT ASSIGNMINUS expr
  4887. 23 | . IDENT ASSIGNSTAR expr
  4888. 24 | . IDENT ASSIGNSLASH expr
  4889. 25 | . IDENT ASSIGNDSTAR expr
  4890. 26 | . IDENT ASSIGNBAND expr
  4891. 27 | . IDENT ASSIGNBOR expr
  4892. 28 | . IDENT ASSIGNBXOR expr
  4893. 29 | . ex_index_expr ASSIGN expr
  4894. 30 | . ex_index_expr ASSIGNPLUS expr
  4895. 31 | . ex_index_expr ASSIGNMINUS expr
  4896. 32 | . ex_index_expr ASSIGNSTAR expr
  4897. 33 | . ex_index_expr ASSIGNSLASH expr
  4898. 34 | . ex_index_expr ASSIGNDSTAR expr
  4899. 35 | . ex_index_expr ASSIGNBAND expr
  4900. 36 | . ex_index_expr ASSIGNBOR expr
  4901. 37 | . ex_index_expr ASSIGNBXOR expr
  4902. 38 | . logic_expr
  4903. 39 logic_expr: . logic_expr LAND ulogic_expr
  4904. 40 | . logic_expr LOR ulogic_expr
  4905. 41 | . ulogic_expr
  4906. 42 ulogic_expr: . LNOT ulogic_expr
  4907. 43 | . rel_expr
  4908. 44 rel_expr: . term_expr EQUAL rel_expr
  4909. 45 | . term_expr NEQUAL rel_expr
  4910. 46 | . term_expr LESS rel_expr
  4911. 47 | . term_expr GREATER rel_expr
  4912. 48 | . term_expr LESSEQ rel_expr
  4913. 48 | term_expr LESSEQ . rel_expr
  4914. 49 | . term_expr GREATEREQ rel_expr
  4915. 50 | . term_expr
  4916. 51 term_expr: . term_expr PLUS factor_expr
  4917. 52 | . term_expr MINUS factor_expr
  4918. 53 | . factor_expr
  4919. 54 factor_expr: . factor_expr STAR power_expr
  4920. 55 | . factor_expr SLASH power_expr
  4921. 56 | . factor_expr PERCENT power_expr
  4922. 57 | . power_expr
  4923. 58 power_expr: . tbang_expr DSTAR power_expr
  4924. 59 | . tbang_expr
  4925. 60 tbang_expr: . binary_expr TBANG tbang_expr
  4926. 61 | . binary_expr
  4927. 62 binary_expr: . binary_expr BAND binary_expr
  4928. 63 | . binary_expr BOR binary_expr
  4929. 64 | . binary_expr BXOR binary_expr
  4930. 65 | . binary_expr LSHIFT binary_expr
  4931. 66 | . binary_expr RSHIFT binary_expr
  4932. 67 | . ubinary_expr
  4933. 68 ubinary_expr: . BNOT ubinary_expr
  4934. 69 | . ulen_expr
  4935. 70 ulen_expr: . POUND ulen_expr
  4936. 71 | . call_expr
  4937. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  4938. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  4939. 74 | . funcdecl_expr
  4940. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4941. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  4942. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  4943. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  4944. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  4945. 80 | . index_expr
  4946. 81 index_expr: . expr LBRACKET expr RBRACKET
  4947. 82 | . expr DOT IDENT
  4948. 83 | . ref_expr
  4949. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  4950. 85 | . expr DOT IDENT
  4951. 86 ref_expr: . IDENT
  4952. 87 | . lit_expr
  4953. 88 lit_expr: . INT
  4954. 89 | . MINUS INT
  4955. 90 | . FLOAT
  4956. 91 | . STRING
  4957. 92 | . NONE
  4958. 93 | . gen_expr
  4959. 94 gen_expr: . LBRACKET expr_list RBRACKET
  4960. 95 | . LBRACE assoc_list RBRACE
  4961. 96 | . paren_expr
  4962. 97 paren_expr: . any_lparen expr RPAREN
  4963. 113 any_lparen: . LPAREN
  4964. 114 | . BLPAREN
  4965. IF shift, and go to state 4
  4966. WHILE shift, and go to state 5
  4967. FOR shift, and go to state 6
  4968. FUNC shift, and go to state 7
  4969. MACRO shift, and go to state 8
  4970. LAMBDA shift, and go to state 9
  4971. NONE shift, and go to state 13
  4972. IDENT shift, and go to state 14
  4973. INT shift, and go to state 15
  4974. FLOAT shift, and go to state 16
  4975. STRING shift, and go to state 17
  4976. MINUS shift, and go to state 18
  4977. BNOT shift, and go to state 19
  4978. LNOT shift, and go to state 20
  4979. LBRACE shift, and go to state 21
  4980. BLPAREN shift, and go to state 22
  4981. LPAREN shift, and go to state 23
  4982. LBRACKET shift, and go to state 24
  4983. POUND shift, and go to state 25
  4984. expr go to state 70
  4985. control_expr go to state 28
  4986. assign_expr go to state 29
  4987. logic_expr go to state 30
  4988. ulogic_expr go to state 31
  4989. rel_expr go to state 150
  4990. term_expr go to state 33
  4991. factor_expr go to state 34
  4992. power_expr go to state 35
  4993. tbang_expr go to state 36
  4994. binary_expr go to state 37
  4995. ubinary_expr go to state 38
  4996. ulen_expr go to state 39
  4997. call_expr go to state 40
  4998. funcdecl_expr go to state 41
  4999. index_expr go to state 42
  5000. ex_index_expr go to state 43
  5001. ref_expr go to state 44
  5002. lit_expr go to state 45
  5003. gen_expr go to state 46
  5004. paren_expr go to state 47
  5005. any_lparen go to state 48
  5006. State 92
  5007. 12 expr: . control_expr
  5008. 13 control_expr: . IF expr THEN stmt_list if_termin
  5009. 14 | . WHILE expr DO stmt_list END
  5010. 15 | . FOR IDENT IN expr DO stmt_list END
  5011. 16 | . assign_expr
  5012. 20 assign_expr: . IDENT ASSIGN expr
  5013. 21 | . IDENT ASSIGNPLUS expr
  5014. 22 | . IDENT ASSIGNMINUS expr
  5015. 23 | . IDENT ASSIGNSTAR expr
  5016. 24 | . IDENT ASSIGNSLASH expr
  5017. 25 | . IDENT ASSIGNDSTAR expr
  5018. 26 | . IDENT ASSIGNBAND expr
  5019. 27 | . IDENT ASSIGNBOR expr
  5020. 28 | . IDENT ASSIGNBXOR expr
  5021. 29 | . ex_index_expr ASSIGN expr
  5022. 30 | . ex_index_expr ASSIGNPLUS expr
  5023. 31 | . ex_index_expr ASSIGNMINUS expr
  5024. 32 | . ex_index_expr ASSIGNSTAR expr
  5025. 33 | . ex_index_expr ASSIGNSLASH expr
  5026. 34 | . ex_index_expr ASSIGNDSTAR expr
  5027. 35 | . ex_index_expr ASSIGNBAND expr
  5028. 36 | . ex_index_expr ASSIGNBOR expr
  5029. 37 | . ex_index_expr ASSIGNBXOR expr
  5030. 38 | . logic_expr
  5031. 39 logic_expr: . logic_expr LAND ulogic_expr
  5032. 40 | . logic_expr LOR ulogic_expr
  5033. 41 | . ulogic_expr
  5034. 42 ulogic_expr: . LNOT ulogic_expr
  5035. 43 | . rel_expr
  5036. 44 rel_expr: . term_expr EQUAL rel_expr
  5037. 45 | . term_expr NEQUAL rel_expr
  5038. 46 | . term_expr LESS rel_expr
  5039. 47 | . term_expr GREATER rel_expr
  5040. 48 | . term_expr LESSEQ rel_expr
  5041. 49 | . term_expr GREATEREQ rel_expr
  5042. 49 | term_expr GREATEREQ . rel_expr
  5043. 50 | . term_expr
  5044. 51 term_expr: . term_expr PLUS factor_expr
  5045. 52 | . term_expr MINUS factor_expr
  5046. 53 | . factor_expr
  5047. 54 factor_expr: . factor_expr STAR power_expr
  5048. 55 | . factor_expr SLASH power_expr
  5049. 56 | . factor_expr PERCENT power_expr
  5050. 57 | . power_expr
  5051. 58 power_expr: . tbang_expr DSTAR power_expr
  5052. 59 | . tbang_expr
  5053. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5054. 61 | . binary_expr
  5055. 62 binary_expr: . binary_expr BAND binary_expr
  5056. 63 | . binary_expr BOR binary_expr
  5057. 64 | . binary_expr BXOR binary_expr
  5058. 65 | . binary_expr LSHIFT binary_expr
  5059. 66 | . binary_expr RSHIFT binary_expr
  5060. 67 | . ubinary_expr
  5061. 68 ubinary_expr: . BNOT ubinary_expr
  5062. 69 | . ulen_expr
  5063. 70 ulen_expr: . POUND ulen_expr
  5064. 71 | . call_expr
  5065. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5066. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5067. 74 | . funcdecl_expr
  5068. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5069. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5070. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5071. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5072. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5073. 80 | . index_expr
  5074. 81 index_expr: . expr LBRACKET expr RBRACKET
  5075. 82 | . expr DOT IDENT
  5076. 83 | . ref_expr
  5077. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5078. 85 | . expr DOT IDENT
  5079. 86 ref_expr: . IDENT
  5080. 87 | . lit_expr
  5081. 88 lit_expr: . INT
  5082. 89 | . MINUS INT
  5083. 90 | . FLOAT
  5084. 91 | . STRING
  5085. 92 | . NONE
  5086. 93 | . gen_expr
  5087. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5088. 95 | . LBRACE assoc_list RBRACE
  5089. 96 | . paren_expr
  5090. 97 paren_expr: . any_lparen expr RPAREN
  5091. 113 any_lparen: . LPAREN
  5092. 114 | . BLPAREN
  5093. IF shift, and go to state 4
  5094. WHILE shift, and go to state 5
  5095. FOR shift, and go to state 6
  5096. FUNC shift, and go to state 7
  5097. MACRO shift, and go to state 8
  5098. LAMBDA shift, and go to state 9
  5099. NONE shift, and go to state 13
  5100. IDENT shift, and go to state 14
  5101. INT shift, and go to state 15
  5102. FLOAT shift, and go to state 16
  5103. STRING shift, and go to state 17
  5104. MINUS shift, and go to state 18
  5105. BNOT shift, and go to state 19
  5106. LNOT shift, and go to state 20
  5107. LBRACE shift, and go to state 21
  5108. BLPAREN shift, and go to state 22
  5109. LPAREN shift, and go to state 23
  5110. LBRACKET shift, and go to state 24
  5111. POUND shift, and go to state 25
  5112. expr go to state 70
  5113. control_expr go to state 28
  5114. assign_expr go to state 29
  5115. logic_expr go to state 30
  5116. ulogic_expr go to state 31
  5117. rel_expr go to state 151
  5118. term_expr go to state 33
  5119. factor_expr go to state 34
  5120. power_expr go to state 35
  5121. tbang_expr go to state 36
  5122. binary_expr go to state 37
  5123. ubinary_expr go to state 38
  5124. ulen_expr go to state 39
  5125. call_expr go to state 40
  5126. funcdecl_expr go to state 41
  5127. index_expr go to state 42
  5128. ex_index_expr go to state 43
  5129. ref_expr go to state 44
  5130. lit_expr go to state 45
  5131. gen_expr go to state 46
  5132. paren_expr go to state 47
  5133. any_lparen go to state 48
  5134. State 93
  5135. 12 expr: . control_expr
  5136. 13 control_expr: . IF expr THEN stmt_list if_termin
  5137. 14 | . WHILE expr DO stmt_list END
  5138. 15 | . FOR IDENT IN expr DO stmt_list END
  5139. 16 | . assign_expr
  5140. 20 assign_expr: . IDENT ASSIGN expr
  5141. 21 | . IDENT ASSIGNPLUS expr
  5142. 22 | . IDENT ASSIGNMINUS expr
  5143. 23 | . IDENT ASSIGNSTAR expr
  5144. 24 | . IDENT ASSIGNSLASH expr
  5145. 25 | . IDENT ASSIGNDSTAR expr
  5146. 26 | . IDENT ASSIGNBAND expr
  5147. 27 | . IDENT ASSIGNBOR expr
  5148. 28 | . IDENT ASSIGNBXOR expr
  5149. 29 | . ex_index_expr ASSIGN expr
  5150. 30 | . ex_index_expr ASSIGNPLUS expr
  5151. 31 | . ex_index_expr ASSIGNMINUS expr
  5152. 32 | . ex_index_expr ASSIGNSTAR expr
  5153. 33 | . ex_index_expr ASSIGNSLASH expr
  5154. 34 | . ex_index_expr ASSIGNDSTAR expr
  5155. 35 | . ex_index_expr ASSIGNBAND expr
  5156. 36 | . ex_index_expr ASSIGNBOR expr
  5157. 37 | . ex_index_expr ASSIGNBXOR expr
  5158. 38 | . logic_expr
  5159. 39 logic_expr: . logic_expr LAND ulogic_expr
  5160. 40 | . logic_expr LOR ulogic_expr
  5161. 41 | . ulogic_expr
  5162. 42 ulogic_expr: . LNOT ulogic_expr
  5163. 43 | . rel_expr
  5164. 44 rel_expr: . term_expr EQUAL rel_expr
  5165. 45 | . term_expr NEQUAL rel_expr
  5166. 46 | . term_expr LESS rel_expr
  5167. 47 | . term_expr GREATER rel_expr
  5168. 48 | . term_expr LESSEQ rel_expr
  5169. 49 | . term_expr GREATEREQ rel_expr
  5170. 50 | . term_expr
  5171. 51 term_expr: . term_expr PLUS factor_expr
  5172. 52 | . term_expr MINUS factor_expr
  5173. 53 | . factor_expr
  5174. 54 factor_expr: . factor_expr STAR power_expr
  5175. 54 | factor_expr STAR . power_expr
  5176. 55 | . factor_expr SLASH power_expr
  5177. 56 | . factor_expr PERCENT power_expr
  5178. 57 | . power_expr
  5179. 58 power_expr: . tbang_expr DSTAR power_expr
  5180. 59 | . tbang_expr
  5181. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5182. 61 | . binary_expr
  5183. 62 binary_expr: . binary_expr BAND binary_expr
  5184. 63 | . binary_expr BOR binary_expr
  5185. 64 | . binary_expr BXOR binary_expr
  5186. 65 | . binary_expr LSHIFT binary_expr
  5187. 66 | . binary_expr RSHIFT binary_expr
  5188. 67 | . ubinary_expr
  5189. 68 ubinary_expr: . BNOT ubinary_expr
  5190. 69 | . ulen_expr
  5191. 70 ulen_expr: . POUND ulen_expr
  5192. 71 | . call_expr
  5193. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5194. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5195. 74 | . funcdecl_expr
  5196. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5197. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5198. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5199. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5200. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5201. 80 | . index_expr
  5202. 81 index_expr: . expr LBRACKET expr RBRACKET
  5203. 82 | . expr DOT IDENT
  5204. 83 | . ref_expr
  5205. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5206. 85 | . expr DOT IDENT
  5207. 86 ref_expr: . IDENT
  5208. 87 | . lit_expr
  5209. 88 lit_expr: . INT
  5210. 89 | . MINUS INT
  5211. 90 | . FLOAT
  5212. 91 | . STRING
  5213. 92 | . NONE
  5214. 93 | . gen_expr
  5215. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5216. 95 | . LBRACE assoc_list RBRACE
  5217. 96 | . paren_expr
  5218. 97 paren_expr: . any_lparen expr RPAREN
  5219. 113 any_lparen: . LPAREN
  5220. 114 | . BLPAREN
  5221. IF shift, and go to state 4
  5222. WHILE shift, and go to state 5
  5223. FOR shift, and go to state 6
  5224. FUNC shift, and go to state 7
  5225. MACRO shift, and go to state 8
  5226. LAMBDA shift, and go to state 9
  5227. NONE shift, and go to state 13
  5228. IDENT shift, and go to state 14
  5229. INT shift, and go to state 15
  5230. FLOAT shift, and go to state 16
  5231. STRING shift, and go to state 17
  5232. MINUS shift, and go to state 18
  5233. BNOT shift, and go to state 19
  5234. LNOT shift, and go to state 20
  5235. LBRACE shift, and go to state 21
  5236. BLPAREN shift, and go to state 22
  5237. LPAREN shift, and go to state 23
  5238. LBRACKET shift, and go to state 24
  5239. POUND shift, and go to state 25
  5240. expr go to state 70
  5241. control_expr go to state 28
  5242. assign_expr go to state 29
  5243. logic_expr go to state 30
  5244. ulogic_expr go to state 31
  5245. rel_expr go to state 32
  5246. term_expr go to state 33
  5247. factor_expr go to state 34
  5248. power_expr go to state 152
  5249. tbang_expr go to state 36
  5250. binary_expr go to state 37
  5251. ubinary_expr go to state 38
  5252. ulen_expr go to state 39
  5253. call_expr go to state 40
  5254. funcdecl_expr go to state 41
  5255. index_expr go to state 42
  5256. ex_index_expr go to state 43
  5257. ref_expr go to state 44
  5258. lit_expr go to state 45
  5259. gen_expr go to state 46
  5260. paren_expr go to state 47
  5261. any_lparen go to state 48
  5262. State 94
  5263. 12 expr: . control_expr
  5264. 13 control_expr: . IF expr THEN stmt_list if_termin
  5265. 14 | . WHILE expr DO stmt_list END
  5266. 15 | . FOR IDENT IN expr DO stmt_list END
  5267. 16 | . assign_expr
  5268. 20 assign_expr: . IDENT ASSIGN expr
  5269. 21 | . IDENT ASSIGNPLUS expr
  5270. 22 | . IDENT ASSIGNMINUS expr
  5271. 23 | . IDENT ASSIGNSTAR expr
  5272. 24 | . IDENT ASSIGNSLASH expr
  5273. 25 | . IDENT ASSIGNDSTAR expr
  5274. 26 | . IDENT ASSIGNBAND expr
  5275. 27 | . IDENT ASSIGNBOR expr
  5276. 28 | . IDENT ASSIGNBXOR expr
  5277. 29 | . ex_index_expr ASSIGN expr
  5278. 30 | . ex_index_expr ASSIGNPLUS expr
  5279. 31 | . ex_index_expr ASSIGNMINUS expr
  5280. 32 | . ex_index_expr ASSIGNSTAR expr
  5281. 33 | . ex_index_expr ASSIGNSLASH expr
  5282. 34 | . ex_index_expr ASSIGNDSTAR expr
  5283. 35 | . ex_index_expr ASSIGNBAND expr
  5284. 36 | . ex_index_expr ASSIGNBOR expr
  5285. 37 | . ex_index_expr ASSIGNBXOR expr
  5286. 38 | . logic_expr
  5287. 39 logic_expr: . logic_expr LAND ulogic_expr
  5288. 40 | . logic_expr LOR ulogic_expr
  5289. 41 | . ulogic_expr
  5290. 42 ulogic_expr: . LNOT ulogic_expr
  5291. 43 | . rel_expr
  5292. 44 rel_expr: . term_expr EQUAL rel_expr
  5293. 45 | . term_expr NEQUAL rel_expr
  5294. 46 | . term_expr LESS rel_expr
  5295. 47 | . term_expr GREATER rel_expr
  5296. 48 | . term_expr LESSEQ rel_expr
  5297. 49 | . term_expr GREATEREQ rel_expr
  5298. 50 | . term_expr
  5299. 51 term_expr: . term_expr PLUS factor_expr
  5300. 52 | . term_expr MINUS factor_expr
  5301. 53 | . factor_expr
  5302. 54 factor_expr: . factor_expr STAR power_expr
  5303. 55 | . factor_expr SLASH power_expr
  5304. 55 | factor_expr SLASH . power_expr
  5305. 56 | . factor_expr PERCENT power_expr
  5306. 57 | . power_expr
  5307. 58 power_expr: . tbang_expr DSTAR power_expr
  5308. 59 | . tbang_expr
  5309. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5310. 61 | . binary_expr
  5311. 62 binary_expr: . binary_expr BAND binary_expr
  5312. 63 | . binary_expr BOR binary_expr
  5313. 64 | . binary_expr BXOR binary_expr
  5314. 65 | . binary_expr LSHIFT binary_expr
  5315. 66 | . binary_expr RSHIFT binary_expr
  5316. 67 | . ubinary_expr
  5317. 68 ubinary_expr: . BNOT ubinary_expr
  5318. 69 | . ulen_expr
  5319. 70 ulen_expr: . POUND ulen_expr
  5320. 71 | . call_expr
  5321. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5322. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5323. 74 | . funcdecl_expr
  5324. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5325. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5326. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5327. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5328. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5329. 80 | . index_expr
  5330. 81 index_expr: . expr LBRACKET expr RBRACKET
  5331. 82 | . expr DOT IDENT
  5332. 83 | . ref_expr
  5333. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5334. 85 | . expr DOT IDENT
  5335. 86 ref_expr: . IDENT
  5336. 87 | . lit_expr
  5337. 88 lit_expr: . INT
  5338. 89 | . MINUS INT
  5339. 90 | . FLOAT
  5340. 91 | . STRING
  5341. 92 | . NONE
  5342. 93 | . gen_expr
  5343. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5344. 95 | . LBRACE assoc_list RBRACE
  5345. 96 | . paren_expr
  5346. 97 paren_expr: . any_lparen expr RPAREN
  5347. 113 any_lparen: . LPAREN
  5348. 114 | . BLPAREN
  5349. IF shift, and go to state 4
  5350. WHILE shift, and go to state 5
  5351. FOR shift, and go to state 6
  5352. FUNC shift, and go to state 7
  5353. MACRO shift, and go to state 8
  5354. LAMBDA shift, and go to state 9
  5355. NONE shift, and go to state 13
  5356. IDENT shift, and go to state 14
  5357. INT shift, and go to state 15
  5358. FLOAT shift, and go to state 16
  5359. STRING shift, and go to state 17
  5360. MINUS shift, and go to state 18
  5361. BNOT shift, and go to state 19
  5362. LNOT shift, and go to state 20
  5363. LBRACE shift, and go to state 21
  5364. BLPAREN shift, and go to state 22
  5365. LPAREN shift, and go to state 23
  5366. LBRACKET shift, and go to state 24
  5367. POUND shift, and go to state 25
  5368. expr go to state 70
  5369. control_expr go to state 28
  5370. assign_expr go to state 29
  5371. logic_expr go to state 30
  5372. ulogic_expr go to state 31
  5373. rel_expr go to state 32
  5374. term_expr go to state 33
  5375. factor_expr go to state 34
  5376. power_expr go to state 153
  5377. tbang_expr go to state 36
  5378. binary_expr go to state 37
  5379. ubinary_expr go to state 38
  5380. ulen_expr go to state 39
  5381. call_expr go to state 40
  5382. funcdecl_expr go to state 41
  5383. index_expr go to state 42
  5384. ex_index_expr go to state 43
  5385. ref_expr go to state 44
  5386. lit_expr go to state 45
  5387. gen_expr go to state 46
  5388. paren_expr go to state 47
  5389. any_lparen go to state 48
  5390. State 95
  5391. 12 expr: . control_expr
  5392. 13 control_expr: . IF expr THEN stmt_list if_termin
  5393. 14 | . WHILE expr DO stmt_list END
  5394. 15 | . FOR IDENT IN expr DO stmt_list END
  5395. 16 | . assign_expr
  5396. 20 assign_expr: . IDENT ASSIGN expr
  5397. 21 | . IDENT ASSIGNPLUS expr
  5398. 22 | . IDENT ASSIGNMINUS expr
  5399. 23 | . IDENT ASSIGNSTAR expr
  5400. 24 | . IDENT ASSIGNSLASH expr
  5401. 25 | . IDENT ASSIGNDSTAR expr
  5402. 26 | . IDENT ASSIGNBAND expr
  5403. 27 | . IDENT ASSIGNBOR expr
  5404. 28 | . IDENT ASSIGNBXOR expr
  5405. 29 | . ex_index_expr ASSIGN expr
  5406. 30 | . ex_index_expr ASSIGNPLUS expr
  5407. 31 | . ex_index_expr ASSIGNMINUS expr
  5408. 32 | . ex_index_expr ASSIGNSTAR expr
  5409. 33 | . ex_index_expr ASSIGNSLASH expr
  5410. 34 | . ex_index_expr ASSIGNDSTAR expr
  5411. 35 | . ex_index_expr ASSIGNBAND expr
  5412. 36 | . ex_index_expr ASSIGNBOR expr
  5413. 37 | . ex_index_expr ASSIGNBXOR expr
  5414. 38 | . logic_expr
  5415. 39 logic_expr: . logic_expr LAND ulogic_expr
  5416. 40 | . logic_expr LOR ulogic_expr
  5417. 41 | . ulogic_expr
  5418. 42 ulogic_expr: . LNOT ulogic_expr
  5419. 43 | . rel_expr
  5420. 44 rel_expr: . term_expr EQUAL rel_expr
  5421. 45 | . term_expr NEQUAL rel_expr
  5422. 46 | . term_expr LESS rel_expr
  5423. 47 | . term_expr GREATER rel_expr
  5424. 48 | . term_expr LESSEQ rel_expr
  5425. 49 | . term_expr GREATEREQ rel_expr
  5426. 50 | . term_expr
  5427. 51 term_expr: . term_expr PLUS factor_expr
  5428. 52 | . term_expr MINUS factor_expr
  5429. 53 | . factor_expr
  5430. 54 factor_expr: . factor_expr STAR power_expr
  5431. 55 | . factor_expr SLASH power_expr
  5432. 56 | . factor_expr PERCENT power_expr
  5433. 56 | factor_expr PERCENT . power_expr
  5434. 57 | . power_expr
  5435. 58 power_expr: . tbang_expr DSTAR power_expr
  5436. 59 | . tbang_expr
  5437. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5438. 61 | . binary_expr
  5439. 62 binary_expr: . binary_expr BAND binary_expr
  5440. 63 | . binary_expr BOR binary_expr
  5441. 64 | . binary_expr BXOR binary_expr
  5442. 65 | . binary_expr LSHIFT binary_expr
  5443. 66 | . binary_expr RSHIFT binary_expr
  5444. 67 | . ubinary_expr
  5445. 68 ubinary_expr: . BNOT ubinary_expr
  5446. 69 | . ulen_expr
  5447. 70 ulen_expr: . POUND ulen_expr
  5448. 71 | . call_expr
  5449. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5450. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5451. 74 | . funcdecl_expr
  5452. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5453. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5454. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5455. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5456. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5457. 80 | . index_expr
  5458. 81 index_expr: . expr LBRACKET expr RBRACKET
  5459. 82 | . expr DOT IDENT
  5460. 83 | . ref_expr
  5461. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5462. 85 | . expr DOT IDENT
  5463. 86 ref_expr: . IDENT
  5464. 87 | . lit_expr
  5465. 88 lit_expr: . INT
  5466. 89 | . MINUS INT
  5467. 90 | . FLOAT
  5468. 91 | . STRING
  5469. 92 | . NONE
  5470. 93 | . gen_expr
  5471. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5472. 95 | . LBRACE assoc_list RBRACE
  5473. 96 | . paren_expr
  5474. 97 paren_expr: . any_lparen expr RPAREN
  5475. 113 any_lparen: . LPAREN
  5476. 114 | . BLPAREN
  5477. IF shift, and go to state 4
  5478. WHILE shift, and go to state 5
  5479. FOR shift, and go to state 6
  5480. FUNC shift, and go to state 7
  5481. MACRO shift, and go to state 8
  5482. LAMBDA shift, and go to state 9
  5483. NONE shift, and go to state 13
  5484. IDENT shift, and go to state 14
  5485. INT shift, and go to state 15
  5486. FLOAT shift, and go to state 16
  5487. STRING shift, and go to state 17
  5488. MINUS shift, and go to state 18
  5489. BNOT shift, and go to state 19
  5490. LNOT shift, and go to state 20
  5491. LBRACE shift, and go to state 21
  5492. BLPAREN shift, and go to state 22
  5493. LPAREN shift, and go to state 23
  5494. LBRACKET shift, and go to state 24
  5495. POUND shift, and go to state 25
  5496. expr go to state 70
  5497. control_expr go to state 28
  5498. assign_expr go to state 29
  5499. logic_expr go to state 30
  5500. ulogic_expr go to state 31
  5501. rel_expr go to state 32
  5502. term_expr go to state 33
  5503. factor_expr go to state 34
  5504. power_expr go to state 154
  5505. tbang_expr go to state 36
  5506. binary_expr go to state 37
  5507. ubinary_expr go to state 38
  5508. ulen_expr go to state 39
  5509. call_expr go to state 40
  5510. funcdecl_expr go to state 41
  5511. index_expr go to state 42
  5512. ex_index_expr go to state 43
  5513. ref_expr go to state 44
  5514. lit_expr go to state 45
  5515. gen_expr go to state 46
  5516. paren_expr go to state 47
  5517. any_lparen go to state 48
  5518. State 96
  5519. 12 expr: . control_expr
  5520. 13 control_expr: . IF expr THEN stmt_list if_termin
  5521. 14 | . WHILE expr DO stmt_list END
  5522. 15 | . FOR IDENT IN expr DO stmt_list END
  5523. 16 | . assign_expr
  5524. 20 assign_expr: . IDENT ASSIGN expr
  5525. 21 | . IDENT ASSIGNPLUS expr
  5526. 22 | . IDENT ASSIGNMINUS expr
  5527. 23 | . IDENT ASSIGNSTAR expr
  5528. 24 | . IDENT ASSIGNSLASH expr
  5529. 25 | . IDENT ASSIGNDSTAR expr
  5530. 26 | . IDENT ASSIGNBAND expr
  5531. 27 | . IDENT ASSIGNBOR expr
  5532. 28 | . IDENT ASSIGNBXOR expr
  5533. 29 | . ex_index_expr ASSIGN expr
  5534. 30 | . ex_index_expr ASSIGNPLUS expr
  5535. 31 | . ex_index_expr ASSIGNMINUS expr
  5536. 32 | . ex_index_expr ASSIGNSTAR expr
  5537. 33 | . ex_index_expr ASSIGNSLASH expr
  5538. 34 | . ex_index_expr ASSIGNDSTAR expr
  5539. 35 | . ex_index_expr ASSIGNBAND expr
  5540. 36 | . ex_index_expr ASSIGNBOR expr
  5541. 37 | . ex_index_expr ASSIGNBXOR expr
  5542. 38 | . logic_expr
  5543. 39 logic_expr: . logic_expr LAND ulogic_expr
  5544. 40 | . logic_expr LOR ulogic_expr
  5545. 41 | . ulogic_expr
  5546. 42 ulogic_expr: . LNOT ulogic_expr
  5547. 43 | . rel_expr
  5548. 44 rel_expr: . term_expr EQUAL rel_expr
  5549. 45 | . term_expr NEQUAL rel_expr
  5550. 46 | . term_expr LESS rel_expr
  5551. 47 | . term_expr GREATER rel_expr
  5552. 48 | . term_expr LESSEQ rel_expr
  5553. 49 | . term_expr GREATEREQ rel_expr
  5554. 50 | . term_expr
  5555. 51 term_expr: . term_expr PLUS factor_expr
  5556. 52 | . term_expr MINUS factor_expr
  5557. 53 | . factor_expr
  5558. 54 factor_expr: . factor_expr STAR power_expr
  5559. 55 | . factor_expr SLASH power_expr
  5560. 56 | . factor_expr PERCENT power_expr
  5561. 57 | . power_expr
  5562. 58 power_expr: . tbang_expr DSTAR power_expr
  5563. 58 | tbang_expr DSTAR . power_expr
  5564. 59 | . tbang_expr
  5565. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5566. 61 | . binary_expr
  5567. 62 binary_expr: . binary_expr BAND binary_expr
  5568. 63 | . binary_expr BOR binary_expr
  5569. 64 | . binary_expr BXOR binary_expr
  5570. 65 | . binary_expr LSHIFT binary_expr
  5571. 66 | . binary_expr RSHIFT binary_expr
  5572. 67 | . ubinary_expr
  5573. 68 ubinary_expr: . BNOT ubinary_expr
  5574. 69 | . ulen_expr
  5575. 70 ulen_expr: . POUND ulen_expr
  5576. 71 | . call_expr
  5577. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5578. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5579. 74 | . funcdecl_expr
  5580. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5581. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5582. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5583. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5584. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5585. 80 | . index_expr
  5586. 81 index_expr: . expr LBRACKET expr RBRACKET
  5587. 82 | . expr DOT IDENT
  5588. 83 | . ref_expr
  5589. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5590. 85 | . expr DOT IDENT
  5591. 86 ref_expr: . IDENT
  5592. 87 | . lit_expr
  5593. 88 lit_expr: . INT
  5594. 89 | . MINUS INT
  5595. 90 | . FLOAT
  5596. 91 | . STRING
  5597. 92 | . NONE
  5598. 93 | . gen_expr
  5599. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5600. 95 | . LBRACE assoc_list RBRACE
  5601. 96 | . paren_expr
  5602. 97 paren_expr: . any_lparen expr RPAREN
  5603. 113 any_lparen: . LPAREN
  5604. 114 | . BLPAREN
  5605. IF shift, and go to state 4
  5606. WHILE shift, and go to state 5
  5607. FOR shift, and go to state 6
  5608. FUNC shift, and go to state 7
  5609. MACRO shift, and go to state 8
  5610. LAMBDA shift, and go to state 9
  5611. NONE shift, and go to state 13
  5612. IDENT shift, and go to state 14
  5613. INT shift, and go to state 15
  5614. FLOAT shift, and go to state 16
  5615. STRING shift, and go to state 17
  5616. MINUS shift, and go to state 18
  5617. BNOT shift, and go to state 19
  5618. LNOT shift, and go to state 20
  5619. LBRACE shift, and go to state 21
  5620. BLPAREN shift, and go to state 22
  5621. LPAREN shift, and go to state 23
  5622. LBRACKET shift, and go to state 24
  5623. POUND shift, and go to state 25
  5624. expr go to state 70
  5625. control_expr go to state 28
  5626. assign_expr go to state 29
  5627. logic_expr go to state 30
  5628. ulogic_expr go to state 31
  5629. rel_expr go to state 32
  5630. term_expr go to state 33
  5631. factor_expr go to state 34
  5632. power_expr go to state 155
  5633. tbang_expr go to state 36
  5634. binary_expr go to state 37
  5635. ubinary_expr go to state 38
  5636. ulen_expr go to state 39
  5637. call_expr go to state 40
  5638. funcdecl_expr go to state 41
  5639. index_expr go to state 42
  5640. ex_index_expr go to state 43
  5641. ref_expr go to state 44
  5642. lit_expr go to state 45
  5643. gen_expr go to state 46
  5644. paren_expr go to state 47
  5645. any_lparen go to state 48
  5646. State 97
  5647. 12 expr: . control_expr
  5648. 13 control_expr: . IF expr THEN stmt_list if_termin
  5649. 14 | . WHILE expr DO stmt_list END
  5650. 15 | . FOR IDENT IN expr DO stmt_list END
  5651. 16 | . assign_expr
  5652. 20 assign_expr: . IDENT ASSIGN expr
  5653. 21 | . IDENT ASSIGNPLUS expr
  5654. 22 | . IDENT ASSIGNMINUS expr
  5655. 23 | . IDENT ASSIGNSTAR expr
  5656. 24 | . IDENT ASSIGNSLASH expr
  5657. 25 | . IDENT ASSIGNDSTAR expr
  5658. 26 | . IDENT ASSIGNBAND expr
  5659. 27 | . IDENT ASSIGNBOR expr
  5660. 28 | . IDENT ASSIGNBXOR expr
  5661. 29 | . ex_index_expr ASSIGN expr
  5662. 30 | . ex_index_expr ASSIGNPLUS expr
  5663. 31 | . ex_index_expr ASSIGNMINUS expr
  5664. 32 | . ex_index_expr ASSIGNSTAR expr
  5665. 33 | . ex_index_expr ASSIGNSLASH expr
  5666. 34 | . ex_index_expr ASSIGNDSTAR expr
  5667. 35 | . ex_index_expr ASSIGNBAND expr
  5668. 36 | . ex_index_expr ASSIGNBOR expr
  5669. 37 | . ex_index_expr ASSIGNBXOR expr
  5670. 38 | . logic_expr
  5671. 39 logic_expr: . logic_expr LAND ulogic_expr
  5672. 40 | . logic_expr LOR ulogic_expr
  5673. 41 | . ulogic_expr
  5674. 42 ulogic_expr: . LNOT ulogic_expr
  5675. 43 | . rel_expr
  5676. 44 rel_expr: . term_expr EQUAL rel_expr
  5677. 45 | . term_expr NEQUAL rel_expr
  5678. 46 | . term_expr LESS rel_expr
  5679. 47 | . term_expr GREATER rel_expr
  5680. 48 | . term_expr LESSEQ rel_expr
  5681. 49 | . term_expr GREATEREQ rel_expr
  5682. 50 | . term_expr
  5683. 51 term_expr: . term_expr PLUS factor_expr
  5684. 52 | . term_expr MINUS factor_expr
  5685. 53 | . factor_expr
  5686. 54 factor_expr: . factor_expr STAR power_expr
  5687. 55 | . factor_expr SLASH power_expr
  5688. 56 | . factor_expr PERCENT power_expr
  5689. 57 | . power_expr
  5690. 58 power_expr: . tbang_expr DSTAR power_expr
  5691. 59 | . tbang_expr
  5692. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5693. 61 | . binary_expr
  5694. 62 binary_expr: . binary_expr BAND binary_expr
  5695. 62 | binary_expr BAND . binary_expr
  5696. 63 | . binary_expr BOR binary_expr
  5697. 64 | . binary_expr BXOR binary_expr
  5698. 65 | . binary_expr LSHIFT binary_expr
  5699. 66 | . binary_expr RSHIFT binary_expr
  5700. 67 | . ubinary_expr
  5701. 68 ubinary_expr: . BNOT ubinary_expr
  5702. 69 | . ulen_expr
  5703. 70 ulen_expr: . POUND ulen_expr
  5704. 71 | . call_expr
  5705. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5706. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5707. 74 | . funcdecl_expr
  5708. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5709. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5710. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5711. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5712. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5713. 80 | . index_expr
  5714. 81 index_expr: . expr LBRACKET expr RBRACKET
  5715. 82 | . expr DOT IDENT
  5716. 83 | . ref_expr
  5717. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5718. 85 | . expr DOT IDENT
  5719. 86 ref_expr: . IDENT
  5720. 87 | . lit_expr
  5721. 88 lit_expr: . INT
  5722. 89 | . MINUS INT
  5723. 90 | . FLOAT
  5724. 91 | . STRING
  5725. 92 | . NONE
  5726. 93 | . gen_expr
  5727. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5728. 95 | . LBRACE assoc_list RBRACE
  5729. 96 | . paren_expr
  5730. 97 paren_expr: . any_lparen expr RPAREN
  5731. 113 any_lparen: . LPAREN
  5732. 114 | . BLPAREN
  5733. IF shift, and go to state 4
  5734. WHILE shift, and go to state 5
  5735. FOR shift, and go to state 6
  5736. FUNC shift, and go to state 7
  5737. MACRO shift, and go to state 8
  5738. LAMBDA shift, and go to state 9
  5739. NONE shift, and go to state 13
  5740. IDENT shift, and go to state 14
  5741. INT shift, and go to state 15
  5742. FLOAT shift, and go to state 16
  5743. STRING shift, and go to state 17
  5744. MINUS shift, and go to state 18
  5745. BNOT shift, and go to state 19
  5746. LNOT shift, and go to state 20
  5747. LBRACE shift, and go to state 21
  5748. BLPAREN shift, and go to state 22
  5749. LPAREN shift, and go to state 23
  5750. LBRACKET shift, and go to state 24
  5751. POUND shift, and go to state 25
  5752. expr go to state 70
  5753. control_expr go to state 28
  5754. assign_expr go to state 29
  5755. logic_expr go to state 30
  5756. ulogic_expr go to state 31
  5757. rel_expr go to state 32
  5758. term_expr go to state 33
  5759. factor_expr go to state 34
  5760. power_expr go to state 35
  5761. tbang_expr go to state 36
  5762. binary_expr go to state 156
  5763. ubinary_expr go to state 38
  5764. ulen_expr go to state 39
  5765. call_expr go to state 40
  5766. funcdecl_expr go to state 41
  5767. index_expr go to state 42
  5768. ex_index_expr go to state 43
  5769. ref_expr go to state 44
  5770. lit_expr go to state 45
  5771. gen_expr go to state 46
  5772. paren_expr go to state 47
  5773. any_lparen go to state 48
  5774. State 98
  5775. 12 expr: . control_expr
  5776. 13 control_expr: . IF expr THEN stmt_list if_termin
  5777. 14 | . WHILE expr DO stmt_list END
  5778. 15 | . FOR IDENT IN expr DO stmt_list END
  5779. 16 | . assign_expr
  5780. 20 assign_expr: . IDENT ASSIGN expr
  5781. 21 | . IDENT ASSIGNPLUS expr
  5782. 22 | . IDENT ASSIGNMINUS expr
  5783. 23 | . IDENT ASSIGNSTAR expr
  5784. 24 | . IDENT ASSIGNSLASH expr
  5785. 25 | . IDENT ASSIGNDSTAR expr
  5786. 26 | . IDENT ASSIGNBAND expr
  5787. 27 | . IDENT ASSIGNBOR expr
  5788. 28 | . IDENT ASSIGNBXOR expr
  5789. 29 | . ex_index_expr ASSIGN expr
  5790. 30 | . ex_index_expr ASSIGNPLUS expr
  5791. 31 | . ex_index_expr ASSIGNMINUS expr
  5792. 32 | . ex_index_expr ASSIGNSTAR expr
  5793. 33 | . ex_index_expr ASSIGNSLASH expr
  5794. 34 | . ex_index_expr ASSIGNDSTAR expr
  5795. 35 | . ex_index_expr ASSIGNBAND expr
  5796. 36 | . ex_index_expr ASSIGNBOR expr
  5797. 37 | . ex_index_expr ASSIGNBXOR expr
  5798. 38 | . logic_expr
  5799. 39 logic_expr: . logic_expr LAND ulogic_expr
  5800. 40 | . logic_expr LOR ulogic_expr
  5801. 41 | . ulogic_expr
  5802. 42 ulogic_expr: . LNOT ulogic_expr
  5803. 43 | . rel_expr
  5804. 44 rel_expr: . term_expr EQUAL rel_expr
  5805. 45 | . term_expr NEQUAL rel_expr
  5806. 46 | . term_expr LESS rel_expr
  5807. 47 | . term_expr GREATER rel_expr
  5808. 48 | . term_expr LESSEQ rel_expr
  5809. 49 | . term_expr GREATEREQ rel_expr
  5810. 50 | . term_expr
  5811. 51 term_expr: . term_expr PLUS factor_expr
  5812. 52 | . term_expr MINUS factor_expr
  5813. 53 | . factor_expr
  5814. 54 factor_expr: . factor_expr STAR power_expr
  5815. 55 | . factor_expr SLASH power_expr
  5816. 56 | . factor_expr PERCENT power_expr
  5817. 57 | . power_expr
  5818. 58 power_expr: . tbang_expr DSTAR power_expr
  5819. 59 | . tbang_expr
  5820. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5821. 61 | . binary_expr
  5822. 62 binary_expr: . binary_expr BAND binary_expr
  5823. 63 | . binary_expr BOR binary_expr
  5824. 63 | binary_expr BOR . binary_expr
  5825. 64 | . binary_expr BXOR binary_expr
  5826. 65 | . binary_expr LSHIFT binary_expr
  5827. 66 | . binary_expr RSHIFT binary_expr
  5828. 67 | . ubinary_expr
  5829. 68 ubinary_expr: . BNOT ubinary_expr
  5830. 69 | . ulen_expr
  5831. 70 ulen_expr: . POUND ulen_expr
  5832. 71 | . call_expr
  5833. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5834. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5835. 74 | . funcdecl_expr
  5836. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5837. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5838. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5839. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5840. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5841. 80 | . index_expr
  5842. 81 index_expr: . expr LBRACKET expr RBRACKET
  5843. 82 | . expr DOT IDENT
  5844. 83 | . ref_expr
  5845. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5846. 85 | . expr DOT IDENT
  5847. 86 ref_expr: . IDENT
  5848. 87 | . lit_expr
  5849. 88 lit_expr: . INT
  5850. 89 | . MINUS INT
  5851. 90 | . FLOAT
  5852. 91 | . STRING
  5853. 92 | . NONE
  5854. 93 | . gen_expr
  5855. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5856. 95 | . LBRACE assoc_list RBRACE
  5857. 96 | . paren_expr
  5858. 97 paren_expr: . any_lparen expr RPAREN
  5859. 113 any_lparen: . LPAREN
  5860. 114 | . BLPAREN
  5861. IF shift, and go to state 4
  5862. WHILE shift, and go to state 5
  5863. FOR shift, and go to state 6
  5864. FUNC shift, and go to state 7
  5865. MACRO shift, and go to state 8
  5866. LAMBDA shift, and go to state 9
  5867. NONE shift, and go to state 13
  5868. IDENT shift, and go to state 14
  5869. INT shift, and go to state 15
  5870. FLOAT shift, and go to state 16
  5871. STRING shift, and go to state 17
  5872. MINUS shift, and go to state 18
  5873. BNOT shift, and go to state 19
  5874. LNOT shift, and go to state 20
  5875. LBRACE shift, and go to state 21
  5876. BLPAREN shift, and go to state 22
  5877. LPAREN shift, and go to state 23
  5878. LBRACKET shift, and go to state 24
  5879. POUND shift, and go to state 25
  5880. expr go to state 70
  5881. control_expr go to state 28
  5882. assign_expr go to state 29
  5883. logic_expr go to state 30
  5884. ulogic_expr go to state 31
  5885. rel_expr go to state 32
  5886. term_expr go to state 33
  5887. factor_expr go to state 34
  5888. power_expr go to state 35
  5889. tbang_expr go to state 36
  5890. binary_expr go to state 157
  5891. ubinary_expr go to state 38
  5892. ulen_expr go to state 39
  5893. call_expr go to state 40
  5894. funcdecl_expr go to state 41
  5895. index_expr go to state 42
  5896. ex_index_expr go to state 43
  5897. ref_expr go to state 44
  5898. lit_expr go to state 45
  5899. gen_expr go to state 46
  5900. paren_expr go to state 47
  5901. any_lparen go to state 48
  5902. State 99
  5903. 12 expr: . control_expr
  5904. 13 control_expr: . IF expr THEN stmt_list if_termin
  5905. 14 | . WHILE expr DO stmt_list END
  5906. 15 | . FOR IDENT IN expr DO stmt_list END
  5907. 16 | . assign_expr
  5908. 20 assign_expr: . IDENT ASSIGN expr
  5909. 21 | . IDENT ASSIGNPLUS expr
  5910. 22 | . IDENT ASSIGNMINUS expr
  5911. 23 | . IDENT ASSIGNSTAR expr
  5912. 24 | . IDENT ASSIGNSLASH expr
  5913. 25 | . IDENT ASSIGNDSTAR expr
  5914. 26 | . IDENT ASSIGNBAND expr
  5915. 27 | . IDENT ASSIGNBOR expr
  5916. 28 | . IDENT ASSIGNBXOR expr
  5917. 29 | . ex_index_expr ASSIGN expr
  5918. 30 | . ex_index_expr ASSIGNPLUS expr
  5919. 31 | . ex_index_expr ASSIGNMINUS expr
  5920. 32 | . ex_index_expr ASSIGNSTAR expr
  5921. 33 | . ex_index_expr ASSIGNSLASH expr
  5922. 34 | . ex_index_expr ASSIGNDSTAR expr
  5923. 35 | . ex_index_expr ASSIGNBAND expr
  5924. 36 | . ex_index_expr ASSIGNBOR expr
  5925. 37 | . ex_index_expr ASSIGNBXOR expr
  5926. 38 | . logic_expr
  5927. 39 logic_expr: . logic_expr LAND ulogic_expr
  5928. 40 | . logic_expr LOR ulogic_expr
  5929. 41 | . ulogic_expr
  5930. 42 ulogic_expr: . LNOT ulogic_expr
  5931. 43 | . rel_expr
  5932. 44 rel_expr: . term_expr EQUAL rel_expr
  5933. 45 | . term_expr NEQUAL rel_expr
  5934. 46 | . term_expr LESS rel_expr
  5935. 47 | . term_expr GREATER rel_expr
  5936. 48 | . term_expr LESSEQ rel_expr
  5937. 49 | . term_expr GREATEREQ rel_expr
  5938. 50 | . term_expr
  5939. 51 term_expr: . term_expr PLUS factor_expr
  5940. 52 | . term_expr MINUS factor_expr
  5941. 53 | . factor_expr
  5942. 54 factor_expr: . factor_expr STAR power_expr
  5943. 55 | . factor_expr SLASH power_expr
  5944. 56 | . factor_expr PERCENT power_expr
  5945. 57 | . power_expr
  5946. 58 power_expr: . tbang_expr DSTAR power_expr
  5947. 59 | . tbang_expr
  5948. 60 tbang_expr: . binary_expr TBANG tbang_expr
  5949. 61 | . binary_expr
  5950. 62 binary_expr: . binary_expr BAND binary_expr
  5951. 63 | . binary_expr BOR binary_expr
  5952. 64 | . binary_expr BXOR binary_expr
  5953. 64 | binary_expr BXOR . binary_expr
  5954. 65 | . binary_expr LSHIFT binary_expr
  5955. 66 | . binary_expr RSHIFT binary_expr
  5956. 67 | . ubinary_expr
  5957. 68 ubinary_expr: . BNOT ubinary_expr
  5958. 69 | . ulen_expr
  5959. 70 ulen_expr: . POUND ulen_expr
  5960. 71 | . call_expr
  5961. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  5962. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  5963. 74 | . funcdecl_expr
  5964. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5965. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  5966. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  5967. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  5968. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  5969. 80 | . index_expr
  5970. 81 index_expr: . expr LBRACKET expr RBRACKET
  5971. 82 | . expr DOT IDENT
  5972. 83 | . ref_expr
  5973. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  5974. 85 | . expr DOT IDENT
  5975. 86 ref_expr: . IDENT
  5976. 87 | . lit_expr
  5977. 88 lit_expr: . INT
  5978. 89 | . MINUS INT
  5979. 90 | . FLOAT
  5980. 91 | . STRING
  5981. 92 | . NONE
  5982. 93 | . gen_expr
  5983. 94 gen_expr: . LBRACKET expr_list RBRACKET
  5984. 95 | . LBRACE assoc_list RBRACE
  5985. 96 | . paren_expr
  5986. 97 paren_expr: . any_lparen expr RPAREN
  5987. 113 any_lparen: . LPAREN
  5988. 114 | . BLPAREN
  5989. IF shift, and go to state 4
  5990. WHILE shift, and go to state 5
  5991. FOR shift, and go to state 6
  5992. FUNC shift, and go to state 7
  5993. MACRO shift, and go to state 8
  5994. LAMBDA shift, and go to state 9
  5995. NONE shift, and go to state 13
  5996. IDENT shift, and go to state 14
  5997. INT shift, and go to state 15
  5998. FLOAT shift, and go to state 16
  5999. STRING shift, and go to state 17
  6000. MINUS shift, and go to state 18
  6001. BNOT shift, and go to state 19
  6002. LNOT shift, and go to state 20
  6003. LBRACE shift, and go to state 21
  6004. BLPAREN shift, and go to state 22
  6005. LPAREN shift, and go to state 23
  6006. LBRACKET shift, and go to state 24
  6007. POUND shift, and go to state 25
  6008. expr go to state 70
  6009. control_expr go to state 28
  6010. assign_expr go to state 29
  6011. logic_expr go to state 30
  6012. ulogic_expr go to state 31
  6013. rel_expr go to state 32
  6014. term_expr go to state 33
  6015. factor_expr go to state 34
  6016. power_expr go to state 35
  6017. tbang_expr go to state 36
  6018. binary_expr go to state 158
  6019. ubinary_expr go to state 38
  6020. ulen_expr go to state 39
  6021. call_expr go to state 40
  6022. funcdecl_expr go to state 41
  6023. index_expr go to state 42
  6024. ex_index_expr go to state 43
  6025. ref_expr go to state 44
  6026. lit_expr go to state 45
  6027. gen_expr go to state 46
  6028. paren_expr go to state 47
  6029. any_lparen go to state 48
  6030. State 100
  6031. 12 expr: . control_expr
  6032. 13 control_expr: . IF expr THEN stmt_list if_termin
  6033. 14 | . WHILE expr DO stmt_list END
  6034. 15 | . FOR IDENT IN expr DO stmt_list END
  6035. 16 | . assign_expr
  6036. 20 assign_expr: . IDENT ASSIGN expr
  6037. 21 | . IDENT ASSIGNPLUS expr
  6038. 22 | . IDENT ASSIGNMINUS expr
  6039. 23 | . IDENT ASSIGNSTAR expr
  6040. 24 | . IDENT ASSIGNSLASH expr
  6041. 25 | . IDENT ASSIGNDSTAR expr
  6042. 26 | . IDENT ASSIGNBAND expr
  6043. 27 | . IDENT ASSIGNBOR expr
  6044. 28 | . IDENT ASSIGNBXOR expr
  6045. 29 | . ex_index_expr ASSIGN expr
  6046. 30 | . ex_index_expr ASSIGNPLUS expr
  6047. 31 | . ex_index_expr ASSIGNMINUS expr
  6048. 32 | . ex_index_expr ASSIGNSTAR expr
  6049. 33 | . ex_index_expr ASSIGNSLASH expr
  6050. 34 | . ex_index_expr ASSIGNDSTAR expr
  6051. 35 | . ex_index_expr ASSIGNBAND expr
  6052. 36 | . ex_index_expr ASSIGNBOR expr
  6053. 37 | . ex_index_expr ASSIGNBXOR expr
  6054. 38 | . logic_expr
  6055. 39 logic_expr: . logic_expr LAND ulogic_expr
  6056. 40 | . logic_expr LOR ulogic_expr
  6057. 41 | . ulogic_expr
  6058. 42 ulogic_expr: . LNOT ulogic_expr
  6059. 43 | . rel_expr
  6060. 44 rel_expr: . term_expr EQUAL rel_expr
  6061. 45 | . term_expr NEQUAL rel_expr
  6062. 46 | . term_expr LESS rel_expr
  6063. 47 | . term_expr GREATER rel_expr
  6064. 48 | . term_expr LESSEQ rel_expr
  6065. 49 | . term_expr GREATEREQ rel_expr
  6066. 50 | . term_expr
  6067. 51 term_expr: . term_expr PLUS factor_expr
  6068. 52 | . term_expr MINUS factor_expr
  6069. 53 | . factor_expr
  6070. 54 factor_expr: . factor_expr STAR power_expr
  6071. 55 | . factor_expr SLASH power_expr
  6072. 56 | . factor_expr PERCENT power_expr
  6073. 57 | . power_expr
  6074. 58 power_expr: . tbang_expr DSTAR power_expr
  6075. 59 | . tbang_expr
  6076. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6077. 61 | . binary_expr
  6078. 62 binary_expr: . binary_expr BAND binary_expr
  6079. 63 | . binary_expr BOR binary_expr
  6080. 64 | . binary_expr BXOR binary_expr
  6081. 65 | . binary_expr LSHIFT binary_expr
  6082. 66 | . binary_expr RSHIFT binary_expr
  6083. 66 | binary_expr RSHIFT . binary_expr
  6084. 67 | . ubinary_expr
  6085. 68 ubinary_expr: . BNOT ubinary_expr
  6086. 69 | . ulen_expr
  6087. 70 ulen_expr: . POUND ulen_expr
  6088. 71 | . call_expr
  6089. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6090. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6091. 74 | . funcdecl_expr
  6092. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6093. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6094. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6095. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6096. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6097. 80 | . index_expr
  6098. 81 index_expr: . expr LBRACKET expr RBRACKET
  6099. 82 | . expr DOT IDENT
  6100. 83 | . ref_expr
  6101. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6102. 85 | . expr DOT IDENT
  6103. 86 ref_expr: . IDENT
  6104. 87 | . lit_expr
  6105. 88 lit_expr: . INT
  6106. 89 | . MINUS INT
  6107. 90 | . FLOAT
  6108. 91 | . STRING
  6109. 92 | . NONE
  6110. 93 | . gen_expr
  6111. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6112. 95 | . LBRACE assoc_list RBRACE
  6113. 96 | . paren_expr
  6114. 97 paren_expr: . any_lparen expr RPAREN
  6115. 113 any_lparen: . LPAREN
  6116. 114 | . BLPAREN
  6117. IF shift, and go to state 4
  6118. WHILE shift, and go to state 5
  6119. FOR shift, and go to state 6
  6120. FUNC shift, and go to state 7
  6121. MACRO shift, and go to state 8
  6122. LAMBDA shift, and go to state 9
  6123. NONE shift, and go to state 13
  6124. IDENT shift, and go to state 14
  6125. INT shift, and go to state 15
  6126. FLOAT shift, and go to state 16
  6127. STRING shift, and go to state 17
  6128. MINUS shift, and go to state 18
  6129. BNOT shift, and go to state 19
  6130. LNOT shift, and go to state 20
  6131. LBRACE shift, and go to state 21
  6132. BLPAREN shift, and go to state 22
  6133. LPAREN shift, and go to state 23
  6134. LBRACKET shift, and go to state 24
  6135. POUND shift, and go to state 25
  6136. expr go to state 70
  6137. control_expr go to state 28
  6138. assign_expr go to state 29
  6139. logic_expr go to state 30
  6140. ulogic_expr go to state 31
  6141. rel_expr go to state 32
  6142. term_expr go to state 33
  6143. factor_expr go to state 34
  6144. power_expr go to state 35
  6145. tbang_expr go to state 36
  6146. binary_expr go to state 159
  6147. ubinary_expr go to state 38
  6148. ulen_expr go to state 39
  6149. call_expr go to state 40
  6150. funcdecl_expr go to state 41
  6151. index_expr go to state 42
  6152. ex_index_expr go to state 43
  6153. ref_expr go to state 44
  6154. lit_expr go to state 45
  6155. gen_expr go to state 46
  6156. paren_expr go to state 47
  6157. any_lparen go to state 48
  6158. State 101
  6159. 12 expr: . control_expr
  6160. 13 control_expr: . IF expr THEN stmt_list if_termin
  6161. 14 | . WHILE expr DO stmt_list END
  6162. 15 | . FOR IDENT IN expr DO stmt_list END
  6163. 16 | . assign_expr
  6164. 20 assign_expr: . IDENT ASSIGN expr
  6165. 21 | . IDENT ASSIGNPLUS expr
  6166. 22 | . IDENT ASSIGNMINUS expr
  6167. 23 | . IDENT ASSIGNSTAR expr
  6168. 24 | . IDENT ASSIGNSLASH expr
  6169. 25 | . IDENT ASSIGNDSTAR expr
  6170. 26 | . IDENT ASSIGNBAND expr
  6171. 27 | . IDENT ASSIGNBOR expr
  6172. 28 | . IDENT ASSIGNBXOR expr
  6173. 29 | . ex_index_expr ASSIGN expr
  6174. 30 | . ex_index_expr ASSIGNPLUS expr
  6175. 31 | . ex_index_expr ASSIGNMINUS expr
  6176. 32 | . ex_index_expr ASSIGNSTAR expr
  6177. 33 | . ex_index_expr ASSIGNSLASH expr
  6178. 34 | . ex_index_expr ASSIGNDSTAR expr
  6179. 35 | . ex_index_expr ASSIGNBAND expr
  6180. 36 | . ex_index_expr ASSIGNBOR expr
  6181. 37 | . ex_index_expr ASSIGNBXOR expr
  6182. 38 | . logic_expr
  6183. 39 logic_expr: . logic_expr LAND ulogic_expr
  6184. 40 | . logic_expr LOR ulogic_expr
  6185. 41 | . ulogic_expr
  6186. 42 ulogic_expr: . LNOT ulogic_expr
  6187. 43 | . rel_expr
  6188. 44 rel_expr: . term_expr EQUAL rel_expr
  6189. 45 | . term_expr NEQUAL rel_expr
  6190. 46 | . term_expr LESS rel_expr
  6191. 47 | . term_expr GREATER rel_expr
  6192. 48 | . term_expr LESSEQ rel_expr
  6193. 49 | . term_expr GREATEREQ rel_expr
  6194. 50 | . term_expr
  6195. 51 term_expr: . term_expr PLUS factor_expr
  6196. 52 | . term_expr MINUS factor_expr
  6197. 53 | . factor_expr
  6198. 54 factor_expr: . factor_expr STAR power_expr
  6199. 55 | . factor_expr SLASH power_expr
  6200. 56 | . factor_expr PERCENT power_expr
  6201. 57 | . power_expr
  6202. 58 power_expr: . tbang_expr DSTAR power_expr
  6203. 59 | . tbang_expr
  6204. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6205. 61 | . binary_expr
  6206. 62 binary_expr: . binary_expr BAND binary_expr
  6207. 63 | . binary_expr BOR binary_expr
  6208. 64 | . binary_expr BXOR binary_expr
  6209. 65 | . binary_expr LSHIFT binary_expr
  6210. 65 | binary_expr LSHIFT . binary_expr
  6211. 66 | . binary_expr RSHIFT binary_expr
  6212. 67 | . ubinary_expr
  6213. 68 ubinary_expr: . BNOT ubinary_expr
  6214. 69 | . ulen_expr
  6215. 70 ulen_expr: . POUND ulen_expr
  6216. 71 | . call_expr
  6217. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6218. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6219. 74 | . funcdecl_expr
  6220. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6221. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6222. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6223. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6224. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6225. 80 | . index_expr
  6226. 81 index_expr: . expr LBRACKET expr RBRACKET
  6227. 82 | . expr DOT IDENT
  6228. 83 | . ref_expr
  6229. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6230. 85 | . expr DOT IDENT
  6231. 86 ref_expr: . IDENT
  6232. 87 | . lit_expr
  6233. 88 lit_expr: . INT
  6234. 89 | . MINUS INT
  6235. 90 | . FLOAT
  6236. 91 | . STRING
  6237. 92 | . NONE
  6238. 93 | . gen_expr
  6239. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6240. 95 | . LBRACE assoc_list RBRACE
  6241. 96 | . paren_expr
  6242. 97 paren_expr: . any_lparen expr RPAREN
  6243. 113 any_lparen: . LPAREN
  6244. 114 | . BLPAREN
  6245. IF shift, and go to state 4
  6246. WHILE shift, and go to state 5
  6247. FOR shift, and go to state 6
  6248. FUNC shift, and go to state 7
  6249. MACRO shift, and go to state 8
  6250. LAMBDA shift, and go to state 9
  6251. NONE shift, and go to state 13
  6252. IDENT shift, and go to state 14
  6253. INT shift, and go to state 15
  6254. FLOAT shift, and go to state 16
  6255. STRING shift, and go to state 17
  6256. MINUS shift, and go to state 18
  6257. BNOT shift, and go to state 19
  6258. LNOT shift, and go to state 20
  6259. LBRACE shift, and go to state 21
  6260. BLPAREN shift, and go to state 22
  6261. LPAREN shift, and go to state 23
  6262. LBRACKET shift, and go to state 24
  6263. POUND shift, and go to state 25
  6264. expr go to state 70
  6265. control_expr go to state 28
  6266. assign_expr go to state 29
  6267. logic_expr go to state 30
  6268. ulogic_expr go to state 31
  6269. rel_expr go to state 32
  6270. term_expr go to state 33
  6271. factor_expr go to state 34
  6272. power_expr go to state 35
  6273. tbang_expr go to state 36
  6274. binary_expr go to state 160
  6275. ubinary_expr go to state 38
  6276. ulen_expr go to state 39
  6277. call_expr go to state 40
  6278. funcdecl_expr go to state 41
  6279. index_expr go to state 42
  6280. ex_index_expr go to state 43
  6281. ref_expr go to state 44
  6282. lit_expr go to state 45
  6283. gen_expr go to state 46
  6284. paren_expr go to state 47
  6285. any_lparen go to state 48
  6286. State 102
  6287. 12 expr: . control_expr
  6288. 13 control_expr: . IF expr THEN stmt_list if_termin
  6289. 14 | . WHILE expr DO stmt_list END
  6290. 15 | . FOR IDENT IN expr DO stmt_list END
  6291. 16 | . assign_expr
  6292. 20 assign_expr: . IDENT ASSIGN expr
  6293. 21 | . IDENT ASSIGNPLUS expr
  6294. 22 | . IDENT ASSIGNMINUS expr
  6295. 23 | . IDENT ASSIGNSTAR expr
  6296. 24 | . IDENT ASSIGNSLASH expr
  6297. 25 | . IDENT ASSIGNDSTAR expr
  6298. 26 | . IDENT ASSIGNBAND expr
  6299. 27 | . IDENT ASSIGNBOR expr
  6300. 28 | . IDENT ASSIGNBXOR expr
  6301. 29 | . ex_index_expr ASSIGN expr
  6302. 30 | . ex_index_expr ASSIGNPLUS expr
  6303. 31 | . ex_index_expr ASSIGNMINUS expr
  6304. 32 | . ex_index_expr ASSIGNSTAR expr
  6305. 33 | . ex_index_expr ASSIGNSLASH expr
  6306. 34 | . ex_index_expr ASSIGNDSTAR expr
  6307. 35 | . ex_index_expr ASSIGNBAND expr
  6308. 36 | . ex_index_expr ASSIGNBOR expr
  6309. 37 | . ex_index_expr ASSIGNBXOR expr
  6310. 38 | . logic_expr
  6311. 39 logic_expr: . logic_expr LAND ulogic_expr
  6312. 40 | . logic_expr LOR ulogic_expr
  6313. 41 | . ulogic_expr
  6314. 42 ulogic_expr: . LNOT ulogic_expr
  6315. 43 | . rel_expr
  6316. 44 rel_expr: . term_expr EQUAL rel_expr
  6317. 45 | . term_expr NEQUAL rel_expr
  6318. 46 | . term_expr LESS rel_expr
  6319. 47 | . term_expr GREATER rel_expr
  6320. 48 | . term_expr LESSEQ rel_expr
  6321. 49 | . term_expr GREATEREQ rel_expr
  6322. 50 | . term_expr
  6323. 51 term_expr: . term_expr PLUS factor_expr
  6324. 52 | . term_expr MINUS factor_expr
  6325. 53 | . factor_expr
  6326. 54 factor_expr: . factor_expr STAR power_expr
  6327. 55 | . factor_expr SLASH power_expr
  6328. 56 | . factor_expr PERCENT power_expr
  6329. 57 | . power_expr
  6330. 58 power_expr: . tbang_expr DSTAR power_expr
  6331. 59 | . tbang_expr
  6332. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6333. 60 | binary_expr TBANG . tbang_expr
  6334. 61 | . binary_expr
  6335. 62 binary_expr: . binary_expr BAND binary_expr
  6336. 63 | . binary_expr BOR binary_expr
  6337. 64 | . binary_expr BXOR binary_expr
  6338. 65 | . binary_expr LSHIFT binary_expr
  6339. 66 | . binary_expr RSHIFT binary_expr
  6340. 67 | . ubinary_expr
  6341. 68 ubinary_expr: . BNOT ubinary_expr
  6342. 69 | . ulen_expr
  6343. 70 ulen_expr: . POUND ulen_expr
  6344. 71 | . call_expr
  6345. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6346. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6347. 74 | . funcdecl_expr
  6348. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6349. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6350. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6351. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6352. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6353. 80 | . index_expr
  6354. 81 index_expr: . expr LBRACKET expr RBRACKET
  6355. 82 | . expr DOT IDENT
  6356. 83 | . ref_expr
  6357. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6358. 85 | . expr DOT IDENT
  6359. 86 ref_expr: . IDENT
  6360. 87 | . lit_expr
  6361. 88 lit_expr: . INT
  6362. 89 | . MINUS INT
  6363. 90 | . FLOAT
  6364. 91 | . STRING
  6365. 92 | . NONE
  6366. 93 | . gen_expr
  6367. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6368. 95 | . LBRACE assoc_list RBRACE
  6369. 96 | . paren_expr
  6370. 97 paren_expr: . any_lparen expr RPAREN
  6371. 113 any_lparen: . LPAREN
  6372. 114 | . BLPAREN
  6373. IF shift, and go to state 4
  6374. WHILE shift, and go to state 5
  6375. FOR shift, and go to state 6
  6376. FUNC shift, and go to state 7
  6377. MACRO shift, and go to state 8
  6378. LAMBDA shift, and go to state 9
  6379. NONE shift, and go to state 13
  6380. IDENT shift, and go to state 14
  6381. INT shift, and go to state 15
  6382. FLOAT shift, and go to state 16
  6383. STRING shift, and go to state 17
  6384. MINUS shift, and go to state 18
  6385. BNOT shift, and go to state 19
  6386. LNOT shift, and go to state 20
  6387. LBRACE shift, and go to state 21
  6388. BLPAREN shift, and go to state 22
  6389. LPAREN shift, and go to state 23
  6390. LBRACKET shift, and go to state 24
  6391. POUND shift, and go to state 25
  6392. expr go to state 70
  6393. control_expr go to state 28
  6394. assign_expr go to state 29
  6395. logic_expr go to state 30
  6396. ulogic_expr go to state 31
  6397. rel_expr go to state 32
  6398. term_expr go to state 33
  6399. factor_expr go to state 34
  6400. power_expr go to state 35
  6401. tbang_expr go to state 161
  6402. binary_expr go to state 37
  6403. ubinary_expr go to state 38
  6404. ulen_expr go to state 39
  6405. call_expr go to state 40
  6406. funcdecl_expr go to state 41
  6407. index_expr go to state 42
  6408. ex_index_expr go to state 43
  6409. ref_expr go to state 44
  6410. lit_expr go to state 45
  6411. gen_expr go to state 46
  6412. paren_expr go to state 47
  6413. any_lparen go to state 48
  6414. State 103
  6415. 12 expr: . control_expr
  6416. 13 control_expr: . IF expr THEN stmt_list if_termin
  6417. 14 | . WHILE expr DO stmt_list END
  6418. 15 | . FOR IDENT IN expr DO stmt_list END
  6419. 16 | . assign_expr
  6420. 20 assign_expr: . IDENT ASSIGN expr
  6421. 21 | . IDENT ASSIGNPLUS expr
  6422. 22 | . IDENT ASSIGNMINUS expr
  6423. 23 | . IDENT ASSIGNSTAR expr
  6424. 24 | . IDENT ASSIGNSLASH expr
  6425. 25 | . IDENT ASSIGNDSTAR expr
  6426. 26 | . IDENT ASSIGNBAND expr
  6427. 27 | . IDENT ASSIGNBOR expr
  6428. 28 | . IDENT ASSIGNBXOR expr
  6429. 29 | . ex_index_expr ASSIGN expr
  6430. 30 | . ex_index_expr ASSIGNPLUS expr
  6431. 31 | . ex_index_expr ASSIGNMINUS expr
  6432. 32 | . ex_index_expr ASSIGNSTAR expr
  6433. 33 | . ex_index_expr ASSIGNSLASH expr
  6434. 34 | . ex_index_expr ASSIGNDSTAR expr
  6435. 35 | . ex_index_expr ASSIGNBAND expr
  6436. 36 | . ex_index_expr ASSIGNBOR expr
  6437. 37 | . ex_index_expr ASSIGNBXOR expr
  6438. 38 | . logic_expr
  6439. 39 logic_expr: . logic_expr LAND ulogic_expr
  6440. 40 | . logic_expr LOR ulogic_expr
  6441. 41 | . ulogic_expr
  6442. 42 ulogic_expr: . LNOT ulogic_expr
  6443. 43 | . rel_expr
  6444. 44 rel_expr: . term_expr EQUAL rel_expr
  6445. 45 | . term_expr NEQUAL rel_expr
  6446. 46 | . term_expr LESS rel_expr
  6447. 47 | . term_expr GREATER rel_expr
  6448. 48 | . term_expr LESSEQ rel_expr
  6449. 49 | . term_expr GREATEREQ rel_expr
  6450. 50 | . term_expr
  6451. 51 term_expr: . term_expr PLUS factor_expr
  6452. 52 | . term_expr MINUS factor_expr
  6453. 53 | . factor_expr
  6454. 54 factor_expr: . factor_expr STAR power_expr
  6455. 55 | . factor_expr SLASH power_expr
  6456. 56 | . factor_expr PERCENT power_expr
  6457. 57 | . power_expr
  6458. 58 power_expr: . tbang_expr DSTAR power_expr
  6459. 59 | . tbang_expr
  6460. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6461. 61 | . binary_expr
  6462. 62 binary_expr: . binary_expr BAND binary_expr
  6463. 63 | . binary_expr BOR binary_expr
  6464. 64 | . binary_expr BXOR binary_expr
  6465. 65 | . binary_expr LSHIFT binary_expr
  6466. 66 | . binary_expr RSHIFT binary_expr
  6467. 67 | . ubinary_expr
  6468. 68 ubinary_expr: . BNOT ubinary_expr
  6469. 69 | . ulen_expr
  6470. 70 ulen_expr: . POUND ulen_expr
  6471. 71 | . call_expr
  6472. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6473. 72 | call_expr LPAREN . expr_list RPAREN
  6474. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6475. 74 | . funcdecl_expr
  6476. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6477. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6478. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6479. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6480. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6481. 80 | . index_expr
  6482. 81 index_expr: . expr LBRACKET expr RBRACKET
  6483. 82 | . expr DOT IDENT
  6484. 83 | . ref_expr
  6485. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6486. 85 | . expr DOT IDENT
  6487. 86 ref_expr: . IDENT
  6488. 87 | . lit_expr
  6489. 88 lit_expr: . INT
  6490. 89 | . MINUS INT
  6491. 90 | . FLOAT
  6492. 91 | . STRING
  6493. 92 | . NONE
  6494. 93 | . gen_expr
  6495. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6496. 95 | . LBRACE assoc_list RBRACE
  6497. 96 | . paren_expr
  6498. 97 paren_expr: . any_lparen expr RPAREN
  6499. 98 expr_list: . %empty [IF, WHILE, FOR, FUNC, MACRO, LAMBDA, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, COMMA, POUND]
  6500. 99 | . expr
  6501. 100 | . expr_list COMMA
  6502. 101 | . expr_list expr
  6503. 113 any_lparen: . LPAREN
  6504. 114 | . BLPAREN
  6505. IF shift, and go to state 4
  6506. WHILE shift, and go to state 5
  6507. FOR shift, and go to state 6
  6508. FUNC shift, and go to state 7
  6509. MACRO shift, and go to state 8
  6510. LAMBDA shift, and go to state 9
  6511. NONE shift, and go to state 13
  6512. IDENT shift, and go to state 14
  6513. INT shift, and go to state 15
  6514. FLOAT shift, and go to state 16
  6515. STRING shift, and go to state 17
  6516. MINUS shift, and go to state 18
  6517. BNOT shift, and go to state 19
  6518. LNOT shift, and go to state 20
  6519. LBRACE shift, and go to state 21
  6520. BLPAREN shift, and go to state 22
  6521. LPAREN shift, and go to state 23
  6522. LBRACKET shift, and go to state 24
  6523. POUND shift, and go to state 25
  6524. IF [reduce using rule 98 (expr_list)]
  6525. WHILE [reduce using rule 98 (expr_list)]
  6526. FOR [reduce using rule 98 (expr_list)]
  6527. FUNC [reduce using rule 98 (expr_list)]
  6528. MACRO [reduce using rule 98 (expr_list)]
  6529. LAMBDA [reduce using rule 98 (expr_list)]
  6530. NONE [reduce using rule 98 (expr_list)]
  6531. IDENT [reduce using rule 98 (expr_list)]
  6532. INT [reduce using rule 98 (expr_list)]
  6533. FLOAT [reduce using rule 98 (expr_list)]
  6534. STRING [reduce using rule 98 (expr_list)]
  6535. MINUS [reduce using rule 98 (expr_list)]
  6536. BNOT [reduce using rule 98 (expr_list)]
  6537. LNOT [reduce using rule 98 (expr_list)]
  6538. LBRACE [reduce using rule 98 (expr_list)]
  6539. BLPAREN [reduce using rule 98 (expr_list)]
  6540. LPAREN [reduce using rule 98 (expr_list)]
  6541. LBRACKET [reduce using rule 98 (expr_list)]
  6542. POUND [reduce using rule 98 (expr_list)]
  6543. $default reduce using rule 98 (expr_list)
  6544. expr go to state 77
  6545. control_expr go to state 28
  6546. assign_expr go to state 29
  6547. logic_expr go to state 30
  6548. ulogic_expr go to state 31
  6549. rel_expr go to state 32
  6550. term_expr go to state 33
  6551. factor_expr go to state 34
  6552. power_expr go to state 35
  6553. tbang_expr go to state 36
  6554. binary_expr go to state 37
  6555. ubinary_expr go to state 38
  6556. ulen_expr go to state 39
  6557. call_expr go to state 40
  6558. funcdecl_expr go to state 41
  6559. index_expr go to state 42
  6560. ex_index_expr go to state 43
  6561. ref_expr go to state 44
  6562. lit_expr go to state 45
  6563. gen_expr go to state 46
  6564. paren_expr go to state 47
  6565. expr_list go to state 162
  6566. any_lparen go to state 48
  6567. State 104
  6568. 73 call_expr: call_expr COLON . IDENT LPAREN expr_list RPAREN
  6569. IDENT shift, and go to state 163
  6570. State 105
  6571. 12 expr: . control_expr
  6572. 13 control_expr: . IF expr THEN stmt_list if_termin
  6573. 14 | . WHILE expr DO stmt_list END
  6574. 15 | . FOR IDENT IN expr DO stmt_list END
  6575. 16 | . assign_expr
  6576. 20 assign_expr: . IDENT ASSIGN expr
  6577. 21 | . IDENT ASSIGNPLUS expr
  6578. 22 | . IDENT ASSIGNMINUS expr
  6579. 23 | . IDENT ASSIGNSTAR expr
  6580. 24 | . IDENT ASSIGNSLASH expr
  6581. 25 | . IDENT ASSIGNDSTAR expr
  6582. 26 | . IDENT ASSIGNBAND expr
  6583. 27 | . IDENT ASSIGNBOR expr
  6584. 28 | . IDENT ASSIGNBXOR expr
  6585. 29 | . ex_index_expr ASSIGN expr
  6586. 29 | ex_index_expr ASSIGN . expr
  6587. 30 | . ex_index_expr ASSIGNPLUS expr
  6588. 31 | . ex_index_expr ASSIGNMINUS expr
  6589. 32 | . ex_index_expr ASSIGNSTAR expr
  6590. 33 | . ex_index_expr ASSIGNSLASH expr
  6591. 34 | . ex_index_expr ASSIGNDSTAR expr
  6592. 35 | . ex_index_expr ASSIGNBAND expr
  6593. 36 | . ex_index_expr ASSIGNBOR expr
  6594. 37 | . ex_index_expr ASSIGNBXOR expr
  6595. 38 | . logic_expr
  6596. 39 logic_expr: . logic_expr LAND ulogic_expr
  6597. 40 | . logic_expr LOR ulogic_expr
  6598. 41 | . ulogic_expr
  6599. 42 ulogic_expr: . LNOT ulogic_expr
  6600. 43 | . rel_expr
  6601. 44 rel_expr: . term_expr EQUAL rel_expr
  6602. 45 | . term_expr NEQUAL rel_expr
  6603. 46 | . term_expr LESS rel_expr
  6604. 47 | . term_expr GREATER rel_expr
  6605. 48 | . term_expr LESSEQ rel_expr
  6606. 49 | . term_expr GREATEREQ rel_expr
  6607. 50 | . term_expr
  6608. 51 term_expr: . term_expr PLUS factor_expr
  6609. 52 | . term_expr MINUS factor_expr
  6610. 53 | . factor_expr
  6611. 54 factor_expr: . factor_expr STAR power_expr
  6612. 55 | . factor_expr SLASH power_expr
  6613. 56 | . factor_expr PERCENT power_expr
  6614. 57 | . power_expr
  6615. 58 power_expr: . tbang_expr DSTAR power_expr
  6616. 59 | . tbang_expr
  6617. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6618. 61 | . binary_expr
  6619. 62 binary_expr: . binary_expr BAND binary_expr
  6620. 63 | . binary_expr BOR binary_expr
  6621. 64 | . binary_expr BXOR binary_expr
  6622. 65 | . binary_expr LSHIFT binary_expr
  6623. 66 | . binary_expr RSHIFT binary_expr
  6624. 67 | . ubinary_expr
  6625. 68 ubinary_expr: . BNOT ubinary_expr
  6626. 69 | . ulen_expr
  6627. 70 ulen_expr: . POUND ulen_expr
  6628. 71 | . call_expr
  6629. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6630. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6631. 74 | . funcdecl_expr
  6632. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6633. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6634. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6635. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6636. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6637. 80 | . index_expr
  6638. 81 index_expr: . expr LBRACKET expr RBRACKET
  6639. 82 | . expr DOT IDENT
  6640. 83 | . ref_expr
  6641. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6642. 85 | . expr DOT IDENT
  6643. 86 ref_expr: . IDENT
  6644. 87 | . lit_expr
  6645. 88 lit_expr: . INT
  6646. 89 | . MINUS INT
  6647. 90 | . FLOAT
  6648. 91 | . STRING
  6649. 92 | . NONE
  6650. 93 | . gen_expr
  6651. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6652. 95 | . LBRACE assoc_list RBRACE
  6653. 96 | . paren_expr
  6654. 97 paren_expr: . any_lparen expr RPAREN
  6655. 113 any_lparen: . LPAREN
  6656. 114 | . BLPAREN
  6657. IF shift, and go to state 4
  6658. WHILE shift, and go to state 5
  6659. FOR shift, and go to state 6
  6660. FUNC shift, and go to state 7
  6661. MACRO shift, and go to state 8
  6662. LAMBDA shift, and go to state 9
  6663. NONE shift, and go to state 13
  6664. IDENT shift, and go to state 14
  6665. INT shift, and go to state 15
  6666. FLOAT shift, and go to state 16
  6667. STRING shift, and go to state 17
  6668. MINUS shift, and go to state 18
  6669. BNOT shift, and go to state 19
  6670. LNOT shift, and go to state 20
  6671. LBRACE shift, and go to state 21
  6672. BLPAREN shift, and go to state 22
  6673. LPAREN shift, and go to state 23
  6674. LBRACKET shift, and go to state 24
  6675. POUND shift, and go to state 25
  6676. expr go to state 164
  6677. control_expr go to state 28
  6678. assign_expr go to state 29
  6679. logic_expr go to state 30
  6680. ulogic_expr go to state 31
  6681. rel_expr go to state 32
  6682. term_expr go to state 33
  6683. factor_expr go to state 34
  6684. power_expr go to state 35
  6685. tbang_expr go to state 36
  6686. binary_expr go to state 37
  6687. ubinary_expr go to state 38
  6688. ulen_expr go to state 39
  6689. call_expr go to state 40
  6690. funcdecl_expr go to state 41
  6691. index_expr go to state 42
  6692. ex_index_expr go to state 43
  6693. ref_expr go to state 44
  6694. lit_expr go to state 45
  6695. gen_expr go to state 46
  6696. paren_expr go to state 47
  6697. any_lparen go to state 48
  6698. State 106
  6699. 12 expr: . control_expr
  6700. 13 control_expr: . IF expr THEN stmt_list if_termin
  6701. 14 | . WHILE expr DO stmt_list END
  6702. 15 | . FOR IDENT IN expr DO stmt_list END
  6703. 16 | . assign_expr
  6704. 20 assign_expr: . IDENT ASSIGN expr
  6705. 21 | . IDENT ASSIGNPLUS expr
  6706. 22 | . IDENT ASSIGNMINUS expr
  6707. 23 | . IDENT ASSIGNSTAR expr
  6708. 24 | . IDENT ASSIGNSLASH expr
  6709. 25 | . IDENT ASSIGNDSTAR expr
  6710. 26 | . IDENT ASSIGNBAND expr
  6711. 27 | . IDENT ASSIGNBOR expr
  6712. 28 | . IDENT ASSIGNBXOR expr
  6713. 29 | . ex_index_expr ASSIGN expr
  6714. 30 | . ex_index_expr ASSIGNPLUS expr
  6715. 30 | ex_index_expr ASSIGNPLUS . expr
  6716. 31 | . ex_index_expr ASSIGNMINUS expr
  6717. 32 | . ex_index_expr ASSIGNSTAR expr
  6718. 33 | . ex_index_expr ASSIGNSLASH expr
  6719. 34 | . ex_index_expr ASSIGNDSTAR expr
  6720. 35 | . ex_index_expr ASSIGNBAND expr
  6721. 36 | . ex_index_expr ASSIGNBOR expr
  6722. 37 | . ex_index_expr ASSIGNBXOR expr
  6723. 38 | . logic_expr
  6724. 39 logic_expr: . logic_expr LAND ulogic_expr
  6725. 40 | . logic_expr LOR ulogic_expr
  6726. 41 | . ulogic_expr
  6727. 42 ulogic_expr: . LNOT ulogic_expr
  6728. 43 | . rel_expr
  6729. 44 rel_expr: . term_expr EQUAL rel_expr
  6730. 45 | . term_expr NEQUAL rel_expr
  6731. 46 | . term_expr LESS rel_expr
  6732. 47 | . term_expr GREATER rel_expr
  6733. 48 | . term_expr LESSEQ rel_expr
  6734. 49 | . term_expr GREATEREQ rel_expr
  6735. 50 | . term_expr
  6736. 51 term_expr: . term_expr PLUS factor_expr
  6737. 52 | . term_expr MINUS factor_expr
  6738. 53 | . factor_expr
  6739. 54 factor_expr: . factor_expr STAR power_expr
  6740. 55 | . factor_expr SLASH power_expr
  6741. 56 | . factor_expr PERCENT power_expr
  6742. 57 | . power_expr
  6743. 58 power_expr: . tbang_expr DSTAR power_expr
  6744. 59 | . tbang_expr
  6745. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6746. 61 | . binary_expr
  6747. 62 binary_expr: . binary_expr BAND binary_expr
  6748. 63 | . binary_expr BOR binary_expr
  6749. 64 | . binary_expr BXOR binary_expr
  6750. 65 | . binary_expr LSHIFT binary_expr
  6751. 66 | . binary_expr RSHIFT binary_expr
  6752. 67 | . ubinary_expr
  6753. 68 ubinary_expr: . BNOT ubinary_expr
  6754. 69 | . ulen_expr
  6755. 70 ulen_expr: . POUND ulen_expr
  6756. 71 | . call_expr
  6757. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6758. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6759. 74 | . funcdecl_expr
  6760. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6761. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6762. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6763. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6764. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6765. 80 | . index_expr
  6766. 81 index_expr: . expr LBRACKET expr RBRACKET
  6767. 82 | . expr DOT IDENT
  6768. 83 | . ref_expr
  6769. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6770. 85 | . expr DOT IDENT
  6771. 86 ref_expr: . IDENT
  6772. 87 | . lit_expr
  6773. 88 lit_expr: . INT
  6774. 89 | . MINUS INT
  6775. 90 | . FLOAT
  6776. 91 | . STRING
  6777. 92 | . NONE
  6778. 93 | . gen_expr
  6779. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6780. 95 | . LBRACE assoc_list RBRACE
  6781. 96 | . paren_expr
  6782. 97 paren_expr: . any_lparen expr RPAREN
  6783. 113 any_lparen: . LPAREN
  6784. 114 | . BLPAREN
  6785. IF shift, and go to state 4
  6786. WHILE shift, and go to state 5
  6787. FOR shift, and go to state 6
  6788. FUNC shift, and go to state 7
  6789. MACRO shift, and go to state 8
  6790. LAMBDA shift, and go to state 9
  6791. NONE shift, and go to state 13
  6792. IDENT shift, and go to state 14
  6793. INT shift, and go to state 15
  6794. FLOAT shift, and go to state 16
  6795. STRING shift, and go to state 17
  6796. MINUS shift, and go to state 18
  6797. BNOT shift, and go to state 19
  6798. LNOT shift, and go to state 20
  6799. LBRACE shift, and go to state 21
  6800. BLPAREN shift, and go to state 22
  6801. LPAREN shift, and go to state 23
  6802. LBRACKET shift, and go to state 24
  6803. POUND shift, and go to state 25
  6804. expr go to state 165
  6805. control_expr go to state 28
  6806. assign_expr go to state 29
  6807. logic_expr go to state 30
  6808. ulogic_expr go to state 31
  6809. rel_expr go to state 32
  6810. term_expr go to state 33
  6811. factor_expr go to state 34
  6812. power_expr go to state 35
  6813. tbang_expr go to state 36
  6814. binary_expr go to state 37
  6815. ubinary_expr go to state 38
  6816. ulen_expr go to state 39
  6817. call_expr go to state 40
  6818. funcdecl_expr go to state 41
  6819. index_expr go to state 42
  6820. ex_index_expr go to state 43
  6821. ref_expr go to state 44
  6822. lit_expr go to state 45
  6823. gen_expr go to state 46
  6824. paren_expr go to state 47
  6825. any_lparen go to state 48
  6826. State 107
  6827. 12 expr: . control_expr
  6828. 13 control_expr: . IF expr THEN stmt_list if_termin
  6829. 14 | . WHILE expr DO stmt_list END
  6830. 15 | . FOR IDENT IN expr DO stmt_list END
  6831. 16 | . assign_expr
  6832. 20 assign_expr: . IDENT ASSIGN expr
  6833. 21 | . IDENT ASSIGNPLUS expr
  6834. 22 | . IDENT ASSIGNMINUS expr
  6835. 23 | . IDENT ASSIGNSTAR expr
  6836. 24 | . IDENT ASSIGNSLASH expr
  6837. 25 | . IDENT ASSIGNDSTAR expr
  6838. 26 | . IDENT ASSIGNBAND expr
  6839. 27 | . IDENT ASSIGNBOR expr
  6840. 28 | . IDENT ASSIGNBXOR expr
  6841. 29 | . ex_index_expr ASSIGN expr
  6842. 30 | . ex_index_expr ASSIGNPLUS expr
  6843. 31 | . ex_index_expr ASSIGNMINUS expr
  6844. 31 | ex_index_expr ASSIGNMINUS . expr
  6845. 32 | . ex_index_expr ASSIGNSTAR expr
  6846. 33 | . ex_index_expr ASSIGNSLASH expr
  6847. 34 | . ex_index_expr ASSIGNDSTAR expr
  6848. 35 | . ex_index_expr ASSIGNBAND expr
  6849. 36 | . ex_index_expr ASSIGNBOR expr
  6850. 37 | . ex_index_expr ASSIGNBXOR expr
  6851. 38 | . logic_expr
  6852. 39 logic_expr: . logic_expr LAND ulogic_expr
  6853. 40 | . logic_expr LOR ulogic_expr
  6854. 41 | . ulogic_expr
  6855. 42 ulogic_expr: . LNOT ulogic_expr
  6856. 43 | . rel_expr
  6857. 44 rel_expr: . term_expr EQUAL rel_expr
  6858. 45 | . term_expr NEQUAL rel_expr
  6859. 46 | . term_expr LESS rel_expr
  6860. 47 | . term_expr GREATER rel_expr
  6861. 48 | . term_expr LESSEQ rel_expr
  6862. 49 | . term_expr GREATEREQ rel_expr
  6863. 50 | . term_expr
  6864. 51 term_expr: . term_expr PLUS factor_expr
  6865. 52 | . term_expr MINUS factor_expr
  6866. 53 | . factor_expr
  6867. 54 factor_expr: . factor_expr STAR power_expr
  6868. 55 | . factor_expr SLASH power_expr
  6869. 56 | . factor_expr PERCENT power_expr
  6870. 57 | . power_expr
  6871. 58 power_expr: . tbang_expr DSTAR power_expr
  6872. 59 | . tbang_expr
  6873. 60 tbang_expr: . binary_expr TBANG tbang_expr
  6874. 61 | . binary_expr
  6875. 62 binary_expr: . binary_expr BAND binary_expr
  6876. 63 | . binary_expr BOR binary_expr
  6877. 64 | . binary_expr BXOR binary_expr
  6878. 65 | . binary_expr LSHIFT binary_expr
  6879. 66 | . binary_expr RSHIFT binary_expr
  6880. 67 | . ubinary_expr
  6881. 68 ubinary_expr: . BNOT ubinary_expr
  6882. 69 | . ulen_expr
  6883. 70 ulen_expr: . POUND ulen_expr
  6884. 71 | . call_expr
  6885. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  6886. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  6887. 74 | . funcdecl_expr
  6888. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6889. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  6890. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  6891. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  6892. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  6893. 80 | . index_expr
  6894. 81 index_expr: . expr LBRACKET expr RBRACKET
  6895. 82 | . expr DOT IDENT
  6896. 83 | . ref_expr
  6897. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  6898. 85 | . expr DOT IDENT
  6899. 86 ref_expr: . IDENT
  6900. 87 | . lit_expr
  6901. 88 lit_expr: . INT
  6902. 89 | . MINUS INT
  6903. 90 | . FLOAT
  6904. 91 | . STRING
  6905. 92 | . NONE
  6906. 93 | . gen_expr
  6907. 94 gen_expr: . LBRACKET expr_list RBRACKET
  6908. 95 | . LBRACE assoc_list RBRACE
  6909. 96 | . paren_expr
  6910. 97 paren_expr: . any_lparen expr RPAREN
  6911. 113 any_lparen: . LPAREN
  6912. 114 | . BLPAREN
  6913. IF shift, and go to state 4
  6914. WHILE shift, and go to state 5
  6915. FOR shift, and go to state 6
  6916. FUNC shift, and go to state 7
  6917. MACRO shift, and go to state 8
  6918. LAMBDA shift, and go to state 9
  6919. NONE shift, and go to state 13
  6920. IDENT shift, and go to state 14
  6921. INT shift, and go to state 15
  6922. FLOAT shift, and go to state 16
  6923. STRING shift, and go to state 17
  6924. MINUS shift, and go to state 18
  6925. BNOT shift, and go to state 19
  6926. LNOT shift, and go to state 20
  6927. LBRACE shift, and go to state 21
  6928. BLPAREN shift, and go to state 22
  6929. LPAREN shift, and go to state 23
  6930. LBRACKET shift, and go to state 24
  6931. POUND shift, and go to state 25
  6932. expr go to state 166
  6933. control_expr go to state 28
  6934. assign_expr go to state 29
  6935. logic_expr go to state 30
  6936. ulogic_expr go to state 31
  6937. rel_expr go to state 32
  6938. term_expr go to state 33
  6939. factor_expr go to state 34
  6940. power_expr go to state 35
  6941. tbang_expr go to state 36
  6942. binary_expr go to state 37
  6943. ubinary_expr go to state 38
  6944. ulen_expr go to state 39
  6945. call_expr go to state 40
  6946. funcdecl_expr go to state 41
  6947. index_expr go to state 42
  6948. ex_index_expr go to state 43
  6949. ref_expr go to state 44
  6950. lit_expr go to state 45
  6951. gen_expr go to state 46
  6952. paren_expr go to state 47
  6953. any_lparen go to state 48
  6954. State 108
  6955. 12 expr: . control_expr
  6956. 13 control_expr: . IF expr THEN stmt_list if_termin
  6957. 14 | . WHILE expr DO stmt_list END
  6958. 15 | . FOR IDENT IN expr DO stmt_list END
  6959. 16 | . assign_expr
  6960. 20 assign_expr: . IDENT ASSIGN expr
  6961. 21 | . IDENT ASSIGNPLUS expr
  6962. 22 | . IDENT ASSIGNMINUS expr
  6963. 23 | . IDENT ASSIGNSTAR expr
  6964. 24 | . IDENT ASSIGNSLASH expr
  6965. 25 | . IDENT ASSIGNDSTAR expr
  6966. 26 | . IDENT ASSIGNBAND expr
  6967. 27 | . IDENT ASSIGNBOR expr
  6968. 28 | . IDENT ASSIGNBXOR expr
  6969. 29 | . ex_index_expr ASSIGN expr
  6970. 30 | . ex_index_expr ASSIGNPLUS expr
  6971. 31 | . ex_index_expr ASSIGNMINUS expr
  6972. 32 | . ex_index_expr ASSIGNSTAR expr
  6973. 32 | ex_index_expr ASSIGNSTAR . expr
  6974. 33 | . ex_index_expr ASSIGNSLASH expr
  6975. 34 | . ex_index_expr ASSIGNDSTAR expr
  6976. 35 | . ex_index_expr ASSIGNBAND expr
  6977. 36 | . ex_index_expr ASSIGNBOR expr
  6978. 37 | . ex_index_expr ASSIGNBXOR expr
  6979. 38 | . logic_expr
  6980. 39 logic_expr: . logic_expr LAND ulogic_expr
  6981. 40 | . logic_expr LOR ulogic_expr
  6982. 41 | . ulogic_expr
  6983. 42 ulogic_expr: . LNOT ulogic_expr
  6984. 43 | . rel_expr
  6985. 44 rel_expr: . term_expr EQUAL rel_expr
  6986. 45 | . term_expr NEQUAL rel_expr
  6987. 46 | . term_expr LESS rel_expr
  6988. 47 | . term_expr GREATER rel_expr
  6989. 48 | . term_expr LESSEQ rel_expr
  6990. 49 | . term_expr GREATEREQ rel_expr
  6991. 50 | . term_expr
  6992. 51 term_expr: . term_expr PLUS factor_expr
  6993. 52 | . term_expr MINUS factor_expr
  6994. 53 | . factor_expr
  6995. 54 factor_expr: . factor_expr STAR power_expr
  6996. 55 | . factor_expr SLASH power_expr
  6997. 56 | . factor_expr PERCENT power_expr
  6998. 57 | . power_expr
  6999. 58 power_expr: . tbang_expr DSTAR power_expr
  7000. 59 | . tbang_expr
  7001. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7002. 61 | . binary_expr
  7003. 62 binary_expr: . binary_expr BAND binary_expr
  7004. 63 | . binary_expr BOR binary_expr
  7005. 64 | . binary_expr BXOR binary_expr
  7006. 65 | . binary_expr LSHIFT binary_expr
  7007. 66 | . binary_expr RSHIFT binary_expr
  7008. 67 | . ubinary_expr
  7009. 68 ubinary_expr: . BNOT ubinary_expr
  7010. 69 | . ulen_expr
  7011. 70 ulen_expr: . POUND ulen_expr
  7012. 71 | . call_expr
  7013. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7014. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7015. 74 | . funcdecl_expr
  7016. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7017. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7018. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7019. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7020. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7021. 80 | . index_expr
  7022. 81 index_expr: . expr LBRACKET expr RBRACKET
  7023. 82 | . expr DOT IDENT
  7024. 83 | . ref_expr
  7025. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7026. 85 | . expr DOT IDENT
  7027. 86 ref_expr: . IDENT
  7028. 87 | . lit_expr
  7029. 88 lit_expr: . INT
  7030. 89 | . MINUS INT
  7031. 90 | . FLOAT
  7032. 91 | . STRING
  7033. 92 | . NONE
  7034. 93 | . gen_expr
  7035. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7036. 95 | . LBRACE assoc_list RBRACE
  7037. 96 | . paren_expr
  7038. 97 paren_expr: . any_lparen expr RPAREN
  7039. 113 any_lparen: . LPAREN
  7040. 114 | . BLPAREN
  7041. IF shift, and go to state 4
  7042. WHILE shift, and go to state 5
  7043. FOR shift, and go to state 6
  7044. FUNC shift, and go to state 7
  7045. MACRO shift, and go to state 8
  7046. LAMBDA shift, and go to state 9
  7047. NONE shift, and go to state 13
  7048. IDENT shift, and go to state 14
  7049. INT shift, and go to state 15
  7050. FLOAT shift, and go to state 16
  7051. STRING shift, and go to state 17
  7052. MINUS shift, and go to state 18
  7053. BNOT shift, and go to state 19
  7054. LNOT shift, and go to state 20
  7055. LBRACE shift, and go to state 21
  7056. BLPAREN shift, and go to state 22
  7057. LPAREN shift, and go to state 23
  7058. LBRACKET shift, and go to state 24
  7059. POUND shift, and go to state 25
  7060. expr go to state 167
  7061. control_expr go to state 28
  7062. assign_expr go to state 29
  7063. logic_expr go to state 30
  7064. ulogic_expr go to state 31
  7065. rel_expr go to state 32
  7066. term_expr go to state 33
  7067. factor_expr go to state 34
  7068. power_expr go to state 35
  7069. tbang_expr go to state 36
  7070. binary_expr go to state 37
  7071. ubinary_expr go to state 38
  7072. ulen_expr go to state 39
  7073. call_expr go to state 40
  7074. funcdecl_expr go to state 41
  7075. index_expr go to state 42
  7076. ex_index_expr go to state 43
  7077. ref_expr go to state 44
  7078. lit_expr go to state 45
  7079. gen_expr go to state 46
  7080. paren_expr go to state 47
  7081. any_lparen go to state 48
  7082. State 109
  7083. 12 expr: . control_expr
  7084. 13 control_expr: . IF expr THEN stmt_list if_termin
  7085. 14 | . WHILE expr DO stmt_list END
  7086. 15 | . FOR IDENT IN expr DO stmt_list END
  7087. 16 | . assign_expr
  7088. 20 assign_expr: . IDENT ASSIGN expr
  7089. 21 | . IDENT ASSIGNPLUS expr
  7090. 22 | . IDENT ASSIGNMINUS expr
  7091. 23 | . IDENT ASSIGNSTAR expr
  7092. 24 | . IDENT ASSIGNSLASH expr
  7093. 25 | . IDENT ASSIGNDSTAR expr
  7094. 26 | . IDENT ASSIGNBAND expr
  7095. 27 | . IDENT ASSIGNBOR expr
  7096. 28 | . IDENT ASSIGNBXOR expr
  7097. 29 | . ex_index_expr ASSIGN expr
  7098. 30 | . ex_index_expr ASSIGNPLUS expr
  7099. 31 | . ex_index_expr ASSIGNMINUS expr
  7100. 32 | . ex_index_expr ASSIGNSTAR expr
  7101. 33 | . ex_index_expr ASSIGNSLASH expr
  7102. 33 | ex_index_expr ASSIGNSLASH . expr
  7103. 34 | . ex_index_expr ASSIGNDSTAR expr
  7104. 35 | . ex_index_expr ASSIGNBAND expr
  7105. 36 | . ex_index_expr ASSIGNBOR expr
  7106. 37 | . ex_index_expr ASSIGNBXOR expr
  7107. 38 | . logic_expr
  7108. 39 logic_expr: . logic_expr LAND ulogic_expr
  7109. 40 | . logic_expr LOR ulogic_expr
  7110. 41 | . ulogic_expr
  7111. 42 ulogic_expr: . LNOT ulogic_expr
  7112. 43 | . rel_expr
  7113. 44 rel_expr: . term_expr EQUAL rel_expr
  7114. 45 | . term_expr NEQUAL rel_expr
  7115. 46 | . term_expr LESS rel_expr
  7116. 47 | . term_expr GREATER rel_expr
  7117. 48 | . term_expr LESSEQ rel_expr
  7118. 49 | . term_expr GREATEREQ rel_expr
  7119. 50 | . term_expr
  7120. 51 term_expr: . term_expr PLUS factor_expr
  7121. 52 | . term_expr MINUS factor_expr
  7122. 53 | . factor_expr
  7123. 54 factor_expr: . factor_expr STAR power_expr
  7124. 55 | . factor_expr SLASH power_expr
  7125. 56 | . factor_expr PERCENT power_expr
  7126. 57 | . power_expr
  7127. 58 power_expr: . tbang_expr DSTAR power_expr
  7128. 59 | . tbang_expr
  7129. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7130. 61 | . binary_expr
  7131. 62 binary_expr: . binary_expr BAND binary_expr
  7132. 63 | . binary_expr BOR binary_expr
  7133. 64 | . binary_expr BXOR binary_expr
  7134. 65 | . binary_expr LSHIFT binary_expr
  7135. 66 | . binary_expr RSHIFT binary_expr
  7136. 67 | . ubinary_expr
  7137. 68 ubinary_expr: . BNOT ubinary_expr
  7138. 69 | . ulen_expr
  7139. 70 ulen_expr: . POUND ulen_expr
  7140. 71 | . call_expr
  7141. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7142. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7143. 74 | . funcdecl_expr
  7144. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7145. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7146. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7147. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7148. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7149. 80 | . index_expr
  7150. 81 index_expr: . expr LBRACKET expr RBRACKET
  7151. 82 | . expr DOT IDENT
  7152. 83 | . ref_expr
  7153. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7154. 85 | . expr DOT IDENT
  7155. 86 ref_expr: . IDENT
  7156. 87 | . lit_expr
  7157. 88 lit_expr: . INT
  7158. 89 | . MINUS INT
  7159. 90 | . FLOAT
  7160. 91 | . STRING
  7161. 92 | . NONE
  7162. 93 | . gen_expr
  7163. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7164. 95 | . LBRACE assoc_list RBRACE
  7165. 96 | . paren_expr
  7166. 97 paren_expr: . any_lparen expr RPAREN
  7167. 113 any_lparen: . LPAREN
  7168. 114 | . BLPAREN
  7169. IF shift, and go to state 4
  7170. WHILE shift, and go to state 5
  7171. FOR shift, and go to state 6
  7172. FUNC shift, and go to state 7
  7173. MACRO shift, and go to state 8
  7174. LAMBDA shift, and go to state 9
  7175. NONE shift, and go to state 13
  7176. IDENT shift, and go to state 14
  7177. INT shift, and go to state 15
  7178. FLOAT shift, and go to state 16
  7179. STRING shift, and go to state 17
  7180. MINUS shift, and go to state 18
  7181. BNOT shift, and go to state 19
  7182. LNOT shift, and go to state 20
  7183. LBRACE shift, and go to state 21
  7184. BLPAREN shift, and go to state 22
  7185. LPAREN shift, and go to state 23
  7186. LBRACKET shift, and go to state 24
  7187. POUND shift, and go to state 25
  7188. expr go to state 168
  7189. control_expr go to state 28
  7190. assign_expr go to state 29
  7191. logic_expr go to state 30
  7192. ulogic_expr go to state 31
  7193. rel_expr go to state 32
  7194. term_expr go to state 33
  7195. factor_expr go to state 34
  7196. power_expr go to state 35
  7197. tbang_expr go to state 36
  7198. binary_expr go to state 37
  7199. ubinary_expr go to state 38
  7200. ulen_expr go to state 39
  7201. call_expr go to state 40
  7202. funcdecl_expr go to state 41
  7203. index_expr go to state 42
  7204. ex_index_expr go to state 43
  7205. ref_expr go to state 44
  7206. lit_expr go to state 45
  7207. gen_expr go to state 46
  7208. paren_expr go to state 47
  7209. any_lparen go to state 48
  7210. State 110
  7211. 12 expr: . control_expr
  7212. 13 control_expr: . IF expr THEN stmt_list if_termin
  7213. 14 | . WHILE expr DO stmt_list END
  7214. 15 | . FOR IDENT IN expr DO stmt_list END
  7215. 16 | . assign_expr
  7216. 20 assign_expr: . IDENT ASSIGN expr
  7217. 21 | . IDENT ASSIGNPLUS expr
  7218. 22 | . IDENT ASSIGNMINUS expr
  7219. 23 | . IDENT ASSIGNSTAR expr
  7220. 24 | . IDENT ASSIGNSLASH expr
  7221. 25 | . IDENT ASSIGNDSTAR expr
  7222. 26 | . IDENT ASSIGNBAND expr
  7223. 27 | . IDENT ASSIGNBOR expr
  7224. 28 | . IDENT ASSIGNBXOR expr
  7225. 29 | . ex_index_expr ASSIGN expr
  7226. 30 | . ex_index_expr ASSIGNPLUS expr
  7227. 31 | . ex_index_expr ASSIGNMINUS expr
  7228. 32 | . ex_index_expr ASSIGNSTAR expr
  7229. 33 | . ex_index_expr ASSIGNSLASH expr
  7230. 34 | . ex_index_expr ASSIGNDSTAR expr
  7231. 34 | ex_index_expr ASSIGNDSTAR . expr
  7232. 35 | . ex_index_expr ASSIGNBAND expr
  7233. 36 | . ex_index_expr ASSIGNBOR expr
  7234. 37 | . ex_index_expr ASSIGNBXOR expr
  7235. 38 | . logic_expr
  7236. 39 logic_expr: . logic_expr LAND ulogic_expr
  7237. 40 | . logic_expr LOR ulogic_expr
  7238. 41 | . ulogic_expr
  7239. 42 ulogic_expr: . LNOT ulogic_expr
  7240. 43 | . rel_expr
  7241. 44 rel_expr: . term_expr EQUAL rel_expr
  7242. 45 | . term_expr NEQUAL rel_expr
  7243. 46 | . term_expr LESS rel_expr
  7244. 47 | . term_expr GREATER rel_expr
  7245. 48 | . term_expr LESSEQ rel_expr
  7246. 49 | . term_expr GREATEREQ rel_expr
  7247. 50 | . term_expr
  7248. 51 term_expr: . term_expr PLUS factor_expr
  7249. 52 | . term_expr MINUS factor_expr
  7250. 53 | . factor_expr
  7251. 54 factor_expr: . factor_expr STAR power_expr
  7252. 55 | . factor_expr SLASH power_expr
  7253. 56 | . factor_expr PERCENT power_expr
  7254. 57 | . power_expr
  7255. 58 power_expr: . tbang_expr DSTAR power_expr
  7256. 59 | . tbang_expr
  7257. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7258. 61 | . binary_expr
  7259. 62 binary_expr: . binary_expr BAND binary_expr
  7260. 63 | . binary_expr BOR binary_expr
  7261. 64 | . binary_expr BXOR binary_expr
  7262. 65 | . binary_expr LSHIFT binary_expr
  7263. 66 | . binary_expr RSHIFT binary_expr
  7264. 67 | . ubinary_expr
  7265. 68 ubinary_expr: . BNOT ubinary_expr
  7266. 69 | . ulen_expr
  7267. 70 ulen_expr: . POUND ulen_expr
  7268. 71 | . call_expr
  7269. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7270. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7271. 74 | . funcdecl_expr
  7272. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7273. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7274. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7275. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7276. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7277. 80 | . index_expr
  7278. 81 index_expr: . expr LBRACKET expr RBRACKET
  7279. 82 | . expr DOT IDENT
  7280. 83 | . ref_expr
  7281. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7282. 85 | . expr DOT IDENT
  7283. 86 ref_expr: . IDENT
  7284. 87 | . lit_expr
  7285. 88 lit_expr: . INT
  7286. 89 | . MINUS INT
  7287. 90 | . FLOAT
  7288. 91 | . STRING
  7289. 92 | . NONE
  7290. 93 | . gen_expr
  7291. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7292. 95 | . LBRACE assoc_list RBRACE
  7293. 96 | . paren_expr
  7294. 97 paren_expr: . any_lparen expr RPAREN
  7295. 113 any_lparen: . LPAREN
  7296. 114 | . BLPAREN
  7297. IF shift, and go to state 4
  7298. WHILE shift, and go to state 5
  7299. FOR shift, and go to state 6
  7300. FUNC shift, and go to state 7
  7301. MACRO shift, and go to state 8
  7302. LAMBDA shift, and go to state 9
  7303. NONE shift, and go to state 13
  7304. IDENT shift, and go to state 14
  7305. INT shift, and go to state 15
  7306. FLOAT shift, and go to state 16
  7307. STRING shift, and go to state 17
  7308. MINUS shift, and go to state 18
  7309. BNOT shift, and go to state 19
  7310. LNOT shift, and go to state 20
  7311. LBRACE shift, and go to state 21
  7312. BLPAREN shift, and go to state 22
  7313. LPAREN shift, and go to state 23
  7314. LBRACKET shift, and go to state 24
  7315. POUND shift, and go to state 25
  7316. expr go to state 169
  7317. control_expr go to state 28
  7318. assign_expr go to state 29
  7319. logic_expr go to state 30
  7320. ulogic_expr go to state 31
  7321. rel_expr go to state 32
  7322. term_expr go to state 33
  7323. factor_expr go to state 34
  7324. power_expr go to state 35
  7325. tbang_expr go to state 36
  7326. binary_expr go to state 37
  7327. ubinary_expr go to state 38
  7328. ulen_expr go to state 39
  7329. call_expr go to state 40
  7330. funcdecl_expr go to state 41
  7331. index_expr go to state 42
  7332. ex_index_expr go to state 43
  7333. ref_expr go to state 44
  7334. lit_expr go to state 45
  7335. gen_expr go to state 46
  7336. paren_expr go to state 47
  7337. any_lparen go to state 48
  7338. State 111
  7339. 12 expr: . control_expr
  7340. 13 control_expr: . IF expr THEN stmt_list if_termin
  7341. 14 | . WHILE expr DO stmt_list END
  7342. 15 | . FOR IDENT IN expr DO stmt_list END
  7343. 16 | . assign_expr
  7344. 20 assign_expr: . IDENT ASSIGN expr
  7345. 21 | . IDENT ASSIGNPLUS expr
  7346. 22 | . IDENT ASSIGNMINUS expr
  7347. 23 | . IDENT ASSIGNSTAR expr
  7348. 24 | . IDENT ASSIGNSLASH expr
  7349. 25 | . IDENT ASSIGNDSTAR expr
  7350. 26 | . IDENT ASSIGNBAND expr
  7351. 27 | . IDENT ASSIGNBOR expr
  7352. 28 | . IDENT ASSIGNBXOR expr
  7353. 29 | . ex_index_expr ASSIGN expr
  7354. 30 | . ex_index_expr ASSIGNPLUS expr
  7355. 31 | . ex_index_expr ASSIGNMINUS expr
  7356. 32 | . ex_index_expr ASSIGNSTAR expr
  7357. 33 | . ex_index_expr ASSIGNSLASH expr
  7358. 34 | . ex_index_expr ASSIGNDSTAR expr
  7359. 35 | . ex_index_expr ASSIGNBAND expr
  7360. 35 | ex_index_expr ASSIGNBAND . expr
  7361. 36 | . ex_index_expr ASSIGNBOR expr
  7362. 37 | . ex_index_expr ASSIGNBXOR expr
  7363. 38 | . logic_expr
  7364. 39 logic_expr: . logic_expr LAND ulogic_expr
  7365. 40 | . logic_expr LOR ulogic_expr
  7366. 41 | . ulogic_expr
  7367. 42 ulogic_expr: . LNOT ulogic_expr
  7368. 43 | . rel_expr
  7369. 44 rel_expr: . term_expr EQUAL rel_expr
  7370. 45 | . term_expr NEQUAL rel_expr
  7371. 46 | . term_expr LESS rel_expr
  7372. 47 | . term_expr GREATER rel_expr
  7373. 48 | . term_expr LESSEQ rel_expr
  7374. 49 | . term_expr GREATEREQ rel_expr
  7375. 50 | . term_expr
  7376. 51 term_expr: . term_expr PLUS factor_expr
  7377. 52 | . term_expr MINUS factor_expr
  7378. 53 | . factor_expr
  7379. 54 factor_expr: . factor_expr STAR power_expr
  7380. 55 | . factor_expr SLASH power_expr
  7381. 56 | . factor_expr PERCENT power_expr
  7382. 57 | . power_expr
  7383. 58 power_expr: . tbang_expr DSTAR power_expr
  7384. 59 | . tbang_expr
  7385. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7386. 61 | . binary_expr
  7387. 62 binary_expr: . binary_expr BAND binary_expr
  7388. 63 | . binary_expr BOR binary_expr
  7389. 64 | . binary_expr BXOR binary_expr
  7390. 65 | . binary_expr LSHIFT binary_expr
  7391. 66 | . binary_expr RSHIFT binary_expr
  7392. 67 | . ubinary_expr
  7393. 68 ubinary_expr: . BNOT ubinary_expr
  7394. 69 | . ulen_expr
  7395. 70 ulen_expr: . POUND ulen_expr
  7396. 71 | . call_expr
  7397. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7398. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7399. 74 | . funcdecl_expr
  7400. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7401. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7402. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7403. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7404. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7405. 80 | . index_expr
  7406. 81 index_expr: . expr LBRACKET expr RBRACKET
  7407. 82 | . expr DOT IDENT
  7408. 83 | . ref_expr
  7409. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7410. 85 | . expr DOT IDENT
  7411. 86 ref_expr: . IDENT
  7412. 87 | . lit_expr
  7413. 88 lit_expr: . INT
  7414. 89 | . MINUS INT
  7415. 90 | . FLOAT
  7416. 91 | . STRING
  7417. 92 | . NONE
  7418. 93 | . gen_expr
  7419. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7420. 95 | . LBRACE assoc_list RBRACE
  7421. 96 | . paren_expr
  7422. 97 paren_expr: . any_lparen expr RPAREN
  7423. 113 any_lparen: . LPAREN
  7424. 114 | . BLPAREN
  7425. IF shift, and go to state 4
  7426. WHILE shift, and go to state 5
  7427. FOR shift, and go to state 6
  7428. FUNC shift, and go to state 7
  7429. MACRO shift, and go to state 8
  7430. LAMBDA shift, and go to state 9
  7431. NONE shift, and go to state 13
  7432. IDENT shift, and go to state 14
  7433. INT shift, and go to state 15
  7434. FLOAT shift, and go to state 16
  7435. STRING shift, and go to state 17
  7436. MINUS shift, and go to state 18
  7437. BNOT shift, and go to state 19
  7438. LNOT shift, and go to state 20
  7439. LBRACE shift, and go to state 21
  7440. BLPAREN shift, and go to state 22
  7441. LPAREN shift, and go to state 23
  7442. LBRACKET shift, and go to state 24
  7443. POUND shift, and go to state 25
  7444. expr go to state 170
  7445. control_expr go to state 28
  7446. assign_expr go to state 29
  7447. logic_expr go to state 30
  7448. ulogic_expr go to state 31
  7449. rel_expr go to state 32
  7450. term_expr go to state 33
  7451. factor_expr go to state 34
  7452. power_expr go to state 35
  7453. tbang_expr go to state 36
  7454. binary_expr go to state 37
  7455. ubinary_expr go to state 38
  7456. ulen_expr go to state 39
  7457. call_expr go to state 40
  7458. funcdecl_expr go to state 41
  7459. index_expr go to state 42
  7460. ex_index_expr go to state 43
  7461. ref_expr go to state 44
  7462. lit_expr go to state 45
  7463. gen_expr go to state 46
  7464. paren_expr go to state 47
  7465. any_lparen go to state 48
  7466. State 112
  7467. 12 expr: . control_expr
  7468. 13 control_expr: . IF expr THEN stmt_list if_termin
  7469. 14 | . WHILE expr DO stmt_list END
  7470. 15 | . FOR IDENT IN expr DO stmt_list END
  7471. 16 | . assign_expr
  7472. 20 assign_expr: . IDENT ASSIGN expr
  7473. 21 | . IDENT ASSIGNPLUS expr
  7474. 22 | . IDENT ASSIGNMINUS expr
  7475. 23 | . IDENT ASSIGNSTAR expr
  7476. 24 | . IDENT ASSIGNSLASH expr
  7477. 25 | . IDENT ASSIGNDSTAR expr
  7478. 26 | . IDENT ASSIGNBAND expr
  7479. 27 | . IDENT ASSIGNBOR expr
  7480. 28 | . IDENT ASSIGNBXOR expr
  7481. 29 | . ex_index_expr ASSIGN expr
  7482. 30 | . ex_index_expr ASSIGNPLUS expr
  7483. 31 | . ex_index_expr ASSIGNMINUS expr
  7484. 32 | . ex_index_expr ASSIGNSTAR expr
  7485. 33 | . ex_index_expr ASSIGNSLASH expr
  7486. 34 | . ex_index_expr ASSIGNDSTAR expr
  7487. 35 | . ex_index_expr ASSIGNBAND expr
  7488. 36 | . ex_index_expr ASSIGNBOR expr
  7489. 36 | ex_index_expr ASSIGNBOR . expr
  7490. 37 | . ex_index_expr ASSIGNBXOR expr
  7491. 38 | . logic_expr
  7492. 39 logic_expr: . logic_expr LAND ulogic_expr
  7493. 40 | . logic_expr LOR ulogic_expr
  7494. 41 | . ulogic_expr
  7495. 42 ulogic_expr: . LNOT ulogic_expr
  7496. 43 | . rel_expr
  7497. 44 rel_expr: . term_expr EQUAL rel_expr
  7498. 45 | . term_expr NEQUAL rel_expr
  7499. 46 | . term_expr LESS rel_expr
  7500. 47 | . term_expr GREATER rel_expr
  7501. 48 | . term_expr LESSEQ rel_expr
  7502. 49 | . term_expr GREATEREQ rel_expr
  7503. 50 | . term_expr
  7504. 51 term_expr: . term_expr PLUS factor_expr
  7505. 52 | . term_expr MINUS factor_expr
  7506. 53 | . factor_expr
  7507. 54 factor_expr: . factor_expr STAR power_expr
  7508. 55 | . factor_expr SLASH power_expr
  7509. 56 | . factor_expr PERCENT power_expr
  7510. 57 | . power_expr
  7511. 58 power_expr: . tbang_expr DSTAR power_expr
  7512. 59 | . tbang_expr
  7513. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7514. 61 | . binary_expr
  7515. 62 binary_expr: . binary_expr BAND binary_expr
  7516. 63 | . binary_expr BOR binary_expr
  7517. 64 | . binary_expr BXOR binary_expr
  7518. 65 | . binary_expr LSHIFT binary_expr
  7519. 66 | . binary_expr RSHIFT binary_expr
  7520. 67 | . ubinary_expr
  7521. 68 ubinary_expr: . BNOT ubinary_expr
  7522. 69 | . ulen_expr
  7523. 70 ulen_expr: . POUND ulen_expr
  7524. 71 | . call_expr
  7525. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7526. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7527. 74 | . funcdecl_expr
  7528. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7529. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7530. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7531. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7532. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7533. 80 | . index_expr
  7534. 81 index_expr: . expr LBRACKET expr RBRACKET
  7535. 82 | . expr DOT IDENT
  7536. 83 | . ref_expr
  7537. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7538. 85 | . expr DOT IDENT
  7539. 86 ref_expr: . IDENT
  7540. 87 | . lit_expr
  7541. 88 lit_expr: . INT
  7542. 89 | . MINUS INT
  7543. 90 | . FLOAT
  7544. 91 | . STRING
  7545. 92 | . NONE
  7546. 93 | . gen_expr
  7547. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7548. 95 | . LBRACE assoc_list RBRACE
  7549. 96 | . paren_expr
  7550. 97 paren_expr: . any_lparen expr RPAREN
  7551. 113 any_lparen: . LPAREN
  7552. 114 | . BLPAREN
  7553. IF shift, and go to state 4
  7554. WHILE shift, and go to state 5
  7555. FOR shift, and go to state 6
  7556. FUNC shift, and go to state 7
  7557. MACRO shift, and go to state 8
  7558. LAMBDA shift, and go to state 9
  7559. NONE shift, and go to state 13
  7560. IDENT shift, and go to state 14
  7561. INT shift, and go to state 15
  7562. FLOAT shift, and go to state 16
  7563. STRING shift, and go to state 17
  7564. MINUS shift, and go to state 18
  7565. BNOT shift, and go to state 19
  7566. LNOT shift, and go to state 20
  7567. LBRACE shift, and go to state 21
  7568. BLPAREN shift, and go to state 22
  7569. LPAREN shift, and go to state 23
  7570. LBRACKET shift, and go to state 24
  7571. POUND shift, and go to state 25
  7572. expr go to state 171
  7573. control_expr go to state 28
  7574. assign_expr go to state 29
  7575. logic_expr go to state 30
  7576. ulogic_expr go to state 31
  7577. rel_expr go to state 32
  7578. term_expr go to state 33
  7579. factor_expr go to state 34
  7580. power_expr go to state 35
  7581. tbang_expr go to state 36
  7582. binary_expr go to state 37
  7583. ubinary_expr go to state 38
  7584. ulen_expr go to state 39
  7585. call_expr go to state 40
  7586. funcdecl_expr go to state 41
  7587. index_expr go to state 42
  7588. ex_index_expr go to state 43
  7589. ref_expr go to state 44
  7590. lit_expr go to state 45
  7591. gen_expr go to state 46
  7592. paren_expr go to state 47
  7593. any_lparen go to state 48
  7594. State 113
  7595. 12 expr: . control_expr
  7596. 13 control_expr: . IF expr THEN stmt_list if_termin
  7597. 14 | . WHILE expr DO stmt_list END
  7598. 15 | . FOR IDENT IN expr DO stmt_list END
  7599. 16 | . assign_expr
  7600. 20 assign_expr: . IDENT ASSIGN expr
  7601. 21 | . IDENT ASSIGNPLUS expr
  7602. 22 | . IDENT ASSIGNMINUS expr
  7603. 23 | . IDENT ASSIGNSTAR expr
  7604. 24 | . IDENT ASSIGNSLASH expr
  7605. 25 | . IDENT ASSIGNDSTAR expr
  7606. 26 | . IDENT ASSIGNBAND expr
  7607. 27 | . IDENT ASSIGNBOR expr
  7608. 28 | . IDENT ASSIGNBXOR expr
  7609. 29 | . ex_index_expr ASSIGN expr
  7610. 30 | . ex_index_expr ASSIGNPLUS expr
  7611. 31 | . ex_index_expr ASSIGNMINUS expr
  7612. 32 | . ex_index_expr ASSIGNSTAR expr
  7613. 33 | . ex_index_expr ASSIGNSLASH expr
  7614. 34 | . ex_index_expr ASSIGNDSTAR expr
  7615. 35 | . ex_index_expr ASSIGNBAND expr
  7616. 36 | . ex_index_expr ASSIGNBOR expr
  7617. 37 | . ex_index_expr ASSIGNBXOR expr
  7618. 37 | ex_index_expr ASSIGNBXOR . expr
  7619. 38 | . logic_expr
  7620. 39 logic_expr: . logic_expr LAND ulogic_expr
  7621. 40 | . logic_expr LOR ulogic_expr
  7622. 41 | . ulogic_expr
  7623. 42 ulogic_expr: . LNOT ulogic_expr
  7624. 43 | . rel_expr
  7625. 44 rel_expr: . term_expr EQUAL rel_expr
  7626. 45 | . term_expr NEQUAL rel_expr
  7627. 46 | . term_expr LESS rel_expr
  7628. 47 | . term_expr GREATER rel_expr
  7629. 48 | . term_expr LESSEQ rel_expr
  7630. 49 | . term_expr GREATEREQ rel_expr
  7631. 50 | . term_expr
  7632. 51 term_expr: . term_expr PLUS factor_expr
  7633. 52 | . term_expr MINUS factor_expr
  7634. 53 | . factor_expr
  7635. 54 factor_expr: . factor_expr STAR power_expr
  7636. 55 | . factor_expr SLASH power_expr
  7637. 56 | . factor_expr PERCENT power_expr
  7638. 57 | . power_expr
  7639. 58 power_expr: . tbang_expr DSTAR power_expr
  7640. 59 | . tbang_expr
  7641. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7642. 61 | . binary_expr
  7643. 62 binary_expr: . binary_expr BAND binary_expr
  7644. 63 | . binary_expr BOR binary_expr
  7645. 64 | . binary_expr BXOR binary_expr
  7646. 65 | . binary_expr LSHIFT binary_expr
  7647. 66 | . binary_expr RSHIFT binary_expr
  7648. 67 | . ubinary_expr
  7649. 68 ubinary_expr: . BNOT ubinary_expr
  7650. 69 | . ulen_expr
  7651. 70 ulen_expr: . POUND ulen_expr
  7652. 71 | . call_expr
  7653. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7654. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7655. 74 | . funcdecl_expr
  7656. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7657. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7658. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7659. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7660. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7661. 80 | . index_expr
  7662. 81 index_expr: . expr LBRACKET expr RBRACKET
  7663. 82 | . expr DOT IDENT
  7664. 83 | . ref_expr
  7665. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7666. 85 | . expr DOT IDENT
  7667. 86 ref_expr: . IDENT
  7668. 87 | . lit_expr
  7669. 88 lit_expr: . INT
  7670. 89 | . MINUS INT
  7671. 90 | . FLOAT
  7672. 91 | . STRING
  7673. 92 | . NONE
  7674. 93 | . gen_expr
  7675. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7676. 95 | . LBRACE assoc_list RBRACE
  7677. 96 | . paren_expr
  7678. 97 paren_expr: . any_lparen expr RPAREN
  7679. 113 any_lparen: . LPAREN
  7680. 114 | . BLPAREN
  7681. IF shift, and go to state 4
  7682. WHILE shift, and go to state 5
  7683. FOR shift, and go to state 6
  7684. FUNC shift, and go to state 7
  7685. MACRO shift, and go to state 8
  7686. LAMBDA shift, and go to state 9
  7687. NONE shift, and go to state 13
  7688. IDENT shift, and go to state 14
  7689. INT shift, and go to state 15
  7690. FLOAT shift, and go to state 16
  7691. STRING shift, and go to state 17
  7692. MINUS shift, and go to state 18
  7693. BNOT shift, and go to state 19
  7694. LNOT shift, and go to state 20
  7695. LBRACE shift, and go to state 21
  7696. BLPAREN shift, and go to state 22
  7697. LPAREN shift, and go to state 23
  7698. LBRACKET shift, and go to state 24
  7699. POUND shift, and go to state 25
  7700. expr go to state 172
  7701. control_expr go to state 28
  7702. assign_expr go to state 29
  7703. logic_expr go to state 30
  7704. ulogic_expr go to state 31
  7705. rel_expr go to state 32
  7706. term_expr go to state 33
  7707. factor_expr go to state 34
  7708. power_expr go to state 35
  7709. tbang_expr go to state 36
  7710. binary_expr go to state 37
  7711. ubinary_expr go to state 38
  7712. ulen_expr go to state 39
  7713. call_expr go to state 40
  7714. funcdecl_expr go to state 41
  7715. index_expr go to state 42
  7716. ex_index_expr go to state 43
  7717. ref_expr go to state 44
  7718. lit_expr go to state 45
  7719. gen_expr go to state 46
  7720. paren_expr go to state 47
  7721. any_lparen go to state 48
  7722. State 114
  7723. 81 index_expr: expr . LBRACKET expr RBRACKET
  7724. 82 | expr . DOT IDENT
  7725. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7726. 85 | expr . DOT IDENT
  7727. 97 paren_expr: any_lparen expr . RPAREN
  7728. RPAREN shift, and go to state 173
  7729. LBRACKET shift, and go to state 81
  7730. DOT shift, and go to state 82
  7731. State 115
  7732. 2 stmt_list: . stmt_list stmt
  7733. 3 | . %empty
  7734. 13 control_expr: IF expr THEN . stmt_list if_termin
  7735. $default reduce using rule 3 (stmt_list)
  7736. stmt_list go to state 174
  7737. State 116
  7738. 2 stmt_list: . stmt_list stmt
  7739. 3 | . %empty
  7740. 14 control_expr: WHILE expr DO . stmt_list END
  7741. $default reduce using rule 3 (stmt_list)
  7742. stmt_list go to state 175
  7743. State 117
  7744. 12 expr: . control_expr
  7745. 13 control_expr: . IF expr THEN stmt_list if_termin
  7746. 14 | . WHILE expr DO stmt_list END
  7747. 15 | . FOR IDENT IN expr DO stmt_list END
  7748. 15 | FOR IDENT IN . expr DO stmt_list END
  7749. 16 | . assign_expr
  7750. 20 assign_expr: . IDENT ASSIGN expr
  7751. 21 | . IDENT ASSIGNPLUS expr
  7752. 22 | . IDENT ASSIGNMINUS expr
  7753. 23 | . IDENT ASSIGNSTAR expr
  7754. 24 | . IDENT ASSIGNSLASH expr
  7755. 25 | . IDENT ASSIGNDSTAR expr
  7756. 26 | . IDENT ASSIGNBAND expr
  7757. 27 | . IDENT ASSIGNBOR expr
  7758. 28 | . IDENT ASSIGNBXOR expr
  7759. 29 | . ex_index_expr ASSIGN expr
  7760. 30 | . ex_index_expr ASSIGNPLUS expr
  7761. 31 | . ex_index_expr ASSIGNMINUS expr
  7762. 32 | . ex_index_expr ASSIGNSTAR expr
  7763. 33 | . ex_index_expr ASSIGNSLASH expr
  7764. 34 | . ex_index_expr ASSIGNDSTAR expr
  7765. 35 | . ex_index_expr ASSIGNBAND expr
  7766. 36 | . ex_index_expr ASSIGNBOR expr
  7767. 37 | . ex_index_expr ASSIGNBXOR expr
  7768. 38 | . logic_expr
  7769. 39 logic_expr: . logic_expr LAND ulogic_expr
  7770. 40 | . logic_expr LOR ulogic_expr
  7771. 41 | . ulogic_expr
  7772. 42 ulogic_expr: . LNOT ulogic_expr
  7773. 43 | . rel_expr
  7774. 44 rel_expr: . term_expr EQUAL rel_expr
  7775. 45 | . term_expr NEQUAL rel_expr
  7776. 46 | . term_expr LESS rel_expr
  7777. 47 | . term_expr GREATER rel_expr
  7778. 48 | . term_expr LESSEQ rel_expr
  7779. 49 | . term_expr GREATEREQ rel_expr
  7780. 50 | . term_expr
  7781. 51 term_expr: . term_expr PLUS factor_expr
  7782. 52 | . term_expr MINUS factor_expr
  7783. 53 | . factor_expr
  7784. 54 factor_expr: . factor_expr STAR power_expr
  7785. 55 | . factor_expr SLASH power_expr
  7786. 56 | . factor_expr PERCENT power_expr
  7787. 57 | . power_expr
  7788. 58 power_expr: . tbang_expr DSTAR power_expr
  7789. 59 | . tbang_expr
  7790. 60 tbang_expr: . binary_expr TBANG tbang_expr
  7791. 61 | . binary_expr
  7792. 62 binary_expr: . binary_expr BAND binary_expr
  7793. 63 | . binary_expr BOR binary_expr
  7794. 64 | . binary_expr BXOR binary_expr
  7795. 65 | . binary_expr LSHIFT binary_expr
  7796. 66 | . binary_expr RSHIFT binary_expr
  7797. 67 | . ubinary_expr
  7798. 68 ubinary_expr: . BNOT ubinary_expr
  7799. 69 | . ulen_expr
  7800. 70 ulen_expr: . POUND ulen_expr
  7801. 71 | . call_expr
  7802. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  7803. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  7804. 74 | . funcdecl_expr
  7805. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7806. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  7807. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  7808. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  7809. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  7810. 80 | . index_expr
  7811. 81 index_expr: . expr LBRACKET expr RBRACKET
  7812. 82 | . expr DOT IDENT
  7813. 83 | . ref_expr
  7814. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  7815. 85 | . expr DOT IDENT
  7816. 86 ref_expr: . IDENT
  7817. 87 | . lit_expr
  7818. 88 lit_expr: . INT
  7819. 89 | . MINUS INT
  7820. 90 | . FLOAT
  7821. 91 | . STRING
  7822. 92 | . NONE
  7823. 93 | . gen_expr
  7824. 94 gen_expr: . LBRACKET expr_list RBRACKET
  7825. 95 | . LBRACE assoc_list RBRACE
  7826. 96 | . paren_expr
  7827. 97 paren_expr: . any_lparen expr RPAREN
  7828. 113 any_lparen: . LPAREN
  7829. 114 | . BLPAREN
  7830. IF shift, and go to state 4
  7831. WHILE shift, and go to state 5
  7832. FOR shift, and go to state 6
  7833. FUNC shift, and go to state 7
  7834. MACRO shift, and go to state 8
  7835. LAMBDA shift, and go to state 9
  7836. NONE shift, and go to state 13
  7837. IDENT shift, and go to state 14
  7838. INT shift, and go to state 15
  7839. FLOAT shift, and go to state 16
  7840. STRING shift, and go to state 17
  7841. MINUS shift, and go to state 18
  7842. BNOT shift, and go to state 19
  7843. LNOT shift, and go to state 20
  7844. LBRACE shift, and go to state 21
  7845. BLPAREN shift, and go to state 22
  7846. LPAREN shift, and go to state 23
  7847. LBRACKET shift, and go to state 24
  7848. POUND shift, and go to state 25
  7849. expr go to state 176
  7850. control_expr go to state 28
  7851. assign_expr go to state 29
  7852. logic_expr go to state 30
  7853. ulogic_expr go to state 31
  7854. rel_expr go to state 32
  7855. term_expr go to state 33
  7856. factor_expr go to state 34
  7857. power_expr go to state 35
  7858. tbang_expr go to state 36
  7859. binary_expr go to state 37
  7860. ubinary_expr go to state 38
  7861. ulen_expr go to state 39
  7862. call_expr go to state 40
  7863. funcdecl_expr go to state 41
  7864. index_expr go to state 42
  7865. ex_index_expr go to state 43
  7866. ref_expr go to state 44
  7867. lit_expr go to state 45
  7868. gen_expr go to state 46
  7869. paren_expr go to state 47
  7870. any_lparen go to state 48
  7871. State 118
  7872. 75 funcdecl_expr: FUNC IDENT any_lparen . param_list RPAREN maybe_anno stmt_list END
  7873. 102 param_list: . %empty
  7874. 103 | . param_list IDENT ASSIGN expr
  7875. 104 | . param_list STAR IDENT
  7876. 105 | . param_list IDENT maybe_anno
  7877. 106 | . param_list COMMA
  7878. $default reduce using rule 102 (param_list)
  7879. param_list go to state 177
  7880. State 119
  7881. 76 funcdecl_expr: FUNC any_lparen param_list . RPAREN maybe_anno stmt_list END
  7882. 103 param_list: param_list . IDENT ASSIGN expr
  7883. 104 | param_list . STAR IDENT
  7884. 105 | param_list . IDENT maybe_anno
  7885. 106 | param_list . COMMA
  7886. IDENT shift, and go to state 178
  7887. STAR shift, and go to state 179
  7888. RPAREN shift, and go to state 180
  7889. COMMA shift, and go to state 181
  7890. State 120
  7891. 77 funcdecl_expr: MACRO IDENT any_lparen . param_list RPAREN maybe_anno stmt_list END
  7892. 102 param_list: . %empty
  7893. 103 | . param_list IDENT ASSIGN expr
  7894. 104 | . param_list STAR IDENT
  7895. 105 | . param_list IDENT maybe_anno
  7896. 106 | . param_list COMMA
  7897. $default reduce using rule 102 (param_list)
  7898. param_list go to state 182
  7899. State 121
  7900. 78 funcdecl_expr: MACRO any_lparen param_list . RPAREN maybe_anno stmt_list END
  7901. 103 param_list: param_list . IDENT ASSIGN expr
  7902. 104 | param_list . STAR IDENT
  7903. 105 | param_list . IDENT maybe_anno
  7904. 106 | param_list . COMMA
  7905. IDENT shift, and go to state 178
  7906. STAR shift, and go to state 179
  7907. RPAREN shift, and go to state 183
  7908. COMMA shift, and go to state 181
  7909. State 122
  7910. 79 funcdecl_expr: LAMBDA any_lparen param_list . RPAREN maybe_anno expr END
  7911. 103 param_list: param_list . IDENT ASSIGN expr
  7912. 104 | param_list . STAR IDENT
  7913. 105 | param_list . IDENT maybe_anno
  7914. 106 | param_list . COMMA
  7915. IDENT shift, and go to state 178
  7916. STAR shift, and go to state 179
  7917. RPAREN shift, and go to state 184
  7918. COMMA shift, and go to state 181
  7919. State 123
  7920. 20 assign_expr: IDENT ASSIGN expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7921. 81 index_expr: expr . LBRACKET expr RBRACKET
  7922. 82 | expr . DOT IDENT
  7923. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7924. 85 | expr . DOT IDENT
  7925. LBRACKET shift, and go to state 81
  7926. DOT shift, and go to state 82
  7927. LBRACKET [reduce using rule 20 (assign_expr)]
  7928. DOT [reduce using rule 20 (assign_expr)]
  7929. $default reduce using rule 20 (assign_expr)
  7930. State 124
  7931. 21 assign_expr: IDENT ASSIGNPLUS expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7932. 81 index_expr: expr . LBRACKET expr RBRACKET
  7933. 82 | expr . DOT IDENT
  7934. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7935. 85 | expr . DOT IDENT
  7936. LBRACKET shift, and go to state 81
  7937. DOT shift, and go to state 82
  7938. LBRACKET [reduce using rule 21 (assign_expr)]
  7939. DOT [reduce using rule 21 (assign_expr)]
  7940. $default reduce using rule 21 (assign_expr)
  7941. State 125
  7942. 22 assign_expr: IDENT ASSIGNMINUS expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7943. 81 index_expr: expr . LBRACKET expr RBRACKET
  7944. 82 | expr . DOT IDENT
  7945. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7946. 85 | expr . DOT IDENT
  7947. LBRACKET shift, and go to state 81
  7948. DOT shift, and go to state 82
  7949. LBRACKET [reduce using rule 22 (assign_expr)]
  7950. DOT [reduce using rule 22 (assign_expr)]
  7951. $default reduce using rule 22 (assign_expr)
  7952. State 126
  7953. 23 assign_expr: IDENT ASSIGNSTAR expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7954. 81 index_expr: expr . LBRACKET expr RBRACKET
  7955. 82 | expr . DOT IDENT
  7956. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7957. 85 | expr . DOT IDENT
  7958. LBRACKET shift, and go to state 81
  7959. DOT shift, and go to state 82
  7960. LBRACKET [reduce using rule 23 (assign_expr)]
  7961. DOT [reduce using rule 23 (assign_expr)]
  7962. $default reduce using rule 23 (assign_expr)
  7963. State 127
  7964. 24 assign_expr: IDENT ASSIGNSLASH expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7965. 81 index_expr: expr . LBRACKET expr RBRACKET
  7966. 82 | expr . DOT IDENT
  7967. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7968. 85 | expr . DOT IDENT
  7969. LBRACKET shift, and go to state 81
  7970. DOT shift, and go to state 82
  7971. LBRACKET [reduce using rule 24 (assign_expr)]
  7972. DOT [reduce using rule 24 (assign_expr)]
  7973. $default reduce using rule 24 (assign_expr)
  7974. State 128
  7975. 25 assign_expr: IDENT ASSIGNDSTAR expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7976. 81 index_expr: expr . LBRACKET expr RBRACKET
  7977. 82 | expr . DOT IDENT
  7978. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7979. 85 | expr . DOT IDENT
  7980. LBRACKET shift, and go to state 81
  7981. DOT shift, and go to state 82
  7982. LBRACKET [reduce using rule 25 (assign_expr)]
  7983. DOT [reduce using rule 25 (assign_expr)]
  7984. $default reduce using rule 25 (assign_expr)
  7985. State 129
  7986. 26 assign_expr: IDENT ASSIGNBAND expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7987. 81 index_expr: expr . LBRACKET expr RBRACKET
  7988. 82 | expr . DOT IDENT
  7989. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  7990. 85 | expr . DOT IDENT
  7991. LBRACKET shift, and go to state 81
  7992. DOT shift, and go to state 82
  7993. LBRACKET [reduce using rule 26 (assign_expr)]
  7994. DOT [reduce using rule 26 (assign_expr)]
  7995. $default reduce using rule 26 (assign_expr)
  7996. State 130
  7997. 27 assign_expr: IDENT ASSIGNBOR expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  7998. 81 index_expr: expr . LBRACKET expr RBRACKET
  7999. 82 | expr . DOT IDENT
  8000. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  8001. 85 | expr . DOT IDENT
  8002. LBRACKET shift, and go to state 81
  8003. DOT shift, and go to state 82
  8004. LBRACKET [reduce using rule 27 (assign_expr)]
  8005. DOT [reduce using rule 27 (assign_expr)]
  8006. $default reduce using rule 27 (assign_expr)
  8007. State 131
  8008. 28 assign_expr: IDENT ASSIGNBXOR expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8009. 81 index_expr: expr . LBRACKET expr RBRACKET
  8010. 82 | expr . DOT IDENT
  8011. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  8012. 85 | expr . DOT IDENT
  8013. LBRACKET shift, and go to state 81
  8014. DOT shift, and go to state 82
  8015. LBRACKET [reduce using rule 28 (assign_expr)]
  8016. DOT [reduce using rule 28 (assign_expr)]
  8017. $default reduce using rule 28 (assign_expr)
  8018. State 132
  8019. 12 expr: . control_expr
  8020. 13 control_expr: . IF expr THEN stmt_list if_termin
  8021. 14 | . WHILE expr DO stmt_list END
  8022. 15 | . FOR IDENT IN expr DO stmt_list END
  8023. 16 | . assign_expr
  8024. 20 assign_expr: . IDENT ASSIGN expr
  8025. 21 | . IDENT ASSIGNPLUS expr
  8026. 22 | . IDENT ASSIGNMINUS expr
  8027. 23 | . IDENT ASSIGNSTAR expr
  8028. 24 | . IDENT ASSIGNSLASH expr
  8029. 25 | . IDENT ASSIGNDSTAR expr
  8030. 26 | . IDENT ASSIGNBAND expr
  8031. 27 | . IDENT ASSIGNBOR expr
  8032. 28 | . IDENT ASSIGNBXOR expr
  8033. 29 | . ex_index_expr ASSIGN expr
  8034. 30 | . ex_index_expr ASSIGNPLUS expr
  8035. 31 | . ex_index_expr ASSIGNMINUS expr
  8036. 32 | . ex_index_expr ASSIGNSTAR expr
  8037. 33 | . ex_index_expr ASSIGNSLASH expr
  8038. 34 | . ex_index_expr ASSIGNDSTAR expr
  8039. 35 | . ex_index_expr ASSIGNBAND expr
  8040. 36 | . ex_index_expr ASSIGNBOR expr
  8041. 37 | . ex_index_expr ASSIGNBXOR expr
  8042. 38 | . logic_expr
  8043. 39 logic_expr: . logic_expr LAND ulogic_expr
  8044. 40 | . logic_expr LOR ulogic_expr
  8045. 41 | . ulogic_expr
  8046. 42 ulogic_expr: . LNOT ulogic_expr
  8047. 43 | . rel_expr
  8048. 44 rel_expr: . term_expr EQUAL rel_expr
  8049. 45 | . term_expr NEQUAL rel_expr
  8050. 46 | . term_expr LESS rel_expr
  8051. 47 | . term_expr GREATER rel_expr
  8052. 48 | . term_expr LESSEQ rel_expr
  8053. 49 | . term_expr GREATEREQ rel_expr
  8054. 50 | . term_expr
  8055. 51 term_expr: . term_expr PLUS factor_expr
  8056. 52 | . term_expr MINUS factor_expr
  8057. 53 | . factor_expr
  8058. 54 factor_expr: . factor_expr STAR power_expr
  8059. 55 | . factor_expr SLASH power_expr
  8060. 56 | . factor_expr PERCENT power_expr
  8061. 57 | . power_expr
  8062. 58 power_expr: . tbang_expr DSTAR power_expr
  8063. 59 | . tbang_expr
  8064. 60 tbang_expr: . binary_expr TBANG tbang_expr
  8065. 61 | . binary_expr
  8066. 62 binary_expr: . binary_expr BAND binary_expr
  8067. 63 | . binary_expr BOR binary_expr
  8068. 64 | . binary_expr BXOR binary_expr
  8069. 65 | . binary_expr LSHIFT binary_expr
  8070. 66 | . binary_expr RSHIFT binary_expr
  8071. 67 | . ubinary_expr
  8072. 68 ubinary_expr: . BNOT ubinary_expr
  8073. 69 | . ulen_expr
  8074. 70 ulen_expr: . POUND ulen_expr
  8075. 71 | . call_expr
  8076. 72 call_expr: . call_expr LPAREN expr_list RPAREN
  8077. 73 | . call_expr COLON IDENT LPAREN expr_list RPAREN
  8078. 74 | . funcdecl_expr
  8079. 75 funcdecl_expr: . FUNC IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  8080. 76 | . FUNC any_lparen param_list RPAREN maybe_anno stmt_list END
  8081. 77 | . MACRO IDENT any_lparen param_list RPAREN maybe_anno stmt_list END
  8082. 78 | . MACRO any_lparen param_list RPAREN maybe_anno stmt_list END
  8083. 79 | . LAMBDA any_lparen param_list RPAREN maybe_anno expr END
  8084. 80 | . index_expr
  8085. 81 index_expr: . expr LBRACKET expr RBRACKET
  8086. 82 | . expr DOT IDENT
  8087. 83 | . ref_expr
  8088. 84 ex_index_expr: . expr LBRACKET expr RBRACKET
  8089. 85 | . expr DOT IDENT
  8090. 86 ref_expr: . IDENT
  8091. 87 | . lit_expr
  8092. 88 lit_expr: . INT
  8093. 89 | . MINUS INT
  8094. 90 | . FLOAT
  8095. 91 | . STRING
  8096. 92 | . NONE
  8097. 93 | . gen_expr
  8098. 94 gen_expr: . LBRACKET expr_list RBRACKET
  8099. 95 | . LBRACE assoc_list RBRACE
  8100. 96 | . paren_expr
  8101. 97 paren_expr: . any_lparen expr RPAREN
  8102. 112 assoc_item: IDENT ASSIGN . expr
  8103. 113 any_lparen: . LPAREN
  8104. 114 | . BLPAREN
  8105. IF shift, and go to state 4
  8106. WHILE shift, and go to state 5
  8107. FOR shift, and go to state 6
  8108. FUNC shift, and go to state 7
  8109. MACRO shift, and go to state 8
  8110. LAMBDA shift, and go to state 9
  8111. NONE shift, and go to state 13
  8112. IDENT shift, and go to state 14
  8113. INT shift, and go to state 15
  8114. FLOAT shift, and go to state 16
  8115. STRING shift, and go to state 17
  8116. MINUS shift, and go to state 18
  8117. BNOT shift, and go to state 19
  8118. LNOT shift, and go to state 20
  8119. LBRACE shift, and go to state 21
  8120. BLPAREN shift, and go to state 22
  8121. LPAREN shift, and go to state 23
  8122. LBRACKET shift, and go to state 24
  8123. POUND shift, and go to state 25
  8124. expr go to state 185
  8125. control_expr go to state 28
  8126. assign_expr go to state 29
  8127. logic_expr go to state 30
  8128. ulogic_expr go to state 31
  8129. rel_expr go to state 32
  8130. term_expr go to state 33
  8131. factor_expr go to state 34
  8132. power_expr go to state 35
  8133. tbang_expr go to state 36
  8134. binary_expr go to state 37
  8135. ubinary_expr go to state 38
  8136. ulen_expr go to state 39
  8137. call_expr go to state 40
  8138. funcdecl_expr go to state 41
  8139. index_expr go to state 42
  8140. ex_index_expr go to state 43
  8141. ref_expr go to state 44
  8142. lit_expr go to state 45
  8143. gen_expr go to state 46
  8144. paren_expr go to state 47
  8145. any_lparen go to state 48
  8146. State 133
  8147. 81 index_expr: expr . LBRACKET expr RBRACKET
  8148. 82 | expr . DOT IDENT
  8149. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  8150. 85 | expr . DOT IDENT
  8151. 111 assoc_item: LBRACKET expr . RBRACKET ASSIGN expr
  8152. LBRACKET shift, and go to state 81
  8153. RBRACKET shift, and go to state 186
  8154. DOT shift, and go to state 82
  8155. State 134
  8156. 95 gen_expr: LBRACE assoc_list RBRACE .
  8157. $default reduce using rule 95 (gen_expr)
  8158. State 135
  8159. 109 assoc_list: assoc_list COMMA .
  8160. $default reduce using rule 109 (assoc_list)
  8161. State 136
  8162. 110 assoc_list: assoc_list assoc_item .
  8163. $default reduce using rule 110 (assoc_list)
  8164. State 137
  8165. 94 gen_expr: LBRACKET expr_list RBRACKET .
  8166. $default reduce using rule 94 (gen_expr)
  8167. State 138
  8168. 100 expr_list: expr_list COMMA .
  8169. $default reduce using rule 100 (expr_list)
  8170. State 139
  8171. 81 index_expr: expr . LBRACKET expr RBRACKET
  8172. 82 | expr . DOT IDENT
  8173. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  8174. 85 | expr . DOT IDENT
  8175. 101 expr_list: expr_list expr . [IF, WHILE, FOR, FUNC, MACRO, LAMBDA, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, COMMA, POUND]
  8176. LBRACKET shift, and go to state 81
  8177. DOT shift, and go to state 82
  8178. LBRACKET [reduce using rule 101 (expr_list)]
  8179. $default reduce using rule 101 (expr_list)
  8180. State 140
  8181. 81 index_expr: expr . LBRACKET expr RBRACKET
  8182. 81 | expr LBRACKET expr . RBRACKET
  8183. 82 | expr . DOT IDENT
  8184. 84 ex_index_expr: expr . LBRACKET expr RBRACKET
  8185. 84 | expr LBRACKET expr . RBRACKET
  8186. 85 | expr . DOT IDENT
  8187. LBRACKET shift, and go to state 81
  8188. RBRACKET shift, and go to state 187
  8189. DOT shift, and go to state 82
  8190. State 141
  8191. 82 index_expr: expr DOT IDENT . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, COLON, SEMICOLON, COMMA, POUND, TBANG]
  8192. 85 ex_index_expr: expr DOT IDENT . [ASSIGN, ASSIGNPLUS, ASSIGNMINUS, ASSIGNSTAR, ASSIGNSLASH, ASSIGNDSTAR, ASSIGNBAND, ASSIGNBOR, ASSIGNBXOR]
  8193. ASSIGN reduce using rule 85 (ex_index_expr)
  8194. ASSIGNPLUS reduce using rule 85 (ex_index_expr)
  8195. ASSIGNMINUS reduce using rule 85 (ex_index_expr)
  8196. ASSIGNSTAR reduce using rule 85 (ex_index_expr)
  8197. ASSIGNSLASH reduce using rule 85 (ex_index_expr)
  8198. ASSIGNDSTAR reduce using rule 85 (ex_index_expr)
  8199. ASSIGNBAND reduce using rule 85 (ex_index_expr)
  8200. ASSIGNBOR reduce using rule 85 (ex_index_expr)
  8201. ASSIGNBXOR reduce using rule 85 (ex_index_expr)
  8202. $default reduce using rule 82 (index_expr)
  8203. State 142
  8204. 39 logic_expr: logic_expr LAND ulogic_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8205. 41 | ulogic_expr . [LAND, LOR, LBRACKET, DOT]
  8206. LAND reduce using rule 39 (logic_expr)
  8207. LAND [reduce using rule 41 (logic_expr)]
  8208. LOR reduce using rule 39 (logic_expr)
  8209. LOR [reduce using rule 41 (logic_expr)]
  8210. LBRACKET reduce using rule 39 (logic_expr)
  8211. LBRACKET [reduce using rule 41 (logic_expr)]
  8212. DOT reduce using rule 39 (logic_expr)
  8213. DOT [reduce using rule 41 (logic_expr)]
  8214. $default reduce using rule 39 (logic_expr)
  8215. State 143
  8216. 40 logic_expr: logic_expr LOR ulogic_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8217. 41 | ulogic_expr . [LAND, LOR, LBRACKET, DOT]
  8218. LAND reduce using rule 40 (logic_expr)
  8219. LAND [reduce using rule 41 (logic_expr)]
  8220. LOR reduce using rule 40 (logic_expr)
  8221. LOR [reduce using rule 41 (logic_expr)]
  8222. LBRACKET reduce using rule 40 (logic_expr)
  8223. LBRACKET [reduce using rule 41 (logic_expr)]
  8224. DOT reduce using rule 40 (logic_expr)
  8225. DOT [reduce using rule 41 (logic_expr)]
  8226. $default reduce using rule 40 (logic_expr)
  8227. State 144
  8228. 51 term_expr: term_expr PLUS factor_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8229. 53 | factor_expr . [PLUS, MINUS, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACKET, DOT]
  8230. 54 factor_expr: factor_expr . STAR power_expr
  8231. 55 | factor_expr . SLASH power_expr
  8232. 56 | factor_expr . PERCENT power_expr
  8233. STAR shift, and go to state 93
  8234. SLASH shift, and go to state 94
  8235. PERCENT shift, and go to state 95
  8236. PLUS reduce using rule 51 (term_expr)
  8237. PLUS [reduce using rule 53 (term_expr)]
  8238. MINUS reduce using rule 51 (term_expr)
  8239. MINUS [reduce using rule 53 (term_expr)]
  8240. STAR [reduce using rule 51 (term_expr)]
  8241. LAND reduce using rule 51 (term_expr)
  8242. LAND [reduce using rule 53 (term_expr)]
  8243. LOR reduce using rule 51 (term_expr)
  8244. LOR [reduce using rule 53 (term_expr)]
  8245. EQUAL reduce using rule 51 (term_expr)
  8246. EQUAL [reduce using rule 53 (term_expr)]
  8247. NEQUAL reduce using rule 51 (term_expr)
  8248. NEQUAL [reduce using rule 53 (term_expr)]
  8249. LESS reduce using rule 51 (term_expr)
  8250. LESS [reduce using rule 53 (term_expr)]
  8251. GREATER reduce using rule 51 (term_expr)
  8252. GREATER [reduce using rule 53 (term_expr)]
  8253. LESSEQ reduce using rule 51 (term_expr)
  8254. LESSEQ [reduce using rule 53 (term_expr)]
  8255. GREATEREQ reduce using rule 51 (term_expr)
  8256. GREATEREQ [reduce using rule 53 (term_expr)]
  8257. LBRACKET reduce using rule 51 (term_expr)
  8258. LBRACKET [reduce using rule 53 (term_expr)]
  8259. DOT reduce using rule 51 (term_expr)
  8260. DOT [reduce using rule 53 (term_expr)]
  8261. $default reduce using rule 51 (term_expr)
  8262. State 145
  8263. 52 term_expr: term_expr MINUS factor_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8264. 53 | factor_expr . [PLUS, MINUS, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACKET, DOT]
  8265. 54 factor_expr: factor_expr . STAR power_expr
  8266. 55 | factor_expr . SLASH power_expr
  8267. 56 | factor_expr . PERCENT power_expr
  8268. STAR shift, and go to state 93
  8269. SLASH shift, and go to state 94
  8270. PERCENT shift, and go to state 95
  8271. PLUS reduce using rule 52 (term_expr)
  8272. PLUS [reduce using rule 53 (term_expr)]
  8273. MINUS reduce using rule 52 (term_expr)
  8274. MINUS [reduce using rule 53 (term_expr)]
  8275. STAR [reduce using rule 52 (term_expr)]
  8276. LAND reduce using rule 52 (term_expr)
  8277. LAND [reduce using rule 53 (term_expr)]
  8278. LOR reduce using rule 52 (term_expr)
  8279. LOR [reduce using rule 53 (term_expr)]
  8280. EQUAL reduce using rule 52 (term_expr)
  8281. EQUAL [reduce using rule 53 (term_expr)]
  8282. NEQUAL reduce using rule 52 (term_expr)
  8283. NEQUAL [reduce using rule 53 (term_expr)]
  8284. LESS reduce using rule 52 (term_expr)
  8285. LESS [reduce using rule 53 (term_expr)]
  8286. GREATER reduce using rule 52 (term_expr)
  8287. GREATER [reduce using rule 53 (term_expr)]
  8288. LESSEQ reduce using rule 52 (term_expr)
  8289. LESSEQ [reduce using rule 53 (term_expr)]
  8290. GREATEREQ reduce using rule 52 (term_expr)
  8291. GREATEREQ [reduce using rule 53 (term_expr)]
  8292. LBRACKET reduce using rule 52 (term_expr)
  8293. LBRACKET [reduce using rule 53 (term_expr)]
  8294. DOT reduce using rule 52 (term_expr)
  8295. DOT [reduce using rule 53 (term_expr)]
  8296. $default reduce using rule 52 (term_expr)
  8297. State 146
  8298. 43 ulogic_expr: rel_expr . [LAND, LOR, LBRACKET, DOT]
  8299. 44 rel_expr: term_expr EQUAL rel_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8300. LAND reduce using rule 43 (ulogic_expr)
  8301. LAND [reduce using rule 44 (rel_expr)]
  8302. LOR reduce using rule 43 (ulogic_expr)
  8303. LOR [reduce using rule 44 (rel_expr)]
  8304. LBRACKET reduce using rule 43 (ulogic_expr)
  8305. LBRACKET [reduce using rule 44 (rel_expr)]
  8306. DOT reduce using rule 43 (ulogic_expr)
  8307. DOT [reduce using rule 44 (rel_expr)]
  8308. $default reduce using rule 44 (rel_expr)
  8309. State 147
  8310. 43 ulogic_expr: rel_expr . [LAND, LOR, LBRACKET, DOT]
  8311. 45 rel_expr: term_expr NEQUAL rel_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8312. LAND reduce using rule 43 (ulogic_expr)
  8313. LAND [reduce using rule 45 (rel_expr)]
  8314. LOR reduce using rule 43 (ulogic_expr)
  8315. LOR [reduce using rule 45 (rel_expr)]
  8316. LBRACKET reduce using rule 43 (ulogic_expr)
  8317. LBRACKET [reduce using rule 45 (rel_expr)]
  8318. DOT reduce using rule 43 (ulogic_expr)
  8319. DOT [reduce using rule 45 (rel_expr)]
  8320. $default reduce using rule 45 (rel_expr)
  8321. State 148
  8322. 43 ulogic_expr: rel_expr . [LAND, LOR, LBRACKET, DOT]
  8323. 46 rel_expr: term_expr LESS rel_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8324. LAND reduce using rule 43 (ulogic_expr)
  8325. LAND [reduce using rule 46 (rel_expr)]
  8326. LOR reduce using rule 43 (ulogic_expr)
  8327. LOR [reduce using rule 46 (rel_expr)]
  8328. LBRACKET reduce using rule 43 (ulogic_expr)
  8329. LBRACKET [reduce using rule 46 (rel_expr)]
  8330. DOT reduce using rule 43 (ulogic_expr)
  8331. DOT [reduce using rule 46 (rel_expr)]
  8332. $default reduce using rule 46 (rel_expr)
  8333. State 149
  8334. 43 ulogic_expr: rel_expr . [LAND, LOR, LBRACKET, DOT]
  8335. 47 rel_expr: term_expr GREATER rel_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8336. LAND reduce using rule 43 (ulogic_expr)
  8337. LAND [reduce using rule 47 (rel_expr)]
  8338. LOR reduce using rule 43 (ulogic_expr)
  8339. LOR [reduce using rule 47 (rel_expr)]
  8340. LBRACKET reduce using rule 43 (ulogic_expr)
  8341. LBRACKET [reduce using rule 47 (rel_expr)]
  8342. DOT reduce using rule 43 (ulogic_expr)
  8343. DOT [reduce using rule 47 (rel_expr)]
  8344. $default reduce using rule 47 (rel_expr)
  8345. State 150
  8346. 43 ulogic_expr: rel_expr . [LAND, LOR, LBRACKET, DOT]
  8347. 48 rel_expr: term_expr LESSEQ rel_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8348. LAND reduce using rule 43 (ulogic_expr)
  8349. LAND [reduce using rule 48 (rel_expr)]
  8350. LOR reduce using rule 43 (ulogic_expr)
  8351. LOR [reduce using rule 48 (rel_expr)]
  8352. LBRACKET reduce using rule 43 (ulogic_expr)
  8353. LBRACKET [reduce using rule 48 (rel_expr)]
  8354. DOT reduce using rule 43 (ulogic_expr)
  8355. DOT [reduce using rule 48 (rel_expr)]
  8356. $default reduce using rule 48 (rel_expr)
  8357. State 151
  8358. 43 ulogic_expr: rel_expr . [LAND, LOR, LBRACKET, DOT]
  8359. 49 rel_expr: term_expr GREATEREQ rel_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, STAR, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8360. LAND reduce using rule 43 (ulogic_expr)
  8361. LAND [reduce using rule 49 (rel_expr)]
  8362. LOR reduce using rule 43 (ulogic_expr)
  8363. LOR [reduce using rule 49 (rel_expr)]
  8364. LBRACKET reduce using rule 43 (ulogic_expr)
  8365. LBRACKET [reduce using rule 49 (rel_expr)]
  8366. DOT reduce using rule 43 (ulogic_expr)
  8367. DOT [reduce using rule 49 (rel_expr)]
  8368. $default reduce using rule 49 (rel_expr)
  8369. State 152
  8370. 54 factor_expr: factor_expr STAR power_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8371. 57 | power_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACKET, DOT]
  8372. PLUS reduce using rule 54 (factor_expr)
  8373. PLUS [reduce using rule 57 (factor_expr)]
  8374. MINUS reduce using rule 54 (factor_expr)
  8375. MINUS [reduce using rule 57 (factor_expr)]
  8376. STAR reduce using rule 54 (factor_expr)
  8377. STAR [reduce using rule 57 (factor_expr)]
  8378. SLASH reduce using rule 54 (factor_expr)
  8379. SLASH [reduce using rule 57 (factor_expr)]
  8380. PERCENT reduce using rule 54 (factor_expr)
  8381. PERCENT [reduce using rule 57 (factor_expr)]
  8382. LAND reduce using rule 54 (factor_expr)
  8383. LAND [reduce using rule 57 (factor_expr)]
  8384. LOR reduce using rule 54 (factor_expr)
  8385. LOR [reduce using rule 57 (factor_expr)]
  8386. EQUAL reduce using rule 54 (factor_expr)
  8387. EQUAL [reduce using rule 57 (factor_expr)]
  8388. NEQUAL reduce using rule 54 (factor_expr)
  8389. NEQUAL [reduce using rule 57 (factor_expr)]
  8390. LESS reduce using rule 54 (factor_expr)
  8391. LESS [reduce using rule 57 (factor_expr)]
  8392. GREATER reduce using rule 54 (factor_expr)
  8393. GREATER [reduce using rule 57 (factor_expr)]
  8394. LESSEQ reduce using rule 54 (factor_expr)
  8395. LESSEQ [reduce using rule 57 (factor_expr)]
  8396. GREATEREQ reduce using rule 54 (factor_expr)
  8397. GREATEREQ [reduce using rule 57 (factor_expr)]
  8398. LBRACKET reduce using rule 54 (factor_expr)
  8399. LBRACKET [reduce using rule 57 (factor_expr)]
  8400. DOT reduce using rule 54 (factor_expr)
  8401. DOT [reduce using rule 57 (factor_expr)]
  8402. $default reduce using rule 54 (factor_expr)
  8403. State 153
  8404. 55 factor_expr: factor_expr SLASH power_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8405. 57 | power_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACKET, DOT]
  8406. PLUS reduce using rule 55 (factor_expr)
  8407. PLUS [reduce using rule 57 (factor_expr)]
  8408. MINUS reduce using rule 55 (factor_expr)
  8409. MINUS [reduce using rule 57 (factor_expr)]
  8410. STAR reduce using rule 55 (factor_expr)
  8411. STAR [reduce using rule 57 (factor_expr)]
  8412. SLASH reduce using rule 55 (factor_expr)
  8413. SLASH [reduce using rule 57 (factor_expr)]
  8414. PERCENT reduce using rule 55 (factor_expr)
  8415. PERCENT [reduce using rule 57 (factor_expr)]
  8416. LAND reduce using rule 55 (factor_expr)
  8417. LAND [reduce using rule 57 (factor_expr)]
  8418. LOR reduce using rule 55 (factor_expr)
  8419. LOR [reduce using rule 57 (factor_expr)]
  8420. EQUAL reduce using rule 55 (factor_expr)
  8421. EQUAL [reduce using rule 57 (factor_expr)]
  8422. NEQUAL reduce using rule 55 (factor_expr)
  8423. NEQUAL [reduce using rule 57 (factor_expr)]
  8424. LESS reduce using rule 55 (factor_expr)
  8425. LESS [reduce using rule 57 (factor_expr)]
  8426. GREATER reduce using rule 55 (factor_expr)
  8427. GREATER [reduce using rule 57 (factor_expr)]
  8428. LESSEQ reduce using rule 55 (factor_expr)
  8429. LESSEQ [reduce using rule 57 (factor_expr)]
  8430. GREATEREQ reduce using rule 55 (factor_expr)
  8431. GREATEREQ [reduce using rule 57 (factor_expr)]
  8432. LBRACKET reduce using rule 55 (factor_expr)
  8433. LBRACKET [reduce using rule 57 (factor_expr)]
  8434. DOT reduce using rule 55 (factor_expr)
  8435. DOT [reduce using rule 57 (factor_expr)]
  8436. $default reduce using rule 55 (factor_expr)
  8437. State 154
  8438. 56 factor_expr: factor_expr PERCENT power_expr . [$end, IF, THEN, ELSEIF, ELSE, WHILE, FOR, DO, FUNC, MACRO, LAMBDA, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, BLPAREN, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
  8439. 57 | power_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACKET, DOT]
  8440. PLUS reduce using rule 56 (factor_expr)
  8441. PLUS [reduce using rule 57 (factor_expr)]
  8442. MINUS reduce using rule 56 (factor_expr)
  8443. MINUS [reduce using rule 57 (factor_expr)]
  8444. STAR reduce using rule 56 (factor_expr)
  8445. STAR [reduce using rule 57 (factor_expr)]
  8446. SLASH reduce using rule 56 (factor_expr)
  8447. SLASH [reduce using rule 57