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

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