IvannosysGrammarParser.java 195 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615
  1. // Generated from C:\Users\EUGENIO CARVALHO\Desktop\projects\Ivannosys\src\grammar\IvannosysGrammar.g4 by ANTLR 4.2.2
  2. package grammar;
  3. import java.util.HashMap;
  4. import java.util.Stack;
  5. import org.antlr.v4.runtime.atn.*;
  6. import org.antlr.v4.runtime.dfa.DFA;
  7. import org.antlr.v4.runtime.*;
  8. import org.antlr.v4.runtime.misc.*;
  9. import org.antlr.v4.runtime.tree.*;
  10. import java.util.List;
  11. import java.util.Iterator;
  12. import java.util.ArrayList;
  13. @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
  14. public class IvannosysGrammarParser extends Parser {
  15. protected static final DFA[] _decisionToDFA;
  16. protected static final PredictionContextCache _sharedContextCache =
  17. new PredictionContextCache();
  18. public static final int
  19. R_BIT_AND=1, R_BIT_XOR=2, R_BIT_OR=3, R_SHIFT_LEFT=4, R_SHIFT_RIGHT=5,
  20. R_AT=6, R_DBL_SLASH=7, R_REFERENCE=8, R_INTERFACE=9, R_RANGE=10, R_STRUCT=11,
  21. R_OP_MOD=12, R_VAR=13, R_SHORT_VAR=14, R_GOTO=15, R_FALLTHROUGH=16, R_MAP=17,
  22. R_ERROR=18, R_NEW=19, R_DELETE=20, R_TRY=21, R_CATCH=22, R_FINALLY=23,
  23. R_DEFAULT=24, R_IMPORTE=25, R_PACKAGE=26, R_TRAP=27, R_INT=28, R_CHAR=29,
  24. R_BOOL=30, R_STRING=31, R_TIPO=32, R_FUNCTION=33, R_CONSTANTE=34, R_IN=35,
  25. R_SWITCH=36, R_CASE=37, R_FOR=38, R_RETURN=39, R_CONTINUE=40, R_BREAK=41,
  26. R_THROW=42, R_ELSE=43, R_IF=44, R_EXCLAMATION=45, R_PT_VIRG=46, R_PAR_E=47,
  27. R_PAR_D=48, R_COL_E=49, R_COL_D=50, R_CHA_E=51, R_CHA_D=52, R_EQ=53, R_VIRGULA=54,
  28. R_PONTO=55, R_COLON=56, R_END=57, R_AND=58, R_OR=59, R_COMP_EQ=60, R_COMP_DIFF=61,
  29. R_COMP_LTE=62, R_COMP_LT=63, R_COMP_GTE=64, R_COMP_GT=65, R_ASSIG_EXTEND=66,
  30. R_ASSIG_COPY=67, R_OP_DIV=68, R_OP_ADD=69, R_OP_SUB=70, R_OP_AST=71, R_OP_NEG=72,
  31. R_OP_SS=73, R_OP_PP=74, R_UND=75, R_INTERROGATION=76, T_CHAR=77, T_STRING=78,
  32. T_BOOL_TRUE=79, T_BOOL_FALSE=80, T_NULL=81, ID=82, T_INTEIRO=83, R_LIT_STRING=84,
  33. R_LINE_COMMENT=85, R_WS=86, R_COMMENT=87;
  34. public static final String[] tokenNames = {
  35. "<INVALID>", "R_BIT_AND", "'^'", "'|'", "'<<'", "'>>'", "'@'", "'//'",
  36. "R_REFERENCE", "'interface'", "'range'", "'struct'", "'%'", "'var'", "':='",
  37. "'goto'", "'fallthrough'", "'map'", "'error'", "'new'", "'delete'", "'try'",
  38. "'catch'", "'finally'", "'default'", "'import'", "'package'", "'trap'",
  39. "'int'", "'char'", "'bool'", "'string'", "'type'", "'func'", "'const'",
  40. "'in'", "'switch'", "'case'", "'for'", "'return'", "'continue'", "'break'",
  41. "'throw'", "'else'", "'if'", "R_EXCLAMATION", "';'", "'('", "')'", "'{'",
  42. "'}'", "'['", "']'", "'='", "','", "'.'", "R_COLON", "R_END", "'&&'",
  43. "'||'", "'=='", "'!='", "'<='", "'<'", "'>='", "'>'", "'::'", "R_ASSIG_COPY",
  44. "'/'", "'+'", "'-'", "'*'", "R_OP_NEG", "'--'", "'++'", "'_'", "'?'",
  45. "T_CHAR", "T_STRING", "'true'", "'false'", "'nil'", "ID", "T_INTEIRO",
  46. "R_LIT_STRING", "R_LINE_COMMENT", "R_WS", "R_COMMENT"
  47. };
  48. public static final int
  49. RULE_init = 0, RULE_imports = 1, RULE_import_part = 2, RULE_programPart = 3,
  50. RULE_def_type = 4, RULE_def_interface = 5, RULE_func_spec = 6, RULE_dec_var = 7,
  51. RULE_dec_var_part = 8, RULE_dec_var_short = 9, RULE_id_list = 10, RULE_def_assign_op = 11,
  52. RULE_assign_modify = 12, RULE_index = 13, RULE_arguments = 14, RULE_expression_list_typed = 15,
  53. RULE_dec_const = 16, RULE_dec_const_part = 17, RULE_def_function = 18,
  54. RULE_return_dec = 19, RULE_receive_type = 20, RULE_def_switch = 21, RULE_def_case = 22,
  55. RULE_statement_list = 23, RULE_primitive_value = 24, RULE_def_if = 25,
  56. RULE_def_if_block = 26, RULE_def_for = 27, RULE_for_clause = 28, RULE_initialization = 29,
  57. RULE_empty_block = 30, RULE_test = 31, RULE_increment = 32, RULE_for_each = 33,
  58. RULE_range = 34, RULE_return_stmt = 35, RULE_expression_list = 36, RULE_expression = 37,
  59. RULE_unary_expr = 38, RULE_primary_expr = 39, RULE_operand = 40, RULE_literal = 41,
  60. RULE_base_stmt = 42, RULE_func_literal = 43, RULE_composite = 44, RULE_literalType = 45,
  61. RULE_structType = 46, RULE_fieldDecl = 47, RULE_anon_field = 48, RULE_arrayType = 49,
  62. RULE_inc_dec = 50, RULE_literal_value = 51, RULE_element_list = 52, RULE_keyed_element = 53,
  63. RULE_expression_seletor = 54, RULE_def_block = 55, RULE_callExpr = 56,
  64. RULE_statement = 57, RULE_fallthroughStmt = 58, RULE_label_stmt = 59,
  65. RULE_throwStmt = 60, RULE_try_catch = 61, RULE_catch_exception = 62, RULE_finally_try = 63,
  66. RULE_flux_control = 64, RULE_newstmt = 65, RULE_delete = 66, RULE_type = 67,
  67. RULE_indexedType = 68, RULE_typename = 69, RULE_qualifiedId = 70, RULE_baseType = 71,
  68. RULE_mapType = 72, RULE_buildtags = 73, RULE_build_stmt = 74, RULE_buildvalue = 75;
  69. public static final String[] ruleNames = {
  70. "init", "imports", "import_part", "programPart", "def_type", "def_interface",
  71. "func_spec", "dec_var", "dec_var_part", "dec_var_short", "id_list", "def_assign_op",
  72. "assign_modify", "index", "arguments", "expression_list_typed", "dec_const",
  73. "dec_const_part", "def_function", "return_dec", "receive_type", "def_switch",
  74. "def_case", "statement_list", "primitive_value", "def_if", "def_if_block",
  75. "def_for", "for_clause", "initialization", "empty_block", "test", "increment",
  76. "for_each", "range", "return_stmt", "expression_list", "expression", "unary_expr",
  77. "primary_expr", "operand", "literal", "base_stmt", "func_literal", "composite",
  78. "literalType", "structType", "fieldDecl", "anon_field", "arrayType", "inc_dec",
  79. "literal_value", "element_list", "keyed_element", "expression_seletor",
  80. "def_block", "callExpr", "statement", "fallthroughStmt", "label_stmt",
  81. "throwStmt", "try_catch", "catch_exception", "finally_try", "flux_control",
  82. "newstmt", "delete", "type", "indexedType", "typename", "qualifiedId",
  83. "baseType", "mapType", "buildtags", "build_stmt", "buildvalue"
  84. };
  85. @Override
  86. public String getGrammarFileName() { return "IvannosysGrammar.g4"; }
  87. @Override
  88. public String[] getTokenNames() { return tokenNames; }
  89. @Override
  90. public String[] getRuleNames() { return ruleNames; }
  91. @Override
  92. public String getSerializedATN() { return _serializedATN; }
  93. @Override
  94. public ATN getATN() { return _ATN; }
  95. HashMap<String, String> decfunc = new HashMap<>();
  96. HashMap<String, String> decmet = new HashMap<>();
  97. HashMap<String, String> decvars = new HashMap<>();
  98. HashMap<String, String> operandos;
  99. HashMap<String, String> boolExpr;
  100. String travaOperandos = null;
  101. public IvannosysGrammarParser(TokenStream input) {
  102. super(input);
  103. _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
  104. }
  105. public static class InitContext extends ParserRuleContext {
  106. public ProgramPartContext programPart(int i) {
  107. return getRuleContext(ProgramPartContext.class,i);
  108. }
  109. public TerminalNode EOF() { return getToken(IvannosysGrammarParser.EOF, 0); }
  110. public List<ImportsContext> imports() {
  111. return getRuleContexts(ImportsContext.class);
  112. }
  113. public BuildtagsContext buildtags() {
  114. return getRuleContext(BuildtagsContext.class,0);
  115. }
  116. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  117. public List<ProgramPartContext> programPart() {
  118. return getRuleContexts(ProgramPartContext.class);
  119. }
  120. public TerminalNode R_PACKAGE() { return getToken(IvannosysGrammarParser.R_PACKAGE, 0); }
  121. public TerminalNode R_PT_VIRG() { return getToken(IvannosysGrammarParser.R_PT_VIRG, 0); }
  122. public ImportsContext imports(int i) {
  123. return getRuleContext(ImportsContext.class,i);
  124. }
  125. public InitContext(ParserRuleContext parent, int invokingState) {
  126. super(parent, invokingState);
  127. }
  128. @Override public int getRuleIndex() { return RULE_init; }
  129. @Override
  130. public void enterRule(ParseTreeListener listener) {
  131. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterInit(this);
  132. }
  133. @Override
  134. public void exitRule(ParseTreeListener listener) {
  135. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitInit(this);
  136. }
  137. @Override
  138. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  139. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitInit(this);
  140. else return visitor.visitChildren(this);
  141. }
  142. }
  143. public final InitContext init() throws RecognitionException {
  144. InitContext _localctx = new InitContext(_ctx, getState());
  145. enterRule(_localctx, 0, RULE_init);
  146. int _la;
  147. try {
  148. enterOuterAlt(_localctx, 1);
  149. {
  150. setState(153);
  151. _la = _input.LA(1);
  152. if (_la==R_AT) {
  153. {
  154. setState(152); buildtags();
  155. }
  156. }
  157. setState(155); match(R_PACKAGE);
  158. setState(156); match(ID);
  159. setState(157); match(R_PT_VIRG);
  160. setState(161);
  161. _errHandler.sync(this);
  162. _la = _input.LA(1);
  163. while (_la==R_IMPORTE) {
  164. {
  165. {
  166. setState(158); imports();
  167. }
  168. }
  169. setState(163);
  170. _errHandler.sync(this);
  171. _la = _input.LA(1);
  172. }
  173. setState(165);
  174. _errHandler.sync(this);
  175. _la = _input.LA(1);
  176. do {
  177. {
  178. {
  179. setState(164); programPart();
  180. }
  181. }
  182. setState(167);
  183. _errHandler.sync(this);
  184. _la = _input.LA(1);
  185. } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_VAR) | (1L << R_TIPO) | (1L << R_FUNCTION) | (1L << R_CONSTANTE))) != 0) );
  186. setState(169); match(EOF);
  187. }
  188. }
  189. catch (RecognitionException re) {
  190. _localctx.exception = re;
  191. _errHandler.reportError(this, re);
  192. _errHandler.recover(this, re);
  193. }
  194. finally {
  195. exitRule();
  196. }
  197. return _localctx;
  198. }
  199. public static class ImportsContext extends ParserRuleContext {
  200. public Import_partContext import_part(int i) {
  201. return getRuleContext(Import_partContext.class,i);
  202. }
  203. public TerminalNode R_IMPORTE() { return getToken(IvannosysGrammarParser.R_IMPORTE, 0); }
  204. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  205. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  206. public List<Import_partContext> import_part() {
  207. return getRuleContexts(Import_partContext.class);
  208. }
  209. public ImportsContext(ParserRuleContext parent, int invokingState) {
  210. super(parent, invokingState);
  211. }
  212. @Override public int getRuleIndex() { return RULE_imports; }
  213. @Override
  214. public void enterRule(ParseTreeListener listener) {
  215. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterImports(this);
  216. }
  217. @Override
  218. public void exitRule(ParseTreeListener listener) {
  219. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitImports(this);
  220. }
  221. @Override
  222. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  223. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitImports(this);
  224. else return visitor.visitChildren(this);
  225. }
  226. }
  227. public final ImportsContext imports() throws RecognitionException {
  228. ImportsContext _localctx = new ImportsContext(_ctx, getState());
  229. enterRule(_localctx, 2, RULE_imports);
  230. int _la;
  231. try {
  232. setState(184);
  233. switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) {
  234. case 1:
  235. enterOuterAlt(_localctx, 1);
  236. {
  237. setState(171); match(R_IMPORTE);
  238. setState(172); match(R_PAR_E);
  239. setState(173); import_part();
  240. setState(177);
  241. _errHandler.sync(this);
  242. _la = _input.LA(1);
  243. while (_la==T_STRING || _la==ID) {
  244. {
  245. {
  246. setState(174); import_part();
  247. }
  248. }
  249. setState(179);
  250. _errHandler.sync(this);
  251. _la = _input.LA(1);
  252. }
  253. setState(180); match(R_PAR_D);
  254. }
  255. break;
  256. case 2:
  257. enterOuterAlt(_localctx, 2);
  258. {
  259. setState(182); match(R_IMPORTE);
  260. setState(183); import_part();
  261. }
  262. break;
  263. }
  264. }
  265. catch (RecognitionException re) {
  266. _localctx.exception = re;
  267. _errHandler.reportError(this, re);
  268. _errHandler.recover(this, re);
  269. }
  270. finally {
  271. exitRule();
  272. }
  273. return _localctx;
  274. }
  275. public static class Import_partContext extends ParserRuleContext {
  276. public TerminalNode T_STRING() { return getToken(IvannosysGrammarParser.T_STRING, 0); }
  277. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  278. public Import_partContext(ParserRuleContext parent, int invokingState) {
  279. super(parent, invokingState);
  280. }
  281. @Override public int getRuleIndex() { return RULE_import_part; }
  282. @Override
  283. public void enterRule(ParseTreeListener listener) {
  284. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterImport_part(this);
  285. }
  286. @Override
  287. public void exitRule(ParseTreeListener listener) {
  288. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitImport_part(this);
  289. }
  290. @Override
  291. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  292. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitImport_part(this);
  293. else return visitor.visitChildren(this);
  294. }
  295. }
  296. public final Import_partContext import_part() throws RecognitionException {
  297. Import_partContext _localctx = new Import_partContext(_ctx, getState());
  298. enterRule(_localctx, 4, RULE_import_part);
  299. int _la;
  300. try {
  301. enterOuterAlt(_localctx, 1);
  302. {
  303. setState(187);
  304. _la = _input.LA(1);
  305. if (_la==ID) {
  306. {
  307. setState(186); match(ID);
  308. }
  309. }
  310. setState(189); match(T_STRING);
  311. }
  312. }
  313. catch (RecognitionException re) {
  314. _localctx.exception = re;
  315. _errHandler.reportError(this, re);
  316. _errHandler.recover(this, re);
  317. }
  318. finally {
  319. exitRule();
  320. }
  321. return _localctx;
  322. }
  323. public static class ProgramPartContext extends ParserRuleContext {
  324. public Def_interfaceContext def_interface() {
  325. return getRuleContext(Def_interfaceContext.class,0);
  326. }
  327. public Def_typeContext def_type() {
  328. return getRuleContext(Def_typeContext.class,0);
  329. }
  330. public Def_functionContext def_function() {
  331. return getRuleContext(Def_functionContext.class,0);
  332. }
  333. public Dec_varContext dec_var() {
  334. return getRuleContext(Dec_varContext.class,0);
  335. }
  336. public Dec_constContext dec_const() {
  337. return getRuleContext(Dec_constContext.class,0);
  338. }
  339. public ProgramPartContext(ParserRuleContext parent, int invokingState) {
  340. super(parent, invokingState);
  341. }
  342. @Override public int getRuleIndex() { return RULE_programPart; }
  343. @Override
  344. public void enterRule(ParseTreeListener listener) {
  345. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterProgramPart(this);
  346. }
  347. @Override
  348. public void exitRule(ParseTreeListener listener) {
  349. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitProgramPart(this);
  350. }
  351. @Override
  352. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  353. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitProgramPart(this);
  354. else return visitor.visitChildren(this);
  355. }
  356. }
  357. public final ProgramPartContext programPart() throws RecognitionException {
  358. ProgramPartContext _localctx = new ProgramPartContext(_ctx, getState());
  359. enterRule(_localctx, 6, RULE_programPart);
  360. try {
  361. setState(196);
  362. switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
  363. case 1:
  364. enterOuterAlt(_localctx, 1);
  365. {
  366. setState(191); dec_const();
  367. }
  368. break;
  369. case 2:
  370. enterOuterAlt(_localctx, 2);
  371. {
  372. setState(192); dec_var();
  373. }
  374. break;
  375. case 3:
  376. enterOuterAlt(_localctx, 3);
  377. {
  378. setState(193); def_type();
  379. }
  380. break;
  381. case 4:
  382. enterOuterAlt(_localctx, 4);
  383. {
  384. setState(194); def_interface();
  385. }
  386. break;
  387. case 5:
  388. enterOuterAlt(_localctx, 5);
  389. {
  390. setState(195); def_function();
  391. }
  392. break;
  393. }
  394. }
  395. catch (RecognitionException re) {
  396. _localctx.exception = re;
  397. _errHandler.reportError(this, re);
  398. _errHandler.recover(this, re);
  399. }
  400. finally {
  401. exitRule();
  402. }
  403. return _localctx;
  404. }
  405. public static class Def_typeContext extends ParserRuleContext {
  406. public StructTypeContext structType() {
  407. return getRuleContext(StructTypeContext.class,0);
  408. }
  409. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  410. public TypeContext type() {
  411. return getRuleContext(TypeContext.class,0);
  412. }
  413. public TerminalNode R_TIPO() { return getToken(IvannosysGrammarParser.R_TIPO, 0); }
  414. public Def_typeContext(ParserRuleContext parent, int invokingState) {
  415. super(parent, invokingState);
  416. }
  417. @Override public int getRuleIndex() { return RULE_def_type; }
  418. @Override
  419. public void enterRule(ParseTreeListener listener) {
  420. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_type(this);
  421. }
  422. @Override
  423. public void exitRule(ParseTreeListener listener) {
  424. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_type(this);
  425. }
  426. @Override
  427. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  428. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_type(this);
  429. else return visitor.visitChildren(this);
  430. }
  431. }
  432. public final Def_typeContext def_type() throws RecognitionException {
  433. Def_typeContext _localctx = new Def_typeContext(_ctx, getState());
  434. enterRule(_localctx, 8, RULE_def_type);
  435. try {
  436. enterOuterAlt(_localctx, 1);
  437. {
  438. setState(198); match(R_TIPO);
  439. setState(199); match(ID);
  440. setState(202);
  441. switch (_input.LA(1)) {
  442. case R_STRUCT:
  443. {
  444. setState(200); structType();
  445. }
  446. break;
  447. case R_MAP:
  448. case R_ERROR:
  449. case R_INT:
  450. case R_CHAR:
  451. case R_BOOL:
  452. case R_STRING:
  453. case R_CHA_E:
  454. case R_OP_AST:
  455. case ID:
  456. {
  457. setState(201); type();
  458. }
  459. break;
  460. default:
  461. throw new NoViableAltException(this);
  462. }
  463. }
  464. }
  465. catch (RecognitionException re) {
  466. _localctx.exception = re;
  467. _errHandler.reportError(this, re);
  468. _errHandler.recover(this, re);
  469. }
  470. finally {
  471. exitRule();
  472. }
  473. return _localctx;
  474. }
  475. public static class Def_interfaceContext extends ParserRuleContext {
  476. public TerminalNode R_COL_E() { return getToken(IvannosysGrammarParser.R_COL_E, 0); }
  477. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  478. public TerminalNode R_INTERFACE() { return getToken(IvannosysGrammarParser.R_INTERFACE, 0); }
  479. public TerminalNode R_TIPO() { return getToken(IvannosysGrammarParser.R_TIPO, 0); }
  480. public Func_specContext func_spec(int i) {
  481. return getRuleContext(Func_specContext.class,i);
  482. }
  483. public List<Func_specContext> func_spec() {
  484. return getRuleContexts(Func_specContext.class);
  485. }
  486. public TerminalNode R_COL_D() { return getToken(IvannosysGrammarParser.R_COL_D, 0); }
  487. public Def_interfaceContext(ParserRuleContext parent, int invokingState) {
  488. super(parent, invokingState);
  489. }
  490. @Override public int getRuleIndex() { return RULE_def_interface; }
  491. @Override
  492. public void enterRule(ParseTreeListener listener) {
  493. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_interface(this);
  494. }
  495. @Override
  496. public void exitRule(ParseTreeListener listener) {
  497. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_interface(this);
  498. }
  499. @Override
  500. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  501. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_interface(this);
  502. else return visitor.visitChildren(this);
  503. }
  504. }
  505. public final Def_interfaceContext def_interface() throws RecognitionException {
  506. Def_interfaceContext _localctx = new Def_interfaceContext(_ctx, getState());
  507. enterRule(_localctx, 10, RULE_def_interface);
  508. int _la;
  509. try {
  510. enterOuterAlt(_localctx, 1);
  511. {
  512. setState(204); match(R_TIPO);
  513. setState(205); match(ID);
  514. setState(206); match(R_INTERFACE);
  515. setState(207); match(R_COL_E);
  516. setState(209);
  517. _errHandler.sync(this);
  518. _la = _input.LA(1);
  519. do {
  520. {
  521. {
  522. setState(208); func_spec();
  523. }
  524. }
  525. setState(211);
  526. _errHandler.sync(this);
  527. _la = _input.LA(1);
  528. } while ( _la==ID );
  529. setState(213); match(R_COL_D);
  530. }
  531. }
  532. catch (RecognitionException re) {
  533. _localctx.exception = re;
  534. _errHandler.reportError(this, re);
  535. _errHandler.recover(this, re);
  536. }
  537. finally {
  538. exitRule();
  539. }
  540. return _localctx;
  541. }
  542. public static class Func_specContext extends ParserRuleContext {
  543. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  544. public ArgumentsContext arguments() {
  545. return getRuleContext(ArgumentsContext.class,0);
  546. }
  547. public Return_decContext return_dec() {
  548. return getRuleContext(Return_decContext.class,0);
  549. }
  550. public Func_specContext(ParserRuleContext parent, int invokingState) {
  551. super(parent, invokingState);
  552. }
  553. @Override public int getRuleIndex() { return RULE_func_spec; }
  554. @Override
  555. public void enterRule(ParseTreeListener listener) {
  556. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFunc_spec(this);
  557. }
  558. @Override
  559. public void exitRule(ParseTreeListener listener) {
  560. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFunc_spec(this);
  561. }
  562. @Override
  563. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  564. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFunc_spec(this);
  565. else return visitor.visitChildren(this);
  566. }
  567. }
  568. public final Func_specContext func_spec() throws RecognitionException {
  569. Func_specContext _localctx = new Func_specContext(_ctx, getState());
  570. enterRule(_localctx, 12, RULE_func_spec);
  571. try {
  572. enterOuterAlt(_localctx, 1);
  573. {
  574. setState(215); match(ID);
  575. setState(216); arguments();
  576. setState(217); return_dec();
  577. }
  578. }
  579. catch (RecognitionException re) {
  580. _localctx.exception = re;
  581. _errHandler.reportError(this, re);
  582. _errHandler.recover(this, re);
  583. }
  584. finally {
  585. exitRule();
  586. }
  587. return _localctx;
  588. }
  589. public static class Dec_varContext extends ParserRuleContext {
  590. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  591. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  592. public Dec_var_partContext dec_var_part(int i) {
  593. return getRuleContext(Dec_var_partContext.class,i);
  594. }
  595. public List<Dec_var_partContext> dec_var_part() {
  596. return getRuleContexts(Dec_var_partContext.class);
  597. }
  598. public TerminalNode R_VAR() { return getToken(IvannosysGrammarParser.R_VAR, 0); }
  599. public Dec_varContext(ParserRuleContext parent, int invokingState) {
  600. super(parent, invokingState);
  601. }
  602. @Override public int getRuleIndex() { return RULE_dec_var; }
  603. @Override
  604. public void enterRule(ParseTreeListener listener) {
  605. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDec_var(this);
  606. }
  607. @Override
  608. public void exitRule(ParseTreeListener listener) {
  609. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDec_var(this);
  610. }
  611. @Override
  612. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  613. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDec_var(this);
  614. else return visitor.visitChildren(this);
  615. }
  616. }
  617. public final Dec_varContext dec_var() throws RecognitionException {
  618. Dec_varContext _localctx = new Dec_varContext(_ctx, getState());
  619. enterRule(_localctx, 14, RULE_dec_var);
  620. int _la;
  621. try {
  622. setState(230);
  623. switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) {
  624. case 1:
  625. enterOuterAlt(_localctx, 1);
  626. {
  627. setState(219); match(R_VAR);
  628. setState(220); match(R_PAR_E);
  629. setState(222);
  630. _errHandler.sync(this);
  631. _la = _input.LA(1);
  632. do {
  633. {
  634. {
  635. setState(221); dec_var_part();
  636. }
  637. }
  638. setState(224);
  639. _errHandler.sync(this);
  640. _la = _input.LA(1);
  641. } while ( _la==ID );
  642. setState(226); match(R_PAR_D);
  643. }
  644. break;
  645. case 2:
  646. enterOuterAlt(_localctx, 2);
  647. {
  648. setState(228); match(R_VAR);
  649. setState(229); dec_var_part();
  650. }
  651. break;
  652. }
  653. }
  654. catch (RecognitionException re) {
  655. _localctx.exception = re;
  656. _errHandler.reportError(this, re);
  657. _errHandler.recover(this, re);
  658. }
  659. finally {
  660. exitRule();
  661. }
  662. return _localctx;
  663. }
  664. public static class Dec_var_partContext extends ParserRuleContext {
  665. public TypeContext type() {
  666. return getRuleContext(TypeContext.class,0);
  667. }
  668. public Id_listContext id_list() {
  669. return getRuleContext(Id_listContext.class,0);
  670. }
  671. public Expression_listContext expression_list() {
  672. return getRuleContext(Expression_listContext.class,0);
  673. }
  674. public TerminalNode R_EQ() { return getToken(IvannosysGrammarParser.R_EQ, 0); }
  675. public Dec_var_partContext(ParserRuleContext parent, int invokingState) {
  676. super(parent, invokingState);
  677. }
  678. @Override public int getRuleIndex() { return RULE_dec_var_part; }
  679. @Override
  680. public void enterRule(ParseTreeListener listener) {
  681. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDec_var_part(this);
  682. }
  683. @Override
  684. public void exitRule(ParseTreeListener listener) {
  685. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDec_var_part(this);
  686. }
  687. @Override
  688. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  689. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDec_var_part(this);
  690. else return visitor.visitChildren(this);
  691. }
  692. }
  693. public final Dec_var_partContext dec_var_part() throws RecognitionException {
  694. Dec_var_partContext _localctx = new Dec_var_partContext(_ctx, getState());
  695. enterRule(_localctx, 16, RULE_dec_var_part);
  696. int _la;
  697. try {
  698. enterOuterAlt(_localctx, 1);
  699. {
  700. setState(232); id_list();
  701. setState(240);
  702. switch (_input.LA(1)) {
  703. case R_MAP:
  704. case R_ERROR:
  705. case R_INT:
  706. case R_CHAR:
  707. case R_BOOL:
  708. case R_STRING:
  709. case R_CHA_E:
  710. case R_OP_AST:
  711. case ID:
  712. {
  713. setState(233); type();
  714. setState(236);
  715. _la = _input.LA(1);
  716. if (_la==R_EQ) {
  717. {
  718. setState(234); match(R_EQ);
  719. setState(235); expression_list();
  720. }
  721. }
  722. }
  723. break;
  724. case R_EQ:
  725. {
  726. setState(238); match(R_EQ);
  727. setState(239); expression_list();
  728. }
  729. break;
  730. default:
  731. throw new NoViableAltException(this);
  732. }
  733. }
  734. }
  735. catch (RecognitionException re) {
  736. _localctx.exception = re;
  737. _errHandler.reportError(this, re);
  738. _errHandler.recover(this, re);
  739. }
  740. finally {
  741. exitRule();
  742. }
  743. return _localctx;
  744. }
  745. public static class Dec_var_shortContext extends ParserRuleContext {
  746. public TerminalNode R_SHORT_VAR() { return getToken(IvannosysGrammarParser.R_SHORT_VAR, 0); }
  747. public Id_listContext id_list() {
  748. return getRuleContext(Id_listContext.class,0);
  749. }
  750. public Expression_listContext expression_list() {
  751. return getRuleContext(Expression_listContext.class,0);
  752. }
  753. public Dec_var_shortContext(ParserRuleContext parent, int invokingState) {
  754. super(parent, invokingState);
  755. }
  756. @Override public int getRuleIndex() { return RULE_dec_var_short; }
  757. @Override
  758. public void enterRule(ParseTreeListener listener) {
  759. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDec_var_short(this);
  760. }
  761. @Override
  762. public void exitRule(ParseTreeListener listener) {
  763. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDec_var_short(this);
  764. }
  765. @Override
  766. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  767. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDec_var_short(this);
  768. else return visitor.visitChildren(this);
  769. }
  770. }
  771. public final Dec_var_shortContext dec_var_short() throws RecognitionException {
  772. Dec_var_shortContext _localctx = new Dec_var_shortContext(_ctx, getState());
  773. enterRule(_localctx, 18, RULE_dec_var_short);
  774. try {
  775. enterOuterAlt(_localctx, 1);
  776. {
  777. setState(242); id_list();
  778. setState(243); match(R_SHORT_VAR);
  779. setState(244); expression_list();
  780. }
  781. }
  782. catch (RecognitionException re) {
  783. _localctx.exception = re;
  784. _errHandler.reportError(this, re);
  785. _errHandler.recover(this, re);
  786. }
  787. finally {
  788. exitRule();
  789. }
  790. return _localctx;
  791. }
  792. public static class Id_listContext extends ParserRuleContext {
  793. public List<TerminalNode> R_VIRGULA() { return getTokens(IvannosysGrammarParser.R_VIRGULA); }
  794. public List<TerminalNode> ID() { return getTokens(IvannosysGrammarParser.ID); }
  795. public TerminalNode R_VIRGULA(int i) {
  796. return getToken(IvannosysGrammarParser.R_VIRGULA, i);
  797. }
  798. public TerminalNode ID(int i) {
  799. return getToken(IvannosysGrammarParser.ID, i);
  800. }
  801. public Id_listContext(ParserRuleContext parent, int invokingState) {
  802. super(parent, invokingState);
  803. }
  804. @Override public int getRuleIndex() { return RULE_id_list; }
  805. @Override
  806. public void enterRule(ParseTreeListener listener) {
  807. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterId_list(this);
  808. }
  809. @Override
  810. public void exitRule(ParseTreeListener listener) {
  811. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitId_list(this);
  812. }
  813. @Override
  814. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  815. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitId_list(this);
  816. else return visitor.visitChildren(this);
  817. }
  818. }
  819. public final Id_listContext id_list() throws RecognitionException {
  820. Id_listContext _localctx = new Id_listContext(_ctx, getState());
  821. enterRule(_localctx, 20, RULE_id_list);
  822. int _la;
  823. try {
  824. enterOuterAlt(_localctx, 1);
  825. {
  826. setState(246); match(ID);
  827. setState(251);
  828. _errHandler.sync(this);
  829. _la = _input.LA(1);
  830. while (_la==R_VIRGULA) {
  831. {
  832. {
  833. setState(247); match(R_VIRGULA);
  834. setState(248); match(ID);
  835. }
  836. }
  837. setState(253);
  838. _errHandler.sync(this);
  839. _la = _input.LA(1);
  840. }
  841. }
  842. }
  843. catch (RecognitionException re) {
  844. _localctx.exception = re;
  845. _errHandler.reportError(this, re);
  846. _errHandler.recover(this, re);
  847. }
  848. finally {
  849. exitRule();
  850. }
  851. return _localctx;
  852. }
  853. public static class Def_assign_opContext extends ParserRuleContext {
  854. public Assign_modifyContext assign_modify() {
  855. return getRuleContext(Assign_modifyContext.class,0);
  856. }
  857. public List<Expression_listContext> expression_list() {
  858. return getRuleContexts(Expression_listContext.class);
  859. }
  860. public TerminalNode R_EQ() { return getToken(IvannosysGrammarParser.R_EQ, 0); }
  861. public Expression_listContext expression_list(int i) {
  862. return getRuleContext(Expression_listContext.class,i);
  863. }
  864. public Def_assign_opContext(ParserRuleContext parent, int invokingState) {
  865. super(parent, invokingState);
  866. }
  867. @Override public int getRuleIndex() { return RULE_def_assign_op; }
  868. @Override
  869. public void enterRule(ParseTreeListener listener) {
  870. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_assign_op(this);
  871. }
  872. @Override
  873. public void exitRule(ParseTreeListener listener) {
  874. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_assign_op(this);
  875. }
  876. @Override
  877. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  878. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_assign_op(this);
  879. else return visitor.visitChildren(this);
  880. }
  881. }
  882. public final Def_assign_opContext def_assign_op() throws RecognitionException {
  883. Def_assign_opContext _localctx = new Def_assign_opContext(_ctx, getState());
  884. enterRule(_localctx, 22, RULE_def_assign_op);
  885. int _la;
  886. try {
  887. enterOuterAlt(_localctx, 1);
  888. {
  889. setState(254); expression_list();
  890. setState(256);
  891. _la = _input.LA(1);
  892. if (((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (R_ASSIG_EXTEND - 66)) | (1L << (R_ASSIG_COPY - 66)) | (1L << (R_OP_DIV - 66)) | (1L << (R_OP_ADD - 66)) | (1L << (R_OP_SUB - 66)) | (1L << (R_OP_AST - 66)))) != 0)) {
  893. {
  894. setState(255); assign_modify();
  895. }
  896. }
  897. setState(258); match(R_EQ);
  898. setState(259); expression_list();
  899. }
  900. }
  901. catch (RecognitionException re) {
  902. _localctx.exception = re;
  903. _errHandler.reportError(this, re);
  904. _errHandler.recover(this, re);
  905. }
  906. finally {
  907. exitRule();
  908. }
  909. return _localctx;
  910. }
  911. public static class Assign_modifyContext extends ParserRuleContext {
  912. public TerminalNode R_OP_SUB() { return getToken(IvannosysGrammarParser.R_OP_SUB, 0); }
  913. public TerminalNode R_ASSIG_COPY() { return getToken(IvannosysGrammarParser.R_ASSIG_COPY, 0); }
  914. public TerminalNode R_OP_AST() { return getToken(IvannosysGrammarParser.R_OP_AST, 0); }
  915. public TerminalNode R_OP_DIV() { return getToken(IvannosysGrammarParser.R_OP_DIV, 0); }
  916. public TerminalNode R_OP_ADD() { return getToken(IvannosysGrammarParser.R_OP_ADD, 0); }
  917. public TerminalNode R_ASSIG_EXTEND() { return getToken(IvannosysGrammarParser.R_ASSIG_EXTEND, 0); }
  918. public Assign_modifyContext(ParserRuleContext parent, int invokingState) {
  919. super(parent, invokingState);
  920. }
  921. @Override public int getRuleIndex() { return RULE_assign_modify; }
  922. @Override
  923. public void enterRule(ParseTreeListener listener) {
  924. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterAssign_modify(this);
  925. }
  926. @Override
  927. public void exitRule(ParseTreeListener listener) {
  928. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitAssign_modify(this);
  929. }
  930. @Override
  931. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  932. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitAssign_modify(this);
  933. else return visitor.visitChildren(this);
  934. }
  935. }
  936. public final Assign_modifyContext assign_modify() throws RecognitionException {
  937. Assign_modifyContext _localctx = new Assign_modifyContext(_ctx, getState());
  938. enterRule(_localctx, 24, RULE_assign_modify);
  939. int _la;
  940. try {
  941. enterOuterAlt(_localctx, 1);
  942. {
  943. setState(261);
  944. _la = _input.LA(1);
  945. if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (R_ASSIG_EXTEND - 66)) | (1L << (R_ASSIG_COPY - 66)) | (1L << (R_OP_DIV - 66)) | (1L << (R_OP_ADD - 66)) | (1L << (R_OP_SUB - 66)) | (1L << (R_OP_AST - 66)))) != 0)) ) {
  946. _errHandler.recoverInline(this);
  947. }
  948. consume();
  949. }
  950. }
  951. catch (RecognitionException re) {
  952. _localctx.exception = re;
  953. _errHandler.reportError(this, re);
  954. _errHandler.recover(this, re);
  955. }
  956. finally {
  957. exitRule();
  958. }
  959. return _localctx;
  960. }
  961. public static class IndexContext extends ParserRuleContext {
  962. public TerminalNode R_CHA_D() { return getToken(IvannosysGrammarParser.R_CHA_D, 0); }
  963. public TerminalNode R_CHA_E() { return getToken(IvannosysGrammarParser.R_CHA_E, 0); }
  964. public ExpressionContext expression() {
  965. return getRuleContext(ExpressionContext.class,0);
  966. }
  967. public IndexContext(ParserRuleContext parent, int invokingState) {
  968. super(parent, invokingState);
  969. }
  970. @Override public int getRuleIndex() { return RULE_index; }
  971. @Override
  972. public void enterRule(ParseTreeListener listener) {
  973. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterIndex(this);
  974. }
  975. @Override
  976. public void exitRule(ParseTreeListener listener) {
  977. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitIndex(this);
  978. }
  979. @Override
  980. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  981. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitIndex(this);
  982. else return visitor.visitChildren(this);
  983. }
  984. }
  985. public final IndexContext index() throws RecognitionException {
  986. IndexContext _localctx = new IndexContext(_ctx, getState());
  987. enterRule(_localctx, 26, RULE_index);
  988. try {
  989. enterOuterAlt(_localctx, 1);
  990. {
  991. setState(263); match(R_CHA_E);
  992. setState(264); expression(0);
  993. setState(265); match(R_CHA_D);
  994. }
  995. }
  996. catch (RecognitionException re) {
  997. _localctx.exception = re;
  998. _errHandler.reportError(this, re);
  999. _errHandler.recover(this, re);
  1000. }
  1001. finally {
  1002. exitRule();
  1003. }
  1004. return _localctx;
  1005. }
  1006. public static class ArgumentsContext extends ParserRuleContext {
  1007. public List<TerminalNode> R_VIRGULA() { return getTokens(IvannosysGrammarParser.R_VIRGULA); }
  1008. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  1009. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  1010. public TerminalNode R_VIRGULA(int i) {
  1011. return getToken(IvannosysGrammarParser.R_VIRGULA, i);
  1012. }
  1013. public Expression_list_typedContext expression_list_typed(int i) {
  1014. return getRuleContext(Expression_list_typedContext.class,i);
  1015. }
  1016. public Expression_listContext expression_list() {
  1017. return getRuleContext(Expression_listContext.class,0);
  1018. }
  1019. public List<Expression_list_typedContext> expression_list_typed() {
  1020. return getRuleContexts(Expression_list_typedContext.class);
  1021. }
  1022. public ArgumentsContext(ParserRuleContext parent, int invokingState) {
  1023. super(parent, invokingState);
  1024. }
  1025. @Override public int getRuleIndex() { return RULE_arguments; }
  1026. @Override
  1027. public void enterRule(ParseTreeListener listener) {
  1028. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterArguments(this);
  1029. }
  1030. @Override
  1031. public void exitRule(ParseTreeListener listener) {
  1032. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitArguments(this);
  1033. }
  1034. @Override
  1035. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1036. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitArguments(this);
  1037. else return visitor.visitChildren(this);
  1038. }
  1039. }
  1040. public final ArgumentsContext arguments() throws RecognitionException {
  1041. ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState());
  1042. enterRule(_localctx, 28, RULE_arguments);
  1043. int _la;
  1044. try {
  1045. enterOuterAlt(_localctx, 1);
  1046. {
  1047. setState(267); match(R_PAR_E);
  1048. setState(277);
  1049. switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) {
  1050. case 1:
  1051. {
  1052. setState(268); expression_list();
  1053. }
  1054. break;
  1055. case 2:
  1056. {
  1057. setState(269); expression_list_typed();
  1058. setState(274);
  1059. _errHandler.sync(this);
  1060. _la = _input.LA(1);
  1061. while (_la==R_VIRGULA) {
  1062. {
  1063. {
  1064. setState(270); match(R_VIRGULA);
  1065. setState(271); expression_list_typed();
  1066. }
  1067. }
  1068. setState(276);
  1069. _errHandler.sync(this);
  1070. _la = _input.LA(1);
  1071. }
  1072. }
  1073. break;
  1074. }
  1075. setState(279); match(R_PAR_D);
  1076. }
  1077. }
  1078. catch (RecognitionException re) {
  1079. _localctx.exception = re;
  1080. _errHandler.reportError(this, re);
  1081. _errHandler.recover(this, re);
  1082. }
  1083. finally {
  1084. exitRule();
  1085. }
  1086. return _localctx;
  1087. }
  1088. public static class Expression_list_typedContext extends ParserRuleContext {
  1089. public TypeContext type() {
  1090. return getRuleContext(TypeContext.class,0);
  1091. }
  1092. public Id_listContext id_list() {
  1093. return getRuleContext(Id_listContext.class,0);
  1094. }
  1095. public Expression_list_typedContext(ParserRuleContext parent, int invokingState) {
  1096. super(parent, invokingState);
  1097. }
  1098. @Override public int getRuleIndex() { return RULE_expression_list_typed; }
  1099. @Override
  1100. public void enterRule(ParseTreeListener listener) {
  1101. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterExpression_list_typed(this);
  1102. }
  1103. @Override
  1104. public void exitRule(ParseTreeListener listener) {
  1105. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitExpression_list_typed(this);
  1106. }
  1107. @Override
  1108. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1109. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitExpression_list_typed(this);
  1110. else return visitor.visitChildren(this);
  1111. }
  1112. }
  1113. public final Expression_list_typedContext expression_list_typed() throws RecognitionException {
  1114. Expression_list_typedContext _localctx = new Expression_list_typedContext(_ctx, getState());
  1115. enterRule(_localctx, 30, RULE_expression_list_typed);
  1116. try {
  1117. enterOuterAlt(_localctx, 1);
  1118. {
  1119. setState(282);
  1120. switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
  1121. case 1:
  1122. {
  1123. setState(281); id_list();
  1124. }
  1125. break;
  1126. }
  1127. setState(284); type();
  1128. }
  1129. }
  1130. catch (RecognitionException re) {
  1131. _localctx.exception = re;
  1132. _errHandler.reportError(this, re);
  1133. _errHandler.recover(this, re);
  1134. }
  1135. finally {
  1136. exitRule();
  1137. }
  1138. return _localctx;
  1139. }
  1140. public static class Dec_constContext extends ParserRuleContext {
  1141. public Dec_const_partContext dec_const_part(int i) {
  1142. return getRuleContext(Dec_const_partContext.class,i);
  1143. }
  1144. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  1145. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  1146. public List<Dec_const_partContext> dec_const_part() {
  1147. return getRuleContexts(Dec_const_partContext.class);
  1148. }
  1149. public TerminalNode R_CONSTANTE() { return getToken(IvannosysGrammarParser.R_CONSTANTE, 0); }
  1150. public Dec_constContext(ParserRuleContext parent, int invokingState) {
  1151. super(parent, invokingState);
  1152. }
  1153. @Override public int getRuleIndex() { return RULE_dec_const; }
  1154. @Override
  1155. public void enterRule(ParseTreeListener listener) {
  1156. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDec_const(this);
  1157. }
  1158. @Override
  1159. public void exitRule(ParseTreeListener listener) {
  1160. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDec_const(this);
  1161. }
  1162. @Override
  1163. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1164. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDec_const(this);
  1165. else return visitor.visitChildren(this);
  1166. }
  1167. }
  1168. public final Dec_constContext dec_const() throws RecognitionException {
  1169. Dec_constContext _localctx = new Dec_constContext(_ctx, getState());
  1170. enterRule(_localctx, 32, RULE_dec_const);
  1171. int _la;
  1172. try {
  1173. setState(299);
  1174. switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
  1175. case 1:
  1176. enterOuterAlt(_localctx, 1);
  1177. {
  1178. setState(286); match(R_CONSTANTE);
  1179. setState(287); dec_const_part();
  1180. }
  1181. break;
  1182. case 2:
  1183. enterOuterAlt(_localctx, 2);
  1184. {
  1185. setState(288); match(R_CONSTANTE);
  1186. setState(289); match(R_PAR_E);
  1187. setState(290); dec_const_part();
  1188. setState(294);
  1189. _errHandler.sync(this);
  1190. _la = _input.LA(1);
  1191. while (_la==ID) {
  1192. {
  1193. {
  1194. setState(291); dec_const_part();
  1195. }
  1196. }
  1197. setState(296);
  1198. _errHandler.sync(this);
  1199. _la = _input.LA(1);
  1200. }
  1201. setState(297); match(R_PAR_D);
  1202. }
  1203. break;
  1204. }
  1205. }
  1206. catch (RecognitionException re) {
  1207. _localctx.exception = re;
  1208. _errHandler.reportError(this, re);
  1209. _errHandler.recover(this, re);
  1210. }
  1211. finally {
  1212. exitRule();
  1213. }
  1214. return _localctx;
  1215. }
  1216. public static class Dec_const_partContext extends ParserRuleContext {
  1217. public Primitive_valueContext primitive_value() {
  1218. return getRuleContext(Primitive_valueContext.class,0);
  1219. }
  1220. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  1221. public TypeContext type() {
  1222. return getRuleContext(TypeContext.class,0);
  1223. }
  1224. public TerminalNode R_EQ() { return getToken(IvannosysGrammarParser.R_EQ, 0); }
  1225. public Dec_const_partContext(ParserRuleContext parent, int invokingState) {
  1226. super(parent, invokingState);
  1227. }
  1228. @Override public int getRuleIndex() { return RULE_dec_const_part; }
  1229. @Override
  1230. public void enterRule(ParseTreeListener listener) {
  1231. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDec_const_part(this);
  1232. }
  1233. @Override
  1234. public void exitRule(ParseTreeListener listener) {
  1235. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDec_const_part(this);
  1236. }
  1237. @Override
  1238. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1239. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDec_const_part(this);
  1240. else return visitor.visitChildren(this);
  1241. }
  1242. }
  1243. public final Dec_const_partContext dec_const_part() throws RecognitionException {
  1244. Dec_const_partContext _localctx = new Dec_const_partContext(_ctx, getState());
  1245. enterRule(_localctx, 34, RULE_dec_const_part);
  1246. int _la;
  1247. try {
  1248. enterOuterAlt(_localctx, 1);
  1249. {
  1250. setState(301); match(ID);
  1251. setState(303);
  1252. _la = _input.LA(1);
  1253. if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_MAP) | (1L << R_ERROR) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING) | (1L << R_CHA_E))) != 0) || _la==R_OP_AST || _la==ID) {
  1254. {
  1255. setState(302); type();
  1256. }
  1257. }
  1258. setState(305); match(R_EQ);
  1259. setState(306); primitive_value();
  1260. }
  1261. }
  1262. catch (RecognitionException re) {
  1263. _localctx.exception = re;
  1264. _errHandler.reportError(this, re);
  1265. _errHandler.recover(this, re);
  1266. }
  1267. finally {
  1268. exitRule();
  1269. }
  1270. return _localctx;
  1271. }
  1272. public static class Def_functionContext extends ParserRuleContext {
  1273. public Token name;
  1274. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  1275. public Def_blockContext def_block() {
  1276. return getRuleContext(Def_blockContext.class,0);
  1277. }
  1278. public TerminalNode R_FUNCTION() { return getToken(IvannosysGrammarParser.R_FUNCTION, 0); }
  1279. public ArgumentsContext arguments() {
  1280. return getRuleContext(ArgumentsContext.class,0);
  1281. }
  1282. public Return_decContext return_dec() {
  1283. return getRuleContext(Return_decContext.class,0);
  1284. }
  1285. public Receive_typeContext receive_type() {
  1286. return getRuleContext(Receive_typeContext.class,0);
  1287. }
  1288. public Def_functionContext(ParserRuleContext parent, int invokingState) {
  1289. super(parent, invokingState);
  1290. }
  1291. @Override public int getRuleIndex() { return RULE_def_function; }
  1292. @Override
  1293. public void enterRule(ParseTreeListener listener) {
  1294. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_function(this);
  1295. }
  1296. @Override
  1297. public void exitRule(ParseTreeListener listener) {
  1298. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_function(this);
  1299. }
  1300. @Override
  1301. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1302. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_function(this);
  1303. else return visitor.visitChildren(this);
  1304. }
  1305. }
  1306. public final Def_functionContext def_function() throws RecognitionException {
  1307. Def_functionContext _localctx = new Def_functionContext(_ctx, getState());
  1308. enterRule(_localctx, 36, RULE_def_function);
  1309. int _la;
  1310. try {
  1311. enterOuterAlt(_localctx, 1);
  1312. {
  1313. setState(308); match(R_FUNCTION);
  1314. setState(310);
  1315. switch ( getInterpreter().adaptivePredict(_input,21,_ctx) ) {
  1316. case 1:
  1317. {
  1318. setState(309); receive_type();
  1319. }
  1320. break;
  1321. }
  1322. setState(313);
  1323. _la = _input.LA(1);
  1324. if (_la==ID) {
  1325. {
  1326. setState(312); ((Def_functionContext)_localctx).name = match(ID);
  1327. }
  1328. }
  1329. setState(315); arguments();
  1330. setState(317);
  1331. _la = _input.LA(1);
  1332. if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_MAP) | (1L << R_ERROR) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING) | (1L << R_CHA_E))) != 0) || _la==R_OP_AST || _la==ID) {
  1333. {
  1334. setState(316); return_dec();
  1335. }
  1336. }
  1337. setState(319); def_block();
  1338. }
  1339. }
  1340. catch (RecognitionException re) {
  1341. _localctx.exception = re;
  1342. _errHandler.reportError(this, re);
  1343. _errHandler.recover(this, re);
  1344. }
  1345. finally {
  1346. exitRule();
  1347. }
  1348. return _localctx;
  1349. }
  1350. public static class Return_decContext extends ParserRuleContext {
  1351. public List<TerminalNode> R_VIRGULA() { return getTokens(IvannosysGrammarParser.R_VIRGULA); }
  1352. public TerminalNode R_VIRGULA(int i) {
  1353. return getToken(IvannosysGrammarParser.R_VIRGULA, i);
  1354. }
  1355. public TypeContext type(int i) {
  1356. return getRuleContext(TypeContext.class,i);
  1357. }
  1358. public List<TypeContext> type() {
  1359. return getRuleContexts(TypeContext.class);
  1360. }
  1361. public Return_decContext(ParserRuleContext parent, int invokingState) {
  1362. super(parent, invokingState);
  1363. }
  1364. @Override public int getRuleIndex() { return RULE_return_dec; }
  1365. @Override
  1366. public void enterRule(ParseTreeListener listener) {
  1367. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterReturn_dec(this);
  1368. }
  1369. @Override
  1370. public void exitRule(ParseTreeListener listener) {
  1371. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitReturn_dec(this);
  1372. }
  1373. @Override
  1374. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1375. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitReturn_dec(this);
  1376. else return visitor.visitChildren(this);
  1377. }
  1378. }
  1379. public final Return_decContext return_dec() throws RecognitionException {
  1380. Return_decContext _localctx = new Return_decContext(_ctx, getState());
  1381. enterRule(_localctx, 38, RULE_return_dec);
  1382. int _la;
  1383. try {
  1384. enterOuterAlt(_localctx, 1);
  1385. {
  1386. setState(321); type();
  1387. setState(326);
  1388. _errHandler.sync(this);
  1389. _la = _input.LA(1);
  1390. while (_la==R_VIRGULA) {
  1391. {
  1392. {
  1393. setState(322); match(R_VIRGULA);
  1394. setState(323); type();
  1395. }
  1396. }
  1397. setState(328);
  1398. _errHandler.sync(this);
  1399. _la = _input.LA(1);
  1400. }
  1401. }
  1402. }
  1403. catch (RecognitionException re) {
  1404. _localctx.exception = re;
  1405. _errHandler.reportError(this, re);
  1406. _errHandler.recover(this, re);
  1407. }
  1408. finally {
  1409. exitRule();
  1410. }
  1411. return _localctx;
  1412. }
  1413. public static class Receive_typeContext extends ParserRuleContext {
  1414. public TerminalNode R_OP_AST() { return getToken(IvannosysGrammarParser.R_OP_AST, 0); }
  1415. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  1416. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  1417. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  1418. public TypeContext type() {
  1419. return getRuleContext(TypeContext.class,0);
  1420. }
  1421. public Receive_typeContext(ParserRuleContext parent, int invokingState) {
  1422. super(parent, invokingState);
  1423. }
  1424. @Override public int getRuleIndex() { return RULE_receive_type; }
  1425. @Override
  1426. public void enterRule(ParseTreeListener listener) {
  1427. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterReceive_type(this);
  1428. }
  1429. @Override
  1430. public void exitRule(ParseTreeListener listener) {
  1431. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitReceive_type(this);
  1432. }
  1433. @Override
  1434. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1435. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitReceive_type(this);
  1436. else return visitor.visitChildren(this);
  1437. }
  1438. }
  1439. public final Receive_typeContext receive_type() throws RecognitionException {
  1440. Receive_typeContext _localctx = new Receive_typeContext(_ctx, getState());
  1441. enterRule(_localctx, 40, RULE_receive_type);
  1442. try {
  1443. enterOuterAlt(_localctx, 1);
  1444. {
  1445. setState(329); match(R_PAR_E);
  1446. setState(330); match(ID);
  1447. setState(332);
  1448. switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) {
  1449. case 1:
  1450. {
  1451. setState(331); match(R_OP_AST);
  1452. }
  1453. break;
  1454. }
  1455. setState(334); type();
  1456. setState(335); match(R_PAR_D);
  1457. }
  1458. }
  1459. catch (RecognitionException re) {
  1460. _localctx.exception = re;
  1461. _errHandler.reportError(this, re);
  1462. _errHandler.recover(this, re);
  1463. }
  1464. finally {
  1465. exitRule();
  1466. }
  1467. return _localctx;
  1468. }
  1469. public static class Def_switchContext extends ParserRuleContext {
  1470. public TerminalNode R_COL_E() { return getToken(IvannosysGrammarParser.R_COL_E, 0); }
  1471. public TerminalNode R_SWITCH() { return getToken(IvannosysGrammarParser.R_SWITCH, 0); }
  1472. public Def_caseContext def_case(int i) {
  1473. return getRuleContext(Def_caseContext.class,i);
  1474. }
  1475. public List<Def_caseContext> def_case() {
  1476. return getRuleContexts(Def_caseContext.class);
  1477. }
  1478. public TestContext test() {
  1479. return getRuleContext(TestContext.class,0);
  1480. }
  1481. public TerminalNode R_COL_D() { return getToken(IvannosysGrammarParser.R_COL_D, 0); }
  1482. public Def_switchContext(ParserRuleContext parent, int invokingState) {
  1483. super(parent, invokingState);
  1484. }
  1485. @Override public int getRuleIndex() { return RULE_def_switch; }
  1486. @Override
  1487. public void enterRule(ParseTreeListener listener) {
  1488. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_switch(this);
  1489. }
  1490. @Override
  1491. public void exitRule(ParseTreeListener listener) {
  1492. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_switch(this);
  1493. }
  1494. @Override
  1495. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1496. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_switch(this);
  1497. else return visitor.visitChildren(this);
  1498. }
  1499. }
  1500. public final Def_switchContext def_switch() throws RecognitionException {
  1501. Def_switchContext _localctx = new Def_switchContext(_ctx, getState());
  1502. enterRule(_localctx, 42, RULE_def_switch);
  1503. int _la;
  1504. try {
  1505. enterOuterAlt(_localctx, 1);
  1506. {
  1507. setState(337); match(R_SWITCH);
  1508. setState(338); test();
  1509. setState(339); match(R_COL_E);
  1510. setState(341);
  1511. _errHandler.sync(this);
  1512. _la = _input.LA(1);
  1513. do {
  1514. {
  1515. {
  1516. setState(340); def_case();
  1517. }
  1518. }
  1519. setState(343);
  1520. _errHandler.sync(this);
  1521. _la = _input.LA(1);
  1522. } while ( _la==R_DEFAULT || _la==R_CASE );
  1523. setState(345); match(R_COL_D);
  1524. }
  1525. }
  1526. catch (RecognitionException re) {
  1527. _localctx.exception = re;
  1528. _errHandler.reportError(this, re);
  1529. _errHandler.recover(this, re);
  1530. }
  1531. finally {
  1532. exitRule();
  1533. }
  1534. return _localctx;
  1535. }
  1536. public static class Def_caseContext extends ParserRuleContext {
  1537. public TerminalNode R_CASE() { return getToken(IvannosysGrammarParser.R_CASE, 0); }
  1538. public TerminalNode R_COLON() { return getToken(IvannosysGrammarParser.R_COLON, 0); }
  1539. public TerminalNode R_BREAK() { return getToken(IvannosysGrammarParser.R_BREAK, 0); }
  1540. public Expression_listContext expression_list() {
  1541. return getRuleContext(Expression_listContext.class,0);
  1542. }
  1543. public Statement_listContext statement_list() {
  1544. return getRuleContext(Statement_listContext.class,0);
  1545. }
  1546. public TerminalNode R_DEFAULT() { return getToken(IvannosysGrammarParser.R_DEFAULT, 0); }
  1547. public Def_caseContext(ParserRuleContext parent, int invokingState) {
  1548. super(parent, invokingState);
  1549. }
  1550. @Override public int getRuleIndex() { return RULE_def_case; }
  1551. @Override
  1552. public void enterRule(ParseTreeListener listener) {
  1553. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_case(this);
  1554. }
  1555. @Override
  1556. public void exitRule(ParseTreeListener listener) {
  1557. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_case(this);
  1558. }
  1559. @Override
  1560. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1561. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_case(this);
  1562. else return visitor.visitChildren(this);
  1563. }
  1564. }
  1565. public final Def_caseContext def_case() throws RecognitionException {
  1566. Def_caseContext _localctx = new Def_caseContext(_ctx, getState());
  1567. enterRule(_localctx, 44, RULE_def_case);
  1568. int _la;
  1569. try {
  1570. setState(357);
  1571. switch (_input.LA(1)) {
  1572. case R_CASE:
  1573. enterOuterAlt(_localctx, 1);
  1574. {
  1575. setState(347); match(R_CASE);
  1576. setState(348); expression_list();
  1577. setState(349); match(R_COLON);
  1578. setState(350); statement_list();
  1579. setState(352);
  1580. _la = _input.LA(1);
  1581. if (_la==R_BREAK) {
  1582. {
  1583. setState(351); match(R_BREAK);
  1584. }
  1585. }
  1586. }
  1587. break;
  1588. case R_DEFAULT:
  1589. enterOuterAlt(_localctx, 2);
  1590. {
  1591. setState(354); match(R_DEFAULT);
  1592. setState(355); match(R_COLON);
  1593. setState(356); statement_list();
  1594. }
  1595. break;
  1596. default:
  1597. throw new NoViableAltException(this);
  1598. }
  1599. }
  1600. catch (RecognitionException re) {
  1601. _localctx.exception = re;
  1602. _errHandler.reportError(this, re);
  1603. _errHandler.recover(this, re);
  1604. }
  1605. finally {
  1606. exitRule();
  1607. }
  1608. return _localctx;
  1609. }
  1610. public static class Statement_listContext extends ParserRuleContext {
  1611. public List<StatementContext> statement() {
  1612. return getRuleContexts(StatementContext.class);
  1613. }
  1614. public StatementContext statement(int i) {
  1615. return getRuleContext(StatementContext.class,i);
  1616. }
  1617. public Statement_listContext(ParserRuleContext parent, int invokingState) {
  1618. super(parent, invokingState);
  1619. }
  1620. @Override public int getRuleIndex() { return RULE_statement_list; }
  1621. @Override
  1622. public void enterRule(ParseTreeListener listener) {
  1623. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterStatement_list(this);
  1624. }
  1625. @Override
  1626. public void exitRule(ParseTreeListener listener) {
  1627. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitStatement_list(this);
  1628. }
  1629. @Override
  1630. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1631. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitStatement_list(this);
  1632. else return visitor.visitChildren(this);
  1633. }
  1634. }
  1635. public final Statement_listContext statement_list() throws RecognitionException {
  1636. Statement_listContext _localctx = new Statement_listContext(_ctx, getState());
  1637. enterRule(_localctx, 46, RULE_statement_list);
  1638. try {
  1639. int _alt;
  1640. enterOuterAlt(_localctx, 1);
  1641. {
  1642. setState(360);
  1643. _errHandler.sync(this);
  1644. _alt = 1;
  1645. do {
  1646. switch (_alt) {
  1647. case 1:
  1648. {
  1649. {
  1650. setState(359); statement();
  1651. }
  1652. }
  1653. break;
  1654. default:
  1655. throw new NoViableAltException(this);
  1656. }
  1657. setState(362);
  1658. _errHandler.sync(this);
  1659. _alt = getInterpreter().adaptivePredict(_input,29,_ctx);
  1660. } while ( _alt!=2 && _alt!=ATN.INVALID_ALT_NUMBER );
  1661. }
  1662. }
  1663. catch (RecognitionException re) {
  1664. _localctx.exception = re;
  1665. _errHandler.reportError(this, re);
  1666. _errHandler.recover(this, re);
  1667. }
  1668. finally {
  1669. exitRule();
  1670. }
  1671. return _localctx;
  1672. }
  1673. public static class Primitive_valueContext extends ParserRuleContext {
  1674. public TerminalNode T_BOOL_FALSE() { return getToken(IvannosysGrammarParser.T_BOOL_FALSE, 0); }
  1675. public TerminalNode T_INTEIRO() { return getToken(IvannosysGrammarParser.T_INTEIRO, 0); }
  1676. public TerminalNode T_CHAR() { return getToken(IvannosysGrammarParser.T_CHAR, 0); }
  1677. public TerminalNode T_BOOL_TRUE() { return getToken(IvannosysGrammarParser.T_BOOL_TRUE, 0); }
  1678. public Primitive_valueContext(ParserRuleContext parent, int invokingState) {
  1679. super(parent, invokingState);
  1680. }
  1681. @Override public int getRuleIndex() { return RULE_primitive_value; }
  1682. @Override
  1683. public void enterRule(ParseTreeListener listener) {
  1684. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterPrimitive_value(this);
  1685. }
  1686. @Override
  1687. public void exitRule(ParseTreeListener listener) {
  1688. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitPrimitive_value(this);
  1689. }
  1690. @Override
  1691. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1692. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitPrimitive_value(this);
  1693. else return visitor.visitChildren(this);
  1694. }
  1695. }
  1696. public final Primitive_valueContext primitive_value() throws RecognitionException {
  1697. Primitive_valueContext _localctx = new Primitive_valueContext(_ctx, getState());
  1698. enterRule(_localctx, 48, RULE_primitive_value);
  1699. int _la;
  1700. try {
  1701. setState(367);
  1702. switch (_input.LA(1)) {
  1703. case T_INTEIRO:
  1704. enterOuterAlt(_localctx, 1);
  1705. {
  1706. setState(364); match(T_INTEIRO);
  1707. }
  1708. break;
  1709. case T_BOOL_TRUE:
  1710. case T_BOOL_FALSE:
  1711. enterOuterAlt(_localctx, 2);
  1712. {
  1713. setState(365);
  1714. _la = _input.LA(1);
  1715. if ( !(_la==T_BOOL_TRUE || _la==T_BOOL_FALSE) ) {
  1716. _errHandler.recoverInline(this);
  1717. }
  1718. consume();
  1719. }
  1720. break;
  1721. case T_CHAR:
  1722. enterOuterAlt(_localctx, 3);
  1723. {
  1724. setState(366); match(T_CHAR);
  1725. }
  1726. break;
  1727. default:
  1728. throw new NoViableAltException(this);
  1729. }
  1730. }
  1731. catch (RecognitionException re) {
  1732. _localctx.exception = re;
  1733. _errHandler.reportError(this, re);
  1734. _errHandler.recover(this, re);
  1735. }
  1736. finally {
  1737. exitRule();
  1738. }
  1739. return _localctx;
  1740. }
  1741. public static class Def_ifContext extends ParserRuleContext {
  1742. public int ltipo;
  1743. public List<TerminalNode> R_ELSE() { return getTokens(IvannosysGrammarParser.R_ELSE); }
  1744. public Def_blockContext def_block() {
  1745. return getRuleContext(Def_blockContext.class,0);
  1746. }
  1747. public TerminalNode R_ELSE(int i) {
  1748. return getToken(IvannosysGrammarParser.R_ELSE, i);
  1749. }
  1750. public List<Def_if_blockContext> def_if_block() {
  1751. return getRuleContexts(Def_if_blockContext.class);
  1752. }
  1753. public Def_if_blockContext def_if_block(int i) {
  1754. return getRuleContext(Def_if_blockContext.class,i);
  1755. }
  1756. public Def_ifContext(ParserRuleContext parent, int invokingState) {
  1757. super(parent, invokingState);
  1758. }
  1759. @Override public int getRuleIndex() { return RULE_def_if; }
  1760. @Override
  1761. public void enterRule(ParseTreeListener listener) {
  1762. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_if(this);
  1763. }
  1764. @Override
  1765. public void exitRule(ParseTreeListener listener) {
  1766. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_if(this);
  1767. }
  1768. @Override
  1769. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1770. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_if(this);
  1771. else return visitor.visitChildren(this);
  1772. }
  1773. }
  1774. public final Def_ifContext def_if() throws RecognitionException {
  1775. Def_ifContext _localctx = new Def_ifContext(_ctx, getState());
  1776. enterRule(_localctx, 50, RULE_def_if);
  1777. int _la;
  1778. try {
  1779. int _alt;
  1780. enterOuterAlt(_localctx, 1);
  1781. {
  1782. setState(369); def_if_block();
  1783. setState(374);
  1784. _errHandler.sync(this);
  1785. _alt = getInterpreter().adaptivePredict(_input,31,_ctx);
  1786. while ( _alt!=2 && _alt!=ATN.INVALID_ALT_NUMBER ) {
  1787. if ( _alt==1 ) {
  1788. {
  1789. {
  1790. setState(370); match(R_ELSE);
  1791. setState(371); def_if_block();
  1792. }
  1793. }
  1794. }
  1795. setState(376);
  1796. _errHandler.sync(this);
  1797. _alt = getInterpreter().adaptivePredict(_input,31,_ctx);
  1798. }
  1799. setState(379);
  1800. _la = _input.LA(1);
  1801. if (_la==R_ELSE) {
  1802. {
  1803. setState(377); match(R_ELSE);
  1804. setState(378); def_block();
  1805. }
  1806. }
  1807. }
  1808. }
  1809. catch (RecognitionException re) {
  1810. _localctx.exception = re;
  1811. _errHandler.reportError(this, re);
  1812. _errHandler.recover(this, re);
  1813. }
  1814. finally {
  1815. exitRule();
  1816. }
  1817. return _localctx;
  1818. }
  1819. public static class Def_if_blockContext extends ParserRuleContext {
  1820. public Def_blockContext def_block() {
  1821. return getRuleContext(Def_blockContext.class,0);
  1822. }
  1823. public TestContext test() {
  1824. return getRuleContext(TestContext.class,0);
  1825. }
  1826. public TerminalNode R_IF() { return getToken(IvannosysGrammarParser.R_IF, 0); }
  1827. public Def_if_blockContext(ParserRuleContext parent, int invokingState) {
  1828. super(parent, invokingState);
  1829. }
  1830. @Override public int getRuleIndex() { return RULE_def_if_block; }
  1831. @Override
  1832. public void enterRule(ParseTreeListener listener) {
  1833. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_if_block(this);
  1834. }
  1835. @Override
  1836. public void exitRule(ParseTreeListener listener) {
  1837. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_if_block(this);
  1838. }
  1839. @Override
  1840. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1841. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_if_block(this);
  1842. else return visitor.visitChildren(this);
  1843. }
  1844. }
  1845. public final Def_if_blockContext def_if_block() throws RecognitionException {
  1846. Def_if_blockContext _localctx = new Def_if_blockContext(_ctx, getState());
  1847. enterRule(_localctx, 52, RULE_def_if_block);
  1848. try {
  1849. enterOuterAlt(_localctx, 1);
  1850. {
  1851. setState(381); match(R_IF);
  1852. setState(382); test();
  1853. setState(383); def_block();
  1854. }
  1855. }
  1856. catch (RecognitionException re) {
  1857. _localctx.exception = re;
  1858. _errHandler.reportError(this, re);
  1859. _errHandler.recover(this, re);
  1860. }
  1861. finally {
  1862. exitRule();
  1863. }
  1864. return _localctx;
  1865. }
  1866. public static class Def_forContext extends ParserRuleContext {
  1867. public TerminalNode R_FOR() { return getToken(IvannosysGrammarParser.R_FOR, 0); }
  1868. public For_clauseContext for_clause() {
  1869. return getRuleContext(For_clauseContext.class,0);
  1870. }
  1871. public TestContext test() {
  1872. return getRuleContext(TestContext.class,0);
  1873. }
  1874. public Def_blockContext def_block() {
  1875. return getRuleContext(Def_blockContext.class,0);
  1876. }
  1877. public For_eachContext for_each() {
  1878. return getRuleContext(For_eachContext.class,0);
  1879. }
  1880. public Def_forContext(ParserRuleContext parent, int invokingState) {
  1881. super(parent, invokingState);
  1882. }
  1883. @Override public int getRuleIndex() { return RULE_def_for; }
  1884. @Override
  1885. public void enterRule(ParseTreeListener listener) {
  1886. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_for(this);
  1887. }
  1888. @Override
  1889. public void exitRule(ParseTreeListener listener) {
  1890. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_for(this);
  1891. }
  1892. @Override
  1893. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1894. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_for(this);
  1895. else return visitor.visitChildren(this);
  1896. }
  1897. }
  1898. public final Def_forContext def_for() throws RecognitionException {
  1899. Def_forContext _localctx = new Def_forContext(_ctx, getState());
  1900. enterRule(_localctx, 54, RULE_def_for);
  1901. try {
  1902. enterOuterAlt(_localctx, 1);
  1903. {
  1904. setState(385); match(R_FOR);
  1905. setState(389);
  1906. switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) {
  1907. case 1:
  1908. {
  1909. setState(386); for_clause();
  1910. }
  1911. break;
  1912. case 2:
  1913. {
  1914. setState(387); for_each();
  1915. }
  1916. break;
  1917. case 3:
  1918. {
  1919. setState(388); test();
  1920. }
  1921. break;
  1922. }
  1923. setState(391); def_block();
  1924. }
  1925. }
  1926. catch (RecognitionException re) {
  1927. _localctx.exception = re;
  1928. _errHandler.reportError(this, re);
  1929. _errHandler.recover(this, re);
  1930. }
  1931. finally {
  1932. exitRule();
  1933. }
  1934. return _localctx;
  1935. }
  1936. public static class For_clauseContext extends ParserRuleContext {
  1937. public TestContext test() {
  1938. return getRuleContext(TestContext.class,0);
  1939. }
  1940. public IncrementContext increment() {
  1941. return getRuleContext(IncrementContext.class,0);
  1942. }
  1943. public List<TerminalNode> R_PT_VIRG() { return getTokens(IvannosysGrammarParser.R_PT_VIRG); }
  1944. public InitializationContext initialization() {
  1945. return getRuleContext(InitializationContext.class,0);
  1946. }
  1947. public TerminalNode R_PT_VIRG(int i) {
  1948. return getToken(IvannosysGrammarParser.R_PT_VIRG, i);
  1949. }
  1950. public For_clauseContext(ParserRuleContext parent, int invokingState) {
  1951. super(parent, invokingState);
  1952. }
  1953. @Override public int getRuleIndex() { return RULE_for_clause; }
  1954. @Override
  1955. public void enterRule(ParseTreeListener listener) {
  1956. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFor_clause(this);
  1957. }
  1958. @Override
  1959. public void exitRule(ParseTreeListener listener) {
  1960. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFor_clause(this);
  1961. }
  1962. @Override
  1963. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  1964. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFor_clause(this);
  1965. else return visitor.visitChildren(this);
  1966. }
  1967. }
  1968. public final For_clauseContext for_clause() throws RecognitionException {
  1969. For_clauseContext _localctx = new For_clauseContext(_ctx, getState());
  1970. enterRule(_localctx, 56, RULE_for_clause);
  1971. int _la;
  1972. try {
  1973. enterOuterAlt(_localctx, 1);
  1974. {
  1975. setState(396);
  1976. switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) {
  1977. case 1:
  1978. {
  1979. setState(393); initialization();
  1980. setState(394); match(R_PT_VIRG);
  1981. }
  1982. break;
  1983. }
  1984. setState(398); test();
  1985. setState(401);
  1986. _la = _input.LA(1);
  1987. if (_la==R_PT_VIRG) {
  1988. {
  1989. setState(399); match(R_PT_VIRG);
  1990. setState(400); increment();
  1991. }
  1992. }
  1993. }
  1994. }
  1995. catch (RecognitionException re) {
  1996. _localctx.exception = re;
  1997. _errHandler.reportError(this, re);
  1998. _errHandler.recover(this, re);
  1999. }
  2000. finally {
  2001. exitRule();
  2002. }
  2003. return _localctx;
  2004. }
  2005. public static class InitializationContext extends ParserRuleContext {
  2006. public Base_stmtContext base_stmt() {
  2007. return getRuleContext(Base_stmtContext.class,0);
  2008. }
  2009. public InitializationContext(ParserRuleContext parent, int invokingState) {
  2010. super(parent, invokingState);
  2011. }
  2012. @Override public int getRuleIndex() { return RULE_initialization; }
  2013. @Override
  2014. public void enterRule(ParseTreeListener listener) {
  2015. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterInitialization(this);
  2016. }
  2017. @Override
  2018. public void exitRule(ParseTreeListener listener) {
  2019. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitInitialization(this);
  2020. }
  2021. @Override
  2022. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2023. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitInitialization(this);
  2024. else return visitor.visitChildren(this);
  2025. }
  2026. }
  2027. public final InitializationContext initialization() throws RecognitionException {
  2028. InitializationContext _localctx = new InitializationContext(_ctx, getState());
  2029. enterRule(_localctx, 58, RULE_initialization);
  2030. try {
  2031. enterOuterAlt(_localctx, 1);
  2032. {
  2033. setState(403); base_stmt();
  2034. }
  2035. }
  2036. catch (RecognitionException re) {
  2037. _localctx.exception = re;
  2038. _errHandler.reportError(this, re);
  2039. _errHandler.recover(this, re);
  2040. }
  2041. finally {
  2042. exitRule();
  2043. }
  2044. return _localctx;
  2045. }
  2046. public static class Empty_blockContext extends ParserRuleContext {
  2047. public TerminalNode R_COL_E() { return getToken(IvannosysGrammarParser.R_COL_E, 0); }
  2048. public TerminalNode R_COL_D() { return getToken(IvannosysGrammarParser.R_COL_D, 0); }
  2049. public Empty_blockContext(ParserRuleContext parent, int invokingState) {
  2050. super(parent, invokingState);
  2051. }
  2052. @Override public int getRuleIndex() { return RULE_empty_block; }
  2053. @Override
  2054. public void enterRule(ParseTreeListener listener) {
  2055. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterEmpty_block(this);
  2056. }
  2057. @Override
  2058. public void exitRule(ParseTreeListener listener) {
  2059. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitEmpty_block(this);
  2060. }
  2061. @Override
  2062. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2063. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitEmpty_block(this);
  2064. else return visitor.visitChildren(this);
  2065. }
  2066. }
  2067. public final Empty_blockContext empty_block() throws RecognitionException {
  2068. Empty_blockContext _localctx = new Empty_blockContext(_ctx, getState());
  2069. enterRule(_localctx, 60, RULE_empty_block);
  2070. try {
  2071. enterOuterAlt(_localctx, 1);
  2072. {
  2073. setState(405); match(R_COL_E);
  2074. setState(406); match(R_COL_D);
  2075. }
  2076. }
  2077. catch (RecognitionException re) {
  2078. _localctx.exception = re;
  2079. _errHandler.reportError(this, re);
  2080. _errHandler.recover(this, re);
  2081. }
  2082. finally {
  2083. exitRule();
  2084. }
  2085. return _localctx;
  2086. }
  2087. public static class TestContext extends ParserRuleContext {
  2088. public Base_stmtContext base_stmt() {
  2089. return getRuleContext(Base_stmtContext.class,0);
  2090. }
  2091. public ExpressionContext expression() {
  2092. return getRuleContext(ExpressionContext.class,0);
  2093. }
  2094. public TerminalNode R_PT_VIRG() { return getToken(IvannosysGrammarParser.R_PT_VIRG, 0); }
  2095. public TestContext(ParserRuleContext parent, int invokingState) {
  2096. super(parent, invokingState);
  2097. }
  2098. @Override public int getRuleIndex() { return RULE_test; }
  2099. @Override
  2100. public void enterRule(ParseTreeListener listener) {
  2101. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterTest(this);
  2102. }
  2103. @Override
  2104. public void exitRule(ParseTreeListener listener) {
  2105. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitTest(this);
  2106. }
  2107. @Override
  2108. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2109. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitTest(this);
  2110. else return visitor.visitChildren(this);
  2111. }
  2112. }
  2113. public final TestContext test() throws RecognitionException {
  2114. TestContext _localctx = new TestContext(_ctx, getState());
  2115. enterRule(_localctx, 62, RULE_test);
  2116. try {
  2117. setState(414);
  2118. switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) {
  2119. case 1:
  2120. enterOuterAlt(_localctx, 1);
  2121. {
  2122. setState(408); expression(0);
  2123. }
  2124. break;
  2125. case 2:
  2126. enterOuterAlt(_localctx, 2);
  2127. {
  2128. setState(409); base_stmt();
  2129. setState(412);
  2130. switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) {
  2131. case 1:
  2132. {
  2133. setState(410); match(R_PT_VIRG);
  2134. setState(411); expression(0);
  2135. }
  2136. break;
  2137. }
  2138. }
  2139. break;
  2140. }
  2141. }
  2142. catch (RecognitionException re) {
  2143. _localctx.exception = re;
  2144. _errHandler.reportError(this, re);
  2145. _errHandler.recover(this, re);
  2146. }
  2147. finally {
  2148. exitRule();
  2149. }
  2150. return _localctx;
  2151. }
  2152. public static class IncrementContext extends ParserRuleContext {
  2153. public Base_stmtContext base_stmt() {
  2154. return getRuleContext(Base_stmtContext.class,0);
  2155. }
  2156. public IncrementContext(ParserRuleContext parent, int invokingState) {
  2157. super(parent, invokingState);
  2158. }
  2159. @Override public int getRuleIndex() { return RULE_increment; }
  2160. @Override
  2161. public void enterRule(ParseTreeListener listener) {
  2162. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterIncrement(this);
  2163. }
  2164. @Override
  2165. public void exitRule(ParseTreeListener listener) {
  2166. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitIncrement(this);
  2167. }
  2168. @Override
  2169. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2170. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitIncrement(this);
  2171. else return visitor.visitChildren(this);
  2172. }
  2173. }
  2174. public final IncrementContext increment() throws RecognitionException {
  2175. IncrementContext _localctx = new IncrementContext(_ctx, getState());
  2176. enterRule(_localctx, 64, RULE_increment);
  2177. try {
  2178. enterOuterAlt(_localctx, 1);
  2179. {
  2180. setState(416); base_stmt();
  2181. }
  2182. }
  2183. catch (RecognitionException re) {
  2184. _localctx.exception = re;
  2185. _errHandler.reportError(this, re);
  2186. _errHandler.recover(this, re);
  2187. }
  2188. finally {
  2189. exitRule();
  2190. }
  2191. return _localctx;
  2192. }
  2193. public static class For_eachContext extends ParserRuleContext {
  2194. public List<Primary_exprContext> primary_expr() {
  2195. return getRuleContexts(Primary_exprContext.class);
  2196. }
  2197. public TerminalNode R_VIRGULA() { return getToken(IvannosysGrammarParser.R_VIRGULA, 0); }
  2198. public TerminalNode R_SHORT_VAR() { return getToken(IvannosysGrammarParser.R_SHORT_VAR, 0); }
  2199. public RangeContext range() {
  2200. return getRuleContext(RangeContext.class,0);
  2201. }
  2202. public Primary_exprContext primary_expr(int i) {
  2203. return getRuleContext(Primary_exprContext.class,i);
  2204. }
  2205. public TerminalNode R_RANGE() { return getToken(IvannosysGrammarParser.R_RANGE, 0); }
  2206. public TerminalNode R_EQ() { return getToken(IvannosysGrammarParser.R_EQ, 0); }
  2207. public For_eachContext(ParserRuleContext parent, int invokingState) {
  2208. super(parent, invokingState);
  2209. }
  2210. @Override public int getRuleIndex() { return RULE_for_each; }
  2211. @Override
  2212. public void enterRule(ParseTreeListener listener) {
  2213. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFor_each(this);
  2214. }
  2215. @Override
  2216. public void exitRule(ParseTreeListener listener) {
  2217. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFor_each(this);
  2218. }
  2219. @Override
  2220. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2221. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFor_each(this);
  2222. else return visitor.visitChildren(this);
  2223. }
  2224. }
  2225. public final For_eachContext for_each() throws RecognitionException {
  2226. For_eachContext _localctx = new For_eachContext(_ctx, getState());
  2227. enterRule(_localctx, 66, RULE_for_each);
  2228. int _la;
  2229. try {
  2230. enterOuterAlt(_localctx, 1);
  2231. {
  2232. setState(418); primary_expr(0);
  2233. setState(419); match(R_VIRGULA);
  2234. setState(420); primary_expr(0);
  2235. setState(421);
  2236. _la = _input.LA(1);
  2237. if ( !(_la==R_SHORT_VAR || _la==R_EQ) ) {
  2238. _errHandler.recoverInline(this);
  2239. }
  2240. consume();
  2241. setState(422); match(R_RANGE);
  2242. setState(423); range();
  2243. }
  2244. }
  2245. catch (RecognitionException re) {
  2246. _localctx.exception = re;
  2247. _errHandler.reportError(this, re);
  2248. _errHandler.recover(this, re);
  2249. }
  2250. finally {
  2251. exitRule();
  2252. }
  2253. return _localctx;
  2254. }
  2255. public static class RangeContext extends ParserRuleContext {
  2256. public ExpressionContext expression() {
  2257. return getRuleContext(ExpressionContext.class,0);
  2258. }
  2259. public RangeContext(ParserRuleContext parent, int invokingState) {
  2260. super(parent, invokingState);
  2261. }
  2262. @Override public int getRuleIndex() { return RULE_range; }
  2263. @Override
  2264. public void enterRule(ParseTreeListener listener) {
  2265. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterRange(this);
  2266. }
  2267. @Override
  2268. public void exitRule(ParseTreeListener listener) {
  2269. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitRange(this);
  2270. }
  2271. @Override
  2272. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2273. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitRange(this);
  2274. else return visitor.visitChildren(this);
  2275. }
  2276. }
  2277. public final RangeContext range() throws RecognitionException {
  2278. RangeContext _localctx = new RangeContext(_ctx, getState());
  2279. enterRule(_localctx, 68, RULE_range);
  2280. try {
  2281. enterOuterAlt(_localctx, 1);
  2282. {
  2283. setState(425); expression(0);
  2284. }
  2285. }
  2286. catch (RecognitionException re) {
  2287. _localctx.exception = re;
  2288. _errHandler.reportError(this, re);
  2289. _errHandler.recover(this, re);
  2290. }
  2291. finally {
  2292. exitRule();
  2293. }
  2294. return _localctx;
  2295. }
  2296. public static class Return_stmtContext extends ParserRuleContext {
  2297. public TerminalNode R_RETURN() { return getToken(IvannosysGrammarParser.R_RETURN, 0); }
  2298. public Expression_listContext expression_list() {
  2299. return getRuleContext(Expression_listContext.class,0);
  2300. }
  2301. public Return_stmtContext(ParserRuleContext parent, int invokingState) {
  2302. super(parent, invokingState);
  2303. }
  2304. @Override public int getRuleIndex() { return RULE_return_stmt; }
  2305. @Override
  2306. public void enterRule(ParseTreeListener listener) {
  2307. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterReturn_stmt(this);
  2308. }
  2309. @Override
  2310. public void exitRule(ParseTreeListener listener) {
  2311. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitReturn_stmt(this);
  2312. }
  2313. @Override
  2314. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2315. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitReturn_stmt(this);
  2316. else return visitor.visitChildren(this);
  2317. }
  2318. }
  2319. public final Return_stmtContext return_stmt() throws RecognitionException {
  2320. Return_stmtContext _localctx = new Return_stmtContext(_ctx, getState());
  2321. enterRule(_localctx, 70, RULE_return_stmt);
  2322. try {
  2323. enterOuterAlt(_localctx, 1);
  2324. {
  2325. setState(427); match(R_RETURN);
  2326. setState(429);
  2327. switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) {
  2328. case 1:
  2329. {
  2330. setState(428); expression_list();
  2331. }
  2332. break;
  2333. }
  2334. }
  2335. }
  2336. catch (RecognitionException re) {
  2337. _localctx.exception = re;
  2338. _errHandler.reportError(this, re);
  2339. _errHandler.recover(this, re);
  2340. }
  2341. finally {
  2342. exitRule();
  2343. }
  2344. return _localctx;
  2345. }
  2346. public static class Expression_listContext extends ParserRuleContext {
  2347. public ExpressionContext expression(int i) {
  2348. return getRuleContext(ExpressionContext.class,i);
  2349. }
  2350. public List<TerminalNode> R_VIRGULA() { return getTokens(IvannosysGrammarParser.R_VIRGULA); }
  2351. public TerminalNode R_VIRGULA(int i) {
  2352. return getToken(IvannosysGrammarParser.R_VIRGULA, i);
  2353. }
  2354. public List<ExpressionContext> expression() {
  2355. return getRuleContexts(ExpressionContext.class);
  2356. }
  2357. public Expression_listContext(ParserRuleContext parent, int invokingState) {
  2358. super(parent, invokingState);
  2359. }
  2360. @Override public int getRuleIndex() { return RULE_expression_list; }
  2361. @Override
  2362. public void enterRule(ParseTreeListener listener) {
  2363. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterExpression_list(this);
  2364. }
  2365. @Override
  2366. public void exitRule(ParseTreeListener listener) {
  2367. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitExpression_list(this);
  2368. }
  2369. @Override
  2370. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2371. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitExpression_list(this);
  2372. else return visitor.visitChildren(this);
  2373. }
  2374. }
  2375. public final Expression_listContext expression_list() throws RecognitionException {
  2376. Expression_listContext _localctx = new Expression_listContext(_ctx, getState());
  2377. enterRule(_localctx, 72, RULE_expression_list);
  2378. try {
  2379. int _alt;
  2380. enterOuterAlt(_localctx, 1);
  2381. {
  2382. setState(431); expression(0);
  2383. setState(436);
  2384. _errHandler.sync(this);
  2385. _alt = getInterpreter().adaptivePredict(_input,39,_ctx);
  2386. while ( _alt!=2 && _alt!=ATN.INVALID_ALT_NUMBER ) {
  2387. if ( _alt==1 ) {
  2388. {
  2389. {
  2390. setState(432); match(R_VIRGULA);
  2391. setState(433); expression(0);
  2392. }
  2393. }
  2394. }
  2395. setState(438);
  2396. _errHandler.sync(this);
  2397. _alt = getInterpreter().adaptivePredict(_input,39,_ctx);
  2398. }
  2399. }
  2400. }
  2401. catch (RecognitionException re) {
  2402. _localctx.exception = re;
  2403. _errHandler.reportError(this, re);
  2404. _errHandler.recover(this, re);
  2405. }
  2406. finally {
  2407. exitRule();
  2408. }
  2409. return _localctx;
  2410. }
  2411. public static class ExpressionContext extends ParserRuleContext {
  2412. public Token op;
  2413. public TerminalNode R_COMP_LTE() { return getToken(IvannosysGrammarParser.R_COMP_LTE, 0); }
  2414. public TerminalNode R_END() { return getToken(IvannosysGrammarParser.R_END, 0); }
  2415. public TerminalNode R_OP_SUB() { return getToken(IvannosysGrammarParser.R_OP_SUB, 0); }
  2416. public TerminalNode R_BIT_OR() { return getToken(IvannosysGrammarParser.R_BIT_OR, 0); }
  2417. public TerminalNode R_OP_AST() { return getToken(IvannosysGrammarParser.R_OP_AST, 0); }
  2418. public TerminalNode R_AND() { return getToken(IvannosysGrammarParser.R_AND, 0); }
  2419. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  2420. public TerminalNode R_SHIFT_RIGHT() { return getToken(IvannosysGrammarParser.R_SHIFT_RIGHT, 0); }
  2421. public TerminalNode R_COMP_EQ() { return getToken(IvannosysGrammarParser.R_COMP_EQ, 0); }
  2422. public TerminalNode R_BIT_AND() { return getToken(IvannosysGrammarParser.R_BIT_AND, 0); }
  2423. public List<ExpressionContext> expression() {
  2424. return getRuleContexts(ExpressionContext.class);
  2425. }
  2426. public Unary_exprContext unary_expr() {
  2427. return getRuleContext(Unary_exprContext.class,0);
  2428. }
  2429. public TerminalNode R_OP_MOD() { return getToken(IvannosysGrammarParser.R_OP_MOD, 0); }
  2430. public TerminalNode R_BIT_XOR() { return getToken(IvannosysGrammarParser.R_BIT_XOR, 0); }
  2431. public TerminalNode R_SHIFT_LEFT() { return getToken(IvannosysGrammarParser.R_SHIFT_LEFT, 0); }
  2432. public ExpressionContext expression(int i) {
  2433. return getRuleContext(ExpressionContext.class,i);
  2434. }
  2435. public TerminalNode R_COMP_GTE() { return getToken(IvannosysGrammarParser.R_COMP_GTE, 0); }
  2436. public TerminalNode R_COMP_DIFF() { return getToken(IvannosysGrammarParser.R_COMP_DIFF, 0); }
  2437. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  2438. public TerminalNode R_OP_DIV() { return getToken(IvannosysGrammarParser.R_OP_DIV, 0); }
  2439. public TerminalNode R_OP_ADD() { return getToken(IvannosysGrammarParser.R_OP_ADD, 0); }
  2440. public TerminalNode R_COMP_GT() { return getToken(IvannosysGrammarParser.R_COMP_GT, 0); }
  2441. public TerminalNode R_OR() { return getToken(IvannosysGrammarParser.R_OR, 0); }
  2442. public TerminalNode R_COMP_LT() { return getToken(IvannosysGrammarParser.R_COMP_LT, 0); }
  2443. public ExpressionContext(ParserRuleContext parent, int invokingState) {
  2444. super(parent, invokingState);
  2445. }
  2446. @Override public int getRuleIndex() { return RULE_expression; }
  2447. @Override
  2448. public void enterRule(ParseTreeListener listener) {
  2449. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterExpression(this);
  2450. }
  2451. @Override
  2452. public void exitRule(ParseTreeListener listener) {
  2453. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitExpression(this);
  2454. }
  2455. @Override
  2456. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2457. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitExpression(this);
  2458. else return visitor.visitChildren(this);
  2459. }
  2460. }
  2461. public final ExpressionContext expression() throws RecognitionException {
  2462. return expression(0);
  2463. }
  2464. private ExpressionContext expression(int _p) throws RecognitionException {
  2465. ParserRuleContext _parentctx = _ctx;
  2466. int _parentState = getState();
  2467. ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
  2468. ExpressionContext _prevctx = _localctx;
  2469. int _startState = 74;
  2470. enterRecursionRule(_localctx, 74, RULE_expression, _p);
  2471. int _la;
  2472. try {
  2473. int _alt;
  2474. enterOuterAlt(_localctx, 1);
  2475. {
  2476. setState(445);
  2477. switch (_input.LA(1)) {
  2478. case R_PAR_E:
  2479. {
  2480. setState(440); match(R_PAR_E);
  2481. setState(441); expression(0);
  2482. setState(442); match(R_PAR_D);
  2483. }
  2484. break;
  2485. case R_REFERENCE:
  2486. case R_STRUCT:
  2487. case R_ERROR:
  2488. case R_INT:
  2489. case R_CHAR:
  2490. case R_BOOL:
  2491. case R_STRING:
  2492. case R_FUNCTION:
  2493. case R_EXCLAMATION:
  2494. case R_CHA_E:
  2495. case R_OP_SUB:
  2496. case R_OP_AST:
  2497. case T_CHAR:
  2498. case T_BOOL_TRUE:
  2499. case T_BOOL_FALSE:
  2500. case ID:
  2501. case T_INTEIRO:
  2502. {
  2503. setState(444); unary_expr();
  2504. }
  2505. break;
  2506. default:
  2507. throw new NoViableAltException(this);
  2508. }
  2509. _ctx.stop = _input.LT(-1);
  2510. setState(464);
  2511. _errHandler.sync(this);
  2512. _alt = getInterpreter().adaptivePredict(_input,42,_ctx);
  2513. while ( _alt!=2 && _alt!=ATN.INVALID_ALT_NUMBER ) {
  2514. if ( _alt==1 ) {
  2515. if ( _parseListeners!=null ) triggerExitRuleEvent();
  2516. _prevctx = _localctx;
  2517. {
  2518. setState(462);
  2519. switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) {
  2520. case 1:
  2521. {
  2522. _localctx = new ExpressionContext(_parentctx, _parentState);
  2523. pushNewRecursionContext(_localctx, _startState, RULE_expression);
  2524. setState(447);
  2525. if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
  2526. setState(448);
  2527. ((ExpressionContext)_localctx).op = _input.LT(1);
  2528. _la = _input.LA(1);
  2529. if ( !(((((_la - 12)) & ~0x3f) == 0 && ((1L << (_la - 12)) & ((1L << (R_OP_MOD - 12)) | (1L << (R_END - 12)) | (1L << (R_OP_DIV - 12)) | (1L << (R_OP_ADD - 12)) | (1L << (R_OP_SUB - 12)) | (1L << (R_OP_AST - 12)))) != 0)) ) {
  2530. ((ExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  2531. }
  2532. consume();
  2533. setState(449); expression(6);
  2534. }
  2535. break;
  2536. case 2:
  2537. {
  2538. _localctx = new ExpressionContext(_parentctx, _parentState);
  2539. pushNewRecursionContext(_localctx, _startState, RULE_expression);
  2540. setState(450);
  2541. if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
  2542. setState(451);
  2543. ((ExpressionContext)_localctx).op = _input.LT(1);
  2544. _la = _input.LA(1);
  2545. if ( !(_la==R_SHIFT_LEFT || _la==R_SHIFT_RIGHT) ) {
  2546. ((ExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  2547. }
  2548. consume();
  2549. setState(452); expression(5);
  2550. }
  2551. break;
  2552. case 3:
  2553. {
  2554. _localctx = new ExpressionContext(_parentctx, _parentState);
  2555. pushNewRecursionContext(_localctx, _startState, RULE_expression);
  2556. setState(453);
  2557. if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
  2558. setState(454);
  2559. ((ExpressionContext)_localctx).op = _input.LT(1);
  2560. _la = _input.LA(1);
  2561. if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_BIT_AND) | (1L << R_BIT_XOR) | (1L << R_BIT_OR))) != 0)) ) {
  2562. ((ExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  2563. }
  2564. consume();
  2565. setState(455); expression(4);
  2566. }
  2567. break;
  2568. case 4:
  2569. {
  2570. _localctx = new ExpressionContext(_parentctx, _parentState);
  2571. pushNewRecursionContext(_localctx, _startState, RULE_expression);
  2572. setState(456);
  2573. if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
  2574. setState(457);
  2575. ((ExpressionContext)_localctx).op = _input.LT(1);
  2576. _la = _input.LA(1);
  2577. if ( !(((((_la - 60)) & ~0x3f) == 0 && ((1L << (_la - 60)) & ((1L << (R_COMP_EQ - 60)) | (1L << (R_COMP_DIFF - 60)) | (1L << (R_COMP_LTE - 60)) | (1L << (R_COMP_LT - 60)) | (1L << (R_COMP_GTE - 60)) | (1L << (R_COMP_GT - 60)))) != 0)) ) {
  2578. ((ExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  2579. }
  2580. consume();
  2581. setState(458); expression(3);
  2582. }
  2583. break;
  2584. case 5:
  2585. {
  2586. _localctx = new ExpressionContext(_parentctx, _parentState);
  2587. pushNewRecursionContext(_localctx, _startState, RULE_expression);
  2588. setState(459);
  2589. if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
  2590. setState(460);
  2591. ((ExpressionContext)_localctx).op = _input.LT(1);
  2592. _la = _input.LA(1);
  2593. if ( !(_la==R_AND || _la==R_OR) ) {
  2594. ((ExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  2595. }
  2596. consume();
  2597. setState(461); expression(2);
  2598. }
  2599. break;
  2600. }
  2601. }
  2602. }
  2603. setState(466);
  2604. _errHandler.sync(this);
  2605. _alt = getInterpreter().adaptivePredict(_input,42,_ctx);
  2606. }
  2607. }
  2608. }
  2609. catch (RecognitionException re) {
  2610. _localctx.exception = re;
  2611. _errHandler.reportError(this, re);
  2612. _errHandler.recover(this, re);
  2613. }
  2614. finally {
  2615. unrollRecursionContexts(_parentctx);
  2616. }
  2617. return _localctx;
  2618. }
  2619. public static class Unary_exprContext extends ParserRuleContext {
  2620. public Token op;
  2621. public TerminalNode R_EXCLAMATION() { return getToken(IvannosysGrammarParser.R_EXCLAMATION, 0); }
  2622. public TerminalNode R_OP_SUB() { return getToken(IvannosysGrammarParser.R_OP_SUB, 0); }
  2623. public TerminalNode R_OP_AST() { return getToken(IvannosysGrammarParser.R_OP_AST, 0); }
  2624. public Primary_exprContext primary_expr() {
  2625. return getRuleContext(Primary_exprContext.class,0);
  2626. }
  2627. public TerminalNode R_REFERENCE() { return getToken(IvannosysGrammarParser.R_REFERENCE, 0); }
  2628. public Unary_exprContext(ParserRuleContext parent, int invokingState) {
  2629. super(parent, invokingState);
  2630. }
  2631. @Override public int getRuleIndex() { return RULE_unary_expr; }
  2632. @Override
  2633. public void enterRule(ParseTreeListener listener) {
  2634. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterUnary_expr(this);
  2635. }
  2636. @Override
  2637. public void exitRule(ParseTreeListener listener) {
  2638. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitUnary_expr(this);
  2639. }
  2640. @Override
  2641. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2642. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitUnary_expr(this);
  2643. else return visitor.visitChildren(this);
  2644. }
  2645. }
  2646. public final Unary_exprContext unary_expr() throws RecognitionException {
  2647. Unary_exprContext _localctx = new Unary_exprContext(_ctx, getState());
  2648. enterRule(_localctx, 76, RULE_unary_expr);
  2649. int _la;
  2650. try {
  2651. setState(470);
  2652. switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) {
  2653. case 1:
  2654. enterOuterAlt(_localctx, 1);
  2655. {
  2656. setState(467);
  2657. ((Unary_exprContext)_localctx).op = _input.LT(1);
  2658. _la = _input.LA(1);
  2659. if ( !(((((_la - 8)) & ~0x3f) == 0 && ((1L << (_la - 8)) & ((1L << (R_REFERENCE - 8)) | (1L << (R_EXCLAMATION - 8)) | (1L << (R_OP_SUB - 8)) | (1L << (R_OP_AST - 8)))) != 0)) ) {
  2660. ((Unary_exprContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  2661. }
  2662. consume();
  2663. setState(468); primary_expr(0);
  2664. }
  2665. break;
  2666. case 2:
  2667. enterOuterAlt(_localctx, 2);
  2668. {
  2669. setState(469); primary_expr(0);
  2670. }
  2671. break;
  2672. }
  2673. }
  2674. catch (RecognitionException re) {
  2675. _localctx.exception = re;
  2676. _errHandler.reportError(this, re);
  2677. _errHandler.recover(this, re);
  2678. }
  2679. finally {
  2680. exitRule();
  2681. }
  2682. return _localctx;
  2683. }
  2684. public static class Primary_exprContext extends ParserRuleContext {
  2685. public String id;
  2686. public Primary_exprContext pe;
  2687. public Primary_exprContext pee;
  2688. public Primary_exprContext pea;
  2689. public OperandContext operand;
  2690. public Primary_exprContext primary_expr() {
  2691. return getRuleContext(Primary_exprContext.class,0);
  2692. }
  2693. public Expression_seletorContext expression_seletor() {
  2694. return getRuleContext(Expression_seletorContext.class,0);
  2695. }
  2696. public IndexContext index() {
  2697. return getRuleContext(IndexContext.class,0);
  2698. }
  2699. public ArgumentsContext arguments() {
  2700. return getRuleContext(ArgumentsContext.class,0);
  2701. }
  2702. public LiteralContext literal() {
  2703. return getRuleContext(LiteralContext.class,0);
  2704. }
  2705. public OperandContext operand() {
  2706. return getRuleContext(OperandContext.class,0);
  2707. }
  2708. public Primary_exprContext(ParserRuleContext parent, int invokingState) {
  2709. super(parent, invokingState);
  2710. }
  2711. @Override public int getRuleIndex() { return RULE_primary_expr; }
  2712. @Override
  2713. public void enterRule(ParseTreeListener listener) {
  2714. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterPrimary_expr(this);
  2715. }
  2716. @Override
  2717. public void exitRule(ParseTreeListener listener) {
  2718. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitPrimary_expr(this);
  2719. }
  2720. @Override
  2721. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2722. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitPrimary_expr(this);
  2723. else return visitor.visitChildren(this);
  2724. }
  2725. }
  2726. public final Primary_exprContext primary_expr() throws RecognitionException {
  2727. return primary_expr(0);
  2728. }
  2729. private Primary_exprContext primary_expr(int _p) throws RecognitionException {
  2730. ParserRuleContext _parentctx = _ctx;
  2731. int _parentState = getState();
  2732. Primary_exprContext _localctx = new Primary_exprContext(_ctx, _parentState);
  2733. Primary_exprContext _prevctx = _localctx;
  2734. int _startState = 78;
  2735. enterRecursionRule(_localctx, 78, RULE_primary_expr, _p);
  2736. try {
  2737. int _alt;
  2738. enterOuterAlt(_localctx, 1);
  2739. {
  2740. setState(477);
  2741. switch ( getInterpreter().adaptivePredict(_input,44,_ctx) ) {
  2742. case 1:
  2743. {
  2744. setState(473); ((Primary_exprContext)_localctx).operand = operand();
  2745. ((Primary_exprContext)_localctx).id = ((Primary_exprContext)_localctx).operand.Value;
  2746. }
  2747. break;
  2748. case 2:
  2749. {
  2750. setState(476); literal();
  2751. }
  2752. break;
  2753. }
  2754. _ctx.stop = _input.LT(-1);
  2755. setState(493);
  2756. _errHandler.sync(this);
  2757. _alt = getInterpreter().adaptivePredict(_input,46,_ctx);
  2758. while ( _alt!=2 && _alt!=ATN.INVALID_ALT_NUMBER ) {
  2759. if ( _alt==1 ) {
  2760. if ( _parseListeners!=null ) triggerExitRuleEvent();
  2761. _prevctx = _localctx;
  2762. {
  2763. setState(491);
  2764. switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
  2765. case 1:
  2766. {
  2767. _localctx = new Primary_exprContext(_parentctx, _parentState);
  2768. _localctx.pe = _prevctx;
  2769. pushNewRecursionContext(_localctx, _startState, RULE_primary_expr);
  2770. setState(479);
  2771. if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
  2772. setState(480); index();
  2773. ((Primary_exprContext)_localctx).id = ((Primary_exprContext)_localctx).pe.id;
  2774. }
  2775. break;
  2776. case 2:
  2777. {
  2778. _localctx = new Primary_exprContext(_parentctx, _parentState);
  2779. _localctx.pee = _prevctx;
  2780. pushNewRecursionContext(_localctx, _startState, RULE_primary_expr);
  2781. setState(483);
  2782. if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
  2783. setState(484); expression_seletor();
  2784. ((Primary_exprContext)_localctx).id = ((Primary_exprContext)_localctx).pee.id;
  2785. }
  2786. break;
  2787. case 3:
  2788. {
  2789. _localctx = new Primary_exprContext(_parentctx, _parentState);
  2790. _localctx.pea = _prevctx;
  2791. pushNewRecursionContext(_localctx, _startState, RULE_primary_expr);
  2792. setState(487);
  2793. if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
  2794. setState(488); arguments();
  2795. ((Primary_exprContext)_localctx).id = ((Primary_exprContext)_localctx).pea.id;
  2796. }
  2797. break;
  2798. }
  2799. }
  2800. }
  2801. setState(495);
  2802. _errHandler.sync(this);
  2803. _alt = getInterpreter().adaptivePredict(_input,46,_ctx);
  2804. }
  2805. }
  2806. }
  2807. catch (RecognitionException re) {
  2808. _localctx.exception = re;
  2809. _errHandler.reportError(this, re);
  2810. _errHandler.recover(this, re);
  2811. }
  2812. finally {
  2813. unrollRecursionContexts(_parentctx);
  2814. }
  2815. return _localctx;
  2816. }
  2817. public static class OperandContext extends ParserRuleContext {
  2818. public String Value;
  2819. public Token ID;
  2820. public Primitive_valueContext primitive_value;
  2821. public Primitive_valueContext primitive_value() {
  2822. return getRuleContext(Primitive_valueContext.class,0);
  2823. }
  2824. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  2825. public OperandContext(ParserRuleContext parent, int invokingState) {
  2826. super(parent, invokingState);
  2827. }
  2828. @Override public int getRuleIndex() { return RULE_operand; }
  2829. @Override
  2830. public void enterRule(ParseTreeListener listener) {
  2831. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterOperand(this);
  2832. }
  2833. @Override
  2834. public void exitRule(ParseTreeListener listener) {
  2835. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitOperand(this);
  2836. }
  2837. @Override
  2838. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2839. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitOperand(this);
  2840. else return visitor.visitChildren(this);
  2841. }
  2842. }
  2843. public final OperandContext operand() throws RecognitionException {
  2844. OperandContext _localctx = new OperandContext(_ctx, getState());
  2845. enterRule(_localctx, 80, RULE_operand);
  2846. try {
  2847. setState(501);
  2848. switch (_input.LA(1)) {
  2849. case ID:
  2850. enterOuterAlt(_localctx, 1);
  2851. {
  2852. setState(496); ((OperandContext)_localctx).ID = match(ID);
  2853. ((OperandContext)_localctx).Value = (((OperandContext)_localctx).ID!=null?((OperandContext)_localctx).ID.getText():null);
  2854. }
  2855. break;
  2856. case T_CHAR:
  2857. case T_BOOL_TRUE:
  2858. case T_BOOL_FALSE:
  2859. case T_INTEIRO:
  2860. enterOuterAlt(_localctx, 2);
  2861. {
  2862. setState(498); ((OperandContext)_localctx).primitive_value = primitive_value();
  2863. ((OperandContext)_localctx).Value = (((OperandContext)_localctx).primitive_value!=null?_input.getText(((OperandContext)_localctx).primitive_value.start,((OperandContext)_localctx).primitive_value.stop):null);
  2864. }
  2865. break;
  2866. default:
  2867. throw new NoViableAltException(this);
  2868. }
  2869. }
  2870. catch (RecognitionException re) {
  2871. _localctx.exception = re;
  2872. _errHandler.reportError(this, re);
  2873. _errHandler.recover(this, re);
  2874. }
  2875. finally {
  2876. exitRule();
  2877. }
  2878. return _localctx;
  2879. }
  2880. public static class LiteralContext extends ParserRuleContext {
  2881. public Func_literalContext func_literal() {
  2882. return getRuleContext(Func_literalContext.class,0);
  2883. }
  2884. public CompositeContext composite() {
  2885. return getRuleContext(CompositeContext.class,0);
  2886. }
  2887. public LiteralContext(ParserRuleContext parent, int invokingState) {
  2888. super(parent, invokingState);
  2889. }
  2890. @Override public int getRuleIndex() { return RULE_literal; }
  2891. @Override
  2892. public void enterRule(ParseTreeListener listener) {
  2893. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterLiteral(this);
  2894. }
  2895. @Override
  2896. public void exitRule(ParseTreeListener listener) {
  2897. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitLiteral(this);
  2898. }
  2899. @Override
  2900. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2901. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitLiteral(this);
  2902. else return visitor.visitChildren(this);
  2903. }
  2904. }
  2905. public final LiteralContext literal() throws RecognitionException {
  2906. LiteralContext _localctx = new LiteralContext(_ctx, getState());
  2907. enterRule(_localctx, 82, RULE_literal);
  2908. try {
  2909. setState(505);
  2910. switch (_input.LA(1)) {
  2911. case R_FUNCTION:
  2912. enterOuterAlt(_localctx, 1);
  2913. {
  2914. setState(503); func_literal();
  2915. }
  2916. break;
  2917. case R_STRUCT:
  2918. case R_ERROR:
  2919. case R_INT:
  2920. case R_CHAR:
  2921. case R_BOOL:
  2922. case R_STRING:
  2923. case R_CHA_E:
  2924. case R_OP_AST:
  2925. case ID:
  2926. enterOuterAlt(_localctx, 2);
  2927. {
  2928. setState(504); composite();
  2929. }
  2930. break;
  2931. default:
  2932. throw new NoViableAltException(this);
  2933. }
  2934. }
  2935. catch (RecognitionException re) {
  2936. _localctx.exception = re;
  2937. _errHandler.reportError(this, re);
  2938. _errHandler.recover(this, re);
  2939. }
  2940. finally {
  2941. exitRule();
  2942. }
  2943. return _localctx;
  2944. }
  2945. public static class Base_stmtContext extends ParserRuleContext {
  2946. public Dec_var_shortContext dec_var_short() {
  2947. return getRuleContext(Dec_var_shortContext.class,0);
  2948. }
  2949. public Inc_decContext inc_dec() {
  2950. return getRuleContext(Inc_decContext.class,0);
  2951. }
  2952. public ExpressionContext expression() {
  2953. return getRuleContext(ExpressionContext.class,0);
  2954. }
  2955. public Def_assign_opContext def_assign_op() {
  2956. return getRuleContext(Def_assign_opContext.class,0);
  2957. }
  2958. public Base_stmtContext(ParserRuleContext parent, int invokingState) {
  2959. super(parent, invokingState);
  2960. }
  2961. @Override public int getRuleIndex() { return RULE_base_stmt; }
  2962. @Override
  2963. public void enterRule(ParseTreeListener listener) {
  2964. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterBase_stmt(this);
  2965. }
  2966. @Override
  2967. public void exitRule(ParseTreeListener listener) {
  2968. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitBase_stmt(this);
  2969. }
  2970. @Override
  2971. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  2972. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitBase_stmt(this);
  2973. else return visitor.visitChildren(this);
  2974. }
  2975. }
  2976. public final Base_stmtContext base_stmt() throws RecognitionException {
  2977. Base_stmtContext _localctx = new Base_stmtContext(_ctx, getState());
  2978. enterRule(_localctx, 84, RULE_base_stmt);
  2979. try {
  2980. setState(512);
  2981. switch ( getInterpreter().adaptivePredict(_input,49,_ctx) ) {
  2982. case 1:
  2983. enterOuterAlt(_localctx, 1);
  2984. {
  2985. }
  2986. break;
  2987. case 2:
  2988. enterOuterAlt(_localctx, 2);
  2989. {
  2990. setState(508); inc_dec();
  2991. }
  2992. break;
  2993. case 3:
  2994. enterOuterAlt(_localctx, 3);
  2995. {
  2996. setState(509); def_assign_op();
  2997. }
  2998. break;
  2999. case 4:
  3000. enterOuterAlt(_localctx, 4);
  3001. {
  3002. setState(510); dec_var_short();
  3003. }
  3004. break;
  3005. case 5:
  3006. enterOuterAlt(_localctx, 5);
  3007. {
  3008. setState(511); expression(0);
  3009. }
  3010. break;
  3011. }
  3012. }
  3013. catch (RecognitionException re) {
  3014. _localctx.exception = re;
  3015. _errHandler.reportError(this, re);
  3016. _errHandler.recover(this, re);
  3017. }
  3018. finally {
  3019. exitRule();
  3020. }
  3021. return _localctx;
  3022. }
  3023. public static class Func_literalContext extends ParserRuleContext {
  3024. public Def_blockContext def_block() {
  3025. return getRuleContext(Def_blockContext.class,0);
  3026. }
  3027. public TerminalNode R_FUNCTION() { return getToken(IvannosysGrammarParser.R_FUNCTION, 0); }
  3028. public ArgumentsContext arguments() {
  3029. return getRuleContext(ArgumentsContext.class,0);
  3030. }
  3031. public Return_decContext return_dec() {
  3032. return getRuleContext(Return_decContext.class,0);
  3033. }
  3034. public Func_literalContext(ParserRuleContext parent, int invokingState) {
  3035. super(parent, invokingState);
  3036. }
  3037. @Override public int getRuleIndex() { return RULE_func_literal; }
  3038. @Override
  3039. public void enterRule(ParseTreeListener listener) {
  3040. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFunc_literal(this);
  3041. }
  3042. @Override
  3043. public void exitRule(ParseTreeListener listener) {
  3044. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFunc_literal(this);
  3045. }
  3046. @Override
  3047. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3048. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFunc_literal(this);
  3049. else return visitor.visitChildren(this);
  3050. }
  3051. }
  3052. public final Func_literalContext func_literal() throws RecognitionException {
  3053. Func_literalContext _localctx = new Func_literalContext(_ctx, getState());
  3054. enterRule(_localctx, 86, RULE_func_literal);
  3055. int _la;
  3056. try {
  3057. enterOuterAlt(_localctx, 1);
  3058. {
  3059. setState(514); match(R_FUNCTION);
  3060. setState(515); arguments();
  3061. setState(517);
  3062. _la = _input.LA(1);
  3063. if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_MAP) | (1L << R_ERROR) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING) | (1L << R_CHA_E))) != 0) || _la==R_OP_AST || _la==ID) {
  3064. {
  3065. setState(516); return_dec();
  3066. }
  3067. }
  3068. setState(519); def_block();
  3069. }
  3070. }
  3071. catch (RecognitionException re) {
  3072. _localctx.exception = re;
  3073. _errHandler.reportError(this, re);
  3074. _errHandler.recover(this, re);
  3075. }
  3076. finally {
  3077. exitRule();
  3078. }
  3079. return _localctx;
  3080. }
  3081. public static class CompositeContext extends ParserRuleContext {
  3082. public LiteralTypeContext literalType() {
  3083. return getRuleContext(LiteralTypeContext.class,0);
  3084. }
  3085. public Literal_valueContext literal_value() {
  3086. return getRuleContext(Literal_valueContext.class,0);
  3087. }
  3088. public CompositeContext(ParserRuleContext parent, int invokingState) {
  3089. super(parent, invokingState);
  3090. }
  3091. @Override public int getRuleIndex() { return RULE_composite; }
  3092. @Override
  3093. public void enterRule(ParseTreeListener listener) {
  3094. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterComposite(this);
  3095. }
  3096. @Override
  3097. public void exitRule(ParseTreeListener listener) {
  3098. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitComposite(this);
  3099. }
  3100. @Override
  3101. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3102. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitComposite(this);
  3103. else return visitor.visitChildren(this);
  3104. }
  3105. }
  3106. public final CompositeContext composite() throws RecognitionException {
  3107. CompositeContext _localctx = new CompositeContext(_ctx, getState());
  3108. enterRule(_localctx, 88, RULE_composite);
  3109. try {
  3110. enterOuterAlt(_localctx, 1);
  3111. {
  3112. setState(521); literalType();
  3113. setState(522); literal_value();
  3114. }
  3115. }
  3116. catch (RecognitionException re) {
  3117. _localctx.exception = re;
  3118. _errHandler.reportError(this, re);
  3119. _errHandler.recover(this, re);
  3120. }
  3121. finally {
  3122. exitRule();
  3123. }
  3124. return _localctx;
  3125. }
  3126. public static class LiteralTypeContext extends ParserRuleContext {
  3127. public TypenameContext typename() {
  3128. return getRuleContext(TypenameContext.class,0);
  3129. }
  3130. public StructTypeContext structType() {
  3131. return getRuleContext(StructTypeContext.class,0);
  3132. }
  3133. public ArrayTypeContext arrayType() {
  3134. return getRuleContext(ArrayTypeContext.class,0);
  3135. }
  3136. public LiteralTypeContext(ParserRuleContext parent, int invokingState) {
  3137. super(parent, invokingState);
  3138. }
  3139. @Override public int getRuleIndex() { return RULE_literalType; }
  3140. @Override
  3141. public void enterRule(ParseTreeListener listener) {
  3142. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterLiteralType(this);
  3143. }
  3144. @Override
  3145. public void exitRule(ParseTreeListener listener) {
  3146. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitLiteralType(this);
  3147. }
  3148. @Override
  3149. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3150. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitLiteralType(this);
  3151. else return visitor.visitChildren(this);
  3152. }
  3153. }
  3154. public final LiteralTypeContext literalType() throws RecognitionException {
  3155. LiteralTypeContext _localctx = new LiteralTypeContext(_ctx, getState());
  3156. enterRule(_localctx, 90, RULE_literalType);
  3157. try {
  3158. setState(527);
  3159. switch (_input.LA(1)) {
  3160. case R_ERROR:
  3161. case R_INT:
  3162. case R_CHAR:
  3163. case R_BOOL:
  3164. case R_STRING:
  3165. case R_OP_AST:
  3166. case ID:
  3167. enterOuterAlt(_localctx, 1);
  3168. {
  3169. setState(524); typename();
  3170. }
  3171. break;
  3172. case R_STRUCT:
  3173. enterOuterAlt(_localctx, 2);
  3174. {
  3175. setState(525); structType();
  3176. }
  3177. break;
  3178. case R_CHA_E:
  3179. enterOuterAlt(_localctx, 3);
  3180. {
  3181. setState(526); arrayType();
  3182. }
  3183. break;
  3184. default:
  3185. throw new NoViableAltException(this);
  3186. }
  3187. }
  3188. catch (RecognitionException re) {
  3189. _localctx.exception = re;
  3190. _errHandler.reportError(this, re);
  3191. _errHandler.recover(this, re);
  3192. }
  3193. finally {
  3194. exitRule();
  3195. }
  3196. return _localctx;
  3197. }
  3198. public static class StructTypeContext extends ParserRuleContext {
  3199. public FieldDeclContext fieldDecl(int i) {
  3200. return getRuleContext(FieldDeclContext.class,i);
  3201. }
  3202. public TerminalNode R_COL_E() { return getToken(IvannosysGrammarParser.R_COL_E, 0); }
  3203. public TerminalNode R_STRUCT() { return getToken(IvannosysGrammarParser.R_STRUCT, 0); }
  3204. public List<FieldDeclContext> fieldDecl() {
  3205. return getRuleContexts(FieldDeclContext.class);
  3206. }
  3207. public TerminalNode R_COL_D() { return getToken(IvannosysGrammarParser.R_COL_D, 0); }
  3208. public StructTypeContext(ParserRuleContext parent, int invokingState) {
  3209. super(parent, invokingState);
  3210. }
  3211. @Override public int getRuleIndex() { return RULE_structType; }
  3212. @Override
  3213. public void enterRule(ParseTreeListener listener) {
  3214. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterStructType(this);
  3215. }
  3216. @Override
  3217. public void exitRule(ParseTreeListener listener) {
  3218. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitStructType(this);
  3219. }
  3220. @Override
  3221. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3222. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitStructType(this);
  3223. else return visitor.visitChildren(this);
  3224. }
  3225. }
  3226. public final StructTypeContext structType() throws RecognitionException {
  3227. StructTypeContext _localctx = new StructTypeContext(_ctx, getState());
  3228. enterRule(_localctx, 92, RULE_structType);
  3229. int _la;
  3230. try {
  3231. enterOuterAlt(_localctx, 1);
  3232. {
  3233. setState(529); match(R_STRUCT);
  3234. setState(530); match(R_COL_E);
  3235. setState(532);
  3236. _errHandler.sync(this);
  3237. _la = _input.LA(1);
  3238. do {
  3239. {
  3240. {
  3241. setState(531); fieldDecl();
  3242. }
  3243. }
  3244. setState(534);
  3245. _errHandler.sync(this);
  3246. _la = _input.LA(1);
  3247. } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_ERROR) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING))) != 0) || _la==R_OP_AST || _la==ID );
  3248. setState(536); match(R_COL_D);
  3249. }
  3250. }
  3251. catch (RecognitionException re) {
  3252. _localctx.exception = re;
  3253. _errHandler.reportError(this, re);
  3254. _errHandler.recover(this, re);
  3255. }
  3256. finally {
  3257. exitRule();
  3258. }
  3259. return _localctx;
  3260. }
  3261. public static class FieldDeclContext extends ParserRuleContext {
  3262. public Anon_fieldContext anon_field() {
  3263. return getRuleContext(Anon_fieldContext.class,0);
  3264. }
  3265. public TerminalNode T_STRING() { return getToken(IvannosysGrammarParser.T_STRING, 0); }
  3266. public TypeContext type() {
  3267. return getRuleContext(TypeContext.class,0);
  3268. }
  3269. public Id_listContext id_list() {
  3270. return getRuleContext(Id_listContext.class,0);
  3271. }
  3272. public FieldDeclContext(ParserRuleContext parent, int invokingState) {
  3273. super(parent, invokingState);
  3274. }
  3275. @Override public int getRuleIndex() { return RULE_fieldDecl; }
  3276. @Override
  3277. public void enterRule(ParseTreeListener listener) {
  3278. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFieldDecl(this);
  3279. }
  3280. @Override
  3281. public void exitRule(ParseTreeListener listener) {
  3282. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFieldDecl(this);
  3283. }
  3284. @Override
  3285. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3286. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFieldDecl(this);
  3287. else return visitor.visitChildren(this);
  3288. }
  3289. }
  3290. public final FieldDeclContext fieldDecl() throws RecognitionException {
  3291. FieldDeclContext _localctx = new FieldDeclContext(_ctx, getState());
  3292. enterRule(_localctx, 94, RULE_fieldDecl);
  3293. int _la;
  3294. try {
  3295. enterOuterAlt(_localctx, 1);
  3296. {
  3297. setState(542);
  3298. switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) {
  3299. case 1:
  3300. {
  3301. setState(538); id_list();
  3302. setState(539); type();
  3303. }
  3304. break;
  3305. case 2:
  3306. {
  3307. setState(541); anon_field();
  3308. }
  3309. break;
  3310. }
  3311. setState(545);
  3312. _la = _input.LA(1);
  3313. if (_la==T_STRING) {
  3314. {
  3315. setState(544); match(T_STRING);
  3316. }
  3317. }
  3318. }
  3319. }
  3320. catch (RecognitionException re) {
  3321. _localctx.exception = re;
  3322. _errHandler.reportError(this, re);
  3323. _errHandler.recover(this, re);
  3324. }
  3325. finally {
  3326. exitRule();
  3327. }
  3328. return _localctx;
  3329. }
  3330. public static class Anon_fieldContext extends ParserRuleContext {
  3331. public TypenameContext typename() {
  3332. return getRuleContext(TypenameContext.class,0);
  3333. }
  3334. public TerminalNode R_OP_AST() { return getToken(IvannosysGrammarParser.R_OP_AST, 0); }
  3335. public Anon_fieldContext(ParserRuleContext parent, int invokingState) {
  3336. super(parent, invokingState);
  3337. }
  3338. @Override public int getRuleIndex() { return RULE_anon_field; }
  3339. @Override
  3340. public void enterRule(ParseTreeListener listener) {
  3341. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterAnon_field(this);
  3342. }
  3343. @Override
  3344. public void exitRule(ParseTreeListener listener) {
  3345. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitAnon_field(this);
  3346. }
  3347. @Override
  3348. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3349. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitAnon_field(this);
  3350. else return visitor.visitChildren(this);
  3351. }
  3352. }
  3353. public final Anon_fieldContext anon_field() throws RecognitionException {
  3354. Anon_fieldContext _localctx = new Anon_fieldContext(_ctx, getState());
  3355. enterRule(_localctx, 96, RULE_anon_field);
  3356. try {
  3357. enterOuterAlt(_localctx, 1);
  3358. {
  3359. setState(548);
  3360. switch ( getInterpreter().adaptivePredict(_input,55,_ctx) ) {
  3361. case 1:
  3362. {
  3363. setState(547); match(R_OP_AST);
  3364. }
  3365. break;
  3366. }
  3367. setState(550); typename();
  3368. }
  3369. }
  3370. catch (RecognitionException re) {
  3371. _localctx.exception = re;
  3372. _errHandler.reportError(this, re);
  3373. _errHandler.recover(this, re);
  3374. }
  3375. finally {
  3376. exitRule();
  3377. }
  3378. return _localctx;
  3379. }
  3380. public static class ArrayTypeContext extends ParserRuleContext {
  3381. public TypenameContext typename() {
  3382. return getRuleContext(TypenameContext.class,0);
  3383. }
  3384. public TerminalNode R_CHA_D() { return getToken(IvannosysGrammarParser.R_CHA_D, 0); }
  3385. public TerminalNode R_CHA_E() { return getToken(IvannosysGrammarParser.R_CHA_E, 0); }
  3386. public ExpressionContext expression() {
  3387. return getRuleContext(ExpressionContext.class,0);
  3388. }
  3389. public ArrayTypeContext(ParserRuleContext parent, int invokingState) {
  3390. super(parent, invokingState);
  3391. }
  3392. @Override public int getRuleIndex() { return RULE_arrayType; }
  3393. @Override
  3394. public void enterRule(ParseTreeListener listener) {
  3395. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterArrayType(this);
  3396. }
  3397. @Override
  3398. public void exitRule(ParseTreeListener listener) {
  3399. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitArrayType(this);
  3400. }
  3401. @Override
  3402. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3403. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitArrayType(this);
  3404. else return visitor.visitChildren(this);
  3405. }
  3406. }
  3407. public final ArrayTypeContext arrayType() throws RecognitionException {
  3408. ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState());
  3409. enterRule(_localctx, 98, RULE_arrayType);
  3410. int _la;
  3411. try {
  3412. enterOuterAlt(_localctx, 1);
  3413. {
  3414. setState(552); match(R_CHA_E);
  3415. setState(554);
  3416. _la = _input.LA(1);
  3417. if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_REFERENCE) | (1L << R_STRUCT) | (1L << R_ERROR) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING) | (1L << R_FUNCTION) | (1L << R_EXCLAMATION) | (1L << R_PAR_E) | (1L << R_CHA_E))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (R_OP_SUB - 70)) | (1L << (R_OP_AST - 70)) | (1L << (T_CHAR - 70)) | (1L << (T_BOOL_TRUE - 70)) | (1L << (T_BOOL_FALSE - 70)) | (1L << (ID - 70)) | (1L << (T_INTEIRO - 70)))) != 0)) {
  3418. {
  3419. setState(553); expression(0);
  3420. }
  3421. }
  3422. setState(556); match(R_CHA_D);
  3423. setState(557); typename();
  3424. }
  3425. }
  3426. catch (RecognitionException re) {
  3427. _localctx.exception = re;
  3428. _errHandler.reportError(this, re);
  3429. _errHandler.recover(this, re);
  3430. }
  3431. finally {
  3432. exitRule();
  3433. }
  3434. return _localctx;
  3435. }
  3436. public static class Inc_decContext extends ParserRuleContext {
  3437. public Token op;
  3438. public TerminalNode R_OP_SS() { return getToken(IvannosysGrammarParser.R_OP_SS, 0); }
  3439. public ExpressionContext expression() {
  3440. return getRuleContext(ExpressionContext.class,0);
  3441. }
  3442. public TerminalNode R_OP_PP() { return getToken(IvannosysGrammarParser.R_OP_PP, 0); }
  3443. public Inc_decContext(ParserRuleContext parent, int invokingState) {
  3444. super(parent, invokingState);
  3445. }
  3446. @Override public int getRuleIndex() { return RULE_inc_dec; }
  3447. @Override
  3448. public void enterRule(ParseTreeListener listener) {
  3449. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterInc_dec(this);
  3450. }
  3451. @Override
  3452. public void exitRule(ParseTreeListener listener) {
  3453. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitInc_dec(this);
  3454. }
  3455. @Override
  3456. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3457. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitInc_dec(this);
  3458. else return visitor.visitChildren(this);
  3459. }
  3460. }
  3461. public final Inc_decContext inc_dec() throws RecognitionException {
  3462. Inc_decContext _localctx = new Inc_decContext(_ctx, getState());
  3463. enterRule(_localctx, 100, RULE_inc_dec);
  3464. int _la;
  3465. try {
  3466. enterOuterAlt(_localctx, 1);
  3467. {
  3468. setState(559); expression(0);
  3469. setState(560);
  3470. ((Inc_decContext)_localctx).op = _input.LT(1);
  3471. _la = _input.LA(1);
  3472. if ( !(_la==R_OP_SS || _la==R_OP_PP) ) {
  3473. ((Inc_decContext)_localctx).op = (Token)_errHandler.recoverInline(this);
  3474. }
  3475. consume();
  3476. }
  3477. }
  3478. catch (RecognitionException re) {
  3479. _localctx.exception = re;
  3480. _errHandler.reportError(this, re);
  3481. _errHandler.recover(this, re);
  3482. }
  3483. finally {
  3484. exitRule();
  3485. }
  3486. return _localctx;
  3487. }
  3488. public static class Literal_valueContext extends ParserRuleContext {
  3489. public TerminalNode R_COL_E() { return getToken(IvannosysGrammarParser.R_COL_E, 0); }
  3490. public TerminalNode R_VIRGULA() { return getToken(IvannosysGrammarParser.R_VIRGULA, 0); }
  3491. public Element_listContext element_list() {
  3492. return getRuleContext(Element_listContext.class,0);
  3493. }
  3494. public Expression_listContext expression_list() {
  3495. return getRuleContext(Expression_listContext.class,0);
  3496. }
  3497. public TerminalNode R_COL_D() { return getToken(IvannosysGrammarParser.R_COL_D, 0); }
  3498. public Literal_valueContext(ParserRuleContext parent, int invokingState) {
  3499. super(parent, invokingState);
  3500. }
  3501. @Override public int getRuleIndex() { return RULE_literal_value; }
  3502. @Override
  3503. public void enterRule(ParseTreeListener listener) {
  3504. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterLiteral_value(this);
  3505. }
  3506. @Override
  3507. public void exitRule(ParseTreeListener listener) {
  3508. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitLiteral_value(this);
  3509. }
  3510. @Override
  3511. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3512. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitLiteral_value(this);
  3513. else return visitor.visitChildren(this);
  3514. }
  3515. }
  3516. public final Literal_valueContext literal_value() throws RecognitionException {
  3517. Literal_valueContext _localctx = new Literal_valueContext(_ctx, getState());
  3518. enterRule(_localctx, 102, RULE_literal_value);
  3519. int _la;
  3520. try {
  3521. enterOuterAlt(_localctx, 1);
  3522. {
  3523. setState(562); match(R_COL_E);
  3524. setState(569);
  3525. _la = _input.LA(1);
  3526. if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_REFERENCE) | (1L << R_STRUCT) | (1L << R_ERROR) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING) | (1L << R_FUNCTION) | (1L << R_EXCLAMATION) | (1L << R_PAR_E) | (1L << R_CHA_E))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (R_OP_SUB - 70)) | (1L << (R_OP_AST - 70)) | (1L << (T_CHAR - 70)) | (1L << (T_BOOL_TRUE - 70)) | (1L << (T_BOOL_FALSE - 70)) | (1L << (ID - 70)) | (1L << (T_INTEIRO - 70)))) != 0)) {
  3527. {
  3528. setState(565);
  3529. switch ( getInterpreter().adaptivePredict(_input,57,_ctx) ) {
  3530. case 1:
  3531. {
  3532. setState(563); expression_list();
  3533. }
  3534. break;
  3535. case 2:
  3536. {
  3537. setState(564); element_list();
  3538. }
  3539. break;
  3540. }
  3541. setState(567); match(R_VIRGULA);
  3542. }
  3543. }
  3544. setState(571); match(R_COL_D);
  3545. }
  3546. }
  3547. catch (RecognitionException re) {
  3548. _localctx.exception = re;
  3549. _errHandler.reportError(this, re);
  3550. _errHandler.recover(this, re);
  3551. }
  3552. finally {
  3553. exitRule();
  3554. }
  3555. return _localctx;
  3556. }
  3557. public static class Element_listContext extends ParserRuleContext {
  3558. public List<Keyed_elementContext> keyed_element() {
  3559. return getRuleContexts(Keyed_elementContext.class);
  3560. }
  3561. public Keyed_elementContext keyed_element(int i) {
  3562. return getRuleContext(Keyed_elementContext.class,i);
  3563. }
  3564. public List<TerminalNode> R_VIRGULA() { return getTokens(IvannosysGrammarParser.R_VIRGULA); }
  3565. public TerminalNode R_VIRGULA(int i) {
  3566. return getToken(IvannosysGrammarParser.R_VIRGULA, i);
  3567. }
  3568. public Element_listContext(ParserRuleContext parent, int invokingState) {
  3569. super(parent, invokingState);
  3570. }
  3571. @Override public int getRuleIndex() { return RULE_element_list; }
  3572. @Override
  3573. public void enterRule(ParseTreeListener listener) {
  3574. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterElement_list(this);
  3575. }
  3576. @Override
  3577. public void exitRule(ParseTreeListener listener) {
  3578. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitElement_list(this);
  3579. }
  3580. @Override
  3581. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3582. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitElement_list(this);
  3583. else return visitor.visitChildren(this);
  3584. }
  3585. }
  3586. public final Element_listContext element_list() throws RecognitionException {
  3587. Element_listContext _localctx = new Element_listContext(_ctx, getState());
  3588. enterRule(_localctx, 104, RULE_element_list);
  3589. try {
  3590. int _alt;
  3591. enterOuterAlt(_localctx, 1);
  3592. {
  3593. setState(573); keyed_element();
  3594. setState(578);
  3595. _errHandler.sync(this);
  3596. _alt = getInterpreter().adaptivePredict(_input,59,_ctx);
  3597. while ( _alt!=2 && _alt!=ATN.INVALID_ALT_NUMBER ) {
  3598. if ( _alt==1 ) {
  3599. {
  3600. {
  3601. setState(574); match(R_VIRGULA);
  3602. setState(575); keyed_element();
  3603. }
  3604. }
  3605. }
  3606. setState(580);
  3607. _errHandler.sync(this);
  3608. _alt = getInterpreter().adaptivePredict(_input,59,_ctx);
  3609. }
  3610. }
  3611. }
  3612. catch (RecognitionException re) {
  3613. _localctx.exception = re;
  3614. _errHandler.reportError(this, re);
  3615. _errHandler.recover(this, re);
  3616. }
  3617. finally {
  3618. exitRule();
  3619. }
  3620. return _localctx;
  3621. }
  3622. public static class Keyed_elementContext extends ParserRuleContext {
  3623. public TerminalNode R_COLON() { return getToken(IvannosysGrammarParser.R_COLON, 0); }
  3624. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  3625. public ExpressionContext expression() {
  3626. return getRuleContext(ExpressionContext.class,0);
  3627. }
  3628. public Keyed_elementContext(ParserRuleContext parent, int invokingState) {
  3629. super(parent, invokingState);
  3630. }
  3631. @Override public int getRuleIndex() { return RULE_keyed_element; }
  3632. @Override
  3633. public void enterRule(ParseTreeListener listener) {
  3634. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterKeyed_element(this);
  3635. }
  3636. @Override
  3637. public void exitRule(ParseTreeListener listener) {
  3638. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitKeyed_element(this);
  3639. }
  3640. @Override
  3641. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3642. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitKeyed_element(this);
  3643. else return visitor.visitChildren(this);
  3644. }
  3645. }
  3646. public final Keyed_elementContext keyed_element() throws RecognitionException {
  3647. Keyed_elementContext _localctx = new Keyed_elementContext(_ctx, getState());
  3648. enterRule(_localctx, 106, RULE_keyed_element);
  3649. try {
  3650. enterOuterAlt(_localctx, 1);
  3651. {
  3652. setState(581); match(ID);
  3653. setState(582); match(R_COLON);
  3654. setState(583); expression(0);
  3655. }
  3656. }
  3657. catch (RecognitionException re) {
  3658. _localctx.exception = re;
  3659. _errHandler.reportError(this, re);
  3660. _errHandler.recover(this, re);
  3661. }
  3662. finally {
  3663. exitRule();
  3664. }
  3665. return _localctx;
  3666. }
  3667. public static class Expression_seletorContext extends ParserRuleContext {
  3668. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  3669. public TerminalNode R_PONTO() { return getToken(IvannosysGrammarParser.R_PONTO, 0); }
  3670. public Expression_seletorContext(ParserRuleContext parent, int invokingState) {
  3671. super(parent, invokingState);
  3672. }
  3673. @Override public int getRuleIndex() { return RULE_expression_seletor; }
  3674. @Override
  3675. public void enterRule(ParseTreeListener listener) {
  3676. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterExpression_seletor(this);
  3677. }
  3678. @Override
  3679. public void exitRule(ParseTreeListener listener) {
  3680. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitExpression_seletor(this);
  3681. }
  3682. @Override
  3683. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3684. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitExpression_seletor(this);
  3685. else return visitor.visitChildren(this);
  3686. }
  3687. }
  3688. public final Expression_seletorContext expression_seletor() throws RecognitionException {
  3689. Expression_seletorContext _localctx = new Expression_seletorContext(_ctx, getState());
  3690. enterRule(_localctx, 108, RULE_expression_seletor);
  3691. try {
  3692. enterOuterAlt(_localctx, 1);
  3693. {
  3694. setState(585); match(R_PONTO);
  3695. setState(586); match(ID);
  3696. }
  3697. }
  3698. catch (RecognitionException re) {
  3699. _localctx.exception = re;
  3700. _errHandler.reportError(this, re);
  3701. _errHandler.recover(this, re);
  3702. }
  3703. finally {
  3704. exitRule();
  3705. }
  3706. return _localctx;
  3707. }
  3708. public static class Def_blockContext extends ParserRuleContext {
  3709. public HashMap<String, String> retornos = new HashMap<>();;
  3710. public List<StatementContext> statement() {
  3711. return getRuleContexts(StatementContext.class);
  3712. }
  3713. public TerminalNode R_COL_E() { return getToken(IvannosysGrammarParser.R_COL_E, 0); }
  3714. public StatementContext statement(int i) {
  3715. return getRuleContext(StatementContext.class,i);
  3716. }
  3717. public TerminalNode R_COL_D() { return getToken(IvannosysGrammarParser.R_COL_D, 0); }
  3718. public Def_blockContext(ParserRuleContext parent, int invokingState) {
  3719. super(parent, invokingState);
  3720. }
  3721. @Override public int getRuleIndex() { return RULE_def_block; }
  3722. @Override
  3723. public void enterRule(ParseTreeListener listener) {
  3724. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDef_block(this);
  3725. }
  3726. @Override
  3727. public void exitRule(ParseTreeListener listener) {
  3728. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDef_block(this);
  3729. }
  3730. @Override
  3731. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3732. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDef_block(this);
  3733. else return visitor.visitChildren(this);
  3734. }
  3735. }
  3736. public final Def_blockContext def_block() throws RecognitionException {
  3737. Def_blockContext _localctx = new Def_blockContext(_ctx, getState());
  3738. enterRule(_localctx, 110, RULE_def_block);
  3739. int _la;
  3740. try {
  3741. enterOuterAlt(_localctx, 1);
  3742. {
  3743. setState(588); match(R_COL_E);
  3744. setState(592);
  3745. _errHandler.sync(this);
  3746. _la = _input.LA(1);
  3747. while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << R_REFERENCE) | (1L << R_STRUCT) | (1L << R_VAR) | (1L << R_GOTO) | (1L << R_FALLTHROUGH) | (1L << R_ERROR) | (1L << R_DELETE) | (1L << R_TRY) | (1L << R_INT) | (1L << R_CHAR) | (1L << R_BOOL) | (1L << R_STRING) | (1L << R_FUNCTION) | (1L << R_CONSTANTE) | (1L << R_SWITCH) | (1L << R_FOR) | (1L << R_RETURN) | (1L << R_CONTINUE) | (1L << R_BREAK) | (1L << R_THROW) | (1L << R_IF) | (1L << R_EXCLAMATION) | (1L << R_PAR_E) | (1L << R_CHA_E))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (R_OP_SUB - 70)) | (1L << (R_OP_AST - 70)) | (1L << (T_CHAR - 70)) | (1L << (T_BOOL_TRUE - 70)) | (1L << (T_BOOL_FALSE - 70)) | (1L << (ID - 70)) | (1L << (T_INTEIRO - 70)))) != 0)) {
  3748. {
  3749. {
  3750. setState(589); statement();
  3751. }
  3752. }
  3753. setState(594);
  3754. _errHandler.sync(this);
  3755. _la = _input.LA(1);
  3756. }
  3757. setState(595); match(R_COL_D);
  3758. }
  3759. }
  3760. catch (RecognitionException re) {
  3761. _localctx.exception = re;
  3762. _errHandler.reportError(this, re);
  3763. _errHandler.recover(this, re);
  3764. }
  3765. finally {
  3766. exitRule();
  3767. }
  3768. return _localctx;
  3769. }
  3770. public static class CallExprContext extends ParserRuleContext {
  3771. public Primary_exprContext primary_expr() {
  3772. return getRuleContext(Primary_exprContext.class,0);
  3773. }
  3774. public ArgumentsContext arguments() {
  3775. return getRuleContext(ArgumentsContext.class,0);
  3776. }
  3777. public CallExprContext(ParserRuleContext parent, int invokingState) {
  3778. super(parent, invokingState);
  3779. }
  3780. @Override public int getRuleIndex() { return RULE_callExpr; }
  3781. @Override
  3782. public void enterRule(ParseTreeListener listener) {
  3783. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterCallExpr(this);
  3784. }
  3785. @Override
  3786. public void exitRule(ParseTreeListener listener) {
  3787. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitCallExpr(this);
  3788. }
  3789. @Override
  3790. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3791. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitCallExpr(this);
  3792. else return visitor.visitChildren(this);
  3793. }
  3794. }
  3795. public final CallExprContext callExpr() throws RecognitionException {
  3796. CallExprContext _localctx = new CallExprContext(_ctx, getState());
  3797. enterRule(_localctx, 112, RULE_callExpr);
  3798. try {
  3799. setState(601);
  3800. switch (_input.LA(1)) {
  3801. case EOF:
  3802. enterOuterAlt(_localctx, 1);
  3803. {
  3804. }
  3805. break;
  3806. case R_STRUCT:
  3807. case R_ERROR:
  3808. case R_INT:
  3809. case R_CHAR:
  3810. case R_BOOL:
  3811. case R_STRING:
  3812. case R_FUNCTION:
  3813. case R_CHA_E:
  3814. case R_OP_AST:
  3815. case T_CHAR:
  3816. case T_BOOL_TRUE:
  3817. case T_BOOL_FALSE:
  3818. case ID:
  3819. case T_INTEIRO:
  3820. enterOuterAlt(_localctx, 2);
  3821. {
  3822. setState(598); primary_expr(0);
  3823. setState(599); arguments();
  3824. }
  3825. break;
  3826. default:
  3827. throw new NoViableAltException(this);
  3828. }
  3829. }
  3830. catch (RecognitionException re) {
  3831. _localctx.exception = re;
  3832. _errHandler.reportError(this, re);
  3833. _errHandler.recover(this, re);
  3834. }
  3835. finally {
  3836. exitRule();
  3837. }
  3838. return _localctx;
  3839. }
  3840. public static class StatementContext extends ParserRuleContext {
  3841. public Flux_controlContext flux_control() {
  3842. return getRuleContext(Flux_controlContext.class,0);
  3843. }
  3844. public FallthroughStmtContext fallthroughStmt() {
  3845. return getRuleContext(FallthroughStmtContext.class,0);
  3846. }
  3847. public Def_ifContext def_if() {
  3848. return getRuleContext(Def_ifContext.class,0);
  3849. }
  3850. public Def_switchContext def_switch() {
  3851. return getRuleContext(Def_switchContext.class,0);
  3852. }
  3853. public Dec_varContext dec_var() {
  3854. return getRuleContext(Dec_varContext.class,0);
  3855. }
  3856. public Def_assign_opContext def_assign_op() {
  3857. return getRuleContext(Def_assign_opContext.class,0);
  3858. }
  3859. public Dec_constContext dec_const() {
  3860. return getRuleContext(Dec_constContext.class,0);
  3861. }
  3862. public ThrowStmtContext throwStmt() {
  3863. return getRuleContext(ThrowStmtContext.class,0);
  3864. }
  3865. public Try_catchContext try_catch() {
  3866. return getRuleContext(Try_catchContext.class,0);
  3867. }
  3868. public Def_forContext def_for() {
  3869. return getRuleContext(Def_forContext.class,0);
  3870. }
  3871. public Dec_var_shortContext dec_var_short() {
  3872. return getRuleContext(Dec_var_shortContext.class,0);
  3873. }
  3874. public Primary_exprContext primary_expr() {
  3875. return getRuleContext(Primary_exprContext.class,0);
  3876. }
  3877. public Inc_decContext inc_dec() {
  3878. return getRuleContext(Inc_decContext.class,0);
  3879. }
  3880. public Return_stmtContext return_stmt() {
  3881. return getRuleContext(Return_stmtContext.class,0);
  3882. }
  3883. public DeleteContext delete() {
  3884. return getRuleContext(DeleteContext.class,0);
  3885. }
  3886. public Label_stmtContext label_stmt() {
  3887. return getRuleContext(Label_stmtContext.class,0);
  3888. }
  3889. public StatementContext(ParserRuleContext parent, int invokingState) {
  3890. super(parent, invokingState);
  3891. }
  3892. @Override public int getRuleIndex() { return RULE_statement; }
  3893. @Override
  3894. public void enterRule(ParseTreeListener listener) {
  3895. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterStatement(this);
  3896. }
  3897. @Override
  3898. public void exitRule(ParseTreeListener listener) {
  3899. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitStatement(this);
  3900. }
  3901. @Override
  3902. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  3903. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitStatement(this);
  3904. else return visitor.visitChildren(this);
  3905. }
  3906. }
  3907. public final StatementContext statement() throws RecognitionException {
  3908. StatementContext _localctx = new StatementContext(_ctx, getState());
  3909. enterRule(_localctx, 114, RULE_statement);
  3910. try {
  3911. setState(619);
  3912. switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) {
  3913. case 1:
  3914. enterOuterAlt(_localctx, 1);
  3915. {
  3916. setState(603); dec_var_short();
  3917. }
  3918. break;
  3919. case 2:
  3920. enterOuterAlt(_localctx, 2);
  3921. {
  3922. setState(604); dec_var();
  3923. }
  3924. break;
  3925. case 3:
  3926. enterOuterAlt(_localctx, 3);
  3927. {
  3928. setState(605); def_assign_op();
  3929. }
  3930. break;
  3931. case 4:
  3932. enterOuterAlt(_localctx, 4);
  3933. {
  3934. setState(606); dec_const();
  3935. }
  3936. break;
  3937. case 5:
  3938. enterOuterAlt(_localctx, 5);
  3939. {
  3940. setState(607); inc_dec();
  3941. }
  3942. break;
  3943. case 6:
  3944. enterOuterAlt(_localctx, 6);
  3945. {
  3946. setState(608); primary_expr(0);
  3947. }
  3948. break;
  3949. case 7:
  3950. enterOuterAlt(_localctx, 7);
  3951. {
  3952. setState(609); label_stmt();
  3953. }
  3954. break;
  3955. case 8:
  3956. enterOuterAlt(_localctx, 8);
  3957. {
  3958. setState(610); return_stmt();
  3959. }
  3960. break;
  3961. case 9:
  3962. enterOuterAlt(_localctx, 9);
  3963. {
  3964. setState(611); delete();
  3965. }
  3966. break;
  3967. case 10:
  3968. enterOuterAlt(_localctx, 10);
  3969. {
  3970. setState(612); throwStmt();
  3971. }
  3972. break;
  3973. case 11:
  3974. enterOuterAlt(_localctx, 11);
  3975. {
  3976. setState(613); fallthroughStmt();
  3977. }
  3978. break;
  3979. case 12:
  3980. enterOuterAlt(_localctx, 12);
  3981. {
  3982. setState(614); def_if();
  3983. }
  3984. break;
  3985. case 13:
  3986. enterOuterAlt(_localctx, 13);
  3987. {
  3988. setState(615); def_for();
  3989. }
  3990. break;
  3991. case 14:
  3992. enterOuterAlt(_localctx, 14);
  3993. {
  3994. setState(616); def_switch();
  3995. }
  3996. break;
  3997. case 15:
  3998. enterOuterAlt(_localctx, 15);
  3999. {
  4000. setState(617); flux_control();
  4001. }
  4002. break;
  4003. case 16:
  4004. enterOuterAlt(_localctx, 16);
  4005. {
  4006. setState(618); try_catch();
  4007. }
  4008. break;
  4009. }
  4010. }
  4011. catch (RecognitionException re) {
  4012. _localctx.exception = re;
  4013. _errHandler.reportError(this, re);
  4014. _errHandler.recover(this, re);
  4015. }
  4016. finally {
  4017. exitRule();
  4018. }
  4019. return _localctx;
  4020. }
  4021. public static class FallthroughStmtContext extends ParserRuleContext {
  4022. public TerminalNode R_FALLTHROUGH() { return getToken(IvannosysGrammarParser.R_FALLTHROUGH, 0); }
  4023. public FallthroughStmtContext(ParserRuleContext parent, int invokingState) {
  4024. super(parent, invokingState);
  4025. }
  4026. @Override public int getRuleIndex() { return RULE_fallthroughStmt; }
  4027. @Override
  4028. public void enterRule(ParseTreeListener listener) {
  4029. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFallthroughStmt(this);
  4030. }
  4031. @Override
  4032. public void exitRule(ParseTreeListener listener) {
  4033. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFallthroughStmt(this);
  4034. }
  4035. @Override
  4036. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4037. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFallthroughStmt(this);
  4038. else return visitor.visitChildren(this);
  4039. }
  4040. }
  4041. public final FallthroughStmtContext fallthroughStmt() throws RecognitionException {
  4042. FallthroughStmtContext _localctx = new FallthroughStmtContext(_ctx, getState());
  4043. enterRule(_localctx, 116, RULE_fallthroughStmt);
  4044. try {
  4045. enterOuterAlt(_localctx, 1);
  4046. {
  4047. setState(621); match(R_FALLTHROUGH);
  4048. }
  4049. }
  4050. catch (RecognitionException re) {
  4051. _localctx.exception = re;
  4052. _errHandler.reportError(this, re);
  4053. _errHandler.recover(this, re);
  4054. }
  4055. finally {
  4056. exitRule();
  4057. }
  4058. return _localctx;
  4059. }
  4060. public static class Label_stmtContext extends ParserRuleContext {
  4061. public StatementContext statement() {
  4062. return getRuleContext(StatementContext.class,0);
  4063. }
  4064. public TerminalNode R_COLON() { return getToken(IvannosysGrammarParser.R_COLON, 0); }
  4065. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  4066. public Label_stmtContext(ParserRuleContext parent, int invokingState) {
  4067. super(parent, invokingState);
  4068. }
  4069. @Override public int getRuleIndex() { return RULE_label_stmt; }
  4070. @Override
  4071. public void enterRule(ParseTreeListener listener) {
  4072. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterLabel_stmt(this);
  4073. }
  4074. @Override
  4075. public void exitRule(ParseTreeListener listener) {
  4076. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitLabel_stmt(this);
  4077. }
  4078. @Override
  4079. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4080. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitLabel_stmt(this);
  4081. else return visitor.visitChildren(this);
  4082. }
  4083. }
  4084. public final Label_stmtContext label_stmt() throws RecognitionException {
  4085. Label_stmtContext _localctx = new Label_stmtContext(_ctx, getState());
  4086. enterRule(_localctx, 118, RULE_label_stmt);
  4087. try {
  4088. enterOuterAlt(_localctx, 1);
  4089. {
  4090. setState(623); match(ID);
  4091. setState(624); match(R_COLON);
  4092. setState(625); statement();
  4093. }
  4094. }
  4095. catch (RecognitionException re) {
  4096. _localctx.exception = re;
  4097. _errHandler.reportError(this, re);
  4098. _errHandler.recover(this, re);
  4099. }
  4100. finally {
  4101. exitRule();
  4102. }
  4103. return _localctx;
  4104. }
  4105. public static class ThrowStmtContext extends ParserRuleContext {
  4106. public TerminalNode R_THROW() { return getToken(IvannosysGrammarParser.R_THROW, 0); }
  4107. public ExpressionContext expression() {
  4108. return getRuleContext(ExpressionContext.class,0);
  4109. }
  4110. public TerminalNode R_PT_VIRG() { return getToken(IvannosysGrammarParser.R_PT_VIRG, 0); }
  4111. public ThrowStmtContext(ParserRuleContext parent, int invokingState) {
  4112. super(parent, invokingState);
  4113. }
  4114. @Override public int getRuleIndex() { return RULE_throwStmt; }
  4115. @Override
  4116. public void enterRule(ParseTreeListener listener) {
  4117. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterThrowStmt(this);
  4118. }
  4119. @Override
  4120. public void exitRule(ParseTreeListener listener) {
  4121. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitThrowStmt(this);
  4122. }
  4123. @Override
  4124. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4125. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitThrowStmt(this);
  4126. else return visitor.visitChildren(this);
  4127. }
  4128. }
  4129. public final ThrowStmtContext throwStmt() throws RecognitionException {
  4130. ThrowStmtContext _localctx = new ThrowStmtContext(_ctx, getState());
  4131. enterRule(_localctx, 120, RULE_throwStmt);
  4132. try {
  4133. enterOuterAlt(_localctx, 1);
  4134. {
  4135. setState(627); match(R_THROW);
  4136. setState(628); expression(0);
  4137. setState(629); match(R_PT_VIRG);
  4138. }
  4139. }
  4140. catch (RecognitionException re) {
  4141. _localctx.exception = re;
  4142. _errHandler.reportError(this, re);
  4143. _errHandler.recover(this, re);
  4144. }
  4145. finally {
  4146. exitRule();
  4147. }
  4148. return _localctx;
  4149. }
  4150. public static class Try_catchContext extends ParserRuleContext {
  4151. public Catch_exceptionContext catch_exception() {
  4152. return getRuleContext(Catch_exceptionContext.class,0);
  4153. }
  4154. public Def_blockContext def_block() {
  4155. return getRuleContext(Def_blockContext.class,0);
  4156. }
  4157. public Finally_tryContext finally_try() {
  4158. return getRuleContext(Finally_tryContext.class,0);
  4159. }
  4160. public TerminalNode R_TRY() { return getToken(IvannosysGrammarParser.R_TRY, 0); }
  4161. public Try_catchContext(ParserRuleContext parent, int invokingState) {
  4162. super(parent, invokingState);
  4163. }
  4164. @Override public int getRuleIndex() { return RULE_try_catch; }
  4165. @Override
  4166. public void enterRule(ParseTreeListener listener) {
  4167. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterTry_catch(this);
  4168. }
  4169. @Override
  4170. public void exitRule(ParseTreeListener listener) {
  4171. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitTry_catch(this);
  4172. }
  4173. @Override
  4174. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4175. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitTry_catch(this);
  4176. else return visitor.visitChildren(this);
  4177. }
  4178. }
  4179. public final Try_catchContext try_catch() throws RecognitionException {
  4180. Try_catchContext _localctx = new Try_catchContext(_ctx, getState());
  4181. enterRule(_localctx, 122, RULE_try_catch);
  4182. int _la;
  4183. try {
  4184. enterOuterAlt(_localctx, 1);
  4185. {
  4186. setState(631); match(R_TRY);
  4187. setState(632); def_block();
  4188. setState(633); catch_exception();
  4189. setState(635);
  4190. _la = _input.LA(1);
  4191. if (_la==R_FINALLY) {
  4192. {
  4193. setState(634); finally_try();
  4194. }
  4195. }
  4196. }
  4197. }
  4198. catch (RecognitionException re) {
  4199. _localctx.exception = re;
  4200. _errHandler.reportError(this, re);
  4201. _errHandler.recover(this, re);
  4202. }
  4203. finally {
  4204. exitRule();
  4205. }
  4206. return _localctx;
  4207. }
  4208. public static class Catch_exceptionContext extends ParserRuleContext {
  4209. public TerminalNode R_CATCH() { return getToken(IvannosysGrammarParser.R_CATCH, 0); }
  4210. public Def_blockContext def_block() {
  4211. return getRuleContext(Def_blockContext.class,0);
  4212. }
  4213. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  4214. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  4215. public Dec_varContext dec_var() {
  4216. return getRuleContext(Dec_varContext.class,0);
  4217. }
  4218. public Catch_exceptionContext(ParserRuleContext parent, int invokingState) {
  4219. super(parent, invokingState);
  4220. }
  4221. @Override public int getRuleIndex() { return RULE_catch_exception; }
  4222. @Override
  4223. public void enterRule(ParseTreeListener listener) {
  4224. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterCatch_exception(this);
  4225. }
  4226. @Override
  4227. public void exitRule(ParseTreeListener listener) {
  4228. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitCatch_exception(this);
  4229. }
  4230. @Override
  4231. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4232. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitCatch_exception(this);
  4233. else return visitor.visitChildren(this);
  4234. }
  4235. }
  4236. public final Catch_exceptionContext catch_exception() throws RecognitionException {
  4237. Catch_exceptionContext _localctx = new Catch_exceptionContext(_ctx, getState());
  4238. enterRule(_localctx, 124, RULE_catch_exception);
  4239. try {
  4240. enterOuterAlt(_localctx, 1);
  4241. {
  4242. setState(637); match(R_CATCH);
  4243. setState(638); match(R_PAR_E);
  4244. setState(639); dec_var();
  4245. setState(640); match(R_PAR_D);
  4246. setState(641); def_block();
  4247. }
  4248. }
  4249. catch (RecognitionException re) {
  4250. _localctx.exception = re;
  4251. _errHandler.reportError(this, re);
  4252. _errHandler.recover(this, re);
  4253. }
  4254. finally {
  4255. exitRule();
  4256. }
  4257. return _localctx;
  4258. }
  4259. public static class Finally_tryContext extends ParserRuleContext {
  4260. public TerminalNode R_FINALLY() { return getToken(IvannosysGrammarParser.R_FINALLY, 0); }
  4261. public Def_blockContext def_block() {
  4262. return getRuleContext(Def_blockContext.class,0);
  4263. }
  4264. public Finally_tryContext(ParserRuleContext parent, int invokingState) {
  4265. super(parent, invokingState);
  4266. }
  4267. @Override public int getRuleIndex() { return RULE_finally_try; }
  4268. @Override
  4269. public void enterRule(ParseTreeListener listener) {
  4270. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFinally_try(this);
  4271. }
  4272. @Override
  4273. public void exitRule(ParseTreeListener listener) {
  4274. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFinally_try(this);
  4275. }
  4276. @Override
  4277. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4278. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFinally_try(this);
  4279. else return visitor.visitChildren(this);
  4280. }
  4281. }
  4282. public final Finally_tryContext finally_try() throws RecognitionException {
  4283. Finally_tryContext _localctx = new Finally_tryContext(_ctx, getState());
  4284. enterRule(_localctx, 126, RULE_finally_try);
  4285. try {
  4286. enterOuterAlt(_localctx, 1);
  4287. {
  4288. setState(643); match(R_FINALLY);
  4289. setState(644); def_block();
  4290. }
  4291. }
  4292. catch (RecognitionException re) {
  4293. _localctx.exception = re;
  4294. _errHandler.reportError(this, re);
  4295. _errHandler.recover(this, re);
  4296. }
  4297. finally {
  4298. exitRule();
  4299. }
  4300. return _localctx;
  4301. }
  4302. public static class Flux_controlContext extends ParserRuleContext {
  4303. public String control;
  4304. public Token R_GOTO;
  4305. public Token R_CONTINUE;
  4306. public Token R_BREAK;
  4307. public TerminalNode R_CONTINUE() { return getToken(IvannosysGrammarParser.R_CONTINUE, 0); }
  4308. public TerminalNode R_GOTO() { return getToken(IvannosysGrammarParser.R_GOTO, 0); }
  4309. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  4310. public TerminalNode R_BREAK() { return getToken(IvannosysGrammarParser.R_BREAK, 0); }
  4311. public Flux_controlContext(ParserRuleContext parent, int invokingState) {
  4312. super(parent, invokingState);
  4313. }
  4314. @Override public int getRuleIndex() { return RULE_flux_control; }
  4315. @Override
  4316. public void enterRule(ParseTreeListener listener) {
  4317. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterFlux_control(this);
  4318. }
  4319. @Override
  4320. public void exitRule(ParseTreeListener listener) {
  4321. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitFlux_control(this);
  4322. }
  4323. @Override
  4324. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4325. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitFlux_control(this);
  4326. else return visitor.visitChildren(this);
  4327. }
  4328. }
  4329. public final Flux_controlContext flux_control() throws RecognitionException {
  4330. Flux_controlContext _localctx = new Flux_controlContext(_ctx, getState());
  4331. enterRule(_localctx, 128, RULE_flux_control);
  4332. try {
  4333. setState(653);
  4334. switch (_input.LA(1)) {
  4335. case R_GOTO:
  4336. enterOuterAlt(_localctx, 1);
  4337. {
  4338. setState(646); ((Flux_controlContext)_localctx).R_GOTO = match(R_GOTO);
  4339. setState(647); match(ID);
  4340. ((Flux_controlContext)_localctx).control = (((Flux_controlContext)_localctx).R_GOTO!=null?((Flux_controlContext)_localctx).R_GOTO.getText():null);
  4341. }
  4342. break;
  4343. case R_CONTINUE:
  4344. enterOuterAlt(_localctx, 2);
  4345. {
  4346. setState(649); ((Flux_controlContext)_localctx).R_CONTINUE = match(R_CONTINUE);
  4347. ((Flux_controlContext)_localctx).control = (((Flux_controlContext)_localctx).R_CONTINUE!=null?((Flux_controlContext)_localctx).R_CONTINUE.getText():null);
  4348. }
  4349. break;
  4350. case R_BREAK:
  4351. enterOuterAlt(_localctx, 3);
  4352. {
  4353. setState(651); ((Flux_controlContext)_localctx).R_BREAK = match(R_BREAK);
  4354. ((Flux_controlContext)_localctx).control = (((Flux_controlContext)_localctx).R_BREAK!=null?((Flux_controlContext)_localctx).R_BREAK.getText():null);
  4355. }
  4356. break;
  4357. default:
  4358. throw new NoViableAltException(this);
  4359. }
  4360. }
  4361. catch (RecognitionException re) {
  4362. _localctx.exception = re;
  4363. _errHandler.reportError(this, re);
  4364. _errHandler.recover(this, re);
  4365. }
  4366. finally {
  4367. exitRule();
  4368. }
  4369. return _localctx;
  4370. }
  4371. public static class NewstmtContext extends ParserRuleContext {
  4372. public TerminalNode T_INTEIRO() { return getToken(IvannosysGrammarParser.T_INTEIRO, 0); }
  4373. public TerminalNode R_VIRGULA() { return getToken(IvannosysGrammarParser.R_VIRGULA, 0); }
  4374. public TerminalNode R_PAR_D() { return getToken(IvannosysGrammarParser.R_PAR_D, 0); }
  4375. public TerminalNode R_PAR_E() { return getToken(IvannosysGrammarParser.R_PAR_E, 0); }
  4376. public TypeContext type() {
  4377. return getRuleContext(TypeContext.class,0);
  4378. }
  4379. public TerminalNode R_NEW() { return getToken(IvannosysGrammarParser.R_NEW, 0); }
  4380. public NewstmtContext(ParserRuleContext parent, int invokingState) {
  4381. super(parent, invokingState);
  4382. }
  4383. @Override public int getRuleIndex() { return RULE_newstmt; }
  4384. @Override
  4385. public void enterRule(ParseTreeListener listener) {
  4386. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterNewstmt(this);
  4387. }
  4388. @Override
  4389. public void exitRule(ParseTreeListener listener) {
  4390. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitNewstmt(this);
  4391. }
  4392. @Override
  4393. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4394. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitNewstmt(this);
  4395. else return visitor.visitChildren(this);
  4396. }
  4397. }
  4398. public final NewstmtContext newstmt() throws RecognitionException {
  4399. NewstmtContext _localctx = new NewstmtContext(_ctx, getState());
  4400. enterRule(_localctx, 130, RULE_newstmt);
  4401. int _la;
  4402. try {
  4403. enterOuterAlt(_localctx, 1);
  4404. {
  4405. setState(655); match(R_NEW);
  4406. setState(656); match(R_PAR_E);
  4407. setState(657); type();
  4408. setState(660);
  4409. _la = _input.LA(1);
  4410. if (_la==R_VIRGULA) {
  4411. {
  4412. setState(658); match(R_VIRGULA);
  4413. setState(659); match(T_INTEIRO);
  4414. }
  4415. }
  4416. setState(662); match(R_PAR_D);
  4417. }
  4418. }
  4419. catch (RecognitionException re) {
  4420. _localctx.exception = re;
  4421. _errHandler.reportError(this, re);
  4422. _errHandler.recover(this, re);
  4423. }
  4424. finally {
  4425. exitRule();
  4426. }
  4427. return _localctx;
  4428. }
  4429. public static class DeleteContext extends ParserRuleContext {
  4430. public ExpressionContext expression(int i) {
  4431. return getRuleContext(ExpressionContext.class,i);
  4432. }
  4433. public TerminalNode R_VIRGULA() { return getToken(IvannosysGrammarParser.R_VIRGULA, 0); }
  4434. public List<ExpressionContext> expression() {
  4435. return getRuleContexts(ExpressionContext.class);
  4436. }
  4437. public TerminalNode R_DELETE() { return getToken(IvannosysGrammarParser.R_DELETE, 0); }
  4438. public DeleteContext(ParserRuleContext parent, int invokingState) {
  4439. super(parent, invokingState);
  4440. }
  4441. @Override public int getRuleIndex() { return RULE_delete; }
  4442. @Override
  4443. public void enterRule(ParseTreeListener listener) {
  4444. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterDelete(this);
  4445. }
  4446. @Override
  4447. public void exitRule(ParseTreeListener listener) {
  4448. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitDelete(this);
  4449. }
  4450. @Override
  4451. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4452. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitDelete(this);
  4453. else return visitor.visitChildren(this);
  4454. }
  4455. }
  4456. public final DeleteContext delete() throws RecognitionException {
  4457. DeleteContext _localctx = new DeleteContext(_ctx, getState());
  4458. enterRule(_localctx, 132, RULE_delete);
  4459. int _la;
  4460. try {
  4461. enterOuterAlt(_localctx, 1);
  4462. {
  4463. setState(664); match(R_DELETE);
  4464. setState(665); expression(0);
  4465. setState(668);
  4466. _la = _input.LA(1);
  4467. if (_la==R_VIRGULA) {
  4468. {
  4469. setState(666); match(R_VIRGULA);
  4470. setState(667); expression(0);
  4471. }
  4472. }
  4473. }
  4474. }
  4475. catch (RecognitionException re) {
  4476. _localctx.exception = re;
  4477. _errHandler.reportError(this, re);
  4478. _errHandler.recover(this, re);
  4479. }
  4480. finally {
  4481. exitRule();
  4482. }
  4483. return _localctx;
  4484. }
  4485. public static class TypeContext extends ParserRuleContext {
  4486. public String ltype;
  4487. public String keytype;
  4488. public String valuetype;
  4489. public TypenameContext typename;
  4490. public IndexedTypeContext indexedType;
  4491. public TypenameContext typename() {
  4492. return getRuleContext(TypenameContext.class,0);
  4493. }
  4494. public MapTypeContext mapType() {
  4495. return getRuleContext(MapTypeContext.class,0);
  4496. }
  4497. public IndexedTypeContext indexedType() {
  4498. return getRuleContext(IndexedTypeContext.class,0);
  4499. }
  4500. public TypeContext(ParserRuleContext parent, int invokingState) {
  4501. super(parent, invokingState);
  4502. }
  4503. @Override public int getRuleIndex() { return RULE_type; }
  4504. @Override
  4505. public void enterRule(ParseTreeListener listener) {
  4506. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterType(this);
  4507. }
  4508. @Override
  4509. public void exitRule(ParseTreeListener listener) {
  4510. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitType(this);
  4511. }
  4512. @Override
  4513. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4514. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitType(this);
  4515. else return visitor.visitChildren(this);
  4516. }
  4517. }
  4518. public final TypeContext type() throws RecognitionException {
  4519. TypeContext _localctx = new TypeContext(_ctx, getState());
  4520. enterRule(_localctx, 134, RULE_type);
  4521. try {
  4522. setState(679);
  4523. switch ( getInterpreter().adaptivePredict(_input,67,_ctx) ) {
  4524. case 1:
  4525. enterOuterAlt(_localctx, 1);
  4526. {
  4527. setState(670); ((TypeContext)_localctx).typename = typename();
  4528. ((TypeContext)_localctx).ltype = ((TypeContext)_localctx).typename.ltype;
  4529. }
  4530. break;
  4531. case 2:
  4532. enterOuterAlt(_localctx, 2);
  4533. {
  4534. setState(673); ((TypeContext)_localctx).indexedType = indexedType();
  4535. ((TypeContext)_localctx).ltype = ((TypeContext)_localctx).indexedType.ltype;
  4536. }
  4537. break;
  4538. case 3:
  4539. enterOuterAlt(_localctx, 3);
  4540. {
  4541. setState(676); mapType();
  4542. ((TypeContext)_localctx).ltype = "map";
  4543. }
  4544. break;
  4545. }
  4546. }
  4547. catch (RecognitionException re) {
  4548. _localctx.exception = re;
  4549. _errHandler.reportError(this, re);
  4550. _errHandler.recover(this, re);
  4551. }
  4552. finally {
  4553. exitRule();
  4554. }
  4555. return _localctx;
  4556. }
  4557. public static class IndexedTypeContext extends ParserRuleContext {
  4558. public String ltype;
  4559. public TypenameContext typename;
  4560. public IndexedTypeContext it;
  4561. public TypenameContext typename() {
  4562. return getRuleContext(TypenameContext.class,0);
  4563. }
  4564. public IndexedTypeContext indexedType() {
  4565. return getRuleContext(IndexedTypeContext.class,0);
  4566. }
  4567. public IndexContext index() {
  4568. return getRuleContext(IndexContext.class,0);
  4569. }
  4570. public IndexedTypeContext(ParserRuleContext parent, int invokingState) {
  4571. super(parent, invokingState);
  4572. }
  4573. @Override public int getRuleIndex() { return RULE_indexedType; }
  4574. @Override
  4575. public void enterRule(ParseTreeListener listener) {
  4576. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterIndexedType(this);
  4577. }
  4578. @Override
  4579. public void exitRule(ParseTreeListener listener) {
  4580. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitIndexedType(this);
  4581. }
  4582. @Override
  4583. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4584. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitIndexedType(this);
  4585. else return visitor.visitChildren(this);
  4586. }
  4587. }
  4588. public final IndexedTypeContext indexedType() throws RecognitionException {
  4589. IndexedTypeContext _localctx = new IndexedTypeContext(_ctx, getState());
  4590. enterRule(_localctx, 136, RULE_indexedType);
  4591. try {
  4592. setState(688);
  4593. switch (_input.LA(1)) {
  4594. case R_ERROR:
  4595. case R_INT:
  4596. case R_CHAR:
  4597. case R_BOOL:
  4598. case R_STRING:
  4599. case R_OP_AST:
  4600. case ID:
  4601. enterOuterAlt(_localctx, 1);
  4602. {
  4603. setState(681); ((IndexedTypeContext)_localctx).typename = typename();
  4604. ((IndexedTypeContext)_localctx).ltype = ((IndexedTypeContext)_localctx).typename.ltype;
  4605. }
  4606. break;
  4607. case R_CHA_E:
  4608. enterOuterAlt(_localctx, 2);
  4609. {
  4610. setState(684); index();
  4611. setState(685); ((IndexedTypeContext)_localctx).it = indexedType();
  4612. ((IndexedTypeContext)_localctx).ltype = ((IndexedTypeContext)_localctx).it.ltype;
  4613. }
  4614. break;
  4615. default:
  4616. throw new NoViableAltException(this);
  4617. }
  4618. }
  4619. catch (RecognitionException re) {
  4620. _localctx.exception = re;
  4621. _errHandler.reportError(this, re);
  4622. _errHandler.recover(this, re);
  4623. }
  4624. finally {
  4625. exitRule();
  4626. }
  4627. return _localctx;
  4628. }
  4629. public static class TypenameContext extends ParserRuleContext {
  4630. public String ltype;
  4631. public Boolean pointer;
  4632. public Token ID;
  4633. public QualifiedIdContext qualifiedId;
  4634. public BaseTypeContext baseType;
  4635. public TypenameContext tn;
  4636. public TypenameContext typename() {
  4637. return getRuleContext(TypenameContext.class,0);
  4638. }
  4639. public TerminalNode R_OP_AST() { return getToken(IvannosysGrammarParser.R_OP_AST, 0); }
  4640. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  4641. public QualifiedIdContext qualifiedId() {
  4642. return getRuleContext(QualifiedIdContext.class,0);
  4643. }
  4644. public BaseTypeContext baseType() {
  4645. return getRuleContext(BaseTypeContext.class,0);
  4646. }
  4647. public TypenameContext(ParserRuleContext parent, int invokingState) {
  4648. super(parent, invokingState);
  4649. }
  4650. @Override public int getRuleIndex() { return RULE_typename; }
  4651. @Override
  4652. public void enterRule(ParseTreeListener listener) {
  4653. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterTypename(this);
  4654. }
  4655. @Override
  4656. public void exitRule(ParseTreeListener listener) {
  4657. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitTypename(this);
  4658. }
  4659. @Override
  4660. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4661. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitTypename(this);
  4662. else return visitor.visitChildren(this);
  4663. }
  4664. }
  4665. public final TypenameContext typename() throws RecognitionException {
  4666. TypenameContext _localctx = new TypenameContext(_ctx, getState());
  4667. enterRule(_localctx, 138, RULE_typename);
  4668. try {
  4669. setState(702);
  4670. switch ( getInterpreter().adaptivePredict(_input,69,_ctx) ) {
  4671. case 1:
  4672. enterOuterAlt(_localctx, 1);
  4673. {
  4674. setState(690); ((TypenameContext)_localctx).ID = match(ID);
  4675. ((TypenameContext)_localctx).ltype = (((TypenameContext)_localctx).ID!=null?((TypenameContext)_localctx).ID.getText():null);
  4676. }
  4677. break;
  4678. case 2:
  4679. enterOuterAlt(_localctx, 2);
  4680. {
  4681. setState(692); ((TypenameContext)_localctx).qualifiedId = qualifiedId();
  4682. ((TypenameContext)_localctx).ltype = (((TypenameContext)_localctx).qualifiedId!=null?_input.getText(((TypenameContext)_localctx).qualifiedId.start,((TypenameContext)_localctx).qualifiedId.stop):null);
  4683. }
  4684. break;
  4685. case 3:
  4686. enterOuterAlt(_localctx, 3);
  4687. {
  4688. setState(695); ((TypenameContext)_localctx).baseType = baseType();
  4689. ((TypenameContext)_localctx).ltype = ((TypenameContext)_localctx).baseType.ltype;
  4690. }
  4691. break;
  4692. case 4:
  4693. enterOuterAlt(_localctx, 4);
  4694. {
  4695. setState(698); match(R_OP_AST);
  4696. setState(699); ((TypenameContext)_localctx).tn = typename();
  4697. ((TypenameContext)_localctx).ltype = ((TypenameContext)_localctx).tn.ltype;
  4698. }
  4699. break;
  4700. }
  4701. }
  4702. catch (RecognitionException re) {
  4703. _localctx.exception = re;
  4704. _errHandler.reportError(this, re);
  4705. _errHandler.recover(this, re);
  4706. }
  4707. finally {
  4708. exitRule();
  4709. }
  4710. return _localctx;
  4711. }
  4712. public static class QualifiedIdContext extends ParserRuleContext {
  4713. public List<TerminalNode> ID() { return getTokens(IvannosysGrammarParser.ID); }
  4714. public TerminalNode R_PONTO() { return getToken(IvannosysGrammarParser.R_PONTO, 0); }
  4715. public TerminalNode ID(int i) {
  4716. return getToken(IvannosysGrammarParser.ID, i);
  4717. }
  4718. public QualifiedIdContext(ParserRuleContext parent, int invokingState) {
  4719. super(parent, invokingState);
  4720. }
  4721. @Override public int getRuleIndex() { return RULE_qualifiedId; }
  4722. @Override
  4723. public void enterRule(ParseTreeListener listener) {
  4724. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterQualifiedId(this);
  4725. }
  4726. @Override
  4727. public void exitRule(ParseTreeListener listener) {
  4728. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitQualifiedId(this);
  4729. }
  4730. @Override
  4731. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4732. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitQualifiedId(this);
  4733. else return visitor.visitChildren(this);
  4734. }
  4735. }
  4736. public final QualifiedIdContext qualifiedId() throws RecognitionException {
  4737. QualifiedIdContext _localctx = new QualifiedIdContext(_ctx, getState());
  4738. enterRule(_localctx, 140, RULE_qualifiedId);
  4739. try {
  4740. enterOuterAlt(_localctx, 1);
  4741. {
  4742. setState(704); match(ID);
  4743. setState(705); match(R_PONTO);
  4744. setState(706); match(ID);
  4745. }
  4746. }
  4747. catch (RecognitionException re) {
  4748. _localctx.exception = re;
  4749. _errHandler.reportError(this, re);
  4750. _errHandler.recover(this, re);
  4751. }
  4752. finally {
  4753. exitRule();
  4754. }
  4755. return _localctx;
  4756. }
  4757. public static class BaseTypeContext extends ParserRuleContext {
  4758. public String ltype;
  4759. public Token R_INT;
  4760. public Token R_BOOL;
  4761. public Token R_CHAR;
  4762. public Token R_STRING;
  4763. public Token R_ERROR;
  4764. public TerminalNode R_BOOL() { return getToken(IvannosysGrammarParser.R_BOOL, 0); }
  4765. public TerminalNode R_CHAR() { return getToken(IvannosysGrammarParser.R_CHAR, 0); }
  4766. public TerminalNode R_ERROR() { return getToken(IvannosysGrammarParser.R_ERROR, 0); }
  4767. public TerminalNode R_STRING() { return getToken(IvannosysGrammarParser.R_STRING, 0); }
  4768. public TerminalNode R_INT() { return getToken(IvannosysGrammarParser.R_INT, 0); }
  4769. public BaseTypeContext(ParserRuleContext parent, int invokingState) {
  4770. super(parent, invokingState);
  4771. }
  4772. @Override public int getRuleIndex() { return RULE_baseType; }
  4773. @Override
  4774. public void enterRule(ParseTreeListener listener) {
  4775. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterBaseType(this);
  4776. }
  4777. @Override
  4778. public void exitRule(ParseTreeListener listener) {
  4779. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitBaseType(this);
  4780. }
  4781. @Override
  4782. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4783. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitBaseType(this);
  4784. else return visitor.visitChildren(this);
  4785. }
  4786. }
  4787. public final BaseTypeContext baseType() throws RecognitionException {
  4788. BaseTypeContext _localctx = new BaseTypeContext(_ctx, getState());
  4789. enterRule(_localctx, 142, RULE_baseType);
  4790. try {
  4791. setState(718);
  4792. switch (_input.LA(1)) {
  4793. case R_INT:
  4794. enterOuterAlt(_localctx, 1);
  4795. {
  4796. setState(708); ((BaseTypeContext)_localctx).R_INT = match(R_INT);
  4797. ((BaseTypeContext)_localctx).ltype = (((BaseTypeContext)_localctx).R_INT!=null?((BaseTypeContext)_localctx).R_INT.getText():null);
  4798. }
  4799. break;
  4800. case R_BOOL:
  4801. enterOuterAlt(_localctx, 2);
  4802. {
  4803. setState(710); ((BaseTypeContext)_localctx).R_BOOL = match(R_BOOL);
  4804. ((BaseTypeContext)_localctx).ltype = (((BaseTypeContext)_localctx).R_BOOL!=null?((BaseTypeContext)_localctx).R_BOOL.getText():null);
  4805. }
  4806. break;
  4807. case R_CHAR:
  4808. enterOuterAlt(_localctx, 3);
  4809. {
  4810. setState(712); ((BaseTypeContext)_localctx).R_CHAR = match(R_CHAR);
  4811. ((BaseTypeContext)_localctx).ltype = (((BaseTypeContext)_localctx).R_CHAR!=null?((BaseTypeContext)_localctx).R_CHAR.getText():null);
  4812. }
  4813. break;
  4814. case R_STRING:
  4815. enterOuterAlt(_localctx, 4);
  4816. {
  4817. setState(714); ((BaseTypeContext)_localctx).R_STRING = match(R_STRING);
  4818. ((BaseTypeContext)_localctx).ltype = (((BaseTypeContext)_localctx).R_STRING!=null?((BaseTypeContext)_localctx).R_STRING.getText():null);
  4819. }
  4820. break;
  4821. case R_ERROR:
  4822. enterOuterAlt(_localctx, 5);
  4823. {
  4824. setState(716); ((BaseTypeContext)_localctx).R_ERROR = match(R_ERROR);
  4825. ((BaseTypeContext)_localctx).ltype = (((BaseTypeContext)_localctx).R_ERROR!=null?((BaseTypeContext)_localctx).R_ERROR.getText():null);
  4826. }
  4827. break;
  4828. default:
  4829. throw new NoViableAltException(this);
  4830. }
  4831. }
  4832. catch (RecognitionException re) {
  4833. _localctx.exception = re;
  4834. _errHandler.reportError(this, re);
  4835. _errHandler.recover(this, re);
  4836. }
  4837. finally {
  4838. exitRule();
  4839. }
  4840. return _localctx;
  4841. }
  4842. public static class MapTypeContext extends ParserRuleContext {
  4843. public String keytype;
  4844. public String valuetype;
  4845. public TypeContext k;
  4846. public TypeContext v;
  4847. public TerminalNode R_CHA_D() { return getToken(IvannosysGrammarParser.R_CHA_D, 0); }
  4848. public TerminalNode R_MAP() { return getToken(IvannosysGrammarParser.R_MAP, 0); }
  4849. public TypeContext type(int i) {
  4850. return getRuleContext(TypeContext.class,i);
  4851. }
  4852. public List<TypeContext> type() {
  4853. return getRuleContexts(TypeContext.class);
  4854. }
  4855. public TerminalNode R_CHA_E() { return getToken(IvannosysGrammarParser.R_CHA_E, 0); }
  4856. public MapTypeContext(ParserRuleContext parent, int invokingState) {
  4857. super(parent, invokingState);
  4858. }
  4859. @Override public int getRuleIndex() { return RULE_mapType; }
  4860. @Override
  4861. public void enterRule(ParseTreeListener listener) {
  4862. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterMapType(this);
  4863. }
  4864. @Override
  4865. public void exitRule(ParseTreeListener listener) {
  4866. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitMapType(this);
  4867. }
  4868. @Override
  4869. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4870. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitMapType(this);
  4871. else return visitor.visitChildren(this);
  4872. }
  4873. }
  4874. public final MapTypeContext mapType() throws RecognitionException {
  4875. MapTypeContext _localctx = new MapTypeContext(_ctx, getState());
  4876. enterRule(_localctx, 144, RULE_mapType);
  4877. try {
  4878. enterOuterAlt(_localctx, 1);
  4879. {
  4880. setState(720); match(R_MAP);
  4881. setState(721); match(R_CHA_E);
  4882. setState(722); ((MapTypeContext)_localctx).k = type();
  4883. setState(723); match(R_CHA_D);
  4884. setState(724); ((MapTypeContext)_localctx).v = type();
  4885. ((MapTypeContext)_localctx).keytype = (((MapTypeContext)_localctx).k!=null?_input.getText(((MapTypeContext)_localctx).k.start,((MapTypeContext)_localctx).k.stop):null);
  4886. ((MapTypeContext)_localctx).valuetype = (((MapTypeContext)_localctx).v!=null?_input.getText(((MapTypeContext)_localctx).v.start,((MapTypeContext)_localctx).v.stop):null);
  4887. }
  4888. }
  4889. catch (RecognitionException re) {
  4890. _localctx.exception = re;
  4891. _errHandler.reportError(this, re);
  4892. _errHandler.recover(this, re);
  4893. }
  4894. finally {
  4895. exitRule();
  4896. }
  4897. return _localctx;
  4898. }
  4899. public static class BuildtagsContext extends ParserRuleContext {
  4900. public Build_stmtContext build_stmt(int i) {
  4901. return getRuleContext(Build_stmtContext.class,i);
  4902. }
  4903. public List<Build_stmtContext> build_stmt() {
  4904. return getRuleContexts(Build_stmtContext.class);
  4905. }
  4906. public BuildtagsContext(ParserRuleContext parent, int invokingState) {
  4907. super(parent, invokingState);
  4908. }
  4909. @Override public int getRuleIndex() { return RULE_buildtags; }
  4910. @Override
  4911. public void enterRule(ParseTreeListener listener) {
  4912. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterBuildtags(this);
  4913. }
  4914. @Override
  4915. public void exitRule(ParseTreeListener listener) {
  4916. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitBuildtags(this);
  4917. }
  4918. @Override
  4919. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4920. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitBuildtags(this);
  4921. else return visitor.visitChildren(this);
  4922. }
  4923. }
  4924. public final BuildtagsContext buildtags() throws RecognitionException {
  4925. BuildtagsContext _localctx = new BuildtagsContext(_ctx, getState());
  4926. enterRule(_localctx, 146, RULE_buildtags);
  4927. int _la;
  4928. try {
  4929. enterOuterAlt(_localctx, 1);
  4930. {
  4931. setState(728);
  4932. _errHandler.sync(this);
  4933. _la = _input.LA(1);
  4934. do {
  4935. {
  4936. {
  4937. setState(727); build_stmt();
  4938. }
  4939. }
  4940. setState(730);
  4941. _errHandler.sync(this);
  4942. _la = _input.LA(1);
  4943. } while ( _la==R_AT );
  4944. }
  4945. }
  4946. catch (RecognitionException re) {
  4947. _localctx.exception = re;
  4948. _errHandler.reportError(this, re);
  4949. _errHandler.recover(this, re);
  4950. }
  4951. finally {
  4952. exitRule();
  4953. }
  4954. return _localctx;
  4955. }
  4956. public static class Build_stmtContext extends ParserRuleContext {
  4957. public List<BuildvalueContext> buildvalue() {
  4958. return getRuleContexts(BuildvalueContext.class);
  4959. }
  4960. public List<TerminalNode> R_VIRGULA() { return getTokens(IvannosysGrammarParser.R_VIRGULA); }
  4961. public TerminalNode R_COLON() { return getToken(IvannosysGrammarParser.R_COLON, 0); }
  4962. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  4963. public TerminalNode R_AT() { return getToken(IvannosysGrammarParser.R_AT, 0); }
  4964. public TerminalNode R_VIRGULA(int i) {
  4965. return getToken(IvannosysGrammarParser.R_VIRGULA, i);
  4966. }
  4967. public BuildvalueContext buildvalue(int i) {
  4968. return getRuleContext(BuildvalueContext.class,i);
  4969. }
  4970. public Build_stmtContext(ParserRuleContext parent, int invokingState) {
  4971. super(parent, invokingState);
  4972. }
  4973. @Override public int getRuleIndex() { return RULE_build_stmt; }
  4974. @Override
  4975. public void enterRule(ParseTreeListener listener) {
  4976. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterBuild_stmt(this);
  4977. }
  4978. @Override
  4979. public void exitRule(ParseTreeListener listener) {
  4980. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitBuild_stmt(this);
  4981. }
  4982. @Override
  4983. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  4984. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitBuild_stmt(this);
  4985. else return visitor.visitChildren(this);
  4986. }
  4987. }
  4988. public final Build_stmtContext build_stmt() throws RecognitionException {
  4989. Build_stmtContext _localctx = new Build_stmtContext(_ctx, getState());
  4990. enterRule(_localctx, 148, RULE_build_stmt);
  4991. int _la;
  4992. try {
  4993. enterOuterAlt(_localctx, 1);
  4994. {
  4995. setState(732); match(R_AT);
  4996. setState(733); match(ID);
  4997. setState(734); match(R_COLON);
  4998. setState(735); buildvalue();
  4999. setState(740);
  5000. _errHandler.sync(this);
  5001. _la = _input.LA(1);
  5002. while (_la==R_VIRGULA) {
  5003. {
  5004. {
  5005. setState(736); match(R_VIRGULA);
  5006. setState(737); buildvalue();
  5007. }
  5008. }
  5009. setState(742);
  5010. _errHandler.sync(this);
  5011. _la = _input.LA(1);
  5012. }
  5013. }
  5014. }
  5015. catch (RecognitionException re) {
  5016. _localctx.exception = re;
  5017. _errHandler.reportError(this, re);
  5018. _errHandler.recover(this, re);
  5019. }
  5020. finally {
  5021. exitRule();
  5022. }
  5023. return _localctx;
  5024. }
  5025. public static class BuildvalueContext extends ParserRuleContext {
  5026. public TerminalNode ID() { return getToken(IvannosysGrammarParser.ID, 0); }
  5027. public TerminalNode R_LIT_STRING() { return getToken(IvannosysGrammarParser.R_LIT_STRING, 0); }
  5028. public BuildvalueContext(ParserRuleContext parent, int invokingState) {
  5029. super(parent, invokingState);
  5030. }
  5031. @Override public int getRuleIndex() { return RULE_buildvalue; }
  5032. @Override
  5033. public void enterRule(ParseTreeListener listener) {
  5034. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).enterBuildvalue(this);
  5035. }
  5036. @Override
  5037. public void exitRule(ParseTreeListener listener) {
  5038. if ( listener instanceof IvannosysGrammarListener ) ((IvannosysGrammarListener)listener).exitBuildvalue(this);
  5039. }
  5040. @Override
  5041. public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
  5042. if ( visitor instanceof IvannosysGrammarVisitor ) return ((IvannosysGrammarVisitor<? extends T>)visitor).visitBuildvalue(this);
  5043. else return visitor.visitChildren(this);
  5044. }
  5045. }
  5046. public final BuildvalueContext buildvalue() throws RecognitionException {
  5047. BuildvalueContext _localctx = new BuildvalueContext(_ctx, getState());
  5048. enterRule(_localctx, 150, RULE_buildvalue);
  5049. int _la;
  5050. try {
  5051. enterOuterAlt(_localctx, 1);
  5052. {
  5053. setState(743);
  5054. _la = _input.LA(1);
  5055. if ( !(_la==ID || _la==R_LIT_STRING) ) {
  5056. _errHandler.recoverInline(this);
  5057. }
  5058. consume();
  5059. }
  5060. }
  5061. catch (RecognitionException re) {
  5062. _localctx.exception = re;
  5063. _errHandler.reportError(this, re);
  5064. _errHandler.recover(this, re);
  5065. }
  5066. finally {
  5067. exitRule();
  5068. }
  5069. return _localctx;
  5070. }
  5071. public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
  5072. switch (ruleIndex) {
  5073. case 37: return expression_sempred((ExpressionContext)_localctx, predIndex);
  5074. case 39: return primary_expr_sempred((Primary_exprContext)_localctx, predIndex);
  5075. }
  5076. return true;
  5077. }
  5078. private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
  5079. switch (predIndex) {
  5080. case 0: return precpred(_ctx, 5);
  5081. case 1: return precpred(_ctx, 4);
  5082. case 2: return precpred(_ctx, 3);
  5083. case 3: return precpred(_ctx, 2);
  5084. case 4: return precpred(_ctx, 1);
  5085. }
  5086. return true;
  5087. }
  5088. private boolean primary_expr_sempred(Primary_exprContext _localctx, int predIndex) {
  5089. switch (predIndex) {
  5090. case 5: return precpred(_ctx, 3);
  5091. case 6: return precpred(_ctx, 2);
  5092. case 7: return precpred(_ctx, 1);
  5093. }
  5094. return true;
  5095. }
  5096. public static final String _serializedATN =
  5097. "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3Y\u02ec\4\2\t\2\4"+
  5098. "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
  5099. "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
  5100. "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
  5101. "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
  5102. "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
  5103. ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
  5104. "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+
  5105. "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
  5106. "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\3\2\5\2\u009c\n\2\3\2\3\2\3\2\3\2\7\2\u00a2"+
  5107. "\n\2\f\2\16\2\u00a5\13\2\3\2\6\2\u00a8\n\2\r\2\16\2\u00a9\3\2\3\2\3\3"+
  5108. "\3\3\3\3\3\3\7\3\u00b2\n\3\f\3\16\3\u00b5\13\3\3\3\3\3\3\3\3\3\5\3\u00bb"+
  5109. "\n\3\3\4\5\4\u00be\n\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\5\5\u00c7\n\5\3\6\3"+
  5110. "\6\3\6\3\6\5\6\u00cd\n\6\3\7\3\7\3\7\3\7\3\7\6\7\u00d4\n\7\r\7\16\7\u00d5"+
  5111. "\3\7\3\7\3\b\3\b\3\b\3\b\3\t\3\t\3\t\6\t\u00e1\n\t\r\t\16\t\u00e2\3\t"+
  5112. "\3\t\3\t\3\t\5\t\u00e9\n\t\3\n\3\n\3\n\3\n\5\n\u00ef\n\n\3\n\3\n\5\n\u00f3"+
  5113. "\n\n\3\13\3\13\3\13\3\13\3\f\3\f\3\f\7\f\u00fc\n\f\f\f\16\f\u00ff\13\f"+
  5114. "\3\r\3\r\5\r\u0103\n\r\3\r\3\r\3\r\3\16\3\16\3\17\3\17\3\17\3\17\3\20"+
  5115. "\3\20\3\20\3\20\3\20\7\20\u0113\n\20\f\20\16\20\u0116\13\20\5\20\u0118"+
  5116. "\n\20\3\20\3\20\3\21\5\21\u011d\n\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22"+
  5117. "\3\22\7\22\u0127\n\22\f\22\16\22\u012a\13\22\3\22\3\22\5\22\u012e\n\22"+
  5118. "\3\23\3\23\5\23\u0132\n\23\3\23\3\23\3\23\3\24\3\24\5\24\u0139\n\24\3"+
  5119. "\24\5\24\u013c\n\24\3\24\3\24\5\24\u0140\n\24\3\24\3\24\3\25\3\25\3\25"+
  5120. "\7\25\u0147\n\25\f\25\16\25\u014a\13\25\3\26\3\26\3\26\5\26\u014f\n\26"+
  5121. "\3\26\3\26\3\26\3\27\3\27\3\27\3\27\6\27\u0158\n\27\r\27\16\27\u0159\3"+
  5122. "\27\3\27\3\30\3\30\3\30\3\30\3\30\5\30\u0163\n\30\3\30\3\30\3\30\5\30"+
  5123. "\u0168\n\30\3\31\6\31\u016b\n\31\r\31\16\31\u016c\3\32\3\32\3\32\5\32"+
  5124. "\u0172\n\32\3\33\3\33\3\33\7\33\u0177\n\33\f\33\16\33\u017a\13\33\3\33"+
  5125. "\3\33\5\33\u017e\n\33\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\5\35\u0188"+
  5126. "\n\35\3\35\3\35\3\36\3\36\3\36\5\36\u018f\n\36\3\36\3\36\3\36\5\36\u0194"+
  5127. "\n\36\3\37\3\37\3 \3 \3 \3!\3!\3!\3!\5!\u019f\n!\5!\u01a1\n!\3\"\3\"\3"+
  5128. "#\3#\3#\3#\3#\3#\3#\3$\3$\3%\3%\5%\u01b0\n%\3&\3&\3&\7&\u01b5\n&\f&\16"+
  5129. "&\u01b8\13&\3\'\3\'\3\'\3\'\3\'\3\'\5\'\u01c0\n\'\3\'\3\'\3\'\3\'\3\'"+
  5130. "\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\7\'\u01d1\n\'\f\'\16\'\u01d4"+
  5131. "\13\'\3(\3(\3(\5(\u01d9\n(\3)\3)\3)\3)\3)\5)\u01e0\n)\3)\3)\3)\3)\3)\3"+
  5132. ")\3)\3)\3)\3)\3)\3)\7)\u01ee\n)\f)\16)\u01f1\13)\3*\3*\3*\3*\3*\5*\u01f8"+
  5133. "\n*\3+\3+\5+\u01fc\n+\3,\3,\3,\3,\3,\5,\u0203\n,\3-\3-\3-\5-\u0208\n-"+
  5134. "\3-\3-\3.\3.\3.\3/\3/\3/\5/\u0212\n/\3\60\3\60\3\60\6\60\u0217\n\60\r"+
  5135. "\60\16\60\u0218\3\60\3\60\3\61\3\61\3\61\3\61\5\61\u0221\n\61\3\61\5\61"+
  5136. "\u0224\n\61\3\62\5\62\u0227\n\62\3\62\3\62\3\63\3\63\5\63\u022d\n\63\3"+
  5137. "\63\3\63\3\63\3\64\3\64\3\64\3\65\3\65\3\65\5\65\u0238\n\65\3\65\3\65"+
  5138. "\5\65\u023c\n\65\3\65\3\65\3\66\3\66\3\66\7\66\u0243\n\66\f\66\16\66\u0246"+
  5139. "\13\66\3\67\3\67\3\67\3\67\38\38\38\39\39\79\u0251\n9\f9\169\u0254\13"+
  5140. "9\39\39\3:\3:\3:\3:\5:\u025c\n:\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3"+
  5141. ";\3;\3;\3;\5;\u026e\n;\3<\3<\3=\3=\3=\3=\3>\3>\3>\3>\3?\3?\3?\3?\5?\u027e"+
  5142. "\n?\3@\3@\3@\3@\3@\3@\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\5B\u0290\nB\3C\3C"+
  5143. "\3C\3C\3C\5C\u0297\nC\3C\3C\3D\3D\3D\3D\5D\u029f\nD\3E\3E\3E\3E\3E\3E"+
  5144. "\3E\3E\3E\5E\u02aa\nE\3F\3F\3F\3F\3F\3F\3F\5F\u02b3\nF\3G\3G\3G\3G\3G"+
  5145. "\3G\3G\3G\3G\3G\3G\3G\5G\u02c1\nG\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I"+
  5146. "\3I\3I\5I\u02d1\nI\3J\3J\3J\3J\3J\3J\3J\3K\6K\u02db\nK\rK\16K\u02dc\3"+
  5147. "L\3L\3L\3L\3L\3L\7L\u02e5\nL\fL\16L\u02e8\13L\3M\3M\3M\2\4LPN\2\4\6\b"+
  5148. "\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVX"+
  5149. "Z\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090"+
  5150. "\u0092\u0094\u0096\u0098\2\r\3\2DI\3\2QR\4\2\20\20\67\67\5\2\16\16;;F"+
  5151. "I\3\2\6\7\3\2\3\5\3\2>C\3\2<=\5\2\n\n//HI\3\2KL\4\2TTVV\u030b\2\u009b"+
  5152. "\3\2\2\2\4\u00ba\3\2\2\2\6\u00bd\3\2\2\2\b\u00c6\3\2\2\2\n\u00c8\3\2\2"+
  5153. "\2\f\u00ce\3\2\2\2\16\u00d9\3\2\2\2\20\u00e8\3\2\2\2\22\u00ea\3\2\2\2"+
  5154. "\24\u00f4\3\2\2\2\26\u00f8\3\2\2\2\30\u0100\3\2\2\2\32\u0107\3\2\2\2\34"+
  5155. "\u0109\3\2\2\2\36\u010d\3\2\2\2 \u011c\3\2\2\2\"\u012d\3\2\2\2$\u012f"+
  5156. "\3\2\2\2&\u0136\3\2\2\2(\u0143\3\2\2\2*\u014b\3\2\2\2,\u0153\3\2\2\2."+
  5157. "\u0167\3\2\2\2\60\u016a\3\2\2\2\62\u0171\3\2\2\2\64\u0173\3\2\2\2\66\u017f"+
  5158. "\3\2\2\28\u0183\3\2\2\2:\u018e\3\2\2\2<\u0195\3\2\2\2>\u0197\3\2\2\2@"+
  5159. "\u01a0\3\2\2\2B\u01a2\3\2\2\2D\u01a4\3\2\2\2F\u01ab\3\2\2\2H\u01ad\3\2"+
  5160. "\2\2J\u01b1\3\2\2\2L\u01bf\3\2\2\2N\u01d8\3\2\2\2P\u01df\3\2\2\2R\u01f7"+
  5161. "\3\2\2\2T\u01fb\3\2\2\2V\u0202\3\2\2\2X\u0204\3\2\2\2Z\u020b\3\2\2\2\\"+
  5162. "\u0211\3\2\2\2^\u0213\3\2\2\2`\u0220\3\2\2\2b\u0226\3\2\2\2d\u022a\3\2"+
  5163. "\2\2f\u0231\3\2\2\2h\u0234\3\2\2\2j\u023f\3\2\2\2l\u0247\3\2\2\2n\u024b"+
  5164. "\3\2\2\2p\u024e\3\2\2\2r\u025b\3\2\2\2t\u026d\3\2\2\2v\u026f\3\2\2\2x"+
  5165. "\u0271\3\2\2\2z\u0275\3\2\2\2|\u0279\3\2\2\2~\u027f\3\2\2\2\u0080\u0285"+
  5166. "\3\2\2\2\u0082\u028f\3\2\2\2\u0084\u0291\3\2\2\2\u0086\u029a\3\2\2\2\u0088"+
  5167. "\u02a9\3\2\2\2\u008a\u02b2\3\2\2\2\u008c\u02c0\3\2\2\2\u008e\u02c2\3\2"+
  5168. "\2\2\u0090\u02d0\3\2\2\2\u0092\u02d2\3\2\2\2\u0094\u02da\3\2\2\2\u0096"+
  5169. "\u02de\3\2\2\2\u0098\u02e9\3\2\2\2\u009a\u009c\5\u0094K\2\u009b\u009a"+
  5170. "\3\2\2\2\u009b\u009c\3\2\2\2\u009c\u009d\3\2\2\2\u009d\u009e\7\34\2\2"+
  5171. "\u009e\u009f\7T\2\2\u009f\u00a3\7\60\2\2\u00a0\u00a2\5\4\3\2\u00a1\u00a0"+
  5172. "\3\2\2\2\u00a2\u00a5\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a3\u00a4\3\2\2\2\u00a4"+
  5173. "\u00a7\3\2\2\2\u00a5\u00a3\3\2\2\2\u00a6\u00a8\5\b\5\2\u00a7\u00a6\3\2"+
  5174. "\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00a7\3\2\2\2\u00a9\u00aa\3\2\2\2\u00aa"+
  5175. "\u00ab\3\2\2\2\u00ab\u00ac\7\2\2\3\u00ac\3\3\2\2\2\u00ad\u00ae\7\33\2"+
  5176. "\2\u00ae\u00af\7\61\2\2\u00af\u00b3\5\6\4\2\u00b0\u00b2\5\6\4\2\u00b1"+
  5177. "\u00b0\3\2\2\2\u00b2\u00b5\3\2\2\2\u00b3\u00b1\3\2\2\2\u00b3\u00b4\3\2"+
  5178. "\2\2\u00b4\u00b6\3\2\2\2\u00b5\u00b3\3\2\2\2\u00b6\u00b7\7\62\2\2\u00b7"+
  5179. "\u00bb\3\2\2\2\u00b8\u00b9\7\33\2\2\u00b9\u00bb\5\6\4\2\u00ba\u00ad\3"+
  5180. "\2\2\2\u00ba\u00b8\3\2\2\2\u00bb\5\3\2\2\2\u00bc\u00be\7T\2\2\u00bd\u00bc"+
  5181. "\3\2\2\2\u00bd\u00be\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf\u00c0\7P\2\2\u00c0"+
  5182. "\7\3\2\2\2\u00c1\u00c7\5\"\22\2\u00c2\u00c7\5\20\t\2\u00c3\u00c7\5\n\6"+
  5183. "\2\u00c4\u00c7\5\f\7\2\u00c5\u00c7\5&\24\2\u00c6\u00c1\3\2\2\2\u00c6\u00c2"+
  5184. "\3\2\2\2\u00c6\u00c3\3\2\2\2\u00c6\u00c4\3\2\2\2\u00c6\u00c5\3\2\2\2\u00c7"+
  5185. "\t\3\2\2\2\u00c8\u00c9\7\"\2\2\u00c9\u00cc\7T\2\2\u00ca\u00cd\5^\60\2"+
  5186. "\u00cb\u00cd\5\u0088E\2\u00cc\u00ca\3\2\2\2\u00cc\u00cb\3\2\2\2\u00cd"+
  5187. "\13\3\2\2\2\u00ce\u00cf\7\"\2\2\u00cf\u00d0\7T\2\2\u00d0\u00d1\7\13\2"+
  5188. "\2\u00d1\u00d3\7\63\2\2\u00d2\u00d4\5\16\b\2\u00d3\u00d2\3\2\2\2\u00d4"+
  5189. "\u00d5\3\2\2\2\u00d5\u00d3\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6\u00d7\3\2"+
  5190. "\2\2\u00d7\u00d8\7\64\2\2\u00d8\r\3\2\2\2\u00d9\u00da\7T\2\2\u00da\u00db"+
  5191. "\5\36\20\2\u00db\u00dc\5(\25\2\u00dc\17\3\2\2\2\u00dd\u00de\7\17\2\2\u00de"+
  5192. "\u00e0\7\61\2\2\u00df\u00e1\5\22\n\2\u00e0\u00df\3\2\2\2\u00e1\u00e2\3"+
  5193. "\2\2\2\u00e2\u00e0\3\2\2\2\u00e2\u00e3\3\2\2\2\u00e3\u00e4\3\2\2\2\u00e4"+
  5194. "\u00e5\7\62\2\2\u00e5\u00e9\3\2\2\2\u00e6\u00e7\7\17\2\2\u00e7\u00e9\5"+
  5195. "\22\n\2\u00e8\u00dd\3\2\2\2\u00e8\u00e6\3\2\2\2\u00e9\21\3\2\2\2\u00ea"+
  5196. "\u00f2\5\26\f\2\u00eb\u00ee\5\u0088E\2\u00ec\u00ed\7\67\2\2\u00ed\u00ef"+
  5197. "\5J&\2\u00ee\u00ec\3\2\2\2\u00ee\u00ef\3\2\2\2\u00ef\u00f3\3\2\2\2\u00f0"+
  5198. "\u00f1\7\67\2\2\u00f1\u00f3\5J&\2\u00f2\u00eb\3\2\2\2\u00f2\u00f0\3\2"+
  5199. "\2\2\u00f3\23\3\2\2\2\u00f4\u00f5\5\26\f\2\u00f5\u00f6\7\20\2\2\u00f6"+
  5200. "\u00f7\5J&\2\u00f7\25\3\2\2\2\u00f8\u00fd\7T\2\2\u00f9\u00fa\78\2\2\u00fa"+
  5201. "\u00fc\7T\2\2\u00fb\u00f9\3\2\2\2\u00fc\u00ff\3\2\2\2\u00fd\u00fb\3\2"+
  5202. "\2\2\u00fd\u00fe\3\2\2\2\u00fe\27\3\2\2\2\u00ff\u00fd\3\2\2\2\u0100\u0102"+
  5203. "\5J&\2\u0101\u0103\5\32\16\2\u0102\u0101\3\2\2\2\u0102\u0103\3\2\2\2\u0103"+
  5204. "\u0104\3\2\2\2\u0104\u0105\7\67\2\2\u0105\u0106\5J&\2\u0106\31\3\2\2\2"+
  5205. "\u0107\u0108\t\2\2\2\u0108\33\3\2\2\2\u0109\u010a\7\65\2\2\u010a\u010b"+
  5206. "\5L\'\2\u010b\u010c\7\66\2\2\u010c\35\3\2\2\2\u010d\u0117\7\61\2\2\u010e"+
  5207. "\u0118\5J&\2\u010f\u0114\5 \21\2\u0110\u0111\78\2\2\u0111\u0113\5 \21"+
  5208. "\2\u0112\u0110\3\2\2\2\u0113\u0116\3\2\2\2\u0114\u0112\3\2\2\2\u0114\u0115"+
  5209. "\3\2\2\2\u0115\u0118\3\2\2\2\u0116\u0114\3\2\2\2\u0117\u010e\3\2\2\2\u0117"+
  5210. "\u010f\3\2\2\2\u0117\u0118\3\2\2\2\u0118\u0119\3\2\2\2\u0119\u011a\7\62"+
  5211. "\2\2\u011a\37\3\2\2\2\u011b\u011d\5\26\f\2\u011c\u011b\3\2\2\2\u011c\u011d"+
  5212. "\3\2\2\2\u011d\u011e\3\2\2\2\u011e\u011f\5\u0088E\2\u011f!\3\2\2\2\u0120"+
  5213. "\u0121\7$\2\2\u0121\u012e\5$\23\2\u0122\u0123\7$\2\2\u0123\u0124\7\61"+
  5214. "\2\2\u0124\u0128\5$\23\2\u0125\u0127\5$\23\2\u0126\u0125\3\2\2\2\u0127"+
  5215. "\u012a\3\2\2\2\u0128\u0126\3\2\2\2\u0128\u0129\3\2\2\2\u0129\u012b\3\2"+
  5216. "\2\2\u012a\u0128\3\2\2\2\u012b\u012c\7\62\2\2\u012c\u012e\3\2\2\2\u012d"+
  5217. "\u0120\3\2\2\2\u012d\u0122\3\2\2\2\u012e#\3\2\2\2\u012f\u0131\7T\2\2\u0130"+
  5218. "\u0132\5\u0088E\2\u0131\u0130\3\2\2\2\u0131\u0132\3\2\2\2\u0132\u0133"+
  5219. "\3\2\2\2\u0133\u0134\7\67\2\2\u0134\u0135\5\62\32\2\u0135%\3\2\2\2\u0136"+
  5220. "\u0138\7#\2\2\u0137\u0139\5*\26\2\u0138\u0137\3\2\2\2\u0138\u0139\3\2"+
  5221. "\2\2\u0139\u013b\3\2\2\2\u013a\u013c\7T\2\2\u013b\u013a\3\2\2\2\u013b"+
  5222. "\u013c\3\2\2\2\u013c\u013d\3\2\2\2\u013d\u013f\5\36\20\2\u013e\u0140\5"+
  5223. "(\25\2\u013f\u013e\3\2\2\2\u013f\u0140\3\2\2\2\u0140\u0141\3\2\2\2\u0141"+
  5224. "\u0142\5p9\2\u0142\'\3\2\2\2\u0143\u0148\5\u0088E\2\u0144\u0145\78\2\2"+
  5225. "\u0145\u0147\5\u0088E\2\u0146\u0144\3\2\2\2\u0147\u014a\3\2\2\2\u0148"+
  5226. "\u0146\3\2\2\2\u0148\u0149\3\2\2\2\u0149)\3\2\2\2\u014a\u0148\3\2\2\2"+
  5227. "\u014b\u014c\7\61\2\2\u014c\u014e\7T\2\2\u014d\u014f\7I\2\2\u014e\u014d"+
  5228. "\3\2\2\2\u014e\u014f\3\2\2\2\u014f\u0150\3\2\2\2\u0150\u0151\5\u0088E"+
  5229. "\2\u0151\u0152\7\62\2\2\u0152+\3\2\2\2\u0153\u0154\7&\2\2\u0154\u0155"+
  5230. "\5@!\2\u0155\u0157\7\63\2\2\u0156\u0158\5.\30\2\u0157\u0156\3\2\2\2\u0158"+
  5231. "\u0159\3\2\2\2\u0159\u0157\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u015b\3\2"+
  5232. "\2\2\u015b\u015c\7\64\2\2\u015c-\3\2\2\2\u015d\u015e\7\'\2\2\u015e\u015f"+
  5233. "\5J&\2\u015f\u0160\7:\2\2\u0160\u0162\5\60\31\2\u0161\u0163\7+\2\2\u0162"+
  5234. "\u0161\3\2\2\2\u0162\u0163\3\2\2\2\u0163\u0168\3\2\2\2\u0164\u0165\7\32"+
  5235. "\2\2\u0165\u0166\7:\2\2\u0166\u0168\5\60\31\2\u0167\u015d\3\2\2\2\u0167"+
  5236. "\u0164\3\2\2\2\u0168/\3\2\2\2\u0169\u016b\5t;\2\u016a\u0169\3\2\2\2\u016b"+
  5237. "\u016c\3\2\2\2\u016c\u016a\3\2\2\2\u016c\u016d\3\2\2\2\u016d\61\3\2\2"+
  5238. "\2\u016e\u0172\7U\2\2\u016f\u0172\t\3\2\2\u0170\u0172\7O\2\2\u0171\u016e"+
  5239. "\3\2\2\2\u0171\u016f\3\2\2\2\u0171\u0170\3\2\2\2\u0172\63\3\2\2\2\u0173"+
  5240. "\u0178\5\66\34\2\u0174\u0175\7-\2\2\u0175\u0177\5\66\34\2\u0176\u0174"+
  5241. "\3\2\2\2\u0177\u017a\3\2\2\2\u0178\u0176\3\2\2\2\u0178\u0179\3\2\2\2\u0179"+
  5242. "\u017d\3\2\2\2\u017a\u0178\3\2\2\2\u017b\u017c\7-\2\2\u017c\u017e\5p9"+
  5243. "\2\u017d\u017b\3\2\2\2\u017d\u017e\3\2\2\2\u017e\65\3\2\2\2\u017f\u0180"+
  5244. "\7.\2\2\u0180\u0181\5@!\2\u0181\u0182\5p9\2\u0182\67\3\2\2\2\u0183\u0187"+
  5245. "\7(\2\2\u0184\u0188\5:\36\2\u0185\u0188\5D#\2\u0186\u0188\5@!\2\u0187"+
  5246. "\u0184\3\2\2\2\u0187\u0185\3\2\2\2\u0187\u0186\3\2\2\2\u0188\u0189\3\2"+
  5247. "\2\2\u0189\u018a\5p9\2\u018a9\3\2\2\2\u018b\u018c\5<\37\2\u018c\u018d"+
  5248. "\7\60\2\2\u018d\u018f\3\2\2\2\u018e\u018b\3\2\2\2\u018e\u018f\3\2\2\2"+
  5249. "\u018f\u0190\3\2\2\2\u0190\u0193\5@!\2\u0191\u0192\7\60\2\2\u0192\u0194"+
  5250. "\5B\"\2\u0193\u0191\3\2\2\2\u0193\u0194\3\2\2\2\u0194;\3\2\2\2\u0195\u0196"+
  5251. "\5V,\2\u0196=\3\2\2\2\u0197\u0198\7\63\2\2\u0198\u0199\7\64\2\2\u0199"+
  5252. "?\3\2\2\2\u019a\u01a1\5L\'\2\u019b\u019e\5V,\2\u019c\u019d\7\60\2\2\u019d"+
  5253. "\u019f\5L\'\2\u019e\u019c\3\2\2\2\u019e\u019f\3\2\2\2\u019f\u01a1\3\2"+
  5254. "\2\2\u01a0\u019a\3\2\2\2\u01a0\u019b\3\2\2\2\u01a1A\3\2\2\2\u01a2\u01a3"+
  5255. "\5V,\2\u01a3C\3\2\2\2\u01a4\u01a5\5P)\2\u01a5\u01a6\78\2\2\u01a6\u01a7"+
  5256. "\5P)\2\u01a7\u01a8\t\4\2\2\u01a8\u01a9\7\f\2\2\u01a9\u01aa\5F$\2\u01aa"+
  5257. "E\3\2\2\2\u01ab\u01ac\5L\'\2\u01acG\3\2\2\2\u01ad\u01af\7)\2\2\u01ae\u01b0"+
  5258. "\5J&\2\u01af\u01ae\3\2\2\2\u01af\u01b0\3\2\2\2\u01b0I\3\2\2\2\u01b1\u01b6"+
  5259. "\5L\'\2\u01b2\u01b3\78\2\2\u01b3\u01b5\5L\'\2\u01b4\u01b2\3\2\2\2\u01b5"+
  5260. "\u01b8\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b6\u01b7\3\2\2\2\u01b7K\3\2\2\2"+
  5261. "\u01b8\u01b6\3\2\2\2\u01b9\u01ba\b\'\1\2\u01ba\u01bb\7\61\2\2\u01bb\u01bc"+
  5262. "\5L\'\2\u01bc\u01bd\7\62\2\2\u01bd\u01c0\3\2\2\2\u01be\u01c0\5N(\2\u01bf"+
  5263. "\u01b9\3\2\2\2\u01bf\u01be\3\2\2\2\u01c0\u01d2\3\2\2\2\u01c1\u01c2\f\7"+
  5264. "\2\2\u01c2\u01c3\t\5\2\2\u01c3\u01d1\5L\'\b\u01c4\u01c5\f\6\2\2\u01c5"+
  5265. "\u01c6\t\6\2\2\u01c6\u01d1\5L\'\7\u01c7\u01c8\f\5\2\2\u01c8\u01c9\t\7"+
  5266. "\2\2\u01c9\u01d1\5L\'\6\u01ca\u01cb\f\4\2\2\u01cb\u01cc\t\b\2\2\u01cc"+
  5267. "\u01d1\5L\'\5\u01cd\u01ce\f\3\2\2\u01ce\u01cf\t\t\2\2\u01cf\u01d1\5L\'"+
  5268. "\4\u01d0\u01c1\3\2\2\2\u01d0\u01c4\3\2\2\2\u01d0\u01c7\3\2\2\2\u01d0\u01ca"+
  5269. "\3\2\2\2\u01d0\u01cd\3\2\2\2\u01d1\u01d4\3\2\2\2\u01d2\u01d0\3\2\2\2\u01d2"+
  5270. "\u01d3\3\2\2\2\u01d3M\3\2\2\2\u01d4\u01d2\3\2\2\2\u01d5\u01d6\t\n\2\2"+
  5271. "\u01d6\u01d9\5P)\2\u01d7\u01d9\5P)\2\u01d8\u01d5\3\2\2\2\u01d8\u01d7\3"+
  5272. "\2\2\2\u01d9O\3\2\2\2\u01da\u01db\b)\1\2\u01db\u01dc\5R*\2\u01dc\u01dd"+
  5273. "\b)\1\2\u01dd\u01e0\3\2\2\2\u01de\u01e0\5T+\2\u01df\u01da\3\2\2\2\u01df"+
  5274. "\u01de\3\2\2\2\u01e0\u01ef\3\2\2\2\u01e1\u01e2\f\5\2\2\u01e2\u01e3\5\34"+
  5275. "\17\2\u01e3\u01e4\b)\1\2\u01e4\u01ee\3\2\2\2\u01e5\u01e6\f\4\2\2\u01e6"+
  5276. "\u01e7\5n8\2\u01e7\u01e8\b)\1\2\u01e8\u01ee\3\2\2\2\u01e9\u01ea\f\3\2"+
  5277. "\2\u01ea\u01eb\5\36\20\2\u01eb\u01ec\b)\1\2\u01ec\u01ee\3\2\2\2\u01ed"+
  5278. "\u01e1\3\2\2\2\u01ed\u01e5\3\2\2\2\u01ed\u01e9\3\2\2\2\u01ee\u01f1\3\2"+
  5279. "\2\2\u01ef\u01ed\3\2\2\2\u01ef\u01f0\3\2\2\2\u01f0Q\3\2\2\2\u01f1\u01ef"+
  5280. "\3\2\2\2\u01f2\u01f3\7T\2\2\u01f3\u01f8\b*\1\2\u01f4\u01f5\5\62\32\2\u01f5"+
  5281. "\u01f6\b*\1\2\u01f6\u01f8\3\2\2\2\u01f7\u01f2\3\2\2\2\u01f7\u01f4\3\2"+
  5282. "\2\2\u01f8S\3\2\2\2\u01f9\u01fc\5X-\2\u01fa\u01fc\5Z.\2\u01fb\u01f9\3"+
  5283. "\2\2\2\u01fb\u01fa\3\2\2\2\u01fcU\3\2\2\2\u01fd\u0203\3\2\2\2\u01fe\u0203"+
  5284. "\5f\64\2\u01ff\u0203\5\30\r\2\u0200\u0203\5\24\13\2\u0201\u0203\5L\'\2"+
  5285. "\u0202\u01fd\3\2\2\2\u0202\u01fe\3\2\2\2\u0202\u01ff\3\2\2\2\u0202\u0200"+
  5286. "\3\2\2\2\u0202\u0201\3\2\2\2\u0203W\3\2\2\2\u0204\u0205\7#\2\2\u0205\u0207"+
  5287. "\5\36\20\2\u0206\u0208\5(\25\2\u0207\u0206\3\2\2\2\u0207\u0208\3\2\2\2"+
  5288. "\u0208\u0209\3\2\2\2\u0209\u020a\5p9\2\u020aY\3\2\2\2\u020b\u020c\5\\"+
  5289. "/\2\u020c\u020d\5h\65\2\u020d[\3\2\2\2\u020e\u0212\5\u008cG\2\u020f\u0212"+
  5290. "\5^\60\2\u0210\u0212\5d\63\2\u0211\u020e\3\2\2\2\u0211\u020f\3\2\2\2\u0211"+
  5291. "\u0210\3\2\2\2\u0212]\3\2\2\2\u0213\u0214\7\r\2\2\u0214\u0216\7\63\2\2"+
  5292. "\u0215\u0217\5`\61\2\u0216\u0215\3\2\2\2\u0217\u0218\3\2\2\2\u0218\u0216"+
  5293. "\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u021a\3\2\2\2\u021a\u021b\7\64\2\2"+
  5294. "\u021b_\3\2\2\2\u021c\u021d\5\26\f\2\u021d\u021e\5\u0088E\2\u021e\u0221"+
  5295. "\3\2\2\2\u021f\u0221\5b\62\2\u0220\u021c\3\2\2\2\u0220\u021f\3\2\2\2\u0221"+
  5296. "\u0223\3\2\2\2\u0222\u0224\7P\2\2\u0223\u0222\3\2\2\2\u0223\u0224\3\2"+
  5297. "\2\2\u0224a\3\2\2\2\u0225\u0227\7I\2\2\u0226\u0225\3\2\2\2\u0226\u0227"+
  5298. "\3\2\2\2\u0227\u0228\3\2\2\2\u0228\u0229\5\u008cG\2\u0229c\3\2\2\2\u022a"+
  5299. "\u022c\7\65\2\2\u022b\u022d\5L\'\2\u022c\u022b\3\2\2\2\u022c\u022d\3\2"+
  5300. "\2\2\u022d\u022e\3\2\2\2\u022e\u022f\7\66\2\2\u022f\u0230\5\u008cG\2\u0230"+
  5301. "e\3\2\2\2\u0231\u0232\5L\'\2\u0232\u0233\t\13\2\2\u0233g\3\2\2\2\u0234"+
  5302. "\u023b\7\63\2\2\u0235\u0238\5J&\2\u0236\u0238\5j\66\2\u0237\u0235\3\2"+
  5303. "\2\2\u0237\u0236\3\2\2\2\u0238\u0239\3\2\2\2\u0239\u023a\78\2\2\u023a"+
  5304. "\u023c\3\2\2\2\u023b\u0237\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023d\3\2"+
  5305. "\2\2\u023d\u023e\7\64\2\2\u023ei\3\2\2\2\u023f\u0244\5l\67\2\u0240\u0241"+
  5306. "\78\2\2\u0241\u0243\5l\67\2\u0242\u0240\3\2\2\2\u0243\u0246\3\2\2\2\u0244"+
  5307. "\u0242\3\2\2\2\u0244\u0245\3\2\2\2\u0245k\3\2\2\2\u0246\u0244\3\2\2\2"+
  5308. "\u0247\u0248\7T\2\2\u0248\u0249\7:\2\2\u0249\u024a\5L\'\2\u024am\3\2\2"+
  5309. "\2\u024b\u024c\79\2\2\u024c\u024d\7T\2\2\u024do\3\2\2\2\u024e\u0252\7"+
  5310. "\63\2\2\u024f\u0251\5t;\2\u0250\u024f\3\2\2\2\u0251\u0254\3\2\2\2\u0252"+
  5311. "\u0250\3\2\2\2\u0252\u0253\3\2\2\2\u0253\u0255\3\2\2\2\u0254\u0252\3\2"+
  5312. "\2\2\u0255\u0256\7\64\2\2\u0256q\3\2\2\2\u0257\u025c\3\2\2\2\u0258\u0259"+
  5313. "\5P)\2\u0259\u025a\5\36\20\2\u025a\u025c\3\2\2\2\u025b\u0257\3\2\2\2\u025b"+
  5314. "\u0258\3\2\2\2\u025cs\3\2\2\2\u025d\u026e\5\24\13\2\u025e\u026e\5\20\t"+
  5315. "\2\u025f\u026e\5\30\r\2\u0260\u026e\5\"\22\2\u0261\u026e\5f\64\2\u0262"+
  5316. "\u026e\5P)\2\u0263\u026e\5x=\2\u0264\u026e\5H%\2\u0265\u026e\5\u0086D"+
  5317. "\2\u0266\u026e\5z>\2\u0267\u026e\5v<\2\u0268\u026e\5\64\33\2\u0269\u026e"+
  5318. "\58\35\2\u026a\u026e\5,\27\2\u026b\u026e\5\u0082B\2\u026c\u026e\5|?\2"+
  5319. "\u026d\u025d\3\2\2\2\u026d\u025e\3\2\2\2\u026d\u025f\3\2\2\2\u026d\u0260"+
  5320. "\3\2\2\2\u026d\u0261\3\2\2\2\u026d\u0262\3\2\2\2\u026d\u0263\3\2\2\2\u026d"+
  5321. "\u0264\3\2\2\2\u026d\u0265\3\2\2\2\u026d\u0266\3\2\2\2\u026d\u0267\3\2"+
  5322. "\2\2\u026d\u0268\3\2\2\2\u026d\u0269\3\2\2\2\u026d\u026a\3\2\2\2\u026d"+
  5323. "\u026b\3\2\2\2\u026d\u026c\3\2\2\2\u026eu\3\2\2\2\u026f\u0270\7\22\2\2"+
  5324. "\u0270w\3\2\2\2\u0271\u0272\7T\2\2\u0272\u0273\7:\2\2\u0273\u0274\5t;"+
  5325. "\2\u0274y\3\2\2\2\u0275\u0276\7,\2\2\u0276\u0277\5L\'\2\u0277\u0278\7"+
  5326. "\60\2\2\u0278{\3\2\2\2\u0279\u027a\7\27\2\2\u027a\u027b\5p9\2\u027b\u027d"+
  5327. "\5~@\2\u027c\u027e\5\u0080A\2\u027d\u027c\3\2\2\2\u027d\u027e\3\2\2\2"+
  5328. "\u027e}\3\2\2\2\u027f\u0280\7\30\2\2\u0280\u0281\7\61\2\2\u0281\u0282"+
  5329. "\5\20\t\2\u0282\u0283\7\62\2\2\u0283\u0284\5p9\2\u0284\177\3\2\2\2\u0285"+
  5330. "\u0286\7\31\2\2\u0286\u0287\5p9\2\u0287\u0081\3\2\2\2\u0288\u0289\7\21"+
  5331. "\2\2\u0289\u028a\7T\2\2\u028a\u0290\bB\1\2\u028b\u028c\7*\2\2\u028c\u0290"+
  5332. "\bB\1\2\u028d\u028e\7+\2\2\u028e\u0290\bB\1\2\u028f\u0288\3\2\2\2\u028f"+
  5333. "\u028b\3\2\2\2\u028f\u028d\3\2\2\2\u0290\u0083\3\2\2\2\u0291\u0292\7\25"+
  5334. "\2\2\u0292\u0293\7\61\2\2\u0293\u0296\5\u0088E\2\u0294\u0295\78\2\2\u0295"+
  5335. "\u0297\7U\2\2\u0296\u0294\3\2\2\2\u0296\u0297\3\2\2\2\u0297\u0298\3\2"+
  5336. "\2\2\u0298\u0299\7\62\2\2\u0299\u0085\3\2\2\2\u029a\u029b\7\26\2\2\u029b"+
  5337. "\u029e\5L\'\2\u029c\u029d\78\2\2\u029d\u029f\5L\'\2\u029e\u029c\3\2\2"+
  5338. "\2\u029e\u029f\3\2\2\2\u029f\u0087\3\2\2\2\u02a0\u02a1\5\u008cG\2\u02a1"+
  5339. "\u02a2\bE\1\2\u02a2\u02aa\3\2\2\2\u02a3\u02a4\5\u008aF\2\u02a4\u02a5\b"+
  5340. "E\1\2\u02a5\u02aa\3\2\2\2\u02a6\u02a7\5\u0092J\2\u02a7\u02a8\bE\1\2\u02a8"+
  5341. "\u02aa\3\2\2\2\u02a9\u02a0\3\2\2\2\u02a9\u02a3\3\2\2\2\u02a9\u02a6\3\2"+
  5342. "\2\2\u02aa\u0089\3\2\2\2\u02ab\u02ac\5\u008cG\2\u02ac\u02ad\bF\1\2\u02ad"+
  5343. "\u02b3\3\2\2\2\u02ae\u02af\5\34\17\2\u02af\u02b0\5\u008aF\2\u02b0\u02b1"+
  5344. "\bF\1\2\u02b1\u02b3\3\2\2\2\u02b2\u02ab\3\2\2\2\u02b2\u02ae\3\2\2\2\u02b3"+
  5345. "\u008b\3\2\2\2\u02b4\u02b5\7T\2\2\u02b5\u02c1\bG\1\2\u02b6\u02b7\5\u008e"+
  5346. "H\2\u02b7\u02b8\bG\1\2\u02b8\u02c1\3\2\2\2\u02b9\u02ba\5\u0090I\2\u02ba"+
  5347. "\u02bb\bG\1\2\u02bb\u02c1\3\2\2\2\u02bc\u02bd\7I\2\2\u02bd\u02be\5\u008c"+
  5348. "G\2\u02be\u02bf\bG\1\2\u02bf\u02c1\3\2\2\2\u02c0\u02b4\3\2\2\2\u02c0\u02b6"+
  5349. "\3\2\2\2\u02c0\u02b9\3\2\2\2\u02c0\u02bc\3\2\2\2\u02c1\u008d\3\2\2\2\u02c2"+
  5350. "\u02c3\7T\2\2\u02c3\u02c4\79\2\2\u02c4\u02c5\7T\2\2\u02c5\u008f\3\2\2"+
  5351. "\2\u02c6\u02c7\7\36\2\2\u02c7\u02d1\bI\1\2\u02c8\u02c9\7 \2\2\u02c9\u02d1"+
  5352. "\bI\1\2\u02ca\u02cb\7\37\2\2\u02cb\u02d1\bI\1\2\u02cc\u02cd\7!\2\2\u02cd"+
  5353. "\u02d1\bI\1\2\u02ce\u02cf\7\24\2\2\u02cf\u02d1\bI\1\2\u02d0\u02c6\3\2"+
  5354. "\2\2\u02d0\u02c8\3\2\2\2\u02d0\u02ca\3\2\2\2\u02d0\u02cc\3\2\2\2\u02d0"+
  5355. "\u02ce\3\2\2\2\u02d1\u0091\3\2\2\2\u02d2\u02d3\7\23\2\2\u02d3\u02d4\7"+
  5356. "\65\2\2\u02d4\u02d5\5\u0088E\2\u02d5\u02d6\7\66\2\2\u02d6\u02d7\5\u0088"+
  5357. "E\2\u02d7\u02d8\bJ\1\2\u02d8\u0093\3\2\2\2\u02d9\u02db\5\u0096L\2\u02da"+
  5358. "\u02d9\3\2\2\2\u02db\u02dc\3\2\2\2\u02dc\u02da\3\2\2\2\u02dc\u02dd\3\2"+
  5359. "\2\2\u02dd\u0095\3\2\2\2\u02de\u02df\7\b\2\2\u02df\u02e0\7T\2\2\u02e0"+
  5360. "\u02e1\7:\2\2\u02e1\u02e6\5\u0098M\2\u02e2\u02e3\78\2\2\u02e3\u02e5\5"+
  5361. "\u0098M\2\u02e4\u02e2\3\2\2\2\u02e5\u02e8\3\2\2\2\u02e6\u02e4\3\2\2\2"+
  5362. "\u02e6\u02e7\3\2\2\2\u02e7\u0097\3\2\2\2\u02e8\u02e6\3\2\2\2\u02e9\u02ea"+
  5363. "\t\f\2\2\u02ea\u0099\3\2\2\2K\u009b\u00a3\u00a9\u00b3\u00ba\u00bd\u00c6"+
  5364. "\u00cc\u00d5\u00e2\u00e8\u00ee\u00f2\u00fd\u0102\u0114\u0117\u011c\u0128"+
  5365. "\u012d\u0131\u0138\u013b\u013f\u0148\u014e\u0159\u0162\u0167\u016c\u0171"+
  5366. "\u0178\u017d\u0187\u018e\u0193\u019e\u01a0\u01af\u01b6\u01bf\u01d0\u01d2"+
  5367. "\u01d8\u01df\u01ed\u01ef\u01f7\u01fb\u0202\u0207\u0211\u0218\u0220\u0223"+
  5368. "\u0226\u022c\u0237\u023b\u0244\u0252\u025b\u026d\u027d\u028f\u0296\u029e"+
  5369. "\u02a9\u02b2\u02c0\u02d0\u02dc\u02e6";
  5370. public static final ATN _ATN =
  5371. new ATNDeserializer().deserialize(_serializedATN.toCharArray());
  5372. static {
  5373. _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
  5374. for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
  5375. _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
  5376. }
  5377. }
  5378. }