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

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