123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063 |
- # *** GENERATED BY `setup.py antlr`, DO NOT EDIT BY HAND ***
- #
- # Generated with antlr4
- # antlr4 is licensed under the BSD-3-Clause License
- # https://github.com/antlr/antlr4/blob/master/LICENSE.txt
- from antlr4 import *
- from io import StringIO
- import sys
- if sys.version_info[1] > 5:
- from typing import TextIO
- else:
- from typing.io import TextIO
- def serializedATN():
- return [
- 4,1,49,431,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
- 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,
- 2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,
- 7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,
- 2,27,7,27,1,0,4,0,58,8,0,11,0,12,0,59,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 1,3,1,69,8,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
- 3,2,84,8,2,1,2,1,2,1,2,3,2,89,8,2,1,3,1,3,1,4,1,4,1,4,5,4,96,8,4,
- 10,4,12,4,99,9,4,1,5,4,5,102,8,5,11,5,12,5,103,1,6,1,6,1,6,1,6,1,
- 6,5,6,111,8,6,10,6,12,6,114,9,6,3,6,116,8,6,1,6,1,6,1,6,1,6,1,6,
- 1,6,5,6,124,8,6,10,6,12,6,127,9,6,3,6,129,8,6,1,6,3,6,132,8,6,1,
- 7,1,7,1,7,1,7,5,7,138,8,7,10,7,12,7,141,9,7,1,8,1,8,1,8,1,8,1,8,
- 1,8,1,8,1,8,1,8,1,8,5,8,153,8,8,10,8,12,8,156,9,8,1,8,1,8,5,8,160,
- 8,8,10,8,12,8,163,9,8,3,8,165,8,8,1,9,1,9,1,9,1,9,1,9,1,9,3,9,173,
- 8,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,5,9,183,8,9,10,9,12,9,186,9,
- 9,1,9,3,9,189,8,9,1,9,1,9,1,9,3,9,194,8,9,1,9,3,9,197,8,9,1,9,5,
- 9,200,8,9,10,9,12,9,203,9,9,1,9,1,9,3,9,207,8,9,1,10,1,10,1,10,1,
- 10,1,10,1,10,1,10,1,10,5,10,217,8,10,10,10,12,10,220,9,10,1,10,1,
- 10,1,11,1,11,1,11,1,11,5,11,228,8,11,10,11,12,11,231,9,11,1,12,1,
- 12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,3,13,242,8,13,1,13,1,13,4,
- 13,246,8,13,11,13,12,13,247,1,14,1,14,1,14,1,14,5,14,254,8,14,10,
- 14,12,14,257,9,14,1,14,1,14,1,15,1,15,1,15,1,15,3,15,265,8,15,1,
- 15,1,15,3,15,269,8,15,1,16,1,16,1,16,1,16,1,16,3,16,276,8,16,1,17,
- 1,17,3,17,280,8,17,1,18,1,18,1,18,1,18,5,18,286,8,18,10,18,12,18,
- 289,9,18,1,19,1,19,1,19,1,19,5,19,295,8,19,10,19,12,19,298,9,19,
- 1,20,1,20,3,20,302,8,20,1,21,1,21,1,21,1,21,3,21,308,8,21,1,22,1,
- 22,1,22,1,22,5,22,314,8,22,10,22,12,22,317,9,22,1,23,1,23,3,23,321,
- 8,23,1,24,1,24,1,24,1,24,1,24,1,24,5,24,329,8,24,10,24,12,24,332,
- 9,24,1,24,1,24,3,24,336,8,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,
- 1,25,1,25,1,25,1,25,1,25,5,25,350,8,25,10,25,12,25,353,9,25,3,25,
- 355,8,25,1,26,1,26,4,26,359,8,26,11,26,12,26,360,1,26,1,26,3,26,
- 365,8,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,5,27,375,8,27,10,
- 27,12,27,378,9,27,1,27,1,27,1,27,1,27,1,27,1,27,5,27,386,8,27,10,
- 27,12,27,389,9,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,
- 27,400,8,27,1,27,1,27,5,27,404,8,27,10,27,12,27,407,9,27,3,27,409,
- 8,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
- 1,27,1,27,1,27,5,27,426,8,27,10,27,12,27,429,9,27,1,27,0,1,54,28,
- 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,
- 46,48,50,52,54,0,7,1,0,3,9,1,0,27,28,1,0,17,18,2,0,10,10,19,19,1,
- 0,44,45,2,0,44,46,48,48,1,0,25,26,483,0,57,1,0,0,0,2,68,1,0,0,0,
- 4,88,1,0,0,0,6,90,1,0,0,0,8,92,1,0,0,0,10,101,1,0,0,0,12,131,1,0,
- 0,0,14,133,1,0,0,0,16,164,1,0,0,0,18,166,1,0,0,0,20,208,1,0,0,0,
- 22,223,1,0,0,0,24,232,1,0,0,0,26,236,1,0,0,0,28,249,1,0,0,0,30,268,
- 1,0,0,0,32,275,1,0,0,0,34,277,1,0,0,0,36,281,1,0,0,0,38,290,1,0,
- 0,0,40,299,1,0,0,0,42,303,1,0,0,0,44,309,1,0,0,0,46,318,1,0,0,0,
- 48,322,1,0,0,0,50,354,1,0,0,0,52,364,1,0,0,0,54,408,1,0,0,0,56,58,
- 3,2,1,0,57,56,1,0,0,0,58,59,1,0,0,0,59,57,1,0,0,0,59,60,1,0,0,0,
- 60,1,1,0,0,0,61,69,3,14,7,0,62,69,3,12,6,0,63,69,3,32,16,0,64,69,
- 3,22,11,0,65,69,3,26,13,0,66,69,3,4,2,0,67,69,3,34,17,0,68,61,1,
- 0,0,0,68,62,1,0,0,0,68,63,1,0,0,0,68,64,1,0,0,0,68,65,1,0,0,0,68,
- 66,1,0,0,0,68,67,1,0,0,0,69,3,1,0,0,0,70,71,3,52,26,0,71,72,3,6,
- 3,0,72,73,3,54,27,0,73,89,1,0,0,0,74,75,5,48,0,0,75,76,5,1,0,0,76,
- 77,3,8,4,0,77,78,5,2,0,0,78,79,3,6,3,0,79,80,3,54,27,0,80,89,1,0,
- 0,0,81,83,5,48,0,0,82,84,3,10,5,0,83,82,1,0,0,0,83,84,1,0,0,0,84,
- 85,1,0,0,0,85,86,3,6,3,0,86,87,3,54,27,0,87,89,1,0,0,0,88,70,1,0,
- 0,0,88,74,1,0,0,0,88,81,1,0,0,0,89,5,1,0,0,0,90,91,7,0,0,0,91,7,
- 1,0,0,0,92,97,3,54,27,0,93,94,5,10,0,0,94,96,3,54,27,0,95,93,1,0,
- 0,0,96,99,1,0,0,0,97,95,1,0,0,0,97,98,1,0,0,0,98,9,1,0,0,0,99,97,
- 1,0,0,0,100,102,5,11,0,0,101,100,1,0,0,0,102,103,1,0,0,0,103,101,
- 1,0,0,0,103,104,1,0,0,0,104,11,1,0,0,0,105,106,5,48,0,0,106,115,
- 5,12,0,0,107,112,3,54,27,0,108,109,5,10,0,0,109,111,3,54,27,0,110,
- 108,1,0,0,0,111,114,1,0,0,0,112,110,1,0,0,0,112,113,1,0,0,0,113,
- 116,1,0,0,0,114,112,1,0,0,0,115,107,1,0,0,0,115,116,1,0,0,0,116,
- 117,1,0,0,0,117,132,5,13,0,0,118,119,7,1,0,0,119,128,5,12,0,0,120,
- 125,5,48,0,0,121,122,5,10,0,0,122,124,5,48,0,0,123,121,1,0,0,0,124,
- 127,1,0,0,0,125,123,1,0,0,0,125,126,1,0,0,0,126,129,1,0,0,0,127,
- 125,1,0,0,0,128,120,1,0,0,0,128,129,1,0,0,0,129,130,1,0,0,0,130,
- 132,5,13,0,0,131,105,1,0,0,0,131,118,1,0,0,0,132,13,1,0,0,0,133,
- 134,3,16,8,0,134,139,3,18,9,0,135,136,5,10,0,0,136,138,3,18,9,0,
- 137,135,1,0,0,0,138,141,1,0,0,0,139,137,1,0,0,0,139,140,1,0,0,0,
- 140,15,1,0,0,0,141,139,1,0,0,0,142,165,5,34,0,0,143,165,5,35,0,0,
- 144,165,5,36,0,0,145,165,5,37,0,0,146,165,5,38,0,0,147,165,5,39,
- 0,0,148,165,5,40,0,0,149,165,5,41,0,0,150,154,5,42,0,0,151,153,5,
- 11,0,0,152,151,1,0,0,0,153,156,1,0,0,0,154,152,1,0,0,0,154,155,1,
- 0,0,0,155,165,1,0,0,0,156,154,1,0,0,0,157,161,5,43,0,0,158,160,5,
- 11,0,0,159,158,1,0,0,0,160,163,1,0,0,0,161,159,1,0,0,0,161,162,1,
- 0,0,0,162,165,1,0,0,0,163,161,1,0,0,0,164,142,1,0,0,0,164,143,1,
- 0,0,0,164,144,1,0,0,0,164,145,1,0,0,0,164,146,1,0,0,0,164,147,1,
- 0,0,0,164,148,1,0,0,0,164,149,1,0,0,0,164,150,1,0,0,0,164,157,1,
- 0,0,0,165,17,1,0,0,0,166,172,5,48,0,0,167,168,5,14,0,0,168,169,5,
- 44,0,0,169,170,5,10,0,0,170,171,5,44,0,0,171,173,5,15,0,0,172,167,
- 1,0,0,0,172,173,1,0,0,0,173,188,1,0,0,0,174,175,5,14,0,0,175,176,
- 5,44,0,0,176,177,5,16,0,0,177,184,5,44,0,0,178,179,5,10,0,0,179,
- 180,5,44,0,0,180,181,5,16,0,0,181,183,5,44,0,0,182,178,1,0,0,0,183,
- 186,1,0,0,0,184,182,1,0,0,0,184,185,1,0,0,0,185,187,1,0,0,0,186,
- 184,1,0,0,0,187,189,5,15,0,0,188,174,1,0,0,0,188,189,1,0,0,0,189,
- 193,1,0,0,0,190,191,5,14,0,0,191,192,5,44,0,0,192,194,5,15,0,0,193,
- 190,1,0,0,0,193,194,1,0,0,0,194,196,1,0,0,0,195,197,7,2,0,0,196,
- 195,1,0,0,0,196,197,1,0,0,0,197,201,1,0,0,0,198,200,5,11,0,0,199,
- 198,1,0,0,0,200,203,1,0,0,0,201,199,1,0,0,0,201,202,1,0,0,0,202,
- 206,1,0,0,0,203,201,1,0,0,0,204,205,5,3,0,0,205,207,3,54,27,0,206,
- 204,1,0,0,0,206,207,1,0,0,0,207,19,1,0,0,0,208,209,5,14,0,0,209,
- 210,5,44,0,0,210,211,5,16,0,0,211,218,5,44,0,0,212,213,5,10,0,0,
- 213,214,5,44,0,0,214,215,5,16,0,0,215,217,5,44,0,0,216,212,1,0,0,
- 0,217,220,1,0,0,0,218,216,1,0,0,0,218,219,1,0,0,0,219,221,1,0,0,
- 0,220,218,1,0,0,0,221,222,5,15,0,0,222,21,1,0,0,0,223,224,5,27,0,
- 0,224,229,3,24,12,0,225,226,5,10,0,0,226,228,3,24,12,0,227,225,1,
- 0,0,0,228,231,1,0,0,0,229,227,1,0,0,0,229,230,1,0,0,0,230,23,1,0,
- 0,0,231,229,1,0,0,0,232,233,5,48,0,0,233,234,5,3,0,0,234,235,3,54,
- 27,0,235,25,1,0,0,0,236,237,5,28,0,0,237,241,5,48,0,0,238,239,5,
- 12,0,0,239,240,5,48,0,0,240,242,5,13,0,0,241,238,1,0,0,0,241,242,
- 1,0,0,0,242,245,1,0,0,0,243,244,5,10,0,0,244,246,3,54,27,0,245,243,
- 1,0,0,0,246,247,1,0,0,0,247,245,1,0,0,0,247,248,1,0,0,0,248,27,1,
- 0,0,0,249,250,5,1,0,0,250,255,3,54,27,0,251,252,7,3,0,0,252,254,
- 3,54,27,0,253,251,1,0,0,0,254,257,1,0,0,0,255,253,1,0,0,0,255,256,
- 1,0,0,0,256,258,1,0,0,0,257,255,1,0,0,0,258,259,5,2,0,0,259,29,1,
- 0,0,0,260,261,5,48,0,0,261,262,5,48,0,0,262,264,5,3,0,0,263,265,
- 7,4,0,0,264,263,1,0,0,0,264,265,1,0,0,0,265,269,1,0,0,0,266,269,
- 5,45,0,0,267,269,5,44,0,0,268,260,1,0,0,0,268,266,1,0,0,0,268,267,
- 1,0,0,0,269,31,1,0,0,0,270,276,3,36,18,0,271,276,3,38,19,0,272,276,
- 3,44,22,0,273,276,3,48,24,0,274,276,3,50,25,0,275,270,1,0,0,0,275,
- 271,1,0,0,0,275,272,1,0,0,0,275,273,1,0,0,0,275,274,1,0,0,0,276,
- 33,1,0,0,0,277,279,5,48,0,0,278,280,7,5,0,0,279,278,1,0,0,0,279,
- 280,1,0,0,0,280,35,1,0,0,0,281,282,5,32,0,0,282,287,5,48,0,0,283,
- 284,5,10,0,0,284,286,5,48,0,0,285,283,1,0,0,0,286,289,1,0,0,0,287,
- 285,1,0,0,0,287,288,1,0,0,0,288,37,1,0,0,0,289,287,1,0,0,0,290,291,
- 5,29,0,0,291,296,3,42,21,0,292,293,5,10,0,0,293,295,3,42,21,0,294,
- 292,1,0,0,0,295,298,1,0,0,0,296,294,1,0,0,0,296,297,1,0,0,0,297,
- 39,1,0,0,0,298,296,1,0,0,0,299,301,5,48,0,0,300,302,3,10,5,0,301,
- 300,1,0,0,0,301,302,1,0,0,0,302,41,1,0,0,0,303,304,3,40,20,0,304,
- 305,5,3,0,0,305,307,3,54,27,0,306,308,3,54,27,0,307,306,1,0,0,0,
- 307,308,1,0,0,0,308,43,1,0,0,0,309,310,5,30,0,0,310,315,3,46,23,
- 0,311,312,5,10,0,0,312,314,3,46,23,0,313,311,1,0,0,0,314,317,1,0,
- 0,0,315,313,1,0,0,0,315,316,1,0,0,0,316,45,1,0,0,0,317,315,1,0,0,
- 0,318,320,3,54,27,0,319,321,3,54,27,0,320,319,1,0,0,0,320,321,1,
- 0,0,0,321,47,1,0,0,0,322,323,5,48,0,0,323,335,3,12,6,0,324,325,5,
- 1,0,0,325,330,3,30,15,0,326,327,5,10,0,0,327,329,3,30,15,0,328,326,
- 1,0,0,0,329,332,1,0,0,0,330,328,1,0,0,0,330,331,1,0,0,0,331,333,
- 1,0,0,0,332,330,1,0,0,0,333,334,5,2,0,0,334,336,1,0,0,0,335,324,
- 1,0,0,0,335,336,1,0,0,0,336,337,1,0,0,0,337,338,5,48,0,0,338,339,
- 5,20,0,0,339,340,5,48,0,0,340,49,1,0,0,0,341,342,5,31,0,0,342,343,
- 5,48,0,0,343,344,5,20,0,0,344,355,5,48,0,0,345,346,5,33,0,0,346,
- 351,5,48,0,0,347,348,5,10,0,0,348,350,5,48,0,0,349,347,1,0,0,0,350,
- 353,1,0,0,0,351,349,1,0,0,0,351,352,1,0,0,0,352,355,1,0,0,0,353,
- 351,1,0,0,0,354,341,1,0,0,0,354,345,1,0,0,0,355,51,1,0,0,0,356,358,
- 5,48,0,0,357,359,5,21,0,0,358,357,1,0,0,0,359,360,1,0,0,0,360,358,
- 1,0,0,0,360,361,1,0,0,0,361,365,1,0,0,0,362,365,5,22,0,0,363,365,
- 5,23,0,0,364,356,1,0,0,0,364,362,1,0,0,0,364,363,1,0,0,0,365,53,
- 1,0,0,0,366,367,6,27,-1,0,367,409,5,46,0,0,368,369,5,18,0,0,369,
- 409,3,54,27,12,370,409,5,45,0,0,371,409,5,44,0,0,372,376,5,48,0,
- 0,373,375,5,11,0,0,374,373,1,0,0,0,375,378,1,0,0,0,376,374,1,0,0,
- 0,376,377,1,0,0,0,377,409,1,0,0,0,378,376,1,0,0,0,379,409,3,52,26,
- 0,380,381,5,48,0,0,381,382,5,1,0,0,382,387,3,54,27,0,383,384,5,10,
- 0,0,384,386,3,54,27,0,385,383,1,0,0,0,386,389,1,0,0,0,387,385,1,
- 0,0,0,387,388,1,0,0,0,388,390,1,0,0,0,389,387,1,0,0,0,390,391,5,
- 2,0,0,391,409,1,0,0,0,392,409,3,12,6,0,393,409,3,28,14,0,394,395,
- 5,12,0,0,395,396,3,54,27,0,396,397,5,13,0,0,397,409,1,0,0,0,398,
- 400,5,48,0,0,399,398,1,0,0,0,399,400,1,0,0,0,400,401,1,0,0,0,401,
- 405,3,20,10,0,402,404,5,11,0,0,403,402,1,0,0,0,404,407,1,0,0,0,405,
- 403,1,0,0,0,405,406,1,0,0,0,406,409,1,0,0,0,407,405,1,0,0,0,408,
- 366,1,0,0,0,408,368,1,0,0,0,408,370,1,0,0,0,408,371,1,0,0,0,408,
- 372,1,0,0,0,408,379,1,0,0,0,408,380,1,0,0,0,408,392,1,0,0,0,408,
- 393,1,0,0,0,408,394,1,0,0,0,408,399,1,0,0,0,409,427,1,0,0,0,410,
- 411,10,16,0,0,411,412,5,24,0,0,412,426,3,54,27,17,413,414,10,15,
- 0,0,414,415,7,6,0,0,415,426,3,54,27,16,416,417,10,14,0,0,417,418,
- 7,2,0,0,418,426,3,54,27,15,419,420,10,3,0,0,420,421,5,3,0,0,421,
- 426,3,54,27,4,422,423,10,2,0,0,423,424,5,16,0,0,424,426,3,54,27,
- 3,425,410,1,0,0,0,425,413,1,0,0,0,425,416,1,0,0,0,425,419,1,0,0,
- 0,425,422,1,0,0,0,426,429,1,0,0,0,427,425,1,0,0,0,427,428,1,0,0,
- 0,428,55,1,0,0,0,429,427,1,0,0,0,50,59,68,83,88,97,103,112,115,125,
- 128,131,139,154,161,164,172,184,188,193,196,201,206,218,229,241,
- 247,255,264,268,275,279,287,296,301,307,315,320,330,335,351,354,
- 360,364,376,387,399,405,408,425,427
- ]
- class AutolevParser ( Parser ):
- grammarFileName = "Autolev.g4"
- atn = ATNDeserializer().deserialize(serializedATN())
- decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
- sharedContextCache = PredictionContextCache()
- literalNames = [ "<INVALID>", "'['", "']'", "'='", "'+='", "'-='", "':='",
- "'*='", "'/='", "'^='", "','", "'''", "'('", "')'",
- "'{'", "'}'", "':'", "'+'", "'-'", "';'", "'.'", "'>'",
- "'0>'", "'1>>'", "'^'", "'*'", "'/'" ]
- symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
- "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
- "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
- "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
- "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
- "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
- "<INVALID>", "<INVALID>", "<INVALID>", "Mass", "Inertia",
- "Input", "Output", "Save", "UnitSystem", "Encode",
- "Newtonian", "Frames", "Bodies", "Particles", "Points",
- "Constants", "Specifieds", "Imaginary", "Variables",
- "MotionVariables", "INT", "FLOAT", "EXP", "LINE_COMMENT",
- "ID", "WS" ]
- RULE_prog = 0
- RULE_stat = 1
- RULE_assignment = 2
- RULE_equals = 3
- RULE_index = 4
- RULE_diff = 5
- RULE_functionCall = 6
- RULE_varDecl = 7
- RULE_varType = 8
- RULE_varDecl2 = 9
- RULE_ranges = 10
- RULE_massDecl = 11
- RULE_massDecl2 = 12
- RULE_inertiaDecl = 13
- RULE_matrix = 14
- RULE_matrixInOutput = 15
- RULE_codeCommands = 16
- RULE_settings = 17
- RULE_units = 18
- RULE_inputs = 19
- RULE_id_diff = 20
- RULE_inputs2 = 21
- RULE_outputs = 22
- RULE_outputs2 = 23
- RULE_codegen = 24
- RULE_commands = 25
- RULE_vec = 26
- RULE_expr = 27
- ruleNames = [ "prog", "stat", "assignment", "equals", "index", "diff",
- "functionCall", "varDecl", "varType", "varDecl2", "ranges",
- "massDecl", "massDecl2", "inertiaDecl", "matrix", "matrixInOutput",
- "codeCommands", "settings", "units", "inputs", "id_diff",
- "inputs2", "outputs", "outputs2", "codegen", "commands",
- "vec", "expr" ]
- EOF = Token.EOF
- T__0=1
- T__1=2
- T__2=3
- T__3=4
- T__4=5
- T__5=6
- T__6=7
- T__7=8
- T__8=9
- T__9=10
- T__10=11
- T__11=12
- T__12=13
- T__13=14
- T__14=15
- T__15=16
- T__16=17
- T__17=18
- T__18=19
- T__19=20
- T__20=21
- T__21=22
- T__22=23
- T__23=24
- T__24=25
- T__25=26
- Mass=27
- Inertia=28
- Input=29
- Output=30
- Save=31
- UnitSystem=32
- Encode=33
- Newtonian=34
- Frames=35
- Bodies=36
- Particles=37
- Points=38
- Constants=39
- Specifieds=40
- Imaginary=41
- Variables=42
- MotionVariables=43
- INT=44
- FLOAT=45
- EXP=46
- LINE_COMMENT=47
- ID=48
- WS=49
- def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
- super().__init__(input, output)
- self.checkVersion("4.11.1")
- self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
- self._predicates = None
- class ProgContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def stat(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.StatContext)
- else:
- return self.getTypedRuleContext(AutolevParser.StatContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_prog
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterProg" ):
- listener.enterProg(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitProg" ):
- listener.exitProg(self)
- def prog(self):
- localctx = AutolevParser.ProgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 0, self.RULE_prog)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 57
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 56
- self.stat()
- self.state = 59
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (((_la) & ~0x3f) == 0 and ((1 << _la) & 299067041120256) != 0):
- break
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class StatContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def varDecl(self):
- return self.getTypedRuleContext(AutolevParser.VarDeclContext,0)
- def functionCall(self):
- return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0)
- def codeCommands(self):
- return self.getTypedRuleContext(AutolevParser.CodeCommandsContext,0)
- def massDecl(self):
- return self.getTypedRuleContext(AutolevParser.MassDeclContext,0)
- def inertiaDecl(self):
- return self.getTypedRuleContext(AutolevParser.InertiaDeclContext,0)
- def assignment(self):
- return self.getTypedRuleContext(AutolevParser.AssignmentContext,0)
- def settings(self):
- return self.getTypedRuleContext(AutolevParser.SettingsContext,0)
- def getRuleIndex(self):
- return AutolevParser.RULE_stat
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterStat" ):
- listener.enterStat(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitStat" ):
- listener.exitStat(self)
- def stat(self):
- localctx = AutolevParser.StatContext(self, self._ctx, self.state)
- self.enterRule(localctx, 2, self.RULE_stat)
- try:
- self.state = 68
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,1,self._ctx)
- if la_ == 1:
- self.enterOuterAlt(localctx, 1)
- self.state = 61
- self.varDecl()
- pass
- elif la_ == 2:
- self.enterOuterAlt(localctx, 2)
- self.state = 62
- self.functionCall()
- pass
- elif la_ == 3:
- self.enterOuterAlt(localctx, 3)
- self.state = 63
- self.codeCommands()
- pass
- elif la_ == 4:
- self.enterOuterAlt(localctx, 4)
- self.state = 64
- self.massDecl()
- pass
- elif la_ == 5:
- self.enterOuterAlt(localctx, 5)
- self.state = 65
- self.inertiaDecl()
- pass
- elif la_ == 6:
- self.enterOuterAlt(localctx, 6)
- self.state = 66
- self.assignment()
- pass
- elif la_ == 7:
- self.enterOuterAlt(localctx, 7)
- self.state = 67
- self.settings()
- pass
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class AssignmentContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def getRuleIndex(self):
- return AutolevParser.RULE_assignment
- def copyFrom(self, ctx:ParserRuleContext):
- super().copyFrom(ctx)
- class VecAssignContext(AssignmentContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.AssignmentContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def vec(self):
- return self.getTypedRuleContext(AutolevParser.VecContext,0)
- def equals(self):
- return self.getTypedRuleContext(AutolevParser.EqualsContext,0)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterVecAssign" ):
- listener.enterVecAssign(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitVecAssign" ):
- listener.exitVecAssign(self)
- class RegularAssignContext(AssignmentContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.AssignmentContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def equals(self):
- return self.getTypedRuleContext(AutolevParser.EqualsContext,0)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def diff(self):
- return self.getTypedRuleContext(AutolevParser.DiffContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterRegularAssign" ):
- listener.enterRegularAssign(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitRegularAssign" ):
- listener.exitRegularAssign(self)
- class IndexAssignContext(AssignmentContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.AssignmentContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def index(self):
- return self.getTypedRuleContext(AutolevParser.IndexContext,0)
- def equals(self):
- return self.getTypedRuleContext(AutolevParser.EqualsContext,0)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIndexAssign" ):
- listener.enterIndexAssign(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIndexAssign" ):
- listener.exitIndexAssign(self)
- def assignment(self):
- localctx = AutolevParser.AssignmentContext(self, self._ctx, self.state)
- self.enterRule(localctx, 4, self.RULE_assignment)
- self._la = 0 # Token type
- try:
- self.state = 88
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
- if la_ == 1:
- localctx = AutolevParser.VecAssignContext(self, localctx)
- self.enterOuterAlt(localctx, 1)
- self.state = 70
- self.vec()
- self.state = 71
- self.equals()
- self.state = 72
- self.expr(0)
- pass
- elif la_ == 2:
- localctx = AutolevParser.IndexAssignContext(self, localctx)
- self.enterOuterAlt(localctx, 2)
- self.state = 74
- self.match(AutolevParser.ID)
- self.state = 75
- self.match(AutolevParser.T__0)
- self.state = 76
- self.index()
- self.state = 77
- self.match(AutolevParser.T__1)
- self.state = 78
- self.equals()
- self.state = 79
- self.expr(0)
- pass
- elif la_ == 3:
- localctx = AutolevParser.RegularAssignContext(self, localctx)
- self.enterOuterAlt(localctx, 3)
- self.state = 81
- self.match(AutolevParser.ID)
- self.state = 83
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==11:
- self.state = 82
- self.diff()
- self.state = 85
- self.equals()
- self.state = 86
- self.expr(0)
- pass
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class EqualsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def getRuleIndex(self):
- return AutolevParser.RULE_equals
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterEquals" ):
- listener.enterEquals(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitEquals" ):
- listener.exitEquals(self)
- def equals(self):
- localctx = AutolevParser.EqualsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 6, self.RULE_equals)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 90
- _la = self._input.LA(1)
- if not(((_la) & ~0x3f) == 0 and ((1 << _la) & 1016) != 0):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class IndexContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_index
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIndex" ):
- listener.enterIndex(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIndex" ):
- listener.exitIndex(self)
- def index(self):
- localctx = AutolevParser.IndexContext(self, self._ctx, self.state)
- self.enterRule(localctx, 8, self.RULE_index)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 92
- self.expr(0)
- self.state = 97
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 93
- self.match(AutolevParser.T__9)
- self.state = 94
- self.expr(0)
- self.state = 99
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class DiffContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def getRuleIndex(self):
- return AutolevParser.RULE_diff
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterDiff" ):
- listener.enterDiff(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitDiff" ):
- listener.exitDiff(self)
- def diff(self):
- localctx = AutolevParser.DiffContext(self, self._ctx, self.state)
- self.enterRule(localctx, 10, self.RULE_diff)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 101
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 100
- self.match(AutolevParser.T__10)
- self.state = 103
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (_la==11):
- break
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class FunctionCallContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def Mass(self):
- return self.getToken(AutolevParser.Mass, 0)
- def Inertia(self):
- return self.getToken(AutolevParser.Inertia, 0)
- def getRuleIndex(self):
- return AutolevParser.RULE_functionCall
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterFunctionCall" ):
- listener.enterFunctionCall(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitFunctionCall" ):
- listener.exitFunctionCall(self)
- def functionCall(self):
- localctx = AutolevParser.FunctionCallContext(self, self._ctx, self.state)
- self.enterRule(localctx, 12, self.RULE_functionCall)
- self._la = 0 # Token type
- try:
- self.state = 131
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [48]:
- self.enterOuterAlt(localctx, 1)
- self.state = 105
- self.match(AutolevParser.ID)
- self.state = 106
- self.match(AutolevParser.T__11)
- self.state = 115
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if ((_la) & ~0x3f) == 0 and ((1 << _la) & 404620694540290) != 0:
- self.state = 107
- self.expr(0)
- self.state = 112
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 108
- self.match(AutolevParser.T__9)
- self.state = 109
- self.expr(0)
- self.state = 114
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 117
- self.match(AutolevParser.T__12)
- pass
- elif token in [27, 28]:
- self.enterOuterAlt(localctx, 2)
- self.state = 118
- _la = self._input.LA(1)
- if not(_la==27 or _la==28):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 119
- self.match(AutolevParser.T__11)
- self.state = 128
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==48:
- self.state = 120
- self.match(AutolevParser.ID)
- self.state = 125
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 121
- self.match(AutolevParser.T__9)
- self.state = 122
- self.match(AutolevParser.ID)
- self.state = 127
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 130
- self.match(AutolevParser.T__12)
- pass
- else:
- raise NoViableAltException(self)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class VarDeclContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def varType(self):
- return self.getTypedRuleContext(AutolevParser.VarTypeContext,0)
- def varDecl2(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.VarDecl2Context)
- else:
- return self.getTypedRuleContext(AutolevParser.VarDecl2Context,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_varDecl
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterVarDecl" ):
- listener.enterVarDecl(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitVarDecl" ):
- listener.exitVarDecl(self)
- def varDecl(self):
- localctx = AutolevParser.VarDeclContext(self, self._ctx, self.state)
- self.enterRule(localctx, 14, self.RULE_varDecl)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 133
- self.varType()
- self.state = 134
- self.varDecl2()
- self.state = 139
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 135
- self.match(AutolevParser.T__9)
- self.state = 136
- self.varDecl2()
- self.state = 141
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class VarTypeContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def Newtonian(self):
- return self.getToken(AutolevParser.Newtonian, 0)
- def Frames(self):
- return self.getToken(AutolevParser.Frames, 0)
- def Bodies(self):
- return self.getToken(AutolevParser.Bodies, 0)
- def Particles(self):
- return self.getToken(AutolevParser.Particles, 0)
- def Points(self):
- return self.getToken(AutolevParser.Points, 0)
- def Constants(self):
- return self.getToken(AutolevParser.Constants, 0)
- def Specifieds(self):
- return self.getToken(AutolevParser.Specifieds, 0)
- def Imaginary(self):
- return self.getToken(AutolevParser.Imaginary, 0)
- def Variables(self):
- return self.getToken(AutolevParser.Variables, 0)
- def MotionVariables(self):
- return self.getToken(AutolevParser.MotionVariables, 0)
- def getRuleIndex(self):
- return AutolevParser.RULE_varType
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterVarType" ):
- listener.enterVarType(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitVarType" ):
- listener.exitVarType(self)
- def varType(self):
- localctx = AutolevParser.VarTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 16, self.RULE_varType)
- self._la = 0 # Token type
- try:
- self.state = 164
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [34]:
- self.enterOuterAlt(localctx, 1)
- self.state = 142
- self.match(AutolevParser.Newtonian)
- pass
- elif token in [35]:
- self.enterOuterAlt(localctx, 2)
- self.state = 143
- self.match(AutolevParser.Frames)
- pass
- elif token in [36]:
- self.enterOuterAlt(localctx, 3)
- self.state = 144
- self.match(AutolevParser.Bodies)
- pass
- elif token in [37]:
- self.enterOuterAlt(localctx, 4)
- self.state = 145
- self.match(AutolevParser.Particles)
- pass
- elif token in [38]:
- self.enterOuterAlt(localctx, 5)
- self.state = 146
- self.match(AutolevParser.Points)
- pass
- elif token in [39]:
- self.enterOuterAlt(localctx, 6)
- self.state = 147
- self.match(AutolevParser.Constants)
- pass
- elif token in [40]:
- self.enterOuterAlt(localctx, 7)
- self.state = 148
- self.match(AutolevParser.Specifieds)
- pass
- elif token in [41]:
- self.enterOuterAlt(localctx, 8)
- self.state = 149
- self.match(AutolevParser.Imaginary)
- pass
- elif token in [42]:
- self.enterOuterAlt(localctx, 9)
- self.state = 150
- self.match(AutolevParser.Variables)
- self.state = 154
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==11:
- self.state = 151
- self.match(AutolevParser.T__10)
- self.state = 156
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- pass
- elif token in [43]:
- self.enterOuterAlt(localctx, 10)
- self.state = 157
- self.match(AutolevParser.MotionVariables)
- self.state = 161
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==11:
- self.state = 158
- self.match(AutolevParser.T__10)
- self.state = 163
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- pass
- else:
- raise NoViableAltException(self)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class VarDecl2Context(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def INT(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.INT)
- else:
- return self.getToken(AutolevParser.INT, i)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def getRuleIndex(self):
- return AutolevParser.RULE_varDecl2
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterVarDecl2" ):
- listener.enterVarDecl2(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitVarDecl2" ):
- listener.exitVarDecl2(self)
- def varDecl2(self):
- localctx = AutolevParser.VarDecl2Context(self, self._ctx, self.state)
- self.enterRule(localctx, 18, self.RULE_varDecl2)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 166
- self.match(AutolevParser.ID)
- self.state = 172
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,15,self._ctx)
- if la_ == 1:
- self.state = 167
- self.match(AutolevParser.T__13)
- self.state = 168
- self.match(AutolevParser.INT)
- self.state = 169
- self.match(AutolevParser.T__9)
- self.state = 170
- self.match(AutolevParser.INT)
- self.state = 171
- self.match(AutolevParser.T__14)
- self.state = 188
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,17,self._ctx)
- if la_ == 1:
- self.state = 174
- self.match(AutolevParser.T__13)
- self.state = 175
- self.match(AutolevParser.INT)
- self.state = 176
- self.match(AutolevParser.T__15)
- self.state = 177
- self.match(AutolevParser.INT)
- self.state = 184
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 178
- self.match(AutolevParser.T__9)
- self.state = 179
- self.match(AutolevParser.INT)
- self.state = 180
- self.match(AutolevParser.T__15)
- self.state = 181
- self.match(AutolevParser.INT)
- self.state = 186
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 187
- self.match(AutolevParser.T__14)
- self.state = 193
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==14:
- self.state = 190
- self.match(AutolevParser.T__13)
- self.state = 191
- self.match(AutolevParser.INT)
- self.state = 192
- self.match(AutolevParser.T__14)
- self.state = 196
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==17 or _la==18:
- self.state = 195
- _la = self._input.LA(1)
- if not(_la==17 or _la==18):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 201
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==11:
- self.state = 198
- self.match(AutolevParser.T__10)
- self.state = 203
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 206
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==3:
- self.state = 204
- self.match(AutolevParser.T__2)
- self.state = 205
- self.expr(0)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class RangesContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def INT(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.INT)
- else:
- return self.getToken(AutolevParser.INT, i)
- def getRuleIndex(self):
- return AutolevParser.RULE_ranges
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterRanges" ):
- listener.enterRanges(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitRanges" ):
- listener.exitRanges(self)
- def ranges(self):
- localctx = AutolevParser.RangesContext(self, self._ctx, self.state)
- self.enterRule(localctx, 20, self.RULE_ranges)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 208
- self.match(AutolevParser.T__13)
- self.state = 209
- self.match(AutolevParser.INT)
- self.state = 210
- self.match(AutolevParser.T__15)
- self.state = 211
- self.match(AutolevParser.INT)
- self.state = 218
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 212
- self.match(AutolevParser.T__9)
- self.state = 213
- self.match(AutolevParser.INT)
- self.state = 214
- self.match(AutolevParser.T__15)
- self.state = 215
- self.match(AutolevParser.INT)
- self.state = 220
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 221
- self.match(AutolevParser.T__14)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class MassDeclContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def Mass(self):
- return self.getToken(AutolevParser.Mass, 0)
- def massDecl2(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.MassDecl2Context)
- else:
- return self.getTypedRuleContext(AutolevParser.MassDecl2Context,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_massDecl
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterMassDecl" ):
- listener.enterMassDecl(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitMassDecl" ):
- listener.exitMassDecl(self)
- def massDecl(self):
- localctx = AutolevParser.MassDeclContext(self, self._ctx, self.state)
- self.enterRule(localctx, 22, self.RULE_massDecl)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 223
- self.match(AutolevParser.Mass)
- self.state = 224
- self.massDecl2()
- self.state = 229
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 225
- self.match(AutolevParser.T__9)
- self.state = 226
- self.massDecl2()
- self.state = 231
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class MassDecl2Context(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def getRuleIndex(self):
- return AutolevParser.RULE_massDecl2
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterMassDecl2" ):
- listener.enterMassDecl2(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitMassDecl2" ):
- listener.exitMassDecl2(self)
- def massDecl2(self):
- localctx = AutolevParser.MassDecl2Context(self, self._ctx, self.state)
- self.enterRule(localctx, 24, self.RULE_massDecl2)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 232
- self.match(AutolevParser.ID)
- self.state = 233
- self.match(AutolevParser.T__2)
- self.state = 234
- self.expr(0)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class InertiaDeclContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def Inertia(self):
- return self.getToken(AutolevParser.Inertia, 0)
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_inertiaDecl
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterInertiaDecl" ):
- listener.enterInertiaDecl(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitInertiaDecl" ):
- listener.exitInertiaDecl(self)
- def inertiaDecl(self):
- localctx = AutolevParser.InertiaDeclContext(self, self._ctx, self.state)
- self.enterRule(localctx, 26, self.RULE_inertiaDecl)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 236
- self.match(AutolevParser.Inertia)
- self.state = 237
- self.match(AutolevParser.ID)
- self.state = 241
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==12:
- self.state = 238
- self.match(AutolevParser.T__11)
- self.state = 239
- self.match(AutolevParser.ID)
- self.state = 240
- self.match(AutolevParser.T__12)
- self.state = 245
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while True:
- self.state = 243
- self.match(AutolevParser.T__9)
- self.state = 244
- self.expr(0)
- self.state = 247
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if not (_la==10):
- break
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class MatrixContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_matrix
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterMatrix" ):
- listener.enterMatrix(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitMatrix" ):
- listener.exitMatrix(self)
- def matrix(self):
- localctx = AutolevParser.MatrixContext(self, self._ctx, self.state)
- self.enterRule(localctx, 28, self.RULE_matrix)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 249
- self.match(AutolevParser.T__0)
- self.state = 250
- self.expr(0)
- self.state = 255
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10 or _la==19:
- self.state = 251
- _la = self._input.LA(1)
- if not(_la==10 or _la==19):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 252
- self.expr(0)
- self.state = 257
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 258
- self.match(AutolevParser.T__1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class MatrixInOutputContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def FLOAT(self):
- return self.getToken(AutolevParser.FLOAT, 0)
- def INT(self):
- return self.getToken(AutolevParser.INT, 0)
- def getRuleIndex(self):
- return AutolevParser.RULE_matrixInOutput
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterMatrixInOutput" ):
- listener.enterMatrixInOutput(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitMatrixInOutput" ):
- listener.exitMatrixInOutput(self)
- def matrixInOutput(self):
- localctx = AutolevParser.MatrixInOutputContext(self, self._ctx, self.state)
- self.enterRule(localctx, 30, self.RULE_matrixInOutput)
- self._la = 0 # Token type
- try:
- self.state = 268
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [48]:
- self.enterOuterAlt(localctx, 1)
- self.state = 260
- self.match(AutolevParser.ID)
- self.state = 261
- self.match(AutolevParser.ID)
- self.state = 262
- self.match(AutolevParser.T__2)
- self.state = 264
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==44 or _la==45:
- self.state = 263
- _la = self._input.LA(1)
- if not(_la==44 or _la==45):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- pass
- elif token in [45]:
- self.enterOuterAlt(localctx, 2)
- self.state = 266
- self.match(AutolevParser.FLOAT)
- pass
- elif token in [44]:
- self.enterOuterAlt(localctx, 3)
- self.state = 267
- self.match(AutolevParser.INT)
- pass
- else:
- raise NoViableAltException(self)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class CodeCommandsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def units(self):
- return self.getTypedRuleContext(AutolevParser.UnitsContext,0)
- def inputs(self):
- return self.getTypedRuleContext(AutolevParser.InputsContext,0)
- def outputs(self):
- return self.getTypedRuleContext(AutolevParser.OutputsContext,0)
- def codegen(self):
- return self.getTypedRuleContext(AutolevParser.CodegenContext,0)
- def commands(self):
- return self.getTypedRuleContext(AutolevParser.CommandsContext,0)
- def getRuleIndex(self):
- return AutolevParser.RULE_codeCommands
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterCodeCommands" ):
- listener.enterCodeCommands(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitCodeCommands" ):
- listener.exitCodeCommands(self)
- def codeCommands(self):
- localctx = AutolevParser.CodeCommandsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 32, self.RULE_codeCommands)
- try:
- self.state = 275
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [32]:
- self.enterOuterAlt(localctx, 1)
- self.state = 270
- self.units()
- pass
- elif token in [29]:
- self.enterOuterAlt(localctx, 2)
- self.state = 271
- self.inputs()
- pass
- elif token in [30]:
- self.enterOuterAlt(localctx, 3)
- self.state = 272
- self.outputs()
- pass
- elif token in [48]:
- self.enterOuterAlt(localctx, 4)
- self.state = 273
- self.codegen()
- pass
- elif token in [31, 33]:
- self.enterOuterAlt(localctx, 5)
- self.state = 274
- self.commands()
- pass
- else:
- raise NoViableAltException(self)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class SettingsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def EXP(self):
- return self.getToken(AutolevParser.EXP, 0)
- def FLOAT(self):
- return self.getToken(AutolevParser.FLOAT, 0)
- def INT(self):
- return self.getToken(AutolevParser.INT, 0)
- def getRuleIndex(self):
- return AutolevParser.RULE_settings
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterSettings" ):
- listener.enterSettings(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitSettings" ):
- listener.exitSettings(self)
- def settings(self):
- localctx = AutolevParser.SettingsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 34, self.RULE_settings)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 277
- self.match(AutolevParser.ID)
- self.state = 279
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,30,self._ctx)
- if la_ == 1:
- self.state = 278
- _la = self._input.LA(1)
- if not(((_la) & ~0x3f) == 0 and ((1 << _la) & 404620279021568) != 0):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class UnitsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def UnitSystem(self):
- return self.getToken(AutolevParser.UnitSystem, 0)
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def getRuleIndex(self):
- return AutolevParser.RULE_units
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterUnits" ):
- listener.enterUnits(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitUnits" ):
- listener.exitUnits(self)
- def units(self):
- localctx = AutolevParser.UnitsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 36, self.RULE_units)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 281
- self.match(AutolevParser.UnitSystem)
- self.state = 282
- self.match(AutolevParser.ID)
- self.state = 287
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 283
- self.match(AutolevParser.T__9)
- self.state = 284
- self.match(AutolevParser.ID)
- self.state = 289
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class InputsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def Input(self):
- return self.getToken(AutolevParser.Input, 0)
- def inputs2(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.Inputs2Context)
- else:
- return self.getTypedRuleContext(AutolevParser.Inputs2Context,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_inputs
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterInputs" ):
- listener.enterInputs(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitInputs" ):
- listener.exitInputs(self)
- def inputs(self):
- localctx = AutolevParser.InputsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 38, self.RULE_inputs)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 290
- self.match(AutolevParser.Input)
- self.state = 291
- self.inputs2()
- self.state = 296
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 292
- self.match(AutolevParser.T__9)
- self.state = 293
- self.inputs2()
- self.state = 298
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class Id_diffContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def diff(self):
- return self.getTypedRuleContext(AutolevParser.DiffContext,0)
- def getRuleIndex(self):
- return AutolevParser.RULE_id_diff
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterId_diff" ):
- listener.enterId_diff(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitId_diff" ):
- listener.exitId_diff(self)
- def id_diff(self):
- localctx = AutolevParser.Id_diffContext(self, self._ctx, self.state)
- self.enterRule(localctx, 40, self.RULE_id_diff)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 299
- self.match(AutolevParser.ID)
- self.state = 301
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==11:
- self.state = 300
- self.diff()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class Inputs2Context(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def id_diff(self):
- return self.getTypedRuleContext(AutolevParser.Id_diffContext,0)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_inputs2
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterInputs2" ):
- listener.enterInputs2(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitInputs2" ):
- listener.exitInputs2(self)
- def inputs2(self):
- localctx = AutolevParser.Inputs2Context(self, self._ctx, self.state)
- self.enterRule(localctx, 42, self.RULE_inputs2)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 303
- self.id_diff()
- self.state = 304
- self.match(AutolevParser.T__2)
- self.state = 305
- self.expr(0)
- self.state = 307
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,34,self._ctx)
- if la_ == 1:
- self.state = 306
- self.expr(0)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class OutputsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def Output(self):
- return self.getToken(AutolevParser.Output, 0)
- def outputs2(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.Outputs2Context)
- else:
- return self.getTypedRuleContext(AutolevParser.Outputs2Context,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_outputs
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterOutputs" ):
- listener.enterOutputs(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitOutputs" ):
- listener.exitOutputs(self)
- def outputs(self):
- localctx = AutolevParser.OutputsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 44, self.RULE_outputs)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 309
- self.match(AutolevParser.Output)
- self.state = 310
- self.outputs2()
- self.state = 315
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 311
- self.match(AutolevParser.T__9)
- self.state = 312
- self.outputs2()
- self.state = 317
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class Outputs2Context(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_outputs2
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterOutputs2" ):
- listener.enterOutputs2(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitOutputs2" ):
- listener.exitOutputs2(self)
- def outputs2(self):
- localctx = AutolevParser.Outputs2Context(self, self._ctx, self.state)
- self.enterRule(localctx, 46, self.RULE_outputs2)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 318
- self.expr(0)
- self.state = 320
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,36,self._ctx)
- if la_ == 1:
- self.state = 319
- self.expr(0)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class CodegenContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def functionCall(self):
- return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0)
- def matrixInOutput(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.MatrixInOutputContext)
- else:
- return self.getTypedRuleContext(AutolevParser.MatrixInOutputContext,i)
- def getRuleIndex(self):
- return AutolevParser.RULE_codegen
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterCodegen" ):
- listener.enterCodegen(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitCodegen" ):
- listener.exitCodegen(self)
- def codegen(self):
- localctx = AutolevParser.CodegenContext(self, self._ctx, self.state)
- self.enterRule(localctx, 48, self.RULE_codegen)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 322
- self.match(AutolevParser.ID)
- self.state = 323
- self.functionCall()
- self.state = 335
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==1:
- self.state = 324
- self.match(AutolevParser.T__0)
- self.state = 325
- self.matrixInOutput()
- self.state = 330
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 326
- self.match(AutolevParser.T__9)
- self.state = 327
- self.matrixInOutput()
- self.state = 332
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 333
- self.match(AutolevParser.T__1)
- self.state = 337
- self.match(AutolevParser.ID)
- self.state = 338
- self.match(AutolevParser.T__19)
- self.state = 339
- self.match(AutolevParser.ID)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class CommandsContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def Save(self):
- return self.getToken(AutolevParser.Save, 0)
- def ID(self, i:int=None):
- if i is None:
- return self.getTokens(AutolevParser.ID)
- else:
- return self.getToken(AutolevParser.ID, i)
- def Encode(self):
- return self.getToken(AutolevParser.Encode, 0)
- def getRuleIndex(self):
- return AutolevParser.RULE_commands
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterCommands" ):
- listener.enterCommands(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitCommands" ):
- listener.exitCommands(self)
- def commands(self):
- localctx = AutolevParser.CommandsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 50, self.RULE_commands)
- self._la = 0 # Token type
- try:
- self.state = 354
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [31]:
- self.enterOuterAlt(localctx, 1)
- self.state = 341
- self.match(AutolevParser.Save)
- self.state = 342
- self.match(AutolevParser.ID)
- self.state = 343
- self.match(AutolevParser.T__19)
- self.state = 344
- self.match(AutolevParser.ID)
- pass
- elif token in [33]:
- self.enterOuterAlt(localctx, 2)
- self.state = 345
- self.match(AutolevParser.Encode)
- self.state = 346
- self.match(AutolevParser.ID)
- self.state = 351
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 347
- self.match(AutolevParser.T__9)
- self.state = 348
- self.match(AutolevParser.ID)
- self.state = 353
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- pass
- else:
- raise NoViableAltException(self)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class VecContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def getRuleIndex(self):
- return AutolevParser.RULE_vec
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterVec" ):
- listener.enterVec(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitVec" ):
- listener.exitVec(self)
- def vec(self):
- localctx = AutolevParser.VecContext(self, self._ctx, self.state)
- self.enterRule(localctx, 52, self.RULE_vec)
- try:
- self.state = 364
- self._errHandler.sync(self)
- token = self._input.LA(1)
- if token in [48]:
- self.enterOuterAlt(localctx, 1)
- self.state = 356
- self.match(AutolevParser.ID)
- self.state = 358
- self._errHandler.sync(self)
- _alt = 1
- while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
- if _alt == 1:
- self.state = 357
- self.match(AutolevParser.T__20)
- else:
- raise NoViableAltException(self)
- self.state = 360
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,41,self._ctx)
- pass
- elif token in [22]:
- self.enterOuterAlt(localctx, 2)
- self.state = 362
- self.match(AutolevParser.T__21)
- pass
- elif token in [23]:
- self.enterOuterAlt(localctx, 3)
- self.state = 363
- self.match(AutolevParser.T__22)
- pass
- else:
- raise NoViableAltException(self)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
- class ExprContext(ParserRuleContext):
- __slots__ = 'parser'
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- def getRuleIndex(self):
- return AutolevParser.RULE_expr
- def copyFrom(self, ctx:ParserRuleContext):
- super().copyFrom(ctx)
- class ParensContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterParens" ):
- listener.enterParens(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitParens" ):
- listener.exitParens(self)
- class VectorOrDyadicContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def vec(self):
- return self.getTypedRuleContext(AutolevParser.VecContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterVectorOrDyadic" ):
- listener.enterVectorOrDyadic(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitVectorOrDyadic" ):
- listener.exitVectorOrDyadic(self)
- class ExponentContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterExponent" ):
- listener.enterExponent(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitExponent" ):
- listener.exitExponent(self)
- class MulDivContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterMulDiv" ):
- listener.enterMulDiv(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitMulDiv" ):
- listener.exitMulDiv(self)
- class AddSubContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterAddSub" ):
- listener.enterAddSub(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitAddSub" ):
- listener.exitAddSub(self)
- class FloatContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def FLOAT(self):
- return self.getToken(AutolevParser.FLOAT, 0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterFloat" ):
- listener.enterFloat(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitFloat" ):
- listener.exitFloat(self)
- class IntContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def INT(self):
- return self.getToken(AutolevParser.INT, 0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterInt" ):
- listener.enterInt(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitInt" ):
- listener.exitInt(self)
- class IdEqualsExprContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIdEqualsExpr" ):
- listener.enterIdEqualsExpr(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIdEqualsExpr" ):
- listener.exitIdEqualsExpr(self)
- class NegativeOneContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self):
- return self.getTypedRuleContext(AutolevParser.ExprContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterNegativeOne" ):
- listener.enterNegativeOne(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitNegativeOne" ):
- listener.exitNegativeOne(self)
- class FunctionContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def functionCall(self):
- return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterFunction" ):
- listener.enterFunction(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitFunction" ):
- listener.exitFunction(self)
- class RangessContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def ranges(self):
- return self.getTypedRuleContext(AutolevParser.RangesContext,0)
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterRangess" ):
- listener.enterRangess(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitRangess" ):
- listener.exitRangess(self)
- class ColonContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterColon" ):
- listener.enterColon(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitColon" ):
- listener.exitColon(self)
- class IdContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterId" ):
- listener.enterId(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitId" ):
- listener.exitId(self)
- class ExpContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def EXP(self):
- return self.getToken(AutolevParser.EXP, 0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterExp" ):
- listener.enterExp(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitExp" ):
- listener.exitExp(self)
- class MatricesContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def matrix(self):
- return self.getTypedRuleContext(AutolevParser.MatrixContext,0)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterMatrices" ):
- listener.enterMatrices(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitMatrices" ):
- listener.exitMatrices(self)
- class IndexingContext(ExprContext):
- def __init__(self, parser, ctx:ParserRuleContext): # actually a AutolevParser.ExprContext
- super().__init__(parser)
- self.copyFrom(ctx)
- def ID(self):
- return self.getToken(AutolevParser.ID, 0)
- def expr(self, i:int=None):
- if i is None:
- return self.getTypedRuleContexts(AutolevParser.ExprContext)
- else:
- return self.getTypedRuleContext(AutolevParser.ExprContext,i)
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIndexing" ):
- listener.enterIndexing(self)
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIndexing" ):
- listener.exitIndexing(self)
- def expr(self, _p:int=0):
- _parentctx = self._ctx
- _parentState = self.state
- localctx = AutolevParser.ExprContext(self, self._ctx, _parentState)
- _prevctx = localctx
- _startState = 54
- self.enterRecursionRule(localctx, 54, self.RULE_expr, _p)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 408
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,47,self._ctx)
- if la_ == 1:
- localctx = AutolevParser.ExpContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 367
- self.match(AutolevParser.EXP)
- pass
- elif la_ == 2:
- localctx = AutolevParser.NegativeOneContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 368
- self.match(AutolevParser.T__17)
- self.state = 369
- self.expr(12)
- pass
- elif la_ == 3:
- localctx = AutolevParser.FloatContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 370
- self.match(AutolevParser.FLOAT)
- pass
- elif la_ == 4:
- localctx = AutolevParser.IntContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 371
- self.match(AutolevParser.INT)
- pass
- elif la_ == 5:
- localctx = AutolevParser.IdContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 372
- self.match(AutolevParser.ID)
- self.state = 376
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,43,self._ctx)
- while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
- if _alt==1:
- self.state = 373
- self.match(AutolevParser.T__10)
- self.state = 378
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,43,self._ctx)
- pass
- elif la_ == 6:
- localctx = AutolevParser.VectorOrDyadicContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 379
- self.vec()
- pass
- elif la_ == 7:
- localctx = AutolevParser.IndexingContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 380
- self.match(AutolevParser.ID)
- self.state = 381
- self.match(AutolevParser.T__0)
- self.state = 382
- self.expr(0)
- self.state = 387
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- while _la==10:
- self.state = 383
- self.match(AutolevParser.T__9)
- self.state = 384
- self.expr(0)
- self.state = 389
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- self.state = 390
- self.match(AutolevParser.T__1)
- pass
- elif la_ == 8:
- localctx = AutolevParser.FunctionContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 392
- self.functionCall()
- pass
- elif la_ == 9:
- localctx = AutolevParser.MatricesContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 393
- self.matrix()
- pass
- elif la_ == 10:
- localctx = AutolevParser.ParensContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 394
- self.match(AutolevParser.T__11)
- self.state = 395
- self.expr(0)
- self.state = 396
- self.match(AutolevParser.T__12)
- pass
- elif la_ == 11:
- localctx = AutolevParser.RangessContext(self, localctx)
- self._ctx = localctx
- _prevctx = localctx
- self.state = 399
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==48:
- self.state = 398
- self.match(AutolevParser.ID)
- self.state = 401
- self.ranges()
- self.state = 405
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,46,self._ctx)
- while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
- if _alt==1:
- self.state = 402
- self.match(AutolevParser.T__10)
- self.state = 407
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,46,self._ctx)
- pass
- self._ctx.stop = self._input.LT(-1)
- self.state = 427
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,49,self._ctx)
- while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
- if _alt==1:
- if self._parseListeners is not None:
- self.triggerExitRuleEvent()
- _prevctx = localctx
- self.state = 425
- self._errHandler.sync(self)
- la_ = self._interp.adaptivePredict(self._input,48,self._ctx)
- if la_ == 1:
- localctx = AutolevParser.ExponentContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
- self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 410
- if not self.precpred(self._ctx, 16):
- from antlr4.error.Errors import FailedPredicateException
- raise FailedPredicateException(self, "self.precpred(self._ctx, 16)")
- self.state = 411
- self.match(AutolevParser.T__23)
- self.state = 412
- self.expr(17)
- pass
- elif la_ == 2:
- localctx = AutolevParser.MulDivContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
- self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 413
- if not self.precpred(self._ctx, 15):
- from antlr4.error.Errors import FailedPredicateException
- raise FailedPredicateException(self, "self.precpred(self._ctx, 15)")
- self.state = 414
- _la = self._input.LA(1)
- if not(_la==25 or _la==26):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 415
- self.expr(16)
- pass
- elif la_ == 3:
- localctx = AutolevParser.AddSubContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
- self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 416
- if not self.precpred(self._ctx, 14):
- from antlr4.error.Errors import FailedPredicateException
- raise FailedPredicateException(self, "self.precpred(self._ctx, 14)")
- self.state = 417
- _la = self._input.LA(1)
- if not(_la==17 or _la==18):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 418
- self.expr(15)
- pass
- elif la_ == 4:
- localctx = AutolevParser.IdEqualsExprContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
- self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 419
- if not self.precpred(self._ctx, 3):
- from antlr4.error.Errors import FailedPredicateException
- raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
- self.state = 420
- self.match(AutolevParser.T__2)
- self.state = 421
- self.expr(4)
- pass
- elif la_ == 5:
- localctx = AutolevParser.ColonContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
- self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 422
- if not self.precpred(self._ctx, 2):
- from antlr4.error.Errors import FailedPredicateException
- raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
- self.state = 423
- self.match(AutolevParser.T__15)
- self.state = 424
- self.expr(3)
- pass
- self.state = 429
- self._errHandler.sync(self)
- _alt = self._interp.adaptivePredict(self._input,49,self._ctx)
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.unrollRecursionContexts(_parentctx)
- return localctx
- def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int):
- if self._predicates == None:
- self._predicates = dict()
- self._predicates[27] = self.expr_sempred
- pred = self._predicates.get(ruleIndex, None)
- if pred is None:
- raise Exception("No predicate with index:" + str(ruleIndex))
- else:
- return pred(localctx, predIndex)
- def expr_sempred(self, localctx:ExprContext, predIndex:int):
- if predIndex == 0:
- return self.precpred(self._ctx, 16)
- if predIndex == 1:
- return self.precpred(self._ctx, 15)
- if predIndex == 2:
- return self.precpred(self._ctx, 14)
- if predIndex == 3:
- return self.precpred(self._ctx, 3)
- if predIndex == 4:
- return self.precpred(self._ctx, 2)
|