m2m模型翻译
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3451 lines
122 KiB

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