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 495KB

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