latexparser.py 121 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652
  1. # *** GENERATED BY `setup.py antlr`, DO NOT EDIT BY HAND ***
  2. #
  3. # Generated from ../LaTeX.g4, derived from latex2sympy
  4. # latex2sympy is licensed under the MIT license
  5. # https://github.com/augustt198/latex2sympy/blob/master/LICENSE.txt
  6. #
  7. # Generated with antlr4
  8. # antlr4 is licensed under the BSD-3-Clause License
  9. # https://github.com/antlr/antlr4/blob/master/LICENSE.txt
  10. from antlr4 import *
  11. from io import StringIO
  12. import sys
  13. if sys.version_info[1] > 5:
  14. from typing import TextIO
  15. else:
  16. from typing.io import TextIO
  17. def serializedATN():
  18. return [
  19. 4,1,91,522,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
  20. 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,
  21. 2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,
  22. 7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,
  23. 2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,
  24. 7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,
  25. 2,40,7,40,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,5,1,91,8,1,10,1,12,1,94,
  26. 9,1,1,2,1,2,1,2,1,2,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,5,4,108,8,4,
  27. 10,4,12,4,111,9,4,1,5,1,5,1,5,1,5,1,5,1,5,5,5,119,8,5,10,5,12,5,
  28. 122,9,5,1,6,1,6,1,6,1,6,1,6,1,6,5,6,130,8,6,10,6,12,6,133,9,6,1,
  29. 7,1,7,1,7,4,7,138,8,7,11,7,12,7,139,3,7,142,8,7,1,8,1,8,1,8,1,8,
  30. 5,8,148,8,8,10,8,12,8,151,9,8,3,8,153,8,8,1,9,1,9,5,9,157,8,9,10,
  31. 9,12,9,160,9,9,1,10,1,10,5,10,164,8,10,10,10,12,10,167,9,10,1,11,
  32. 1,11,3,11,171,8,11,1,12,1,12,1,12,1,12,1,12,1,12,3,12,179,8,12,1,
  33. 13,1,13,1,13,1,13,3,13,185,8,13,1,13,1,13,1,14,1,14,1,14,1,14,3,
  34. 14,193,8,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,
  35. 15,1,15,3,15,207,8,15,1,15,3,15,210,8,15,5,15,212,8,15,10,15,12,
  36. 15,215,9,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,3,
  37. 16,227,8,16,1,16,3,16,230,8,16,5,16,232,8,16,10,16,12,16,235,9,16,
  38. 1,17,1,17,1,17,1,17,1,17,1,17,3,17,243,8,17,1,18,1,18,1,18,1,18,
  39. 1,18,3,18,250,8,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,
  40. 1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,268,8,19,1,20,1,20,1,20,
  41. 1,20,1,21,4,21,275,8,21,11,21,12,21,276,1,21,1,21,1,21,1,21,5,21,
  42. 283,8,21,10,21,12,21,286,9,21,1,21,1,21,4,21,290,8,21,11,21,12,21,
  43. 291,3,21,294,8,21,1,22,1,22,3,22,298,8,22,1,22,3,22,301,8,22,1,22,
  44. 3,22,304,8,22,1,22,3,22,307,8,22,3,22,309,8,22,1,22,1,22,1,22,1,
  45. 22,1,22,1,22,1,22,3,22,318,8,22,1,23,1,23,1,23,1,23,1,24,1,24,1,
  46. 24,1,24,1,25,1,25,1,25,1,25,1,25,1,26,5,26,334,8,26,10,26,12,26,
  47. 337,9,26,1,27,1,27,1,27,1,27,1,27,1,27,3,27,345,8,27,1,27,1,27,1,
  48. 27,1,27,1,27,3,27,352,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,
  49. 28,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,31,1,31,1,32,1,32,3,
  50. 32,374,8,32,1,32,3,32,377,8,32,1,32,3,32,380,8,32,1,32,3,32,383,
  51. 8,32,3,32,385,8,32,1,32,1,32,1,32,1,32,1,32,3,32,392,8,32,1,32,1,
  52. 32,3,32,396,8,32,1,32,3,32,399,8,32,1,32,3,32,402,8,32,1,32,3,32,
  53. 405,8,32,3,32,407,8,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,
  54. 32,1,32,1,32,3,32,420,8,32,1,32,3,32,423,8,32,1,32,1,32,1,32,3,32,
  55. 428,8,32,1,32,1,32,1,32,1,32,1,32,3,32,435,8,32,1,32,1,32,1,32,1,
  56. 32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,3,
  57. 32,453,8,32,1,32,1,32,1,32,1,32,1,32,1,32,3,32,461,8,32,1,33,1,33,
  58. 1,33,1,33,1,33,3,33,468,8,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,
  59. 1,34,1,34,1,34,1,34,3,34,481,8,34,3,34,483,8,34,1,34,1,34,1,35,1,
  60. 35,1,35,1,35,1,35,3,35,492,8,35,1,36,1,36,1,37,1,37,1,37,1,37,1,
  61. 37,1,37,3,37,502,8,37,1,38,1,38,1,38,1,38,1,38,1,38,3,38,510,8,38,
  62. 1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,0,6,2,8,10,
  63. 12,30,32,41,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,
  64. 38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,
  65. 0,9,2,0,79,82,85,86,1,0,15,16,3,0,17,18,65,67,75,75,2,0,77,77,91,
  66. 91,1,0,27,28,2,0,27,27,29,29,1,0,69,71,1,0,37,58,1,0,35,36,563,0,
  67. 82,1,0,0,0,2,84,1,0,0,0,4,95,1,0,0,0,6,99,1,0,0,0,8,101,1,0,0,0,
  68. 10,112,1,0,0,0,12,123,1,0,0,0,14,141,1,0,0,0,16,152,1,0,0,0,18,154,
  69. 1,0,0,0,20,161,1,0,0,0,22,170,1,0,0,0,24,172,1,0,0,0,26,180,1,0,
  70. 0,0,28,188,1,0,0,0,30,196,1,0,0,0,32,216,1,0,0,0,34,242,1,0,0,0,
  71. 36,249,1,0,0,0,38,267,1,0,0,0,40,269,1,0,0,0,42,274,1,0,0,0,44,317,
  72. 1,0,0,0,46,319,1,0,0,0,48,323,1,0,0,0,50,327,1,0,0,0,52,335,1,0,
  73. 0,0,54,338,1,0,0,0,56,353,1,0,0,0,58,361,1,0,0,0,60,365,1,0,0,0,
  74. 62,369,1,0,0,0,64,460,1,0,0,0,66,467,1,0,0,0,68,469,1,0,0,0,70,491,
  75. 1,0,0,0,72,493,1,0,0,0,74,495,1,0,0,0,76,503,1,0,0,0,78,511,1,0,
  76. 0,0,80,516,1,0,0,0,82,83,3,2,1,0,83,1,1,0,0,0,84,85,6,1,-1,0,85,
  77. 86,3,6,3,0,86,92,1,0,0,0,87,88,10,2,0,0,88,89,7,0,0,0,89,91,3,2,
  78. 1,3,90,87,1,0,0,0,91,94,1,0,0,0,92,90,1,0,0,0,92,93,1,0,0,0,93,3,
  79. 1,0,0,0,94,92,1,0,0,0,95,96,3,6,3,0,96,97,5,79,0,0,97,98,3,6,3,0,
  80. 98,5,1,0,0,0,99,100,3,8,4,0,100,7,1,0,0,0,101,102,6,4,-1,0,102,103,
  81. 3,10,5,0,103,109,1,0,0,0,104,105,10,2,0,0,105,106,7,1,0,0,106,108,
  82. 3,8,4,3,107,104,1,0,0,0,108,111,1,0,0,0,109,107,1,0,0,0,109,110,
  83. 1,0,0,0,110,9,1,0,0,0,111,109,1,0,0,0,112,113,6,5,-1,0,113,114,3,
  84. 14,7,0,114,120,1,0,0,0,115,116,10,2,0,0,116,117,7,2,0,0,117,119,
  85. 3,10,5,3,118,115,1,0,0,0,119,122,1,0,0,0,120,118,1,0,0,0,120,121,
  86. 1,0,0,0,121,11,1,0,0,0,122,120,1,0,0,0,123,124,6,6,-1,0,124,125,
  87. 3,16,8,0,125,131,1,0,0,0,126,127,10,2,0,0,127,128,7,2,0,0,128,130,
  88. 3,12,6,3,129,126,1,0,0,0,130,133,1,0,0,0,131,129,1,0,0,0,131,132,
  89. 1,0,0,0,132,13,1,0,0,0,133,131,1,0,0,0,134,135,7,1,0,0,135,142,3,
  90. 14,7,0,136,138,3,18,9,0,137,136,1,0,0,0,138,139,1,0,0,0,139,137,
  91. 1,0,0,0,139,140,1,0,0,0,140,142,1,0,0,0,141,134,1,0,0,0,141,137,
  92. 1,0,0,0,142,15,1,0,0,0,143,144,7,1,0,0,144,153,3,16,8,0,145,149,
  93. 3,18,9,0,146,148,3,20,10,0,147,146,1,0,0,0,148,151,1,0,0,0,149,147,
  94. 1,0,0,0,149,150,1,0,0,0,150,153,1,0,0,0,151,149,1,0,0,0,152,143,
  95. 1,0,0,0,152,145,1,0,0,0,153,17,1,0,0,0,154,158,3,30,15,0,155,157,
  96. 3,22,11,0,156,155,1,0,0,0,157,160,1,0,0,0,158,156,1,0,0,0,158,159,
  97. 1,0,0,0,159,19,1,0,0,0,160,158,1,0,0,0,161,165,3,32,16,0,162,164,
  98. 3,22,11,0,163,162,1,0,0,0,164,167,1,0,0,0,165,163,1,0,0,0,165,166,
  99. 1,0,0,0,166,21,1,0,0,0,167,165,1,0,0,0,168,171,5,89,0,0,169,171,
  100. 3,24,12,0,170,168,1,0,0,0,170,169,1,0,0,0,171,23,1,0,0,0,172,178,
  101. 5,27,0,0,173,179,3,28,14,0,174,179,3,26,13,0,175,176,3,28,14,0,176,
  102. 177,3,26,13,0,177,179,1,0,0,0,178,173,1,0,0,0,178,174,1,0,0,0,178,
  103. 175,1,0,0,0,179,25,1,0,0,0,180,181,5,73,0,0,181,184,5,21,0,0,182,
  104. 185,3,6,3,0,183,185,3,4,2,0,184,182,1,0,0,0,184,183,1,0,0,0,185,
  105. 186,1,0,0,0,186,187,5,22,0,0,187,27,1,0,0,0,188,189,5,74,0,0,189,
  106. 192,5,21,0,0,190,193,3,6,3,0,191,193,3,4,2,0,192,190,1,0,0,0,192,
  107. 191,1,0,0,0,193,194,1,0,0,0,194,195,5,22,0,0,195,29,1,0,0,0,196,
  108. 197,6,15,-1,0,197,198,3,34,17,0,198,213,1,0,0,0,199,200,10,2,0,0,
  109. 200,206,5,74,0,0,201,207,3,44,22,0,202,203,5,21,0,0,203,204,3,6,
  110. 3,0,204,205,5,22,0,0,205,207,1,0,0,0,206,201,1,0,0,0,206,202,1,0,
  111. 0,0,207,209,1,0,0,0,208,210,3,74,37,0,209,208,1,0,0,0,209,210,1,
  112. 0,0,0,210,212,1,0,0,0,211,199,1,0,0,0,212,215,1,0,0,0,213,211,1,
  113. 0,0,0,213,214,1,0,0,0,214,31,1,0,0,0,215,213,1,0,0,0,216,217,6,16,
  114. -1,0,217,218,3,36,18,0,218,233,1,0,0,0,219,220,10,2,0,0,220,226,
  115. 5,74,0,0,221,227,3,44,22,0,222,223,5,21,0,0,223,224,3,6,3,0,224,
  116. 225,5,22,0,0,225,227,1,0,0,0,226,221,1,0,0,0,226,222,1,0,0,0,227,
  117. 229,1,0,0,0,228,230,3,74,37,0,229,228,1,0,0,0,229,230,1,0,0,0,230,
  118. 232,1,0,0,0,231,219,1,0,0,0,232,235,1,0,0,0,233,231,1,0,0,0,233,
  119. 234,1,0,0,0,234,33,1,0,0,0,235,233,1,0,0,0,236,243,3,38,19,0,237,
  120. 243,3,40,20,0,238,243,3,64,32,0,239,243,3,44,22,0,240,243,3,58,29,
  121. 0,241,243,3,60,30,0,242,236,1,0,0,0,242,237,1,0,0,0,242,238,1,0,
  122. 0,0,242,239,1,0,0,0,242,240,1,0,0,0,242,241,1,0,0,0,243,35,1,0,0,
  123. 0,244,250,3,38,19,0,245,250,3,40,20,0,246,250,3,44,22,0,247,250,
  124. 3,58,29,0,248,250,3,60,30,0,249,244,1,0,0,0,249,245,1,0,0,0,249,
  125. 246,1,0,0,0,249,247,1,0,0,0,249,248,1,0,0,0,250,37,1,0,0,0,251,252,
  126. 5,19,0,0,252,253,3,6,3,0,253,254,5,20,0,0,254,268,1,0,0,0,255,256,
  127. 5,25,0,0,256,257,3,6,3,0,257,258,5,26,0,0,258,268,1,0,0,0,259,260,
  128. 5,21,0,0,260,261,3,6,3,0,261,262,5,22,0,0,262,268,1,0,0,0,263,264,
  129. 5,23,0,0,264,265,3,6,3,0,265,266,5,24,0,0,266,268,1,0,0,0,267,251,
  130. 1,0,0,0,267,255,1,0,0,0,267,259,1,0,0,0,267,263,1,0,0,0,268,39,1,
  131. 0,0,0,269,270,5,27,0,0,270,271,3,6,3,0,271,272,5,27,0,0,272,41,1,
  132. 0,0,0,273,275,5,78,0,0,274,273,1,0,0,0,275,276,1,0,0,0,276,274,1,
  133. 0,0,0,276,277,1,0,0,0,277,284,1,0,0,0,278,279,5,1,0,0,279,280,5,
  134. 78,0,0,280,281,5,78,0,0,281,283,5,78,0,0,282,278,1,0,0,0,283,286,
  135. 1,0,0,0,284,282,1,0,0,0,284,285,1,0,0,0,285,293,1,0,0,0,286,284,
  136. 1,0,0,0,287,289,5,2,0,0,288,290,5,78,0,0,289,288,1,0,0,0,290,291,
  137. 1,0,0,0,291,289,1,0,0,0,291,292,1,0,0,0,292,294,1,0,0,0,293,287,
  138. 1,0,0,0,293,294,1,0,0,0,294,43,1,0,0,0,295,308,7,3,0,0,296,298,3,
  139. 74,37,0,297,296,1,0,0,0,297,298,1,0,0,0,298,300,1,0,0,0,299,301,
  140. 5,90,0,0,300,299,1,0,0,0,300,301,1,0,0,0,301,309,1,0,0,0,302,304,
  141. 5,90,0,0,303,302,1,0,0,0,303,304,1,0,0,0,304,306,1,0,0,0,305,307,
  142. 3,74,37,0,306,305,1,0,0,0,306,307,1,0,0,0,307,309,1,0,0,0,308,297,
  143. 1,0,0,0,308,303,1,0,0,0,309,318,1,0,0,0,310,318,3,42,21,0,311,318,
  144. 5,76,0,0,312,318,3,50,25,0,313,318,3,54,27,0,314,318,3,56,28,0,315,
  145. 318,3,46,23,0,316,318,3,48,24,0,317,295,1,0,0,0,317,310,1,0,0,0,
  146. 317,311,1,0,0,0,317,312,1,0,0,0,317,313,1,0,0,0,317,314,1,0,0,0,
  147. 317,315,1,0,0,0,317,316,1,0,0,0,318,45,1,0,0,0,319,320,5,30,0,0,
  148. 320,321,3,6,3,0,321,322,7,4,0,0,322,47,1,0,0,0,323,324,7,5,0,0,324,
  149. 325,3,6,3,0,325,326,5,31,0,0,326,49,1,0,0,0,327,328,5,72,0,0,328,
  150. 329,5,21,0,0,329,330,3,52,26,0,330,331,5,22,0,0,331,51,1,0,0,0,332,
  151. 334,5,77,0,0,333,332,1,0,0,0,334,337,1,0,0,0,335,333,1,0,0,0,335,
  152. 336,1,0,0,0,336,53,1,0,0,0,337,335,1,0,0,0,338,344,5,68,0,0,339,
  153. 345,5,78,0,0,340,341,5,21,0,0,341,342,3,6,3,0,342,343,5,22,0,0,343,
  154. 345,1,0,0,0,344,339,1,0,0,0,344,340,1,0,0,0,345,351,1,0,0,0,346,
  155. 352,5,78,0,0,347,348,5,21,0,0,348,349,3,6,3,0,349,350,5,22,0,0,350,
  156. 352,1,0,0,0,351,346,1,0,0,0,351,347,1,0,0,0,352,55,1,0,0,0,353,354,
  157. 7,6,0,0,354,355,5,21,0,0,355,356,3,6,3,0,356,357,5,22,0,0,357,358,
  158. 5,21,0,0,358,359,3,6,3,0,359,360,5,22,0,0,360,57,1,0,0,0,361,362,
  159. 5,59,0,0,362,363,3,6,3,0,363,364,5,60,0,0,364,59,1,0,0,0,365,366,
  160. 5,61,0,0,366,367,3,6,3,0,367,368,5,62,0,0,368,61,1,0,0,0,369,370,
  161. 7,7,0,0,370,63,1,0,0,0,371,384,3,62,31,0,372,374,3,74,37,0,373,372,
  162. 1,0,0,0,373,374,1,0,0,0,374,376,1,0,0,0,375,377,3,76,38,0,376,375,
  163. 1,0,0,0,376,377,1,0,0,0,377,385,1,0,0,0,378,380,3,76,38,0,379,378,
  164. 1,0,0,0,379,380,1,0,0,0,380,382,1,0,0,0,381,383,3,74,37,0,382,381,
  165. 1,0,0,0,382,383,1,0,0,0,383,385,1,0,0,0,384,373,1,0,0,0,384,379,
  166. 1,0,0,0,385,391,1,0,0,0,386,387,5,19,0,0,387,388,3,70,35,0,388,389,
  167. 5,20,0,0,389,392,1,0,0,0,390,392,3,72,36,0,391,386,1,0,0,0,391,390,
  168. 1,0,0,0,392,461,1,0,0,0,393,406,7,3,0,0,394,396,3,74,37,0,395,394,
  169. 1,0,0,0,395,396,1,0,0,0,396,398,1,0,0,0,397,399,5,90,0,0,398,397,
  170. 1,0,0,0,398,399,1,0,0,0,399,407,1,0,0,0,400,402,5,90,0,0,401,400,
  171. 1,0,0,0,401,402,1,0,0,0,402,404,1,0,0,0,403,405,3,74,37,0,404,403,
  172. 1,0,0,0,404,405,1,0,0,0,405,407,1,0,0,0,406,395,1,0,0,0,406,401,
  173. 1,0,0,0,407,408,1,0,0,0,408,409,5,19,0,0,409,410,3,66,33,0,410,411,
  174. 5,20,0,0,411,461,1,0,0,0,412,419,5,34,0,0,413,414,3,74,37,0,414,
  175. 415,3,76,38,0,415,420,1,0,0,0,416,417,3,76,38,0,417,418,3,74,37,
  176. 0,418,420,1,0,0,0,419,413,1,0,0,0,419,416,1,0,0,0,419,420,1,0,0,
  177. 0,420,427,1,0,0,0,421,423,3,8,4,0,422,421,1,0,0,0,422,423,1,0,0,
  178. 0,423,424,1,0,0,0,424,428,5,76,0,0,425,428,3,54,27,0,426,428,3,8,
  179. 4,0,427,422,1,0,0,0,427,425,1,0,0,0,427,426,1,0,0,0,428,461,1,0,
  180. 0,0,429,434,5,63,0,0,430,431,5,25,0,0,431,432,3,6,3,0,432,433,5,
  181. 26,0,0,433,435,1,0,0,0,434,430,1,0,0,0,434,435,1,0,0,0,435,436,1,
  182. 0,0,0,436,437,5,21,0,0,437,438,3,6,3,0,438,439,5,22,0,0,439,461,
  183. 1,0,0,0,440,441,5,64,0,0,441,442,5,21,0,0,442,443,3,6,3,0,443,444,
  184. 5,22,0,0,444,461,1,0,0,0,445,452,7,8,0,0,446,447,3,78,39,0,447,448,
  185. 3,76,38,0,448,453,1,0,0,0,449,450,3,76,38,0,450,451,3,78,39,0,451,
  186. 453,1,0,0,0,452,446,1,0,0,0,452,449,1,0,0,0,453,454,1,0,0,0,454,
  187. 455,3,10,5,0,455,461,1,0,0,0,456,457,5,32,0,0,457,458,3,68,34,0,
  188. 458,459,3,10,5,0,459,461,1,0,0,0,460,371,1,0,0,0,460,393,1,0,0,0,
  189. 460,412,1,0,0,0,460,429,1,0,0,0,460,440,1,0,0,0,460,445,1,0,0,0,
  190. 460,456,1,0,0,0,461,65,1,0,0,0,462,463,3,6,3,0,463,464,5,1,0,0,464,
  191. 465,3,66,33,0,465,468,1,0,0,0,466,468,3,6,3,0,467,462,1,0,0,0,467,
  192. 466,1,0,0,0,468,67,1,0,0,0,469,470,5,73,0,0,470,471,5,21,0,0,471,
  193. 472,7,3,0,0,472,473,5,33,0,0,473,482,3,6,3,0,474,480,5,74,0,0,475,
  194. 476,5,21,0,0,476,477,7,1,0,0,477,481,5,22,0,0,478,481,5,15,0,0,479,
  195. 481,5,16,0,0,480,475,1,0,0,0,480,478,1,0,0,0,480,479,1,0,0,0,481,
  196. 483,1,0,0,0,482,474,1,0,0,0,482,483,1,0,0,0,483,484,1,0,0,0,484,
  197. 485,5,22,0,0,485,69,1,0,0,0,486,492,3,6,3,0,487,488,3,6,3,0,488,
  198. 489,5,1,0,0,489,490,3,70,35,0,490,492,1,0,0,0,491,486,1,0,0,0,491,
  199. 487,1,0,0,0,492,71,1,0,0,0,493,494,3,12,6,0,494,73,1,0,0,0,495,501,
  200. 5,73,0,0,496,502,3,44,22,0,497,498,5,21,0,0,498,499,3,6,3,0,499,
  201. 500,5,22,0,0,500,502,1,0,0,0,501,496,1,0,0,0,501,497,1,0,0,0,502,
  202. 75,1,0,0,0,503,509,5,74,0,0,504,510,3,44,22,0,505,506,5,21,0,0,506,
  203. 507,3,6,3,0,507,508,5,22,0,0,508,510,1,0,0,0,509,504,1,0,0,0,509,
  204. 505,1,0,0,0,510,77,1,0,0,0,511,512,5,73,0,0,512,513,5,21,0,0,513,
  205. 514,3,4,2,0,514,515,5,22,0,0,515,79,1,0,0,0,516,517,5,73,0,0,517,
  206. 518,5,21,0,0,518,519,3,4,2,0,519,520,5,22,0,0,520,81,1,0,0,0,59,
  207. 92,109,120,131,139,141,149,152,158,165,170,178,184,192,206,209,213,
  208. 226,229,233,242,249,267,276,284,291,293,297,300,303,306,308,317,
  209. 335,344,351,373,376,379,382,384,391,395,398,401,404,406,419,422,
  210. 427,434,452,460,467,480,482,491,501,509
  211. ]
  212. class LaTeXParser ( Parser ):
  213. grammarFileName = "LaTeX.g4"
  214. atn = ATNDeserializer().deserialize(serializedATN())
  215. decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
  216. sharedContextCache = PredictionContextCache()
  217. literalNames = [ "<INVALID>", "','", "'.'", "<INVALID>", "<INVALID>",
  218. "<INVALID>", "<INVALID>", "'\\quad'", "'\\qquad'",
  219. "<INVALID>", "'\\negmedspace'", "'\\negthickspace'",
  220. "'\\left'", "'\\right'", "<INVALID>", "'+'", "'-'",
  221. "'*'", "'/'", "'('", "')'", "'{'", "'}'", "'\\{'",
  222. "'\\}'", "'['", "']'", "'|'", "'\\right|'", "'\\left|'",
  223. "'\\langle'", "'\\rangle'", "'\\lim'", "<INVALID>",
  224. "<INVALID>", "'\\sum'", "'\\prod'", "'\\exp'", "'\\log'",
  225. "'\\lg'", "'\\ln'", "'\\sin'", "'\\cos'", "'\\tan'",
  226. "'\\csc'", "'\\sec'", "'\\cot'", "'\\arcsin'", "'\\arccos'",
  227. "'\\arctan'", "'\\arccsc'", "'\\arcsec'", "'\\arccot'",
  228. "'\\sinh'", "'\\cosh'", "'\\tanh'", "'\\arsinh'", "'\\arcosh'",
  229. "'\\artanh'", "'\\lfloor'", "'\\rfloor'", "'\\lceil'",
  230. "'\\rceil'", "'\\sqrt'", "'\\overline'", "'\\times'",
  231. "'\\cdot'", "'\\div'", "<INVALID>", "'\\binom'", "'\\dbinom'",
  232. "'\\tbinom'", "'\\mathit'", "'_'", "'^'", "':'", "<INVALID>",
  233. "<INVALID>", "<INVALID>", "<INVALID>", "'\\neq'", "'<'",
  234. "<INVALID>", "'\\leqq'", "'\\leqslant'", "'>'", "<INVALID>",
  235. "'\\geqq'", "'\\geqslant'", "'!'" ]
  236. symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "WS", "THINSPACE",
  237. "MEDSPACE", "THICKSPACE", "QUAD", "QQUAD", "NEGTHINSPACE",
  238. "NEGMEDSPACE", "NEGTHICKSPACE", "CMD_LEFT", "CMD_RIGHT",
  239. "IGNORE", "ADD", "SUB", "MUL", "DIV", "L_PAREN", "R_PAREN",
  240. "L_BRACE", "R_BRACE", "L_BRACE_LITERAL", "R_BRACE_LITERAL",
  241. "L_BRACKET", "R_BRACKET", "BAR", "R_BAR", "L_BAR",
  242. "L_ANGLE", "R_ANGLE", "FUNC_LIM", "LIM_APPROACH_SYM",
  243. "FUNC_INT", "FUNC_SUM", "FUNC_PROD", "FUNC_EXP", "FUNC_LOG",
  244. "FUNC_LG", "FUNC_LN", "FUNC_SIN", "FUNC_COS", "FUNC_TAN",
  245. "FUNC_CSC", "FUNC_SEC", "FUNC_COT", "FUNC_ARCSIN",
  246. "FUNC_ARCCOS", "FUNC_ARCTAN", "FUNC_ARCCSC", "FUNC_ARCSEC",
  247. "FUNC_ARCCOT", "FUNC_SINH", "FUNC_COSH", "FUNC_TANH",
  248. "FUNC_ARSINH", "FUNC_ARCOSH", "FUNC_ARTANH", "L_FLOOR",
  249. "R_FLOOR", "L_CEIL", "R_CEIL", "FUNC_SQRT", "FUNC_OVERLINE",
  250. "CMD_TIMES", "CMD_CDOT", "CMD_DIV", "CMD_FRAC", "CMD_BINOM",
  251. "CMD_DBINOM", "CMD_TBINOM", "CMD_MATHIT", "UNDERSCORE",
  252. "CARET", "COLON", "DIFFERENTIAL", "LETTER", "DIGIT",
  253. "EQUAL", "NEQ", "LT", "LTE", "LTE_Q", "LTE_S", "GT",
  254. "GTE", "GTE_Q", "GTE_S", "BANG", "SINGLE_QUOTES",
  255. "SYMBOL" ]
  256. RULE_math = 0
  257. RULE_relation = 1
  258. RULE_equality = 2
  259. RULE_expr = 3
  260. RULE_additive = 4
  261. RULE_mp = 5
  262. RULE_mp_nofunc = 6
  263. RULE_unary = 7
  264. RULE_unary_nofunc = 8
  265. RULE_postfix = 9
  266. RULE_postfix_nofunc = 10
  267. RULE_postfix_op = 11
  268. RULE_eval_at = 12
  269. RULE_eval_at_sub = 13
  270. RULE_eval_at_sup = 14
  271. RULE_exp = 15
  272. RULE_exp_nofunc = 16
  273. RULE_comp = 17
  274. RULE_comp_nofunc = 18
  275. RULE_group = 19
  276. RULE_abs_group = 20
  277. RULE_number = 21
  278. RULE_atom = 22
  279. RULE_bra = 23
  280. RULE_ket = 24
  281. RULE_mathit = 25
  282. RULE_mathit_text = 26
  283. RULE_frac = 27
  284. RULE_binom = 28
  285. RULE_floor = 29
  286. RULE_ceil = 30
  287. RULE_func_normal = 31
  288. RULE_func = 32
  289. RULE_args = 33
  290. RULE_limit_sub = 34
  291. RULE_func_arg = 35
  292. RULE_func_arg_noparens = 36
  293. RULE_subexpr = 37
  294. RULE_supexpr = 38
  295. RULE_subeq = 39
  296. RULE_supeq = 40
  297. ruleNames = [ "math", "relation", "equality", "expr", "additive", "mp",
  298. "mp_nofunc", "unary", "unary_nofunc", "postfix", "postfix_nofunc",
  299. "postfix_op", "eval_at", "eval_at_sub", "eval_at_sup",
  300. "exp", "exp_nofunc", "comp", "comp_nofunc", "group",
  301. "abs_group", "number", "atom", "bra", "ket", "mathit",
  302. "mathit_text", "frac", "binom", "floor", "ceil", "func_normal",
  303. "func", "args", "limit_sub", "func_arg", "func_arg_noparens",
  304. "subexpr", "supexpr", "subeq", "supeq" ]
  305. EOF = Token.EOF
  306. T__0=1
  307. T__1=2
  308. WS=3
  309. THINSPACE=4
  310. MEDSPACE=5
  311. THICKSPACE=6
  312. QUAD=7
  313. QQUAD=8
  314. NEGTHINSPACE=9
  315. NEGMEDSPACE=10
  316. NEGTHICKSPACE=11
  317. CMD_LEFT=12
  318. CMD_RIGHT=13
  319. IGNORE=14
  320. ADD=15
  321. SUB=16
  322. MUL=17
  323. DIV=18
  324. L_PAREN=19
  325. R_PAREN=20
  326. L_BRACE=21
  327. R_BRACE=22
  328. L_BRACE_LITERAL=23
  329. R_BRACE_LITERAL=24
  330. L_BRACKET=25
  331. R_BRACKET=26
  332. BAR=27
  333. R_BAR=28
  334. L_BAR=29
  335. L_ANGLE=30
  336. R_ANGLE=31
  337. FUNC_LIM=32
  338. LIM_APPROACH_SYM=33
  339. FUNC_INT=34
  340. FUNC_SUM=35
  341. FUNC_PROD=36
  342. FUNC_EXP=37
  343. FUNC_LOG=38
  344. FUNC_LG=39
  345. FUNC_LN=40
  346. FUNC_SIN=41
  347. FUNC_COS=42
  348. FUNC_TAN=43
  349. FUNC_CSC=44
  350. FUNC_SEC=45
  351. FUNC_COT=46
  352. FUNC_ARCSIN=47
  353. FUNC_ARCCOS=48
  354. FUNC_ARCTAN=49
  355. FUNC_ARCCSC=50
  356. FUNC_ARCSEC=51
  357. FUNC_ARCCOT=52
  358. FUNC_SINH=53
  359. FUNC_COSH=54
  360. FUNC_TANH=55
  361. FUNC_ARSINH=56
  362. FUNC_ARCOSH=57
  363. FUNC_ARTANH=58
  364. L_FLOOR=59
  365. R_FLOOR=60
  366. L_CEIL=61
  367. R_CEIL=62
  368. FUNC_SQRT=63
  369. FUNC_OVERLINE=64
  370. CMD_TIMES=65
  371. CMD_CDOT=66
  372. CMD_DIV=67
  373. CMD_FRAC=68
  374. CMD_BINOM=69
  375. CMD_DBINOM=70
  376. CMD_TBINOM=71
  377. CMD_MATHIT=72
  378. UNDERSCORE=73
  379. CARET=74
  380. COLON=75
  381. DIFFERENTIAL=76
  382. LETTER=77
  383. DIGIT=78
  384. EQUAL=79
  385. NEQ=80
  386. LT=81
  387. LTE=82
  388. LTE_Q=83
  389. LTE_S=84
  390. GT=85
  391. GTE=86
  392. GTE_Q=87
  393. GTE_S=88
  394. BANG=89
  395. SINGLE_QUOTES=90
  396. SYMBOL=91
  397. def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
  398. super().__init__(input, output)
  399. self.checkVersion("4.11.1")
  400. self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
  401. self._predicates = None
  402. class MathContext(ParserRuleContext):
  403. __slots__ = 'parser'
  404. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  405. super().__init__(parent, invokingState)
  406. self.parser = parser
  407. def relation(self):
  408. return self.getTypedRuleContext(LaTeXParser.RelationContext,0)
  409. def getRuleIndex(self):
  410. return LaTeXParser.RULE_math
  411. def math(self):
  412. localctx = LaTeXParser.MathContext(self, self._ctx, self.state)
  413. self.enterRule(localctx, 0, self.RULE_math)
  414. try:
  415. self.enterOuterAlt(localctx, 1)
  416. self.state = 82
  417. self.relation(0)
  418. except RecognitionException as re:
  419. localctx.exception = re
  420. self._errHandler.reportError(self, re)
  421. self._errHandler.recover(self, re)
  422. finally:
  423. self.exitRule()
  424. return localctx
  425. class RelationContext(ParserRuleContext):
  426. __slots__ = 'parser'
  427. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  428. super().__init__(parent, invokingState)
  429. self.parser = parser
  430. def expr(self):
  431. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  432. def relation(self, i:int=None):
  433. if i is None:
  434. return self.getTypedRuleContexts(LaTeXParser.RelationContext)
  435. else:
  436. return self.getTypedRuleContext(LaTeXParser.RelationContext,i)
  437. def EQUAL(self):
  438. return self.getToken(LaTeXParser.EQUAL, 0)
  439. def LT(self):
  440. return self.getToken(LaTeXParser.LT, 0)
  441. def LTE(self):
  442. return self.getToken(LaTeXParser.LTE, 0)
  443. def GT(self):
  444. return self.getToken(LaTeXParser.GT, 0)
  445. def GTE(self):
  446. return self.getToken(LaTeXParser.GTE, 0)
  447. def NEQ(self):
  448. return self.getToken(LaTeXParser.NEQ, 0)
  449. def getRuleIndex(self):
  450. return LaTeXParser.RULE_relation
  451. def relation(self, _p:int=0):
  452. _parentctx = self._ctx
  453. _parentState = self.state
  454. localctx = LaTeXParser.RelationContext(self, self._ctx, _parentState)
  455. _prevctx = localctx
  456. _startState = 2
  457. self.enterRecursionRule(localctx, 2, self.RULE_relation, _p)
  458. self._la = 0 # Token type
  459. try:
  460. self.enterOuterAlt(localctx, 1)
  461. self.state = 85
  462. self.expr()
  463. self._ctx.stop = self._input.LT(-1)
  464. self.state = 92
  465. self._errHandler.sync(self)
  466. _alt = self._interp.adaptivePredict(self._input,0,self._ctx)
  467. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  468. if _alt==1:
  469. if self._parseListeners is not None:
  470. self.triggerExitRuleEvent()
  471. _prevctx = localctx
  472. localctx = LaTeXParser.RelationContext(self, _parentctx, _parentState)
  473. self.pushNewRecursionContext(localctx, _startState, self.RULE_relation)
  474. self.state = 87
  475. if not self.precpred(self._ctx, 2):
  476. from antlr4.error.Errors import FailedPredicateException
  477. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  478. self.state = 88
  479. _la = self._input.LA(1)
  480. if not((((_la - 79)) & ~0x3f) == 0 and ((1 << (_la - 79)) & 207) != 0):
  481. self._errHandler.recoverInline(self)
  482. else:
  483. self._errHandler.reportMatch(self)
  484. self.consume()
  485. self.state = 89
  486. self.relation(3)
  487. self.state = 94
  488. self._errHandler.sync(self)
  489. _alt = self._interp.adaptivePredict(self._input,0,self._ctx)
  490. except RecognitionException as re:
  491. localctx.exception = re
  492. self._errHandler.reportError(self, re)
  493. self._errHandler.recover(self, re)
  494. finally:
  495. self.unrollRecursionContexts(_parentctx)
  496. return localctx
  497. class EqualityContext(ParserRuleContext):
  498. __slots__ = 'parser'
  499. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  500. super().__init__(parent, invokingState)
  501. self.parser = parser
  502. def expr(self, i:int=None):
  503. if i is None:
  504. return self.getTypedRuleContexts(LaTeXParser.ExprContext)
  505. else:
  506. return self.getTypedRuleContext(LaTeXParser.ExprContext,i)
  507. def EQUAL(self):
  508. return self.getToken(LaTeXParser.EQUAL, 0)
  509. def getRuleIndex(self):
  510. return LaTeXParser.RULE_equality
  511. def equality(self):
  512. localctx = LaTeXParser.EqualityContext(self, self._ctx, self.state)
  513. self.enterRule(localctx, 4, self.RULE_equality)
  514. try:
  515. self.enterOuterAlt(localctx, 1)
  516. self.state = 95
  517. self.expr()
  518. self.state = 96
  519. self.match(LaTeXParser.EQUAL)
  520. self.state = 97
  521. self.expr()
  522. except RecognitionException as re:
  523. localctx.exception = re
  524. self._errHandler.reportError(self, re)
  525. self._errHandler.recover(self, re)
  526. finally:
  527. self.exitRule()
  528. return localctx
  529. class ExprContext(ParserRuleContext):
  530. __slots__ = 'parser'
  531. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  532. super().__init__(parent, invokingState)
  533. self.parser = parser
  534. def additive(self):
  535. return self.getTypedRuleContext(LaTeXParser.AdditiveContext,0)
  536. def getRuleIndex(self):
  537. return LaTeXParser.RULE_expr
  538. def expr(self):
  539. localctx = LaTeXParser.ExprContext(self, self._ctx, self.state)
  540. self.enterRule(localctx, 6, self.RULE_expr)
  541. try:
  542. self.enterOuterAlt(localctx, 1)
  543. self.state = 99
  544. self.additive(0)
  545. except RecognitionException as re:
  546. localctx.exception = re
  547. self._errHandler.reportError(self, re)
  548. self._errHandler.recover(self, re)
  549. finally:
  550. self.exitRule()
  551. return localctx
  552. class AdditiveContext(ParserRuleContext):
  553. __slots__ = 'parser'
  554. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  555. super().__init__(parent, invokingState)
  556. self.parser = parser
  557. def mp(self):
  558. return self.getTypedRuleContext(LaTeXParser.MpContext,0)
  559. def additive(self, i:int=None):
  560. if i is None:
  561. return self.getTypedRuleContexts(LaTeXParser.AdditiveContext)
  562. else:
  563. return self.getTypedRuleContext(LaTeXParser.AdditiveContext,i)
  564. def ADD(self):
  565. return self.getToken(LaTeXParser.ADD, 0)
  566. def SUB(self):
  567. return self.getToken(LaTeXParser.SUB, 0)
  568. def getRuleIndex(self):
  569. return LaTeXParser.RULE_additive
  570. def additive(self, _p:int=0):
  571. _parentctx = self._ctx
  572. _parentState = self.state
  573. localctx = LaTeXParser.AdditiveContext(self, self._ctx, _parentState)
  574. _prevctx = localctx
  575. _startState = 8
  576. self.enterRecursionRule(localctx, 8, self.RULE_additive, _p)
  577. self._la = 0 # Token type
  578. try:
  579. self.enterOuterAlt(localctx, 1)
  580. self.state = 102
  581. self.mp(0)
  582. self._ctx.stop = self._input.LT(-1)
  583. self.state = 109
  584. self._errHandler.sync(self)
  585. _alt = self._interp.adaptivePredict(self._input,1,self._ctx)
  586. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  587. if _alt==1:
  588. if self._parseListeners is not None:
  589. self.triggerExitRuleEvent()
  590. _prevctx = localctx
  591. localctx = LaTeXParser.AdditiveContext(self, _parentctx, _parentState)
  592. self.pushNewRecursionContext(localctx, _startState, self.RULE_additive)
  593. self.state = 104
  594. if not self.precpred(self._ctx, 2):
  595. from antlr4.error.Errors import FailedPredicateException
  596. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  597. self.state = 105
  598. _la = self._input.LA(1)
  599. if not(_la==15 or _la==16):
  600. self._errHandler.recoverInline(self)
  601. else:
  602. self._errHandler.reportMatch(self)
  603. self.consume()
  604. self.state = 106
  605. self.additive(3)
  606. self.state = 111
  607. self._errHandler.sync(self)
  608. _alt = self._interp.adaptivePredict(self._input,1,self._ctx)
  609. except RecognitionException as re:
  610. localctx.exception = re
  611. self._errHandler.reportError(self, re)
  612. self._errHandler.recover(self, re)
  613. finally:
  614. self.unrollRecursionContexts(_parentctx)
  615. return localctx
  616. class MpContext(ParserRuleContext):
  617. __slots__ = 'parser'
  618. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  619. super().__init__(parent, invokingState)
  620. self.parser = parser
  621. def unary(self):
  622. return self.getTypedRuleContext(LaTeXParser.UnaryContext,0)
  623. def mp(self, i:int=None):
  624. if i is None:
  625. return self.getTypedRuleContexts(LaTeXParser.MpContext)
  626. else:
  627. return self.getTypedRuleContext(LaTeXParser.MpContext,i)
  628. def MUL(self):
  629. return self.getToken(LaTeXParser.MUL, 0)
  630. def CMD_TIMES(self):
  631. return self.getToken(LaTeXParser.CMD_TIMES, 0)
  632. def CMD_CDOT(self):
  633. return self.getToken(LaTeXParser.CMD_CDOT, 0)
  634. def DIV(self):
  635. return self.getToken(LaTeXParser.DIV, 0)
  636. def CMD_DIV(self):
  637. return self.getToken(LaTeXParser.CMD_DIV, 0)
  638. def COLON(self):
  639. return self.getToken(LaTeXParser.COLON, 0)
  640. def getRuleIndex(self):
  641. return LaTeXParser.RULE_mp
  642. def mp(self, _p:int=0):
  643. _parentctx = self._ctx
  644. _parentState = self.state
  645. localctx = LaTeXParser.MpContext(self, self._ctx, _parentState)
  646. _prevctx = localctx
  647. _startState = 10
  648. self.enterRecursionRule(localctx, 10, self.RULE_mp, _p)
  649. self._la = 0 # Token type
  650. try:
  651. self.enterOuterAlt(localctx, 1)
  652. self.state = 113
  653. self.unary()
  654. self._ctx.stop = self._input.LT(-1)
  655. self.state = 120
  656. self._errHandler.sync(self)
  657. _alt = self._interp.adaptivePredict(self._input,2,self._ctx)
  658. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  659. if _alt==1:
  660. if self._parseListeners is not None:
  661. self.triggerExitRuleEvent()
  662. _prevctx = localctx
  663. localctx = LaTeXParser.MpContext(self, _parentctx, _parentState)
  664. self.pushNewRecursionContext(localctx, _startState, self.RULE_mp)
  665. self.state = 115
  666. if not self.precpred(self._ctx, 2):
  667. from antlr4.error.Errors import FailedPredicateException
  668. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  669. self.state = 116
  670. _la = self._input.LA(1)
  671. if not((((_la - 17)) & ~0x3f) == 0 and ((1 << (_la - 17)) & 290200700988686339) != 0):
  672. self._errHandler.recoverInline(self)
  673. else:
  674. self._errHandler.reportMatch(self)
  675. self.consume()
  676. self.state = 117
  677. self.mp(3)
  678. self.state = 122
  679. self._errHandler.sync(self)
  680. _alt = self._interp.adaptivePredict(self._input,2,self._ctx)
  681. except RecognitionException as re:
  682. localctx.exception = re
  683. self._errHandler.reportError(self, re)
  684. self._errHandler.recover(self, re)
  685. finally:
  686. self.unrollRecursionContexts(_parentctx)
  687. return localctx
  688. class Mp_nofuncContext(ParserRuleContext):
  689. __slots__ = 'parser'
  690. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  691. super().__init__(parent, invokingState)
  692. self.parser = parser
  693. def unary_nofunc(self):
  694. return self.getTypedRuleContext(LaTeXParser.Unary_nofuncContext,0)
  695. def mp_nofunc(self, i:int=None):
  696. if i is None:
  697. return self.getTypedRuleContexts(LaTeXParser.Mp_nofuncContext)
  698. else:
  699. return self.getTypedRuleContext(LaTeXParser.Mp_nofuncContext,i)
  700. def MUL(self):
  701. return self.getToken(LaTeXParser.MUL, 0)
  702. def CMD_TIMES(self):
  703. return self.getToken(LaTeXParser.CMD_TIMES, 0)
  704. def CMD_CDOT(self):
  705. return self.getToken(LaTeXParser.CMD_CDOT, 0)
  706. def DIV(self):
  707. return self.getToken(LaTeXParser.DIV, 0)
  708. def CMD_DIV(self):
  709. return self.getToken(LaTeXParser.CMD_DIV, 0)
  710. def COLON(self):
  711. return self.getToken(LaTeXParser.COLON, 0)
  712. def getRuleIndex(self):
  713. return LaTeXParser.RULE_mp_nofunc
  714. def mp_nofunc(self, _p:int=0):
  715. _parentctx = self._ctx
  716. _parentState = self.state
  717. localctx = LaTeXParser.Mp_nofuncContext(self, self._ctx, _parentState)
  718. _prevctx = localctx
  719. _startState = 12
  720. self.enterRecursionRule(localctx, 12, self.RULE_mp_nofunc, _p)
  721. self._la = 0 # Token type
  722. try:
  723. self.enterOuterAlt(localctx, 1)
  724. self.state = 124
  725. self.unary_nofunc()
  726. self._ctx.stop = self._input.LT(-1)
  727. self.state = 131
  728. self._errHandler.sync(self)
  729. _alt = self._interp.adaptivePredict(self._input,3,self._ctx)
  730. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  731. if _alt==1:
  732. if self._parseListeners is not None:
  733. self.triggerExitRuleEvent()
  734. _prevctx = localctx
  735. localctx = LaTeXParser.Mp_nofuncContext(self, _parentctx, _parentState)
  736. self.pushNewRecursionContext(localctx, _startState, self.RULE_mp_nofunc)
  737. self.state = 126
  738. if not self.precpred(self._ctx, 2):
  739. from antlr4.error.Errors import FailedPredicateException
  740. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  741. self.state = 127
  742. _la = self._input.LA(1)
  743. if not((((_la - 17)) & ~0x3f) == 0 and ((1 << (_la - 17)) & 290200700988686339) != 0):
  744. self._errHandler.recoverInline(self)
  745. else:
  746. self._errHandler.reportMatch(self)
  747. self.consume()
  748. self.state = 128
  749. self.mp_nofunc(3)
  750. self.state = 133
  751. self._errHandler.sync(self)
  752. _alt = self._interp.adaptivePredict(self._input,3,self._ctx)
  753. except RecognitionException as re:
  754. localctx.exception = re
  755. self._errHandler.reportError(self, re)
  756. self._errHandler.recover(self, re)
  757. finally:
  758. self.unrollRecursionContexts(_parentctx)
  759. return localctx
  760. class UnaryContext(ParserRuleContext):
  761. __slots__ = 'parser'
  762. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  763. super().__init__(parent, invokingState)
  764. self.parser = parser
  765. def unary(self):
  766. return self.getTypedRuleContext(LaTeXParser.UnaryContext,0)
  767. def ADD(self):
  768. return self.getToken(LaTeXParser.ADD, 0)
  769. def SUB(self):
  770. return self.getToken(LaTeXParser.SUB, 0)
  771. def postfix(self, i:int=None):
  772. if i is None:
  773. return self.getTypedRuleContexts(LaTeXParser.PostfixContext)
  774. else:
  775. return self.getTypedRuleContext(LaTeXParser.PostfixContext,i)
  776. def getRuleIndex(self):
  777. return LaTeXParser.RULE_unary
  778. def unary(self):
  779. localctx = LaTeXParser.UnaryContext(self, self._ctx, self.state)
  780. self.enterRule(localctx, 14, self.RULE_unary)
  781. self._la = 0 # Token type
  782. try:
  783. self.state = 141
  784. self._errHandler.sync(self)
  785. token = self._input.LA(1)
  786. if token in [15, 16]:
  787. self.enterOuterAlt(localctx, 1)
  788. self.state = 134
  789. _la = self._input.LA(1)
  790. if not(_la==15 or _la==16):
  791. self._errHandler.recoverInline(self)
  792. else:
  793. self._errHandler.reportMatch(self)
  794. self.consume()
  795. self.state = 135
  796. self.unary()
  797. pass
  798. elif token in [19, 21, 23, 25, 27, 29, 30, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 63, 64, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  799. self.enterOuterAlt(localctx, 2)
  800. self.state = 137
  801. self._errHandler.sync(self)
  802. _alt = 1
  803. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  804. if _alt == 1:
  805. self.state = 136
  806. self.postfix()
  807. else:
  808. raise NoViableAltException(self)
  809. self.state = 139
  810. self._errHandler.sync(self)
  811. _alt = self._interp.adaptivePredict(self._input,4,self._ctx)
  812. pass
  813. else:
  814. raise NoViableAltException(self)
  815. except RecognitionException as re:
  816. localctx.exception = re
  817. self._errHandler.reportError(self, re)
  818. self._errHandler.recover(self, re)
  819. finally:
  820. self.exitRule()
  821. return localctx
  822. class Unary_nofuncContext(ParserRuleContext):
  823. __slots__ = 'parser'
  824. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  825. super().__init__(parent, invokingState)
  826. self.parser = parser
  827. def unary_nofunc(self):
  828. return self.getTypedRuleContext(LaTeXParser.Unary_nofuncContext,0)
  829. def ADD(self):
  830. return self.getToken(LaTeXParser.ADD, 0)
  831. def SUB(self):
  832. return self.getToken(LaTeXParser.SUB, 0)
  833. def postfix(self):
  834. return self.getTypedRuleContext(LaTeXParser.PostfixContext,0)
  835. def postfix_nofunc(self, i:int=None):
  836. if i is None:
  837. return self.getTypedRuleContexts(LaTeXParser.Postfix_nofuncContext)
  838. else:
  839. return self.getTypedRuleContext(LaTeXParser.Postfix_nofuncContext,i)
  840. def getRuleIndex(self):
  841. return LaTeXParser.RULE_unary_nofunc
  842. def unary_nofunc(self):
  843. localctx = LaTeXParser.Unary_nofuncContext(self, self._ctx, self.state)
  844. self.enterRule(localctx, 16, self.RULE_unary_nofunc)
  845. self._la = 0 # Token type
  846. try:
  847. self.state = 152
  848. self._errHandler.sync(self)
  849. token = self._input.LA(1)
  850. if token in [15, 16]:
  851. self.enterOuterAlt(localctx, 1)
  852. self.state = 143
  853. _la = self._input.LA(1)
  854. if not(_la==15 or _la==16):
  855. self._errHandler.recoverInline(self)
  856. else:
  857. self._errHandler.reportMatch(self)
  858. self.consume()
  859. self.state = 144
  860. self.unary_nofunc()
  861. pass
  862. elif token in [19, 21, 23, 25, 27, 29, 30, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 63, 64, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  863. self.enterOuterAlt(localctx, 2)
  864. self.state = 145
  865. self.postfix()
  866. self.state = 149
  867. self._errHandler.sync(self)
  868. _alt = self._interp.adaptivePredict(self._input,6,self._ctx)
  869. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  870. if _alt==1:
  871. self.state = 146
  872. self.postfix_nofunc()
  873. self.state = 151
  874. self._errHandler.sync(self)
  875. _alt = self._interp.adaptivePredict(self._input,6,self._ctx)
  876. pass
  877. else:
  878. raise NoViableAltException(self)
  879. except RecognitionException as re:
  880. localctx.exception = re
  881. self._errHandler.reportError(self, re)
  882. self._errHandler.recover(self, re)
  883. finally:
  884. self.exitRule()
  885. return localctx
  886. class PostfixContext(ParserRuleContext):
  887. __slots__ = 'parser'
  888. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  889. super().__init__(parent, invokingState)
  890. self.parser = parser
  891. def exp(self):
  892. return self.getTypedRuleContext(LaTeXParser.ExpContext,0)
  893. def postfix_op(self, i:int=None):
  894. if i is None:
  895. return self.getTypedRuleContexts(LaTeXParser.Postfix_opContext)
  896. else:
  897. return self.getTypedRuleContext(LaTeXParser.Postfix_opContext,i)
  898. def getRuleIndex(self):
  899. return LaTeXParser.RULE_postfix
  900. def postfix(self):
  901. localctx = LaTeXParser.PostfixContext(self, self._ctx, self.state)
  902. self.enterRule(localctx, 18, self.RULE_postfix)
  903. try:
  904. self.enterOuterAlt(localctx, 1)
  905. self.state = 154
  906. self.exp(0)
  907. self.state = 158
  908. self._errHandler.sync(self)
  909. _alt = self._interp.adaptivePredict(self._input,8,self._ctx)
  910. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  911. if _alt==1:
  912. self.state = 155
  913. self.postfix_op()
  914. self.state = 160
  915. self._errHandler.sync(self)
  916. _alt = self._interp.adaptivePredict(self._input,8,self._ctx)
  917. except RecognitionException as re:
  918. localctx.exception = re
  919. self._errHandler.reportError(self, re)
  920. self._errHandler.recover(self, re)
  921. finally:
  922. self.exitRule()
  923. return localctx
  924. class Postfix_nofuncContext(ParserRuleContext):
  925. __slots__ = 'parser'
  926. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  927. super().__init__(parent, invokingState)
  928. self.parser = parser
  929. def exp_nofunc(self):
  930. return self.getTypedRuleContext(LaTeXParser.Exp_nofuncContext,0)
  931. def postfix_op(self, i:int=None):
  932. if i is None:
  933. return self.getTypedRuleContexts(LaTeXParser.Postfix_opContext)
  934. else:
  935. return self.getTypedRuleContext(LaTeXParser.Postfix_opContext,i)
  936. def getRuleIndex(self):
  937. return LaTeXParser.RULE_postfix_nofunc
  938. def postfix_nofunc(self):
  939. localctx = LaTeXParser.Postfix_nofuncContext(self, self._ctx, self.state)
  940. self.enterRule(localctx, 20, self.RULE_postfix_nofunc)
  941. try:
  942. self.enterOuterAlt(localctx, 1)
  943. self.state = 161
  944. self.exp_nofunc(0)
  945. self.state = 165
  946. self._errHandler.sync(self)
  947. _alt = self._interp.adaptivePredict(self._input,9,self._ctx)
  948. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  949. if _alt==1:
  950. self.state = 162
  951. self.postfix_op()
  952. self.state = 167
  953. self._errHandler.sync(self)
  954. _alt = self._interp.adaptivePredict(self._input,9,self._ctx)
  955. except RecognitionException as re:
  956. localctx.exception = re
  957. self._errHandler.reportError(self, re)
  958. self._errHandler.recover(self, re)
  959. finally:
  960. self.exitRule()
  961. return localctx
  962. class Postfix_opContext(ParserRuleContext):
  963. __slots__ = 'parser'
  964. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  965. super().__init__(parent, invokingState)
  966. self.parser = parser
  967. def BANG(self):
  968. return self.getToken(LaTeXParser.BANG, 0)
  969. def eval_at(self):
  970. return self.getTypedRuleContext(LaTeXParser.Eval_atContext,0)
  971. def getRuleIndex(self):
  972. return LaTeXParser.RULE_postfix_op
  973. def postfix_op(self):
  974. localctx = LaTeXParser.Postfix_opContext(self, self._ctx, self.state)
  975. self.enterRule(localctx, 22, self.RULE_postfix_op)
  976. try:
  977. self.state = 170
  978. self._errHandler.sync(self)
  979. token = self._input.LA(1)
  980. if token in [89]:
  981. self.enterOuterAlt(localctx, 1)
  982. self.state = 168
  983. self.match(LaTeXParser.BANG)
  984. pass
  985. elif token in [27]:
  986. self.enterOuterAlt(localctx, 2)
  987. self.state = 169
  988. self.eval_at()
  989. pass
  990. else:
  991. raise NoViableAltException(self)
  992. except RecognitionException as re:
  993. localctx.exception = re
  994. self._errHandler.reportError(self, re)
  995. self._errHandler.recover(self, re)
  996. finally:
  997. self.exitRule()
  998. return localctx
  999. class Eval_atContext(ParserRuleContext):
  1000. __slots__ = 'parser'
  1001. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1002. super().__init__(parent, invokingState)
  1003. self.parser = parser
  1004. def BAR(self):
  1005. return self.getToken(LaTeXParser.BAR, 0)
  1006. def eval_at_sup(self):
  1007. return self.getTypedRuleContext(LaTeXParser.Eval_at_supContext,0)
  1008. def eval_at_sub(self):
  1009. return self.getTypedRuleContext(LaTeXParser.Eval_at_subContext,0)
  1010. def getRuleIndex(self):
  1011. return LaTeXParser.RULE_eval_at
  1012. def eval_at(self):
  1013. localctx = LaTeXParser.Eval_atContext(self, self._ctx, self.state)
  1014. self.enterRule(localctx, 24, self.RULE_eval_at)
  1015. try:
  1016. self.enterOuterAlt(localctx, 1)
  1017. self.state = 172
  1018. self.match(LaTeXParser.BAR)
  1019. self.state = 178
  1020. self._errHandler.sync(self)
  1021. la_ = self._interp.adaptivePredict(self._input,11,self._ctx)
  1022. if la_ == 1:
  1023. self.state = 173
  1024. self.eval_at_sup()
  1025. pass
  1026. elif la_ == 2:
  1027. self.state = 174
  1028. self.eval_at_sub()
  1029. pass
  1030. elif la_ == 3:
  1031. self.state = 175
  1032. self.eval_at_sup()
  1033. self.state = 176
  1034. self.eval_at_sub()
  1035. pass
  1036. except RecognitionException as re:
  1037. localctx.exception = re
  1038. self._errHandler.reportError(self, re)
  1039. self._errHandler.recover(self, re)
  1040. finally:
  1041. self.exitRule()
  1042. return localctx
  1043. class Eval_at_subContext(ParserRuleContext):
  1044. __slots__ = 'parser'
  1045. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1046. super().__init__(parent, invokingState)
  1047. self.parser = parser
  1048. def UNDERSCORE(self):
  1049. return self.getToken(LaTeXParser.UNDERSCORE, 0)
  1050. def L_BRACE(self):
  1051. return self.getToken(LaTeXParser.L_BRACE, 0)
  1052. def R_BRACE(self):
  1053. return self.getToken(LaTeXParser.R_BRACE, 0)
  1054. def expr(self):
  1055. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1056. def equality(self):
  1057. return self.getTypedRuleContext(LaTeXParser.EqualityContext,0)
  1058. def getRuleIndex(self):
  1059. return LaTeXParser.RULE_eval_at_sub
  1060. def eval_at_sub(self):
  1061. localctx = LaTeXParser.Eval_at_subContext(self, self._ctx, self.state)
  1062. self.enterRule(localctx, 26, self.RULE_eval_at_sub)
  1063. try:
  1064. self.enterOuterAlt(localctx, 1)
  1065. self.state = 180
  1066. self.match(LaTeXParser.UNDERSCORE)
  1067. self.state = 181
  1068. self.match(LaTeXParser.L_BRACE)
  1069. self.state = 184
  1070. self._errHandler.sync(self)
  1071. la_ = self._interp.adaptivePredict(self._input,12,self._ctx)
  1072. if la_ == 1:
  1073. self.state = 182
  1074. self.expr()
  1075. pass
  1076. elif la_ == 2:
  1077. self.state = 183
  1078. self.equality()
  1079. pass
  1080. self.state = 186
  1081. self.match(LaTeXParser.R_BRACE)
  1082. except RecognitionException as re:
  1083. localctx.exception = re
  1084. self._errHandler.reportError(self, re)
  1085. self._errHandler.recover(self, re)
  1086. finally:
  1087. self.exitRule()
  1088. return localctx
  1089. class Eval_at_supContext(ParserRuleContext):
  1090. __slots__ = 'parser'
  1091. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1092. super().__init__(parent, invokingState)
  1093. self.parser = parser
  1094. def CARET(self):
  1095. return self.getToken(LaTeXParser.CARET, 0)
  1096. def L_BRACE(self):
  1097. return self.getToken(LaTeXParser.L_BRACE, 0)
  1098. def R_BRACE(self):
  1099. return self.getToken(LaTeXParser.R_BRACE, 0)
  1100. def expr(self):
  1101. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1102. def equality(self):
  1103. return self.getTypedRuleContext(LaTeXParser.EqualityContext,0)
  1104. def getRuleIndex(self):
  1105. return LaTeXParser.RULE_eval_at_sup
  1106. def eval_at_sup(self):
  1107. localctx = LaTeXParser.Eval_at_supContext(self, self._ctx, self.state)
  1108. self.enterRule(localctx, 28, self.RULE_eval_at_sup)
  1109. try:
  1110. self.enterOuterAlt(localctx, 1)
  1111. self.state = 188
  1112. self.match(LaTeXParser.CARET)
  1113. self.state = 189
  1114. self.match(LaTeXParser.L_BRACE)
  1115. self.state = 192
  1116. self._errHandler.sync(self)
  1117. la_ = self._interp.adaptivePredict(self._input,13,self._ctx)
  1118. if la_ == 1:
  1119. self.state = 190
  1120. self.expr()
  1121. pass
  1122. elif la_ == 2:
  1123. self.state = 191
  1124. self.equality()
  1125. pass
  1126. self.state = 194
  1127. self.match(LaTeXParser.R_BRACE)
  1128. except RecognitionException as re:
  1129. localctx.exception = re
  1130. self._errHandler.reportError(self, re)
  1131. self._errHandler.recover(self, re)
  1132. finally:
  1133. self.exitRule()
  1134. return localctx
  1135. class ExpContext(ParserRuleContext):
  1136. __slots__ = 'parser'
  1137. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1138. super().__init__(parent, invokingState)
  1139. self.parser = parser
  1140. def comp(self):
  1141. return self.getTypedRuleContext(LaTeXParser.CompContext,0)
  1142. def exp(self):
  1143. return self.getTypedRuleContext(LaTeXParser.ExpContext,0)
  1144. def CARET(self):
  1145. return self.getToken(LaTeXParser.CARET, 0)
  1146. def atom(self):
  1147. return self.getTypedRuleContext(LaTeXParser.AtomContext,0)
  1148. def L_BRACE(self):
  1149. return self.getToken(LaTeXParser.L_BRACE, 0)
  1150. def expr(self):
  1151. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1152. def R_BRACE(self):
  1153. return self.getToken(LaTeXParser.R_BRACE, 0)
  1154. def subexpr(self):
  1155. return self.getTypedRuleContext(LaTeXParser.SubexprContext,0)
  1156. def getRuleIndex(self):
  1157. return LaTeXParser.RULE_exp
  1158. def exp(self, _p:int=0):
  1159. _parentctx = self._ctx
  1160. _parentState = self.state
  1161. localctx = LaTeXParser.ExpContext(self, self._ctx, _parentState)
  1162. _prevctx = localctx
  1163. _startState = 30
  1164. self.enterRecursionRule(localctx, 30, self.RULE_exp, _p)
  1165. try:
  1166. self.enterOuterAlt(localctx, 1)
  1167. self.state = 197
  1168. self.comp()
  1169. self._ctx.stop = self._input.LT(-1)
  1170. self.state = 213
  1171. self._errHandler.sync(self)
  1172. _alt = self._interp.adaptivePredict(self._input,16,self._ctx)
  1173. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  1174. if _alt==1:
  1175. if self._parseListeners is not None:
  1176. self.triggerExitRuleEvent()
  1177. _prevctx = localctx
  1178. localctx = LaTeXParser.ExpContext(self, _parentctx, _parentState)
  1179. self.pushNewRecursionContext(localctx, _startState, self.RULE_exp)
  1180. self.state = 199
  1181. if not self.precpred(self._ctx, 2):
  1182. from antlr4.error.Errors import FailedPredicateException
  1183. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  1184. self.state = 200
  1185. self.match(LaTeXParser.CARET)
  1186. self.state = 206
  1187. self._errHandler.sync(self)
  1188. token = self._input.LA(1)
  1189. if token in [27, 29, 30, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  1190. self.state = 201
  1191. self.atom()
  1192. pass
  1193. elif token in [21]:
  1194. self.state = 202
  1195. self.match(LaTeXParser.L_BRACE)
  1196. self.state = 203
  1197. self.expr()
  1198. self.state = 204
  1199. self.match(LaTeXParser.R_BRACE)
  1200. pass
  1201. else:
  1202. raise NoViableAltException(self)
  1203. self.state = 209
  1204. self._errHandler.sync(self)
  1205. la_ = self._interp.adaptivePredict(self._input,15,self._ctx)
  1206. if la_ == 1:
  1207. self.state = 208
  1208. self.subexpr()
  1209. self.state = 215
  1210. self._errHandler.sync(self)
  1211. _alt = self._interp.adaptivePredict(self._input,16,self._ctx)
  1212. except RecognitionException as re:
  1213. localctx.exception = re
  1214. self._errHandler.reportError(self, re)
  1215. self._errHandler.recover(self, re)
  1216. finally:
  1217. self.unrollRecursionContexts(_parentctx)
  1218. return localctx
  1219. class Exp_nofuncContext(ParserRuleContext):
  1220. __slots__ = 'parser'
  1221. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1222. super().__init__(parent, invokingState)
  1223. self.parser = parser
  1224. def comp_nofunc(self):
  1225. return self.getTypedRuleContext(LaTeXParser.Comp_nofuncContext,0)
  1226. def exp_nofunc(self):
  1227. return self.getTypedRuleContext(LaTeXParser.Exp_nofuncContext,0)
  1228. def CARET(self):
  1229. return self.getToken(LaTeXParser.CARET, 0)
  1230. def atom(self):
  1231. return self.getTypedRuleContext(LaTeXParser.AtomContext,0)
  1232. def L_BRACE(self):
  1233. return self.getToken(LaTeXParser.L_BRACE, 0)
  1234. def expr(self):
  1235. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1236. def R_BRACE(self):
  1237. return self.getToken(LaTeXParser.R_BRACE, 0)
  1238. def subexpr(self):
  1239. return self.getTypedRuleContext(LaTeXParser.SubexprContext,0)
  1240. def getRuleIndex(self):
  1241. return LaTeXParser.RULE_exp_nofunc
  1242. def exp_nofunc(self, _p:int=0):
  1243. _parentctx = self._ctx
  1244. _parentState = self.state
  1245. localctx = LaTeXParser.Exp_nofuncContext(self, self._ctx, _parentState)
  1246. _prevctx = localctx
  1247. _startState = 32
  1248. self.enterRecursionRule(localctx, 32, self.RULE_exp_nofunc, _p)
  1249. try:
  1250. self.enterOuterAlt(localctx, 1)
  1251. self.state = 217
  1252. self.comp_nofunc()
  1253. self._ctx.stop = self._input.LT(-1)
  1254. self.state = 233
  1255. self._errHandler.sync(self)
  1256. _alt = self._interp.adaptivePredict(self._input,19,self._ctx)
  1257. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  1258. if _alt==1:
  1259. if self._parseListeners is not None:
  1260. self.triggerExitRuleEvent()
  1261. _prevctx = localctx
  1262. localctx = LaTeXParser.Exp_nofuncContext(self, _parentctx, _parentState)
  1263. self.pushNewRecursionContext(localctx, _startState, self.RULE_exp_nofunc)
  1264. self.state = 219
  1265. if not self.precpred(self._ctx, 2):
  1266. from antlr4.error.Errors import FailedPredicateException
  1267. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  1268. self.state = 220
  1269. self.match(LaTeXParser.CARET)
  1270. self.state = 226
  1271. self._errHandler.sync(self)
  1272. token = self._input.LA(1)
  1273. if token in [27, 29, 30, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  1274. self.state = 221
  1275. self.atom()
  1276. pass
  1277. elif token in [21]:
  1278. self.state = 222
  1279. self.match(LaTeXParser.L_BRACE)
  1280. self.state = 223
  1281. self.expr()
  1282. self.state = 224
  1283. self.match(LaTeXParser.R_BRACE)
  1284. pass
  1285. else:
  1286. raise NoViableAltException(self)
  1287. self.state = 229
  1288. self._errHandler.sync(self)
  1289. la_ = self._interp.adaptivePredict(self._input,18,self._ctx)
  1290. if la_ == 1:
  1291. self.state = 228
  1292. self.subexpr()
  1293. self.state = 235
  1294. self._errHandler.sync(self)
  1295. _alt = self._interp.adaptivePredict(self._input,19,self._ctx)
  1296. except RecognitionException as re:
  1297. localctx.exception = re
  1298. self._errHandler.reportError(self, re)
  1299. self._errHandler.recover(self, re)
  1300. finally:
  1301. self.unrollRecursionContexts(_parentctx)
  1302. return localctx
  1303. class CompContext(ParserRuleContext):
  1304. __slots__ = 'parser'
  1305. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1306. super().__init__(parent, invokingState)
  1307. self.parser = parser
  1308. def group(self):
  1309. return self.getTypedRuleContext(LaTeXParser.GroupContext,0)
  1310. def abs_group(self):
  1311. return self.getTypedRuleContext(LaTeXParser.Abs_groupContext,0)
  1312. def func(self):
  1313. return self.getTypedRuleContext(LaTeXParser.FuncContext,0)
  1314. def atom(self):
  1315. return self.getTypedRuleContext(LaTeXParser.AtomContext,0)
  1316. def floor(self):
  1317. return self.getTypedRuleContext(LaTeXParser.FloorContext,0)
  1318. def ceil(self):
  1319. return self.getTypedRuleContext(LaTeXParser.CeilContext,0)
  1320. def getRuleIndex(self):
  1321. return LaTeXParser.RULE_comp
  1322. def comp(self):
  1323. localctx = LaTeXParser.CompContext(self, self._ctx, self.state)
  1324. self.enterRule(localctx, 34, self.RULE_comp)
  1325. try:
  1326. self.state = 242
  1327. self._errHandler.sync(self)
  1328. la_ = self._interp.adaptivePredict(self._input,20,self._ctx)
  1329. if la_ == 1:
  1330. self.enterOuterAlt(localctx, 1)
  1331. self.state = 236
  1332. self.group()
  1333. pass
  1334. elif la_ == 2:
  1335. self.enterOuterAlt(localctx, 2)
  1336. self.state = 237
  1337. self.abs_group()
  1338. pass
  1339. elif la_ == 3:
  1340. self.enterOuterAlt(localctx, 3)
  1341. self.state = 238
  1342. self.func()
  1343. pass
  1344. elif la_ == 4:
  1345. self.enterOuterAlt(localctx, 4)
  1346. self.state = 239
  1347. self.atom()
  1348. pass
  1349. elif la_ == 5:
  1350. self.enterOuterAlt(localctx, 5)
  1351. self.state = 240
  1352. self.floor()
  1353. pass
  1354. elif la_ == 6:
  1355. self.enterOuterAlt(localctx, 6)
  1356. self.state = 241
  1357. self.ceil()
  1358. pass
  1359. except RecognitionException as re:
  1360. localctx.exception = re
  1361. self._errHandler.reportError(self, re)
  1362. self._errHandler.recover(self, re)
  1363. finally:
  1364. self.exitRule()
  1365. return localctx
  1366. class Comp_nofuncContext(ParserRuleContext):
  1367. __slots__ = 'parser'
  1368. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1369. super().__init__(parent, invokingState)
  1370. self.parser = parser
  1371. def group(self):
  1372. return self.getTypedRuleContext(LaTeXParser.GroupContext,0)
  1373. def abs_group(self):
  1374. return self.getTypedRuleContext(LaTeXParser.Abs_groupContext,0)
  1375. def atom(self):
  1376. return self.getTypedRuleContext(LaTeXParser.AtomContext,0)
  1377. def floor(self):
  1378. return self.getTypedRuleContext(LaTeXParser.FloorContext,0)
  1379. def ceil(self):
  1380. return self.getTypedRuleContext(LaTeXParser.CeilContext,0)
  1381. def getRuleIndex(self):
  1382. return LaTeXParser.RULE_comp_nofunc
  1383. def comp_nofunc(self):
  1384. localctx = LaTeXParser.Comp_nofuncContext(self, self._ctx, self.state)
  1385. self.enterRule(localctx, 36, self.RULE_comp_nofunc)
  1386. try:
  1387. self.state = 249
  1388. self._errHandler.sync(self)
  1389. la_ = self._interp.adaptivePredict(self._input,21,self._ctx)
  1390. if la_ == 1:
  1391. self.enterOuterAlt(localctx, 1)
  1392. self.state = 244
  1393. self.group()
  1394. pass
  1395. elif la_ == 2:
  1396. self.enterOuterAlt(localctx, 2)
  1397. self.state = 245
  1398. self.abs_group()
  1399. pass
  1400. elif la_ == 3:
  1401. self.enterOuterAlt(localctx, 3)
  1402. self.state = 246
  1403. self.atom()
  1404. pass
  1405. elif la_ == 4:
  1406. self.enterOuterAlt(localctx, 4)
  1407. self.state = 247
  1408. self.floor()
  1409. pass
  1410. elif la_ == 5:
  1411. self.enterOuterAlt(localctx, 5)
  1412. self.state = 248
  1413. self.ceil()
  1414. pass
  1415. except RecognitionException as re:
  1416. localctx.exception = re
  1417. self._errHandler.reportError(self, re)
  1418. self._errHandler.recover(self, re)
  1419. finally:
  1420. self.exitRule()
  1421. return localctx
  1422. class GroupContext(ParserRuleContext):
  1423. __slots__ = 'parser'
  1424. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1425. super().__init__(parent, invokingState)
  1426. self.parser = parser
  1427. def L_PAREN(self):
  1428. return self.getToken(LaTeXParser.L_PAREN, 0)
  1429. def expr(self):
  1430. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1431. def R_PAREN(self):
  1432. return self.getToken(LaTeXParser.R_PAREN, 0)
  1433. def L_BRACKET(self):
  1434. return self.getToken(LaTeXParser.L_BRACKET, 0)
  1435. def R_BRACKET(self):
  1436. return self.getToken(LaTeXParser.R_BRACKET, 0)
  1437. def L_BRACE(self):
  1438. return self.getToken(LaTeXParser.L_BRACE, 0)
  1439. def R_BRACE(self):
  1440. return self.getToken(LaTeXParser.R_BRACE, 0)
  1441. def L_BRACE_LITERAL(self):
  1442. return self.getToken(LaTeXParser.L_BRACE_LITERAL, 0)
  1443. def R_BRACE_LITERAL(self):
  1444. return self.getToken(LaTeXParser.R_BRACE_LITERAL, 0)
  1445. def getRuleIndex(self):
  1446. return LaTeXParser.RULE_group
  1447. def group(self):
  1448. localctx = LaTeXParser.GroupContext(self, self._ctx, self.state)
  1449. self.enterRule(localctx, 38, self.RULE_group)
  1450. try:
  1451. self.state = 267
  1452. self._errHandler.sync(self)
  1453. token = self._input.LA(1)
  1454. if token in [19]:
  1455. self.enterOuterAlt(localctx, 1)
  1456. self.state = 251
  1457. self.match(LaTeXParser.L_PAREN)
  1458. self.state = 252
  1459. self.expr()
  1460. self.state = 253
  1461. self.match(LaTeXParser.R_PAREN)
  1462. pass
  1463. elif token in [25]:
  1464. self.enterOuterAlt(localctx, 2)
  1465. self.state = 255
  1466. self.match(LaTeXParser.L_BRACKET)
  1467. self.state = 256
  1468. self.expr()
  1469. self.state = 257
  1470. self.match(LaTeXParser.R_BRACKET)
  1471. pass
  1472. elif token in [21]:
  1473. self.enterOuterAlt(localctx, 3)
  1474. self.state = 259
  1475. self.match(LaTeXParser.L_BRACE)
  1476. self.state = 260
  1477. self.expr()
  1478. self.state = 261
  1479. self.match(LaTeXParser.R_BRACE)
  1480. pass
  1481. elif token in [23]:
  1482. self.enterOuterAlt(localctx, 4)
  1483. self.state = 263
  1484. self.match(LaTeXParser.L_BRACE_LITERAL)
  1485. self.state = 264
  1486. self.expr()
  1487. self.state = 265
  1488. self.match(LaTeXParser.R_BRACE_LITERAL)
  1489. pass
  1490. else:
  1491. raise NoViableAltException(self)
  1492. except RecognitionException as re:
  1493. localctx.exception = re
  1494. self._errHandler.reportError(self, re)
  1495. self._errHandler.recover(self, re)
  1496. finally:
  1497. self.exitRule()
  1498. return localctx
  1499. class Abs_groupContext(ParserRuleContext):
  1500. __slots__ = 'parser'
  1501. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1502. super().__init__(parent, invokingState)
  1503. self.parser = parser
  1504. def BAR(self, i:int=None):
  1505. if i is None:
  1506. return self.getTokens(LaTeXParser.BAR)
  1507. else:
  1508. return self.getToken(LaTeXParser.BAR, i)
  1509. def expr(self):
  1510. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1511. def getRuleIndex(self):
  1512. return LaTeXParser.RULE_abs_group
  1513. def abs_group(self):
  1514. localctx = LaTeXParser.Abs_groupContext(self, self._ctx, self.state)
  1515. self.enterRule(localctx, 40, self.RULE_abs_group)
  1516. try:
  1517. self.enterOuterAlt(localctx, 1)
  1518. self.state = 269
  1519. self.match(LaTeXParser.BAR)
  1520. self.state = 270
  1521. self.expr()
  1522. self.state = 271
  1523. self.match(LaTeXParser.BAR)
  1524. except RecognitionException as re:
  1525. localctx.exception = re
  1526. self._errHandler.reportError(self, re)
  1527. self._errHandler.recover(self, re)
  1528. finally:
  1529. self.exitRule()
  1530. return localctx
  1531. class NumberContext(ParserRuleContext):
  1532. __slots__ = 'parser'
  1533. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1534. super().__init__(parent, invokingState)
  1535. self.parser = parser
  1536. def DIGIT(self, i:int=None):
  1537. if i is None:
  1538. return self.getTokens(LaTeXParser.DIGIT)
  1539. else:
  1540. return self.getToken(LaTeXParser.DIGIT, i)
  1541. def getRuleIndex(self):
  1542. return LaTeXParser.RULE_number
  1543. def number(self):
  1544. localctx = LaTeXParser.NumberContext(self, self._ctx, self.state)
  1545. self.enterRule(localctx, 42, self.RULE_number)
  1546. try:
  1547. self.enterOuterAlt(localctx, 1)
  1548. self.state = 274
  1549. self._errHandler.sync(self)
  1550. _alt = 1
  1551. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  1552. if _alt == 1:
  1553. self.state = 273
  1554. self.match(LaTeXParser.DIGIT)
  1555. else:
  1556. raise NoViableAltException(self)
  1557. self.state = 276
  1558. self._errHandler.sync(self)
  1559. _alt = self._interp.adaptivePredict(self._input,23,self._ctx)
  1560. self.state = 284
  1561. self._errHandler.sync(self)
  1562. _alt = self._interp.adaptivePredict(self._input,24,self._ctx)
  1563. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  1564. if _alt==1:
  1565. self.state = 278
  1566. self.match(LaTeXParser.T__0)
  1567. self.state = 279
  1568. self.match(LaTeXParser.DIGIT)
  1569. self.state = 280
  1570. self.match(LaTeXParser.DIGIT)
  1571. self.state = 281
  1572. self.match(LaTeXParser.DIGIT)
  1573. self.state = 286
  1574. self._errHandler.sync(self)
  1575. _alt = self._interp.adaptivePredict(self._input,24,self._ctx)
  1576. self.state = 293
  1577. self._errHandler.sync(self)
  1578. la_ = self._interp.adaptivePredict(self._input,26,self._ctx)
  1579. if la_ == 1:
  1580. self.state = 287
  1581. self.match(LaTeXParser.T__1)
  1582. self.state = 289
  1583. self._errHandler.sync(self)
  1584. _alt = 1
  1585. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  1586. if _alt == 1:
  1587. self.state = 288
  1588. self.match(LaTeXParser.DIGIT)
  1589. else:
  1590. raise NoViableAltException(self)
  1591. self.state = 291
  1592. self._errHandler.sync(self)
  1593. _alt = self._interp.adaptivePredict(self._input,25,self._ctx)
  1594. except RecognitionException as re:
  1595. localctx.exception = re
  1596. self._errHandler.reportError(self, re)
  1597. self._errHandler.recover(self, re)
  1598. finally:
  1599. self.exitRule()
  1600. return localctx
  1601. class AtomContext(ParserRuleContext):
  1602. __slots__ = 'parser'
  1603. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1604. super().__init__(parent, invokingState)
  1605. self.parser = parser
  1606. def LETTER(self):
  1607. return self.getToken(LaTeXParser.LETTER, 0)
  1608. def SYMBOL(self):
  1609. return self.getToken(LaTeXParser.SYMBOL, 0)
  1610. def subexpr(self):
  1611. return self.getTypedRuleContext(LaTeXParser.SubexprContext,0)
  1612. def SINGLE_QUOTES(self):
  1613. return self.getToken(LaTeXParser.SINGLE_QUOTES, 0)
  1614. def number(self):
  1615. return self.getTypedRuleContext(LaTeXParser.NumberContext,0)
  1616. def DIFFERENTIAL(self):
  1617. return self.getToken(LaTeXParser.DIFFERENTIAL, 0)
  1618. def mathit(self):
  1619. return self.getTypedRuleContext(LaTeXParser.MathitContext,0)
  1620. def frac(self):
  1621. return self.getTypedRuleContext(LaTeXParser.FracContext,0)
  1622. def binom(self):
  1623. return self.getTypedRuleContext(LaTeXParser.BinomContext,0)
  1624. def bra(self):
  1625. return self.getTypedRuleContext(LaTeXParser.BraContext,0)
  1626. def ket(self):
  1627. return self.getTypedRuleContext(LaTeXParser.KetContext,0)
  1628. def getRuleIndex(self):
  1629. return LaTeXParser.RULE_atom
  1630. def atom(self):
  1631. localctx = LaTeXParser.AtomContext(self, self._ctx, self.state)
  1632. self.enterRule(localctx, 44, self.RULE_atom)
  1633. self._la = 0 # Token type
  1634. try:
  1635. self.state = 317
  1636. self._errHandler.sync(self)
  1637. token = self._input.LA(1)
  1638. if token in [77, 91]:
  1639. self.enterOuterAlt(localctx, 1)
  1640. self.state = 295
  1641. _la = self._input.LA(1)
  1642. if not(_la==77 or _la==91):
  1643. self._errHandler.recoverInline(self)
  1644. else:
  1645. self._errHandler.reportMatch(self)
  1646. self.consume()
  1647. self.state = 308
  1648. self._errHandler.sync(self)
  1649. la_ = self._interp.adaptivePredict(self._input,31,self._ctx)
  1650. if la_ == 1:
  1651. self.state = 297
  1652. self._errHandler.sync(self)
  1653. la_ = self._interp.adaptivePredict(self._input,27,self._ctx)
  1654. if la_ == 1:
  1655. self.state = 296
  1656. self.subexpr()
  1657. self.state = 300
  1658. self._errHandler.sync(self)
  1659. la_ = self._interp.adaptivePredict(self._input,28,self._ctx)
  1660. if la_ == 1:
  1661. self.state = 299
  1662. self.match(LaTeXParser.SINGLE_QUOTES)
  1663. pass
  1664. elif la_ == 2:
  1665. self.state = 303
  1666. self._errHandler.sync(self)
  1667. la_ = self._interp.adaptivePredict(self._input,29,self._ctx)
  1668. if la_ == 1:
  1669. self.state = 302
  1670. self.match(LaTeXParser.SINGLE_QUOTES)
  1671. self.state = 306
  1672. self._errHandler.sync(self)
  1673. la_ = self._interp.adaptivePredict(self._input,30,self._ctx)
  1674. if la_ == 1:
  1675. self.state = 305
  1676. self.subexpr()
  1677. pass
  1678. pass
  1679. elif token in [78]:
  1680. self.enterOuterAlt(localctx, 2)
  1681. self.state = 310
  1682. self.number()
  1683. pass
  1684. elif token in [76]:
  1685. self.enterOuterAlt(localctx, 3)
  1686. self.state = 311
  1687. self.match(LaTeXParser.DIFFERENTIAL)
  1688. pass
  1689. elif token in [72]:
  1690. self.enterOuterAlt(localctx, 4)
  1691. self.state = 312
  1692. self.mathit()
  1693. pass
  1694. elif token in [68]:
  1695. self.enterOuterAlt(localctx, 5)
  1696. self.state = 313
  1697. self.frac()
  1698. pass
  1699. elif token in [69, 70, 71]:
  1700. self.enterOuterAlt(localctx, 6)
  1701. self.state = 314
  1702. self.binom()
  1703. pass
  1704. elif token in [30]:
  1705. self.enterOuterAlt(localctx, 7)
  1706. self.state = 315
  1707. self.bra()
  1708. pass
  1709. elif token in [27, 29]:
  1710. self.enterOuterAlt(localctx, 8)
  1711. self.state = 316
  1712. self.ket()
  1713. pass
  1714. else:
  1715. raise NoViableAltException(self)
  1716. except RecognitionException as re:
  1717. localctx.exception = re
  1718. self._errHandler.reportError(self, re)
  1719. self._errHandler.recover(self, re)
  1720. finally:
  1721. self.exitRule()
  1722. return localctx
  1723. class BraContext(ParserRuleContext):
  1724. __slots__ = 'parser'
  1725. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1726. super().__init__(parent, invokingState)
  1727. self.parser = parser
  1728. def L_ANGLE(self):
  1729. return self.getToken(LaTeXParser.L_ANGLE, 0)
  1730. def expr(self):
  1731. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1732. def R_BAR(self):
  1733. return self.getToken(LaTeXParser.R_BAR, 0)
  1734. def BAR(self):
  1735. return self.getToken(LaTeXParser.BAR, 0)
  1736. def getRuleIndex(self):
  1737. return LaTeXParser.RULE_bra
  1738. def bra(self):
  1739. localctx = LaTeXParser.BraContext(self, self._ctx, self.state)
  1740. self.enterRule(localctx, 46, self.RULE_bra)
  1741. self._la = 0 # Token type
  1742. try:
  1743. self.enterOuterAlt(localctx, 1)
  1744. self.state = 319
  1745. self.match(LaTeXParser.L_ANGLE)
  1746. self.state = 320
  1747. self.expr()
  1748. self.state = 321
  1749. _la = self._input.LA(1)
  1750. if not(_la==27 or _la==28):
  1751. self._errHandler.recoverInline(self)
  1752. else:
  1753. self._errHandler.reportMatch(self)
  1754. self.consume()
  1755. except RecognitionException as re:
  1756. localctx.exception = re
  1757. self._errHandler.reportError(self, re)
  1758. self._errHandler.recover(self, re)
  1759. finally:
  1760. self.exitRule()
  1761. return localctx
  1762. class KetContext(ParserRuleContext):
  1763. __slots__ = 'parser'
  1764. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1765. super().__init__(parent, invokingState)
  1766. self.parser = parser
  1767. def expr(self):
  1768. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  1769. def R_ANGLE(self):
  1770. return self.getToken(LaTeXParser.R_ANGLE, 0)
  1771. def L_BAR(self):
  1772. return self.getToken(LaTeXParser.L_BAR, 0)
  1773. def BAR(self):
  1774. return self.getToken(LaTeXParser.BAR, 0)
  1775. def getRuleIndex(self):
  1776. return LaTeXParser.RULE_ket
  1777. def ket(self):
  1778. localctx = LaTeXParser.KetContext(self, self._ctx, self.state)
  1779. self.enterRule(localctx, 48, self.RULE_ket)
  1780. self._la = 0 # Token type
  1781. try:
  1782. self.enterOuterAlt(localctx, 1)
  1783. self.state = 323
  1784. _la = self._input.LA(1)
  1785. if not(_la==27 or _la==29):
  1786. self._errHandler.recoverInline(self)
  1787. else:
  1788. self._errHandler.reportMatch(self)
  1789. self.consume()
  1790. self.state = 324
  1791. self.expr()
  1792. self.state = 325
  1793. self.match(LaTeXParser.R_ANGLE)
  1794. except RecognitionException as re:
  1795. localctx.exception = re
  1796. self._errHandler.reportError(self, re)
  1797. self._errHandler.recover(self, re)
  1798. finally:
  1799. self.exitRule()
  1800. return localctx
  1801. class MathitContext(ParserRuleContext):
  1802. __slots__ = 'parser'
  1803. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1804. super().__init__(parent, invokingState)
  1805. self.parser = parser
  1806. def CMD_MATHIT(self):
  1807. return self.getToken(LaTeXParser.CMD_MATHIT, 0)
  1808. def L_BRACE(self):
  1809. return self.getToken(LaTeXParser.L_BRACE, 0)
  1810. def mathit_text(self):
  1811. return self.getTypedRuleContext(LaTeXParser.Mathit_textContext,0)
  1812. def R_BRACE(self):
  1813. return self.getToken(LaTeXParser.R_BRACE, 0)
  1814. def getRuleIndex(self):
  1815. return LaTeXParser.RULE_mathit
  1816. def mathit(self):
  1817. localctx = LaTeXParser.MathitContext(self, self._ctx, self.state)
  1818. self.enterRule(localctx, 50, self.RULE_mathit)
  1819. try:
  1820. self.enterOuterAlt(localctx, 1)
  1821. self.state = 327
  1822. self.match(LaTeXParser.CMD_MATHIT)
  1823. self.state = 328
  1824. self.match(LaTeXParser.L_BRACE)
  1825. self.state = 329
  1826. self.mathit_text()
  1827. self.state = 330
  1828. self.match(LaTeXParser.R_BRACE)
  1829. except RecognitionException as re:
  1830. localctx.exception = re
  1831. self._errHandler.reportError(self, re)
  1832. self._errHandler.recover(self, re)
  1833. finally:
  1834. self.exitRule()
  1835. return localctx
  1836. class Mathit_textContext(ParserRuleContext):
  1837. __slots__ = 'parser'
  1838. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1839. super().__init__(parent, invokingState)
  1840. self.parser = parser
  1841. def LETTER(self, i:int=None):
  1842. if i is None:
  1843. return self.getTokens(LaTeXParser.LETTER)
  1844. else:
  1845. return self.getToken(LaTeXParser.LETTER, i)
  1846. def getRuleIndex(self):
  1847. return LaTeXParser.RULE_mathit_text
  1848. def mathit_text(self):
  1849. localctx = LaTeXParser.Mathit_textContext(self, self._ctx, self.state)
  1850. self.enterRule(localctx, 52, self.RULE_mathit_text)
  1851. self._la = 0 # Token type
  1852. try:
  1853. self.enterOuterAlt(localctx, 1)
  1854. self.state = 335
  1855. self._errHandler.sync(self)
  1856. _la = self._input.LA(1)
  1857. while _la==77:
  1858. self.state = 332
  1859. self.match(LaTeXParser.LETTER)
  1860. self.state = 337
  1861. self._errHandler.sync(self)
  1862. _la = self._input.LA(1)
  1863. except RecognitionException as re:
  1864. localctx.exception = re
  1865. self._errHandler.reportError(self, re)
  1866. self._errHandler.recover(self, re)
  1867. finally:
  1868. self.exitRule()
  1869. return localctx
  1870. class FracContext(ParserRuleContext):
  1871. __slots__ = 'parser'
  1872. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1873. super().__init__(parent, invokingState)
  1874. self.parser = parser
  1875. self.upperd = None # Token
  1876. self.upper = None # ExprContext
  1877. self.lowerd = None # Token
  1878. self.lower = None # ExprContext
  1879. def CMD_FRAC(self):
  1880. return self.getToken(LaTeXParser.CMD_FRAC, 0)
  1881. def L_BRACE(self, i:int=None):
  1882. if i is None:
  1883. return self.getTokens(LaTeXParser.L_BRACE)
  1884. else:
  1885. return self.getToken(LaTeXParser.L_BRACE, i)
  1886. def R_BRACE(self, i:int=None):
  1887. if i is None:
  1888. return self.getTokens(LaTeXParser.R_BRACE)
  1889. else:
  1890. return self.getToken(LaTeXParser.R_BRACE, i)
  1891. def DIGIT(self, i:int=None):
  1892. if i is None:
  1893. return self.getTokens(LaTeXParser.DIGIT)
  1894. else:
  1895. return self.getToken(LaTeXParser.DIGIT, i)
  1896. def expr(self, i:int=None):
  1897. if i is None:
  1898. return self.getTypedRuleContexts(LaTeXParser.ExprContext)
  1899. else:
  1900. return self.getTypedRuleContext(LaTeXParser.ExprContext,i)
  1901. def getRuleIndex(self):
  1902. return LaTeXParser.RULE_frac
  1903. def frac(self):
  1904. localctx = LaTeXParser.FracContext(self, self._ctx, self.state)
  1905. self.enterRule(localctx, 54, self.RULE_frac)
  1906. try:
  1907. self.enterOuterAlt(localctx, 1)
  1908. self.state = 338
  1909. self.match(LaTeXParser.CMD_FRAC)
  1910. self.state = 344
  1911. self._errHandler.sync(self)
  1912. token = self._input.LA(1)
  1913. if token in [78]:
  1914. self.state = 339
  1915. localctx.upperd = self.match(LaTeXParser.DIGIT)
  1916. pass
  1917. elif token in [21]:
  1918. self.state = 340
  1919. self.match(LaTeXParser.L_BRACE)
  1920. self.state = 341
  1921. localctx.upper = self.expr()
  1922. self.state = 342
  1923. self.match(LaTeXParser.R_BRACE)
  1924. pass
  1925. else:
  1926. raise NoViableAltException(self)
  1927. self.state = 351
  1928. self._errHandler.sync(self)
  1929. token = self._input.LA(1)
  1930. if token in [78]:
  1931. self.state = 346
  1932. localctx.lowerd = self.match(LaTeXParser.DIGIT)
  1933. pass
  1934. elif token in [21]:
  1935. self.state = 347
  1936. self.match(LaTeXParser.L_BRACE)
  1937. self.state = 348
  1938. localctx.lower = self.expr()
  1939. self.state = 349
  1940. self.match(LaTeXParser.R_BRACE)
  1941. pass
  1942. else:
  1943. raise NoViableAltException(self)
  1944. except RecognitionException as re:
  1945. localctx.exception = re
  1946. self._errHandler.reportError(self, re)
  1947. self._errHandler.recover(self, re)
  1948. finally:
  1949. self.exitRule()
  1950. return localctx
  1951. class BinomContext(ParserRuleContext):
  1952. __slots__ = 'parser'
  1953. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  1954. super().__init__(parent, invokingState)
  1955. self.parser = parser
  1956. self.n = None # ExprContext
  1957. self.k = None # ExprContext
  1958. def L_BRACE(self, i:int=None):
  1959. if i is None:
  1960. return self.getTokens(LaTeXParser.L_BRACE)
  1961. else:
  1962. return self.getToken(LaTeXParser.L_BRACE, i)
  1963. def R_BRACE(self, i:int=None):
  1964. if i is None:
  1965. return self.getTokens(LaTeXParser.R_BRACE)
  1966. else:
  1967. return self.getToken(LaTeXParser.R_BRACE, i)
  1968. def CMD_BINOM(self):
  1969. return self.getToken(LaTeXParser.CMD_BINOM, 0)
  1970. def CMD_DBINOM(self):
  1971. return self.getToken(LaTeXParser.CMD_DBINOM, 0)
  1972. def CMD_TBINOM(self):
  1973. return self.getToken(LaTeXParser.CMD_TBINOM, 0)
  1974. def expr(self, i:int=None):
  1975. if i is None:
  1976. return self.getTypedRuleContexts(LaTeXParser.ExprContext)
  1977. else:
  1978. return self.getTypedRuleContext(LaTeXParser.ExprContext,i)
  1979. def getRuleIndex(self):
  1980. return LaTeXParser.RULE_binom
  1981. def binom(self):
  1982. localctx = LaTeXParser.BinomContext(self, self._ctx, self.state)
  1983. self.enterRule(localctx, 56, self.RULE_binom)
  1984. self._la = 0 # Token type
  1985. try:
  1986. self.enterOuterAlt(localctx, 1)
  1987. self.state = 353
  1988. _la = self._input.LA(1)
  1989. if not((((_la - 69)) & ~0x3f) == 0 and ((1 << (_la - 69)) & 7) != 0):
  1990. self._errHandler.recoverInline(self)
  1991. else:
  1992. self._errHandler.reportMatch(self)
  1993. self.consume()
  1994. self.state = 354
  1995. self.match(LaTeXParser.L_BRACE)
  1996. self.state = 355
  1997. localctx.n = self.expr()
  1998. self.state = 356
  1999. self.match(LaTeXParser.R_BRACE)
  2000. self.state = 357
  2001. self.match(LaTeXParser.L_BRACE)
  2002. self.state = 358
  2003. localctx.k = self.expr()
  2004. self.state = 359
  2005. self.match(LaTeXParser.R_BRACE)
  2006. except RecognitionException as re:
  2007. localctx.exception = re
  2008. self._errHandler.reportError(self, re)
  2009. self._errHandler.recover(self, re)
  2010. finally:
  2011. self.exitRule()
  2012. return localctx
  2013. class FloorContext(ParserRuleContext):
  2014. __slots__ = 'parser'
  2015. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2016. super().__init__(parent, invokingState)
  2017. self.parser = parser
  2018. self.val = None # ExprContext
  2019. def L_FLOOR(self):
  2020. return self.getToken(LaTeXParser.L_FLOOR, 0)
  2021. def R_FLOOR(self):
  2022. return self.getToken(LaTeXParser.R_FLOOR, 0)
  2023. def expr(self):
  2024. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2025. def getRuleIndex(self):
  2026. return LaTeXParser.RULE_floor
  2027. def floor(self):
  2028. localctx = LaTeXParser.FloorContext(self, self._ctx, self.state)
  2029. self.enterRule(localctx, 58, self.RULE_floor)
  2030. try:
  2031. self.enterOuterAlt(localctx, 1)
  2032. self.state = 361
  2033. self.match(LaTeXParser.L_FLOOR)
  2034. self.state = 362
  2035. localctx.val = self.expr()
  2036. self.state = 363
  2037. self.match(LaTeXParser.R_FLOOR)
  2038. except RecognitionException as re:
  2039. localctx.exception = re
  2040. self._errHandler.reportError(self, re)
  2041. self._errHandler.recover(self, re)
  2042. finally:
  2043. self.exitRule()
  2044. return localctx
  2045. class CeilContext(ParserRuleContext):
  2046. __slots__ = 'parser'
  2047. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2048. super().__init__(parent, invokingState)
  2049. self.parser = parser
  2050. self.val = None # ExprContext
  2051. def L_CEIL(self):
  2052. return self.getToken(LaTeXParser.L_CEIL, 0)
  2053. def R_CEIL(self):
  2054. return self.getToken(LaTeXParser.R_CEIL, 0)
  2055. def expr(self):
  2056. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2057. def getRuleIndex(self):
  2058. return LaTeXParser.RULE_ceil
  2059. def ceil(self):
  2060. localctx = LaTeXParser.CeilContext(self, self._ctx, self.state)
  2061. self.enterRule(localctx, 60, self.RULE_ceil)
  2062. try:
  2063. self.enterOuterAlt(localctx, 1)
  2064. self.state = 365
  2065. self.match(LaTeXParser.L_CEIL)
  2066. self.state = 366
  2067. localctx.val = self.expr()
  2068. self.state = 367
  2069. self.match(LaTeXParser.R_CEIL)
  2070. except RecognitionException as re:
  2071. localctx.exception = re
  2072. self._errHandler.reportError(self, re)
  2073. self._errHandler.recover(self, re)
  2074. finally:
  2075. self.exitRule()
  2076. return localctx
  2077. class Func_normalContext(ParserRuleContext):
  2078. __slots__ = 'parser'
  2079. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2080. super().__init__(parent, invokingState)
  2081. self.parser = parser
  2082. def FUNC_EXP(self):
  2083. return self.getToken(LaTeXParser.FUNC_EXP, 0)
  2084. def FUNC_LOG(self):
  2085. return self.getToken(LaTeXParser.FUNC_LOG, 0)
  2086. def FUNC_LG(self):
  2087. return self.getToken(LaTeXParser.FUNC_LG, 0)
  2088. def FUNC_LN(self):
  2089. return self.getToken(LaTeXParser.FUNC_LN, 0)
  2090. def FUNC_SIN(self):
  2091. return self.getToken(LaTeXParser.FUNC_SIN, 0)
  2092. def FUNC_COS(self):
  2093. return self.getToken(LaTeXParser.FUNC_COS, 0)
  2094. def FUNC_TAN(self):
  2095. return self.getToken(LaTeXParser.FUNC_TAN, 0)
  2096. def FUNC_CSC(self):
  2097. return self.getToken(LaTeXParser.FUNC_CSC, 0)
  2098. def FUNC_SEC(self):
  2099. return self.getToken(LaTeXParser.FUNC_SEC, 0)
  2100. def FUNC_COT(self):
  2101. return self.getToken(LaTeXParser.FUNC_COT, 0)
  2102. def FUNC_ARCSIN(self):
  2103. return self.getToken(LaTeXParser.FUNC_ARCSIN, 0)
  2104. def FUNC_ARCCOS(self):
  2105. return self.getToken(LaTeXParser.FUNC_ARCCOS, 0)
  2106. def FUNC_ARCTAN(self):
  2107. return self.getToken(LaTeXParser.FUNC_ARCTAN, 0)
  2108. def FUNC_ARCCSC(self):
  2109. return self.getToken(LaTeXParser.FUNC_ARCCSC, 0)
  2110. def FUNC_ARCSEC(self):
  2111. return self.getToken(LaTeXParser.FUNC_ARCSEC, 0)
  2112. def FUNC_ARCCOT(self):
  2113. return self.getToken(LaTeXParser.FUNC_ARCCOT, 0)
  2114. def FUNC_SINH(self):
  2115. return self.getToken(LaTeXParser.FUNC_SINH, 0)
  2116. def FUNC_COSH(self):
  2117. return self.getToken(LaTeXParser.FUNC_COSH, 0)
  2118. def FUNC_TANH(self):
  2119. return self.getToken(LaTeXParser.FUNC_TANH, 0)
  2120. def FUNC_ARSINH(self):
  2121. return self.getToken(LaTeXParser.FUNC_ARSINH, 0)
  2122. def FUNC_ARCOSH(self):
  2123. return self.getToken(LaTeXParser.FUNC_ARCOSH, 0)
  2124. def FUNC_ARTANH(self):
  2125. return self.getToken(LaTeXParser.FUNC_ARTANH, 0)
  2126. def getRuleIndex(self):
  2127. return LaTeXParser.RULE_func_normal
  2128. def func_normal(self):
  2129. localctx = LaTeXParser.Func_normalContext(self, self._ctx, self.state)
  2130. self.enterRule(localctx, 62, self.RULE_func_normal)
  2131. self._la = 0 # Token type
  2132. try:
  2133. self.enterOuterAlt(localctx, 1)
  2134. self.state = 369
  2135. _la = self._input.LA(1)
  2136. if not(((_la) & ~0x3f) == 0 and ((1 << _la) & 576460614864470016) != 0):
  2137. self._errHandler.recoverInline(self)
  2138. else:
  2139. self._errHandler.reportMatch(self)
  2140. self.consume()
  2141. except RecognitionException as re:
  2142. localctx.exception = re
  2143. self._errHandler.reportError(self, re)
  2144. self._errHandler.recover(self, re)
  2145. finally:
  2146. self.exitRule()
  2147. return localctx
  2148. class FuncContext(ParserRuleContext):
  2149. __slots__ = 'parser'
  2150. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2151. super().__init__(parent, invokingState)
  2152. self.parser = parser
  2153. self.root = None # ExprContext
  2154. self.base = None # ExprContext
  2155. def func_normal(self):
  2156. return self.getTypedRuleContext(LaTeXParser.Func_normalContext,0)
  2157. def L_PAREN(self):
  2158. return self.getToken(LaTeXParser.L_PAREN, 0)
  2159. def func_arg(self):
  2160. return self.getTypedRuleContext(LaTeXParser.Func_argContext,0)
  2161. def R_PAREN(self):
  2162. return self.getToken(LaTeXParser.R_PAREN, 0)
  2163. def func_arg_noparens(self):
  2164. return self.getTypedRuleContext(LaTeXParser.Func_arg_noparensContext,0)
  2165. def subexpr(self):
  2166. return self.getTypedRuleContext(LaTeXParser.SubexprContext,0)
  2167. def supexpr(self):
  2168. return self.getTypedRuleContext(LaTeXParser.SupexprContext,0)
  2169. def args(self):
  2170. return self.getTypedRuleContext(LaTeXParser.ArgsContext,0)
  2171. def LETTER(self):
  2172. return self.getToken(LaTeXParser.LETTER, 0)
  2173. def SYMBOL(self):
  2174. return self.getToken(LaTeXParser.SYMBOL, 0)
  2175. def SINGLE_QUOTES(self):
  2176. return self.getToken(LaTeXParser.SINGLE_QUOTES, 0)
  2177. def FUNC_INT(self):
  2178. return self.getToken(LaTeXParser.FUNC_INT, 0)
  2179. def DIFFERENTIAL(self):
  2180. return self.getToken(LaTeXParser.DIFFERENTIAL, 0)
  2181. def frac(self):
  2182. return self.getTypedRuleContext(LaTeXParser.FracContext,0)
  2183. def additive(self):
  2184. return self.getTypedRuleContext(LaTeXParser.AdditiveContext,0)
  2185. def FUNC_SQRT(self):
  2186. return self.getToken(LaTeXParser.FUNC_SQRT, 0)
  2187. def L_BRACE(self):
  2188. return self.getToken(LaTeXParser.L_BRACE, 0)
  2189. def R_BRACE(self):
  2190. return self.getToken(LaTeXParser.R_BRACE, 0)
  2191. def expr(self, i:int=None):
  2192. if i is None:
  2193. return self.getTypedRuleContexts(LaTeXParser.ExprContext)
  2194. else:
  2195. return self.getTypedRuleContext(LaTeXParser.ExprContext,i)
  2196. def L_BRACKET(self):
  2197. return self.getToken(LaTeXParser.L_BRACKET, 0)
  2198. def R_BRACKET(self):
  2199. return self.getToken(LaTeXParser.R_BRACKET, 0)
  2200. def FUNC_OVERLINE(self):
  2201. return self.getToken(LaTeXParser.FUNC_OVERLINE, 0)
  2202. def mp(self):
  2203. return self.getTypedRuleContext(LaTeXParser.MpContext,0)
  2204. def FUNC_SUM(self):
  2205. return self.getToken(LaTeXParser.FUNC_SUM, 0)
  2206. def FUNC_PROD(self):
  2207. return self.getToken(LaTeXParser.FUNC_PROD, 0)
  2208. def subeq(self):
  2209. return self.getTypedRuleContext(LaTeXParser.SubeqContext,0)
  2210. def FUNC_LIM(self):
  2211. return self.getToken(LaTeXParser.FUNC_LIM, 0)
  2212. def limit_sub(self):
  2213. return self.getTypedRuleContext(LaTeXParser.Limit_subContext,0)
  2214. def getRuleIndex(self):
  2215. return LaTeXParser.RULE_func
  2216. def func(self):
  2217. localctx = LaTeXParser.FuncContext(self, self._ctx, self.state)
  2218. self.enterRule(localctx, 64, self.RULE_func)
  2219. self._la = 0 # Token type
  2220. try:
  2221. self.state = 460
  2222. self._errHandler.sync(self)
  2223. token = self._input.LA(1)
  2224. if token in [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58]:
  2225. self.enterOuterAlt(localctx, 1)
  2226. self.state = 371
  2227. self.func_normal()
  2228. self.state = 384
  2229. self._errHandler.sync(self)
  2230. la_ = self._interp.adaptivePredict(self._input,40,self._ctx)
  2231. if la_ == 1:
  2232. self.state = 373
  2233. self._errHandler.sync(self)
  2234. _la = self._input.LA(1)
  2235. if _la==73:
  2236. self.state = 372
  2237. self.subexpr()
  2238. self.state = 376
  2239. self._errHandler.sync(self)
  2240. _la = self._input.LA(1)
  2241. if _la==74:
  2242. self.state = 375
  2243. self.supexpr()
  2244. pass
  2245. elif la_ == 2:
  2246. self.state = 379
  2247. self._errHandler.sync(self)
  2248. _la = self._input.LA(1)
  2249. if _la==74:
  2250. self.state = 378
  2251. self.supexpr()
  2252. self.state = 382
  2253. self._errHandler.sync(self)
  2254. _la = self._input.LA(1)
  2255. if _la==73:
  2256. self.state = 381
  2257. self.subexpr()
  2258. pass
  2259. self.state = 391
  2260. self._errHandler.sync(self)
  2261. la_ = self._interp.adaptivePredict(self._input,41,self._ctx)
  2262. if la_ == 1:
  2263. self.state = 386
  2264. self.match(LaTeXParser.L_PAREN)
  2265. self.state = 387
  2266. self.func_arg()
  2267. self.state = 388
  2268. self.match(LaTeXParser.R_PAREN)
  2269. pass
  2270. elif la_ == 2:
  2271. self.state = 390
  2272. self.func_arg_noparens()
  2273. pass
  2274. pass
  2275. elif token in [77, 91]:
  2276. self.enterOuterAlt(localctx, 2)
  2277. self.state = 393
  2278. _la = self._input.LA(1)
  2279. if not(_la==77 or _la==91):
  2280. self._errHandler.recoverInline(self)
  2281. else:
  2282. self._errHandler.reportMatch(self)
  2283. self.consume()
  2284. self.state = 406
  2285. self._errHandler.sync(self)
  2286. la_ = self._interp.adaptivePredict(self._input,46,self._ctx)
  2287. if la_ == 1:
  2288. self.state = 395
  2289. self._errHandler.sync(self)
  2290. _la = self._input.LA(1)
  2291. if _la==73:
  2292. self.state = 394
  2293. self.subexpr()
  2294. self.state = 398
  2295. self._errHandler.sync(self)
  2296. _la = self._input.LA(1)
  2297. if _la==90:
  2298. self.state = 397
  2299. self.match(LaTeXParser.SINGLE_QUOTES)
  2300. pass
  2301. elif la_ == 2:
  2302. self.state = 401
  2303. self._errHandler.sync(self)
  2304. _la = self._input.LA(1)
  2305. if _la==90:
  2306. self.state = 400
  2307. self.match(LaTeXParser.SINGLE_QUOTES)
  2308. self.state = 404
  2309. self._errHandler.sync(self)
  2310. _la = self._input.LA(1)
  2311. if _la==73:
  2312. self.state = 403
  2313. self.subexpr()
  2314. pass
  2315. self.state = 408
  2316. self.match(LaTeXParser.L_PAREN)
  2317. self.state = 409
  2318. self.args()
  2319. self.state = 410
  2320. self.match(LaTeXParser.R_PAREN)
  2321. pass
  2322. elif token in [34]:
  2323. self.enterOuterAlt(localctx, 3)
  2324. self.state = 412
  2325. self.match(LaTeXParser.FUNC_INT)
  2326. self.state = 419
  2327. self._errHandler.sync(self)
  2328. token = self._input.LA(1)
  2329. if token in [73]:
  2330. self.state = 413
  2331. self.subexpr()
  2332. self.state = 414
  2333. self.supexpr()
  2334. pass
  2335. elif token in [74]:
  2336. self.state = 416
  2337. self.supexpr()
  2338. self.state = 417
  2339. self.subexpr()
  2340. pass
  2341. elif token in [15, 16, 19, 21, 23, 25, 27, 29, 30, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 63, 64, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  2342. pass
  2343. else:
  2344. pass
  2345. self.state = 427
  2346. self._errHandler.sync(self)
  2347. la_ = self._interp.adaptivePredict(self._input,49,self._ctx)
  2348. if la_ == 1:
  2349. self.state = 422
  2350. self._errHandler.sync(self)
  2351. la_ = self._interp.adaptivePredict(self._input,48,self._ctx)
  2352. if la_ == 1:
  2353. self.state = 421
  2354. self.additive(0)
  2355. self.state = 424
  2356. self.match(LaTeXParser.DIFFERENTIAL)
  2357. pass
  2358. elif la_ == 2:
  2359. self.state = 425
  2360. self.frac()
  2361. pass
  2362. elif la_ == 3:
  2363. self.state = 426
  2364. self.additive(0)
  2365. pass
  2366. pass
  2367. elif token in [63]:
  2368. self.enterOuterAlt(localctx, 4)
  2369. self.state = 429
  2370. self.match(LaTeXParser.FUNC_SQRT)
  2371. self.state = 434
  2372. self._errHandler.sync(self)
  2373. _la = self._input.LA(1)
  2374. if _la==25:
  2375. self.state = 430
  2376. self.match(LaTeXParser.L_BRACKET)
  2377. self.state = 431
  2378. localctx.root = self.expr()
  2379. self.state = 432
  2380. self.match(LaTeXParser.R_BRACKET)
  2381. self.state = 436
  2382. self.match(LaTeXParser.L_BRACE)
  2383. self.state = 437
  2384. localctx.base = self.expr()
  2385. self.state = 438
  2386. self.match(LaTeXParser.R_BRACE)
  2387. pass
  2388. elif token in [64]:
  2389. self.enterOuterAlt(localctx, 5)
  2390. self.state = 440
  2391. self.match(LaTeXParser.FUNC_OVERLINE)
  2392. self.state = 441
  2393. self.match(LaTeXParser.L_BRACE)
  2394. self.state = 442
  2395. localctx.base = self.expr()
  2396. self.state = 443
  2397. self.match(LaTeXParser.R_BRACE)
  2398. pass
  2399. elif token in [35, 36]:
  2400. self.enterOuterAlt(localctx, 6)
  2401. self.state = 445
  2402. _la = self._input.LA(1)
  2403. if not(_la==35 or _la==36):
  2404. self._errHandler.recoverInline(self)
  2405. else:
  2406. self._errHandler.reportMatch(self)
  2407. self.consume()
  2408. self.state = 452
  2409. self._errHandler.sync(self)
  2410. token = self._input.LA(1)
  2411. if token in [73]:
  2412. self.state = 446
  2413. self.subeq()
  2414. self.state = 447
  2415. self.supexpr()
  2416. pass
  2417. elif token in [74]:
  2418. self.state = 449
  2419. self.supexpr()
  2420. self.state = 450
  2421. self.subeq()
  2422. pass
  2423. else:
  2424. raise NoViableAltException(self)
  2425. self.state = 454
  2426. self.mp(0)
  2427. pass
  2428. elif token in [32]:
  2429. self.enterOuterAlt(localctx, 7)
  2430. self.state = 456
  2431. self.match(LaTeXParser.FUNC_LIM)
  2432. self.state = 457
  2433. self.limit_sub()
  2434. self.state = 458
  2435. self.mp(0)
  2436. pass
  2437. else:
  2438. raise NoViableAltException(self)
  2439. except RecognitionException as re:
  2440. localctx.exception = re
  2441. self._errHandler.reportError(self, re)
  2442. self._errHandler.recover(self, re)
  2443. finally:
  2444. self.exitRule()
  2445. return localctx
  2446. class ArgsContext(ParserRuleContext):
  2447. __slots__ = 'parser'
  2448. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2449. super().__init__(parent, invokingState)
  2450. self.parser = parser
  2451. def expr(self):
  2452. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2453. def args(self):
  2454. return self.getTypedRuleContext(LaTeXParser.ArgsContext,0)
  2455. def getRuleIndex(self):
  2456. return LaTeXParser.RULE_args
  2457. def args(self):
  2458. localctx = LaTeXParser.ArgsContext(self, self._ctx, self.state)
  2459. self.enterRule(localctx, 66, self.RULE_args)
  2460. try:
  2461. self.state = 467
  2462. self._errHandler.sync(self)
  2463. la_ = self._interp.adaptivePredict(self._input,53,self._ctx)
  2464. if la_ == 1:
  2465. self.enterOuterAlt(localctx, 1)
  2466. self.state = 462
  2467. self.expr()
  2468. self.state = 463
  2469. self.match(LaTeXParser.T__0)
  2470. self.state = 464
  2471. self.args()
  2472. pass
  2473. elif la_ == 2:
  2474. self.enterOuterAlt(localctx, 2)
  2475. self.state = 466
  2476. self.expr()
  2477. pass
  2478. except RecognitionException as re:
  2479. localctx.exception = re
  2480. self._errHandler.reportError(self, re)
  2481. self._errHandler.recover(self, re)
  2482. finally:
  2483. self.exitRule()
  2484. return localctx
  2485. class Limit_subContext(ParserRuleContext):
  2486. __slots__ = 'parser'
  2487. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2488. super().__init__(parent, invokingState)
  2489. self.parser = parser
  2490. def UNDERSCORE(self):
  2491. return self.getToken(LaTeXParser.UNDERSCORE, 0)
  2492. def L_BRACE(self, i:int=None):
  2493. if i is None:
  2494. return self.getTokens(LaTeXParser.L_BRACE)
  2495. else:
  2496. return self.getToken(LaTeXParser.L_BRACE, i)
  2497. def LIM_APPROACH_SYM(self):
  2498. return self.getToken(LaTeXParser.LIM_APPROACH_SYM, 0)
  2499. def expr(self):
  2500. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2501. def R_BRACE(self, i:int=None):
  2502. if i is None:
  2503. return self.getTokens(LaTeXParser.R_BRACE)
  2504. else:
  2505. return self.getToken(LaTeXParser.R_BRACE, i)
  2506. def LETTER(self):
  2507. return self.getToken(LaTeXParser.LETTER, 0)
  2508. def SYMBOL(self):
  2509. return self.getToken(LaTeXParser.SYMBOL, 0)
  2510. def CARET(self):
  2511. return self.getToken(LaTeXParser.CARET, 0)
  2512. def ADD(self):
  2513. return self.getToken(LaTeXParser.ADD, 0)
  2514. def SUB(self):
  2515. return self.getToken(LaTeXParser.SUB, 0)
  2516. def getRuleIndex(self):
  2517. return LaTeXParser.RULE_limit_sub
  2518. def limit_sub(self):
  2519. localctx = LaTeXParser.Limit_subContext(self, self._ctx, self.state)
  2520. self.enterRule(localctx, 68, self.RULE_limit_sub)
  2521. self._la = 0 # Token type
  2522. try:
  2523. self.enterOuterAlt(localctx, 1)
  2524. self.state = 469
  2525. self.match(LaTeXParser.UNDERSCORE)
  2526. self.state = 470
  2527. self.match(LaTeXParser.L_BRACE)
  2528. self.state = 471
  2529. _la = self._input.LA(1)
  2530. if not(_la==77 or _la==91):
  2531. self._errHandler.recoverInline(self)
  2532. else:
  2533. self._errHandler.reportMatch(self)
  2534. self.consume()
  2535. self.state = 472
  2536. self.match(LaTeXParser.LIM_APPROACH_SYM)
  2537. self.state = 473
  2538. self.expr()
  2539. self.state = 482
  2540. self._errHandler.sync(self)
  2541. _la = self._input.LA(1)
  2542. if _la==74:
  2543. self.state = 474
  2544. self.match(LaTeXParser.CARET)
  2545. self.state = 480
  2546. self._errHandler.sync(self)
  2547. token = self._input.LA(1)
  2548. if token in [21]:
  2549. self.state = 475
  2550. self.match(LaTeXParser.L_BRACE)
  2551. self.state = 476
  2552. _la = self._input.LA(1)
  2553. if not(_la==15 or _la==16):
  2554. self._errHandler.recoverInline(self)
  2555. else:
  2556. self._errHandler.reportMatch(self)
  2557. self.consume()
  2558. self.state = 477
  2559. self.match(LaTeXParser.R_BRACE)
  2560. pass
  2561. elif token in [15]:
  2562. self.state = 478
  2563. self.match(LaTeXParser.ADD)
  2564. pass
  2565. elif token in [16]:
  2566. self.state = 479
  2567. self.match(LaTeXParser.SUB)
  2568. pass
  2569. else:
  2570. raise NoViableAltException(self)
  2571. self.state = 484
  2572. self.match(LaTeXParser.R_BRACE)
  2573. except RecognitionException as re:
  2574. localctx.exception = re
  2575. self._errHandler.reportError(self, re)
  2576. self._errHandler.recover(self, re)
  2577. finally:
  2578. self.exitRule()
  2579. return localctx
  2580. class Func_argContext(ParserRuleContext):
  2581. __slots__ = 'parser'
  2582. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2583. super().__init__(parent, invokingState)
  2584. self.parser = parser
  2585. def expr(self):
  2586. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2587. def func_arg(self):
  2588. return self.getTypedRuleContext(LaTeXParser.Func_argContext,0)
  2589. def getRuleIndex(self):
  2590. return LaTeXParser.RULE_func_arg
  2591. def func_arg(self):
  2592. localctx = LaTeXParser.Func_argContext(self, self._ctx, self.state)
  2593. self.enterRule(localctx, 70, self.RULE_func_arg)
  2594. try:
  2595. self.state = 491
  2596. self._errHandler.sync(self)
  2597. la_ = self._interp.adaptivePredict(self._input,56,self._ctx)
  2598. if la_ == 1:
  2599. self.enterOuterAlt(localctx, 1)
  2600. self.state = 486
  2601. self.expr()
  2602. pass
  2603. elif la_ == 2:
  2604. self.enterOuterAlt(localctx, 2)
  2605. self.state = 487
  2606. self.expr()
  2607. self.state = 488
  2608. self.match(LaTeXParser.T__0)
  2609. self.state = 489
  2610. self.func_arg()
  2611. pass
  2612. except RecognitionException as re:
  2613. localctx.exception = re
  2614. self._errHandler.reportError(self, re)
  2615. self._errHandler.recover(self, re)
  2616. finally:
  2617. self.exitRule()
  2618. return localctx
  2619. class Func_arg_noparensContext(ParserRuleContext):
  2620. __slots__ = 'parser'
  2621. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2622. super().__init__(parent, invokingState)
  2623. self.parser = parser
  2624. def mp_nofunc(self):
  2625. return self.getTypedRuleContext(LaTeXParser.Mp_nofuncContext,0)
  2626. def getRuleIndex(self):
  2627. return LaTeXParser.RULE_func_arg_noparens
  2628. def func_arg_noparens(self):
  2629. localctx = LaTeXParser.Func_arg_noparensContext(self, self._ctx, self.state)
  2630. self.enterRule(localctx, 72, self.RULE_func_arg_noparens)
  2631. try:
  2632. self.enterOuterAlt(localctx, 1)
  2633. self.state = 493
  2634. self.mp_nofunc(0)
  2635. except RecognitionException as re:
  2636. localctx.exception = re
  2637. self._errHandler.reportError(self, re)
  2638. self._errHandler.recover(self, re)
  2639. finally:
  2640. self.exitRule()
  2641. return localctx
  2642. class SubexprContext(ParserRuleContext):
  2643. __slots__ = 'parser'
  2644. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2645. super().__init__(parent, invokingState)
  2646. self.parser = parser
  2647. def UNDERSCORE(self):
  2648. return self.getToken(LaTeXParser.UNDERSCORE, 0)
  2649. def atom(self):
  2650. return self.getTypedRuleContext(LaTeXParser.AtomContext,0)
  2651. def L_BRACE(self):
  2652. return self.getToken(LaTeXParser.L_BRACE, 0)
  2653. def expr(self):
  2654. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2655. def R_BRACE(self):
  2656. return self.getToken(LaTeXParser.R_BRACE, 0)
  2657. def getRuleIndex(self):
  2658. return LaTeXParser.RULE_subexpr
  2659. def subexpr(self):
  2660. localctx = LaTeXParser.SubexprContext(self, self._ctx, self.state)
  2661. self.enterRule(localctx, 74, self.RULE_subexpr)
  2662. try:
  2663. self.enterOuterAlt(localctx, 1)
  2664. self.state = 495
  2665. self.match(LaTeXParser.UNDERSCORE)
  2666. self.state = 501
  2667. self._errHandler.sync(self)
  2668. token = self._input.LA(1)
  2669. if token in [27, 29, 30, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  2670. self.state = 496
  2671. self.atom()
  2672. pass
  2673. elif token in [21]:
  2674. self.state = 497
  2675. self.match(LaTeXParser.L_BRACE)
  2676. self.state = 498
  2677. self.expr()
  2678. self.state = 499
  2679. self.match(LaTeXParser.R_BRACE)
  2680. pass
  2681. else:
  2682. raise NoViableAltException(self)
  2683. except RecognitionException as re:
  2684. localctx.exception = re
  2685. self._errHandler.reportError(self, re)
  2686. self._errHandler.recover(self, re)
  2687. finally:
  2688. self.exitRule()
  2689. return localctx
  2690. class SupexprContext(ParserRuleContext):
  2691. __slots__ = 'parser'
  2692. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2693. super().__init__(parent, invokingState)
  2694. self.parser = parser
  2695. def CARET(self):
  2696. return self.getToken(LaTeXParser.CARET, 0)
  2697. def atom(self):
  2698. return self.getTypedRuleContext(LaTeXParser.AtomContext,0)
  2699. def L_BRACE(self):
  2700. return self.getToken(LaTeXParser.L_BRACE, 0)
  2701. def expr(self):
  2702. return self.getTypedRuleContext(LaTeXParser.ExprContext,0)
  2703. def R_BRACE(self):
  2704. return self.getToken(LaTeXParser.R_BRACE, 0)
  2705. def getRuleIndex(self):
  2706. return LaTeXParser.RULE_supexpr
  2707. def supexpr(self):
  2708. localctx = LaTeXParser.SupexprContext(self, self._ctx, self.state)
  2709. self.enterRule(localctx, 76, self.RULE_supexpr)
  2710. try:
  2711. self.enterOuterAlt(localctx, 1)
  2712. self.state = 503
  2713. self.match(LaTeXParser.CARET)
  2714. self.state = 509
  2715. self._errHandler.sync(self)
  2716. token = self._input.LA(1)
  2717. if token in [27, 29, 30, 68, 69, 70, 71, 72, 76, 77, 78, 91]:
  2718. self.state = 504
  2719. self.atom()
  2720. pass
  2721. elif token in [21]:
  2722. self.state = 505
  2723. self.match(LaTeXParser.L_BRACE)
  2724. self.state = 506
  2725. self.expr()
  2726. self.state = 507
  2727. self.match(LaTeXParser.R_BRACE)
  2728. pass
  2729. else:
  2730. raise NoViableAltException(self)
  2731. except RecognitionException as re:
  2732. localctx.exception = re
  2733. self._errHandler.reportError(self, re)
  2734. self._errHandler.recover(self, re)
  2735. finally:
  2736. self.exitRule()
  2737. return localctx
  2738. class SubeqContext(ParserRuleContext):
  2739. __slots__ = 'parser'
  2740. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2741. super().__init__(parent, invokingState)
  2742. self.parser = parser
  2743. def UNDERSCORE(self):
  2744. return self.getToken(LaTeXParser.UNDERSCORE, 0)
  2745. def L_BRACE(self):
  2746. return self.getToken(LaTeXParser.L_BRACE, 0)
  2747. def equality(self):
  2748. return self.getTypedRuleContext(LaTeXParser.EqualityContext,0)
  2749. def R_BRACE(self):
  2750. return self.getToken(LaTeXParser.R_BRACE, 0)
  2751. def getRuleIndex(self):
  2752. return LaTeXParser.RULE_subeq
  2753. def subeq(self):
  2754. localctx = LaTeXParser.SubeqContext(self, self._ctx, self.state)
  2755. self.enterRule(localctx, 78, self.RULE_subeq)
  2756. try:
  2757. self.enterOuterAlt(localctx, 1)
  2758. self.state = 511
  2759. self.match(LaTeXParser.UNDERSCORE)
  2760. self.state = 512
  2761. self.match(LaTeXParser.L_BRACE)
  2762. self.state = 513
  2763. self.equality()
  2764. self.state = 514
  2765. self.match(LaTeXParser.R_BRACE)
  2766. except RecognitionException as re:
  2767. localctx.exception = re
  2768. self._errHandler.reportError(self, re)
  2769. self._errHandler.recover(self, re)
  2770. finally:
  2771. self.exitRule()
  2772. return localctx
  2773. class SupeqContext(ParserRuleContext):
  2774. __slots__ = 'parser'
  2775. def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
  2776. super().__init__(parent, invokingState)
  2777. self.parser = parser
  2778. def UNDERSCORE(self):
  2779. return self.getToken(LaTeXParser.UNDERSCORE, 0)
  2780. def L_BRACE(self):
  2781. return self.getToken(LaTeXParser.L_BRACE, 0)
  2782. def equality(self):
  2783. return self.getTypedRuleContext(LaTeXParser.EqualityContext,0)
  2784. def R_BRACE(self):
  2785. return self.getToken(LaTeXParser.R_BRACE, 0)
  2786. def getRuleIndex(self):
  2787. return LaTeXParser.RULE_supeq
  2788. def supeq(self):
  2789. localctx = LaTeXParser.SupeqContext(self, self._ctx, self.state)
  2790. self.enterRule(localctx, 80, self.RULE_supeq)
  2791. try:
  2792. self.enterOuterAlt(localctx, 1)
  2793. self.state = 516
  2794. self.match(LaTeXParser.UNDERSCORE)
  2795. self.state = 517
  2796. self.match(LaTeXParser.L_BRACE)
  2797. self.state = 518
  2798. self.equality()
  2799. self.state = 519
  2800. self.match(LaTeXParser.R_BRACE)
  2801. except RecognitionException as re:
  2802. localctx.exception = re
  2803. self._errHandler.reportError(self, re)
  2804. self._errHandler.recover(self, re)
  2805. finally:
  2806. self.exitRule()
  2807. return localctx
  2808. def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int):
  2809. if self._predicates == None:
  2810. self._predicates = dict()
  2811. self._predicates[1] = self.relation_sempred
  2812. self._predicates[4] = self.additive_sempred
  2813. self._predicates[5] = self.mp_sempred
  2814. self._predicates[6] = self.mp_nofunc_sempred
  2815. self._predicates[15] = self.exp_sempred
  2816. self._predicates[16] = self.exp_nofunc_sempred
  2817. pred = self._predicates.get(ruleIndex, None)
  2818. if pred is None:
  2819. raise Exception("No predicate with index:" + str(ruleIndex))
  2820. else:
  2821. return pred(localctx, predIndex)
  2822. def relation_sempred(self, localctx:RelationContext, predIndex:int):
  2823. if predIndex == 0:
  2824. return self.precpred(self._ctx, 2)
  2825. def additive_sempred(self, localctx:AdditiveContext, predIndex:int):
  2826. if predIndex == 1:
  2827. return self.precpred(self._ctx, 2)
  2828. def mp_sempred(self, localctx:MpContext, predIndex:int):
  2829. if predIndex == 2:
  2830. return self.precpred(self._ctx, 2)
  2831. def mp_nofunc_sempred(self, localctx:Mp_nofuncContext, predIndex:int):
  2832. if predIndex == 3:
  2833. return self.precpred(self._ctx, 2)
  2834. def exp_sempred(self, localctx:ExpContext, predIndex:int):
  2835. if predIndex == 4:
  2836. return self.precpred(self._ctx, 2)
  2837. def exp_nofunc_sempred(self, localctx:Exp_nofuncContext, predIndex:int):
  2838. if predIndex == 5:
  2839. return self.precpred(self._ctx, 2)