图片解析应用
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.

3063 lines
109 KiB

  1. # *** GENERATED BY antlr4, DO NOT EDIT BY HAND ***
  2. #
  3. # Generated from Autolev.g4 by ANTLR 4.7.1
  4. #
  5. # Generated with antlr4
  6. # antlr4 is licensed under the BSD-3-Clause License
  7. # https://github.com/antlr/antlr4/blob/master/LICENSE.txt
  8. from __future__ import print_function
  9. from antlr4 import *
  10. from io import StringIO
  11. import sys
  12. def serializedATN():
  13. with StringIO() as buf:
  14. buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3")
  15. buf.write(u"\63\u01b1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7")
  16. buf.write(u"\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t")
  17. buf.write(u"\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22")
  18. buf.write(u"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4")
  19. buf.write(u"\30\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35")
  20. buf.write(u"\t\35\3\2\6\2<\n\2\r\2\16\2=\3\3\3\3\3\3\3\3\3\3\3\3")
  21. buf.write(u"\3\3\5\3G\n\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4")
  22. buf.write(u"\3\4\3\4\3\4\5\4V\n\4\3\4\3\4\3\4\5\4[\n\4\3\5\3\5\3")
  23. buf.write(u"\6\3\6\3\6\7\6b\n\6\f\6\16\6e\13\6\3\7\6\7h\n\7\r\7\16")
  24. buf.write(u"\7i\3\b\3\b\3\b\3\b\3\b\7\bq\n\b\f\b\16\bt\13\b\5\bv")
  25. buf.write(u"\n\b\3\b\3\b\3\b\3\b\3\b\3\b\7\b~\n\b\f\b\16\b\u0081")
  26. buf.write(u"\13\b\5\b\u0083\n\b\3\b\5\b\u0086\n\b\3\t\3\t\3\t\3\t")
  27. buf.write(u"\7\t\u008c\n\t\f\t\16\t\u008f\13\t\3\n\3\n\3\n\3\n\3")
  28. buf.write(u"\n\3\n\3\n\3\n\3\n\3\n\7\n\u009b\n\n\f\n\16\n\u009e\13")
  29. buf.write(u"\n\3\n\3\n\7\n\u00a2\n\n\f\n\16\n\u00a5\13\n\5\n\u00a7")
  30. buf.write(u"\n\n\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u00af\n\13\3")
  31. buf.write(u"\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\7\13\u00b9\n\13")
  32. buf.write(u"\f\13\16\13\u00bc\13\13\3\13\5\13\u00bf\n\13\3\13\3\13")
  33. buf.write(u"\3\13\5\13\u00c4\n\13\3\13\5\13\u00c7\n\13\3\13\7\13")
  34. buf.write(u"\u00ca\n\13\f\13\16\13\u00cd\13\13\3\13\3\13\5\13\u00d1")
  35. buf.write(u"\n\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\7\f\u00db\n\f\f")
  36. buf.write(u"\f\16\f\u00de\13\f\3\f\3\f\3\r\3\r\3\r\3\r\7\r\u00e6")
  37. buf.write(u"\n\r\f\r\16\r\u00e9\13\r\3\16\3\16\3\16\3\16\3\17\3\17")
  38. buf.write(u"\3\17\3\17\3\17\5\17\u00f4\n\17\3\17\3\17\6\17\u00f8")
  39. buf.write(u"\n\17\r\17\16\17\u00f9\3\20\3\20\3\20\3\20\7\20\u0100")
  40. buf.write(u"\n\20\f\20\16\20\u0103\13\20\3\20\3\20\3\21\3\21\3\21")
  41. buf.write(u"\3\21\5\21\u010b\n\21\3\21\3\21\5\21\u010f\n\21\3\22")
  42. buf.write(u"\3\22\3\22\3\22\3\22\5\22\u0116\n\22\3\23\3\23\5\23\u011a")
  43. buf.write(u"\n\23\3\24\3\24\3\24\3\24\7\24\u0120\n\24\f\24\16\24")
  44. buf.write(u"\u0123\13\24\3\25\3\25\3\25\3\25\7\25\u0129\n\25\f\25")
  45. buf.write(u"\16\25\u012c\13\25\3\26\3\26\5\26\u0130\n\26\3\27\3\27")
  46. buf.write(u"\3\27\3\27\5\27\u0136\n\27\3\30\3\30\3\30\3\30\7\30\u013c")
  47. buf.write(u"\n\30\f\30\16\30\u013f\13\30\3\31\3\31\5\31\u0143\n\31")
  48. buf.write(u"\3\32\3\32\3\32\3\32\3\32\3\32\7\32\u014b\n\32\f\32\16")
  49. buf.write(u"\32\u014e\13\32\3\32\3\32\5\32\u0152\n\32\3\32\3\32\3")
  50. buf.write(u"\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\7\33")
  51. buf.write(u"\u0160\n\33\f\33\16\33\u0163\13\33\5\33\u0165\n\33\3")
  52. buf.write(u"\34\3\34\6\34\u0169\n\34\r\34\16\34\u016a\3\34\3\34\5")
  53. buf.write(u"\34\u016f\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35")
  54. buf.write(u"\7\35\u0179\n\35\f\35\16\35\u017c\13\35\3\35\3\35\3\35")
  55. buf.write(u"\3\35\3\35\3\35\7\35\u0184\n\35\f\35\16\35\u0187\13\35")
  56. buf.write(u"\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u0192")
  57. buf.write(u"\n\35\3\35\3\35\7\35\u0196\n\35\f\35\16\35\u0199\13\35")
  58. buf.write(u"\5\35\u019b\n\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3")
  59. buf.write(u"\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\7\35\u01ac\n\35")
  60. buf.write(u"\f\35\16\35\u01af\13\35\3\35\2\38\36\2\4\6\b\n\f\16\20")
  61. buf.write(u"\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668\2\t\3\2\5")
  62. buf.write(u"\13\3\2\35\36\3\2\23\24\4\2\f\f\25\25\3\2./\4\2.\60\62")
  63. buf.write(u"\62\3\2\33\34\2\u01e5\2;\3\2\2\2\4F\3\2\2\2\6Z\3\2\2")
  64. buf.write(u"\2\b\\\3\2\2\2\n^\3\2\2\2\fg\3\2\2\2\16\u0085\3\2\2\2")
  65. buf.write(u"\20\u0087\3\2\2\2\22\u00a6\3\2\2\2\24\u00a8\3\2\2\2\26")
  66. buf.write(u"\u00d2\3\2\2\2\30\u00e1\3\2\2\2\32\u00ea\3\2\2\2\34\u00ee")
  67. buf.write(u"\3\2\2\2\36\u00fb\3\2\2\2 \u010e\3\2\2\2\"\u0115\3\2")
  68. buf.write(u"\2\2$\u0117\3\2\2\2&\u011b\3\2\2\2(\u0124\3\2\2\2*\u012d")
  69. buf.write(u"\3\2\2\2,\u0131\3\2\2\2.\u0137\3\2\2\2\60\u0140\3\2\2")
  70. buf.write(u"\2\62\u0144\3\2\2\2\64\u0164\3\2\2\2\66\u016e\3\2\2\2")
  71. buf.write(u"8\u019a\3\2\2\2:<\5\4\3\2;:\3\2\2\2<=\3\2\2\2=;\3\2\2")
  72. buf.write(u"\2=>\3\2\2\2>\3\3\2\2\2?G\5\20\t\2@G\5\16\b\2AG\5\"\22")
  73. buf.write(u"\2BG\5\30\r\2CG\5\34\17\2DG\5\6\4\2EG\5$\23\2F?\3\2\2")
  74. buf.write(u"\2F@\3\2\2\2FA\3\2\2\2FB\3\2\2\2FC\3\2\2\2FD\3\2\2\2")
  75. buf.write(u"FE\3\2\2\2G\5\3\2\2\2HI\5\66\34\2IJ\5\b\5\2JK\58\35\2")
  76. buf.write(u"K[\3\2\2\2LM\7\62\2\2MN\7\3\2\2NO\5\n\6\2OP\7\4\2\2P")
  77. buf.write(u"Q\5\b\5\2QR\58\35\2R[\3\2\2\2SU\7\62\2\2TV\5\f\7\2UT")
  78. buf.write(u"\3\2\2\2UV\3\2\2\2VW\3\2\2\2WX\5\b\5\2XY\58\35\2Y[\3")
  79. buf.write(u"\2\2\2ZH\3\2\2\2ZL\3\2\2\2ZS\3\2\2\2[\7\3\2\2\2\\]\t")
  80. buf.write(u"\2\2\2]\t\3\2\2\2^c\58\35\2_`\7\f\2\2`b\58\35\2a_\3\2")
  81. buf.write(u"\2\2be\3\2\2\2ca\3\2\2\2cd\3\2\2\2d\13\3\2\2\2ec\3\2")
  82. buf.write(u"\2\2fh\7\r\2\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2ij\3\2\2")
  83. buf.write(u"\2j\r\3\2\2\2kl\7\62\2\2lu\7\16\2\2mr\58\35\2no\7\f\2")
  84. buf.write(u"\2oq\58\35\2pn\3\2\2\2qt\3\2\2\2rp\3\2\2\2rs\3\2\2\2")
  85. buf.write(u"sv\3\2\2\2tr\3\2\2\2um\3\2\2\2uv\3\2\2\2vw\3\2\2\2w\u0086")
  86. buf.write(u"\7\17\2\2xy\t\3\2\2y\u0082\7\16\2\2z\177\7\62\2\2{|\7")
  87. buf.write(u"\f\2\2|~\7\62\2\2}{\3\2\2\2~\u0081\3\2\2\2\177}\3\2\2")
  88. buf.write(u"\2\177\u0080\3\2\2\2\u0080\u0083\3\2\2\2\u0081\177\3")
  89. buf.write(u"\2\2\2\u0082z\3\2\2\2\u0082\u0083\3\2\2\2\u0083\u0084")
  90. buf.write(u"\3\2\2\2\u0084\u0086\7\17\2\2\u0085k\3\2\2\2\u0085x\3")
  91. buf.write(u"\2\2\2\u0086\17\3\2\2\2\u0087\u0088\5\22\n\2\u0088\u008d")
  92. buf.write(u"\5\24\13\2\u0089\u008a\7\f\2\2\u008a\u008c\5\24\13\2")
  93. buf.write(u"\u008b\u0089\3\2\2\2\u008c\u008f\3\2\2\2\u008d\u008b")
  94. buf.write(u"\3\2\2\2\u008d\u008e\3\2\2\2\u008e\21\3\2\2\2\u008f\u008d")
  95. buf.write(u"\3\2\2\2\u0090\u00a7\7$\2\2\u0091\u00a7\7%\2\2\u0092")
  96. buf.write(u"\u00a7\7&\2\2\u0093\u00a7\7\'\2\2\u0094\u00a7\7(\2\2")
  97. buf.write(u"\u0095\u00a7\7)\2\2\u0096\u00a7\7*\2\2\u0097\u00a7\7")
  98. buf.write(u"+\2\2\u0098\u009c\7,\2\2\u0099\u009b\7\r\2\2\u009a\u0099")
  99. buf.write(u"\3\2\2\2\u009b\u009e\3\2\2\2\u009c\u009a\3\2\2\2\u009c")
  100. buf.write(u"\u009d\3\2\2\2\u009d\u00a7\3\2\2\2\u009e\u009c\3\2\2")
  101. buf.write(u"\2\u009f\u00a3\7-\2\2\u00a0\u00a2\7\r\2\2\u00a1\u00a0")
  102. buf.write(u"\3\2\2\2\u00a2\u00a5\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a3")
  103. buf.write(u"\u00a4\3\2\2\2\u00a4\u00a7\3\2\2\2\u00a5\u00a3\3\2\2")
  104. buf.write(u"\2\u00a6\u0090\3\2\2\2\u00a6\u0091\3\2\2\2\u00a6\u0092")
  105. buf.write(u"\3\2\2\2\u00a6\u0093\3\2\2\2\u00a6\u0094\3\2\2\2\u00a6")
  106. buf.write(u"\u0095\3\2\2\2\u00a6\u0096\3\2\2\2\u00a6\u0097\3\2\2")
  107. buf.write(u"\2\u00a6\u0098\3\2\2\2\u00a6\u009f\3\2\2\2\u00a7\23\3")
  108. buf.write(u"\2\2\2\u00a8\u00ae\7\62\2\2\u00a9\u00aa\7\20\2\2\u00aa")
  109. buf.write(u"\u00ab\7.\2\2\u00ab\u00ac\7\f\2\2\u00ac\u00ad\7.\2\2")
  110. buf.write(u"\u00ad\u00af\7\21\2\2\u00ae\u00a9\3\2\2\2\u00ae\u00af")
  111. buf.write(u"\3\2\2\2\u00af\u00be\3\2\2\2\u00b0\u00b1\7\20\2\2\u00b1")
  112. buf.write(u"\u00b2\7.\2\2\u00b2\u00b3\7\22\2\2\u00b3\u00ba\7.\2\2")
  113. buf.write(u"\u00b4\u00b5\7\f\2\2\u00b5\u00b6\7.\2\2\u00b6\u00b7\7")
  114. buf.write(u"\22\2\2\u00b7\u00b9\7.\2\2\u00b8\u00b4\3\2\2\2\u00b9")
  115. buf.write(u"\u00bc\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2")
  116. buf.write(u"\2\u00bb\u00bd\3\2\2\2\u00bc\u00ba\3\2\2\2\u00bd\u00bf")
  117. buf.write(u"\7\21\2\2\u00be\u00b0\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf")
  118. buf.write(u"\u00c3\3\2\2\2\u00c0\u00c1\7\20\2\2\u00c1\u00c2\7.\2")
  119. buf.write(u"\2\u00c2\u00c4\7\21\2\2\u00c3\u00c0\3\2\2\2\u00c3\u00c4")
  120. buf.write(u"\3\2\2\2\u00c4\u00c6\3\2\2\2\u00c5\u00c7\t\4\2\2\u00c6")
  121. buf.write(u"\u00c5\3\2\2\2\u00c6\u00c7\3\2\2\2\u00c7\u00cb\3\2\2")
  122. buf.write(u"\2\u00c8\u00ca\7\r\2\2\u00c9\u00c8\3\2\2\2\u00ca\u00cd")
  123. buf.write(u"\3\2\2\2\u00cb\u00c9\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc")
  124. buf.write(u"\u00d0\3\2\2\2\u00cd\u00cb\3\2\2\2\u00ce\u00cf\7\5\2")
  125. buf.write(u"\2\u00cf\u00d1\58\35\2\u00d0\u00ce\3\2\2\2\u00d0\u00d1")
  126. buf.write(u"\3\2\2\2\u00d1\25\3\2\2\2\u00d2\u00d3\7\20\2\2\u00d3")
  127. buf.write(u"\u00d4\7.\2\2\u00d4\u00d5\7\22\2\2\u00d5\u00dc\7.\2\2")
  128. buf.write(u"\u00d6\u00d7\7\f\2\2\u00d7\u00d8\7.\2\2\u00d8\u00d9\7")
  129. buf.write(u"\22\2\2\u00d9\u00db\7.\2\2\u00da\u00d6\3\2\2\2\u00db")
  130. buf.write(u"\u00de\3\2\2\2\u00dc\u00da\3\2\2\2\u00dc\u00dd\3\2\2")
  131. buf.write(u"\2\u00dd\u00df\3\2\2\2\u00de\u00dc\3\2\2\2\u00df\u00e0")
  132. buf.write(u"\7\21\2\2\u00e0\27\3\2\2\2\u00e1\u00e2\7\35\2\2\u00e2")
  133. buf.write(u"\u00e7\5\32\16\2\u00e3\u00e4\7\f\2\2\u00e4\u00e6\5\32")
  134. buf.write(u"\16\2\u00e5\u00e3\3\2\2\2\u00e6\u00e9\3\2\2\2\u00e7\u00e5")
  135. buf.write(u"\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\31\3\2\2\2\u00e9\u00e7")
  136. buf.write(u"\3\2\2\2\u00ea\u00eb\7\62\2\2\u00eb\u00ec\7\5\2\2\u00ec")
  137. buf.write(u"\u00ed\58\35\2\u00ed\33\3\2\2\2\u00ee\u00ef\7\36\2\2")
  138. buf.write(u"\u00ef\u00f3\7\62\2\2\u00f0\u00f1\7\16\2\2\u00f1\u00f2")
  139. buf.write(u"\7\62\2\2\u00f2\u00f4\7\17\2\2\u00f3\u00f0\3\2\2\2\u00f3")
  140. buf.write(u"\u00f4\3\2\2\2\u00f4\u00f7\3\2\2\2\u00f5\u00f6\7\f\2")
  141. buf.write(u"\2\u00f6\u00f8\58\35\2\u00f7\u00f5\3\2\2\2\u00f8\u00f9")
  142. buf.write(u"\3\2\2\2\u00f9\u00f7\3\2\2\2\u00f9\u00fa\3\2\2\2\u00fa")
  143. buf.write(u"\35\3\2\2\2\u00fb\u00fc\7\3\2\2\u00fc\u0101\58\35\2\u00fd")
  144. buf.write(u"\u00fe\t\5\2\2\u00fe\u0100\58\35\2\u00ff\u00fd\3\2\2")
  145. buf.write(u"\2\u0100\u0103\3\2\2\2\u0101\u00ff\3\2\2\2\u0101\u0102")
  146. buf.write(u"\3\2\2\2\u0102\u0104\3\2\2\2\u0103\u0101\3\2\2\2\u0104")
  147. buf.write(u"\u0105\7\4\2\2\u0105\37\3\2\2\2\u0106\u0107\7\62\2\2")
  148. buf.write(u"\u0107\u0108\7\62\2\2\u0108\u010a\7\5\2\2\u0109\u010b")
  149. buf.write(u"\t\6\2\2\u010a\u0109\3\2\2\2\u010a\u010b\3\2\2\2\u010b")
  150. buf.write(u"\u010f\3\2\2\2\u010c\u010f\7/\2\2\u010d\u010f\7.\2\2")
  151. buf.write(u"\u010e\u0106\3\2\2\2\u010e\u010c\3\2\2\2\u010e\u010d")
  152. buf.write(u"\3\2\2\2\u010f!\3\2\2\2\u0110\u0116\5&\24\2\u0111\u0116")
  153. buf.write(u"\5(\25\2\u0112\u0116\5.\30\2\u0113\u0116\5\62\32\2\u0114")
  154. buf.write(u"\u0116\5\64\33\2\u0115\u0110\3\2\2\2\u0115\u0111\3\2")
  155. buf.write(u"\2\2\u0115\u0112\3\2\2\2\u0115\u0113\3\2\2\2\u0115\u0114")
  156. buf.write(u"\3\2\2\2\u0116#\3\2\2\2\u0117\u0119\7\62\2\2\u0118\u011a")
  157. buf.write(u"\t\7\2\2\u0119\u0118\3\2\2\2\u0119\u011a\3\2\2\2\u011a")
  158. buf.write(u"%\3\2\2\2\u011b\u011c\7\"\2\2\u011c\u0121\7\62\2\2\u011d")
  159. buf.write(u"\u011e\7\f\2\2\u011e\u0120\7\62\2\2\u011f\u011d\3\2\2")
  160. buf.write(u"\2\u0120\u0123\3\2\2\2\u0121\u011f\3\2\2\2\u0121\u0122")
  161. buf.write(u"\3\2\2\2\u0122\'\3\2\2\2\u0123\u0121\3\2\2\2\u0124\u0125")
  162. buf.write(u"\7\37\2\2\u0125\u012a\5,\27\2\u0126\u0127\7\f\2\2\u0127")
  163. buf.write(u"\u0129\5,\27\2\u0128\u0126\3\2\2\2\u0129\u012c\3\2\2")
  164. buf.write(u"\2\u012a\u0128\3\2\2\2\u012a\u012b\3\2\2\2\u012b)\3\2")
  165. buf.write(u"\2\2\u012c\u012a\3\2\2\2\u012d\u012f\7\62\2\2\u012e\u0130")
  166. buf.write(u"\5\f\7\2\u012f\u012e\3\2\2\2\u012f\u0130\3\2\2\2\u0130")
  167. buf.write(u"+\3\2\2\2\u0131\u0132\5*\26\2\u0132\u0133\7\5\2\2\u0133")
  168. buf.write(u"\u0135\58\35\2\u0134\u0136\58\35\2\u0135\u0134\3\2\2")
  169. buf.write(u"\2\u0135\u0136\3\2\2\2\u0136-\3\2\2\2\u0137\u0138\7 ")
  170. buf.write(u"\2\2\u0138\u013d\5\60\31\2\u0139\u013a\7\f\2\2\u013a")
  171. buf.write(u"\u013c\5\60\31\2\u013b\u0139\3\2\2\2\u013c\u013f\3\2")
  172. buf.write(u"\2\2\u013d\u013b\3\2\2\2\u013d\u013e\3\2\2\2\u013e/\3")
  173. buf.write(u"\2\2\2\u013f\u013d\3\2\2\2\u0140\u0142\58\35\2\u0141")
  174. buf.write(u"\u0143\58\35\2\u0142\u0141\3\2\2\2\u0142\u0143\3\2\2")
  175. buf.write(u"\2\u0143\61\3\2\2\2\u0144\u0145\7\62\2\2\u0145\u0151")
  176. buf.write(u"\5\16\b\2\u0146\u0147\7\3\2\2\u0147\u014c\5 \21\2\u0148")
  177. buf.write(u"\u0149\7\f\2\2\u0149\u014b\5 \21\2\u014a\u0148\3\2\2")
  178. buf.write(u"\2\u014b\u014e\3\2\2\2\u014c\u014a\3\2\2\2\u014c\u014d")
  179. buf.write(u"\3\2\2\2\u014d\u014f\3\2\2\2\u014e\u014c\3\2\2\2\u014f")
  180. buf.write(u"\u0150\7\4\2\2\u0150\u0152\3\2\2\2\u0151\u0146\3\2\2")
  181. buf.write(u"\2\u0151\u0152\3\2\2\2\u0152\u0153\3\2\2\2\u0153\u0154")
  182. buf.write(u"\7\62\2\2\u0154\u0155\7\26\2\2\u0155\u0156\7\62\2\2\u0156")
  183. buf.write(u"\63\3\2\2\2\u0157\u0158\7!\2\2\u0158\u0159\7\62\2\2\u0159")
  184. buf.write(u"\u015a\7\26\2\2\u015a\u0165\7\62\2\2\u015b\u015c\7#\2")
  185. buf.write(u"\2\u015c\u0161\7\62\2\2\u015d\u015e\7\f\2\2\u015e\u0160")
  186. buf.write(u"\7\62\2\2\u015f\u015d\3\2\2\2\u0160\u0163\3\2\2\2\u0161")
  187. buf.write(u"\u015f\3\2\2\2\u0161\u0162\3\2\2\2\u0162\u0165\3\2\2")
  188. buf.write(u"\2\u0163\u0161\3\2\2\2\u0164\u0157\3\2\2\2\u0164\u015b")
  189. buf.write(u"\3\2\2\2\u0165\65\3\2\2\2\u0166\u0168\7\62\2\2\u0167")
  190. buf.write(u"\u0169\7\27\2\2\u0168\u0167\3\2\2\2\u0169\u016a\3\2\2")
  191. buf.write(u"\2\u016a\u0168\3\2\2\2\u016a\u016b\3\2\2\2\u016b\u016f")
  192. buf.write(u"\3\2\2\2\u016c\u016f\7\30\2\2\u016d\u016f\7\31\2\2\u016e")
  193. buf.write(u"\u0166\3\2\2\2\u016e\u016c\3\2\2\2\u016e\u016d\3\2\2")
  194. buf.write(u"\2\u016f\67\3\2\2\2\u0170\u0171\b\35\1\2\u0171\u019b")
  195. buf.write(u"\7\60\2\2\u0172\u0173\7\24\2\2\u0173\u019b\58\35\16\u0174")
  196. buf.write(u"\u019b\7/\2\2\u0175\u019b\7.\2\2\u0176\u017a\7\62\2\2")
  197. buf.write(u"\u0177\u0179\7\r\2\2\u0178\u0177\3\2\2\2\u0179\u017c")
  198. buf.write(u"\3\2\2\2\u017a\u0178\3\2\2\2\u017a\u017b\3\2\2\2\u017b")
  199. buf.write(u"\u019b\3\2\2\2\u017c\u017a\3\2\2\2\u017d\u019b\5\66\34")
  200. buf.write(u"\2\u017e\u017f\7\62\2\2\u017f\u0180\7\3\2\2\u0180\u0185")
  201. buf.write(u"\58\35\2\u0181\u0182\7\f\2\2\u0182\u0184\58\35\2\u0183")
  202. buf.write(u"\u0181\3\2\2\2\u0184\u0187\3\2\2\2\u0185\u0183\3\2\2")
  203. buf.write(u"\2\u0185\u0186\3\2\2\2\u0186\u0188\3\2\2\2\u0187\u0185")
  204. buf.write(u"\3\2\2\2\u0188\u0189\7\4\2\2\u0189\u019b\3\2\2\2\u018a")
  205. buf.write(u"\u019b\5\16\b\2\u018b\u019b\5\36\20\2\u018c\u018d\7\16")
  206. buf.write(u"\2\2\u018d\u018e\58\35\2\u018e\u018f\7\17\2\2\u018f\u019b")
  207. buf.write(u"\3\2\2\2\u0190\u0192\7\62\2\2\u0191\u0190\3\2\2\2\u0191")
  208. buf.write(u"\u0192\3\2\2\2\u0192\u0193\3\2\2\2\u0193\u0197\5\26\f")
  209. buf.write(u"\2\u0194\u0196\7\r\2\2\u0195\u0194\3\2\2\2\u0196\u0199")
  210. buf.write(u"\3\2\2\2\u0197\u0195\3\2\2\2\u0197\u0198\3\2\2\2\u0198")
  211. buf.write(u"\u019b\3\2\2\2\u0199\u0197\3\2\2\2\u019a\u0170\3\2\2")
  212. buf.write(u"\2\u019a\u0172\3\2\2\2\u019a\u0174\3\2\2\2\u019a\u0175")
  213. buf.write(u"\3\2\2\2\u019a\u0176\3\2\2\2\u019a\u017d\3\2\2\2\u019a")
  214. buf.write(u"\u017e\3\2\2\2\u019a\u018a\3\2\2\2\u019a\u018b\3\2\2")
  215. buf.write(u"\2\u019a\u018c\3\2\2\2\u019a\u0191\3\2\2\2\u019b\u01ad")
  216. buf.write(u"\3\2\2\2\u019c\u019d\f\22\2\2\u019d\u019e\7\32\2\2\u019e")
  217. buf.write(u"\u01ac\58\35\23\u019f\u01a0\f\21\2\2\u01a0\u01a1\t\b")
  218. buf.write(u"\2\2\u01a1\u01ac\58\35\22\u01a2\u01a3\f\20\2\2\u01a3")
  219. buf.write(u"\u01a4\t\4\2\2\u01a4\u01ac\58\35\21\u01a5\u01a6\f\5\2")
  220. buf.write(u"\2\u01a6\u01a7\7\5\2\2\u01a7\u01ac\58\35\6\u01a8\u01a9")
  221. buf.write(u"\f\4\2\2\u01a9\u01aa\7\22\2\2\u01aa\u01ac\58\35\5\u01ab")
  222. buf.write(u"\u019c\3\2\2\2\u01ab\u019f\3\2\2\2\u01ab\u01a2\3\2\2")
  223. buf.write(u"\2\u01ab\u01a5\3\2\2\2\u01ab\u01a8\3\2\2\2\u01ac\u01af")
  224. buf.write(u"\3\2\2\2\u01ad\u01ab\3\2\2\2\u01ad\u01ae\3\2\2\2\u01ae")
  225. buf.write(u"9\3\2\2\2\u01af\u01ad\3\2\2\2\64=FUZciru\177\u0082\u0085")
  226. buf.write(u"\u008d\u009c\u00a3\u00a6\u00ae\u00ba\u00be\u00c3\u00c6")
  227. buf.write(u"\u00cb\u00d0\u00dc\u00e7\u00f3\u00f9\u0101\u010a\u010e")
  228. buf.write(u"\u0115\u0119\u0121\u012a\u012f\u0135\u013d\u0142\u014c")
  229. buf.write(u"\u0151\u0161\u0164\u016a\u016e\u017a\u0185\u0191\u0197")
  230. buf.write(u"\u019a\u01ab\u01ad")
  231. return buf.getvalue()
  232. class AutolevParser ( Parser ):
  233. grammarFileName = "Autolev.g4"
  234. atn = ATNDeserializer().deserialize(serializedATN())
  235. decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
  236. sharedContextCache = PredictionContextCache()
  237. literalNames = [ u"<INVALID>", u"'['", u"']'", u"'='", u"'+='", u"'-='",
  238. u"':='", u"'*='", u"'/='", u"'^='", u"','", u"'''",
  239. u"'('", u"')'", u"'{'", u"'}'", u"':'", u"'+'", u"'-'",
  240. u"';'", u"'.'", u"'>'", u"'0>'", u"'1>>'", u"'^'",
  241. u"'*'", u"'/'" ]
  242. symbolicNames = [ u"<INVALID>", u"<INVALID>", u"<INVALID>", u"<INVALID>",
  243. u"<INVALID>", u"<INVALID>", u"<INVALID>", u"<INVALID>",
  244. u"<INVALID>", u"<INVALID>", u"<INVALID>", u"<INVALID>",
  245. u"<INVALID>", u"<INVALID>", u"<INVALID>", u"<INVALID>",
  246. u"<INVALID>", u"<INVALID>", u"<INVALID>", u"<INVALID>",
  247. u"<INVALID>", u"<INVALID>", u"<INVALID>", u"<INVALID>",
  248. u"<INVALID>", u"<INVALID>", u"<INVALID>", u"Mass",
  249. u"Inertia", u"Input", u"Output", u"Save", u"UnitSystem",
  250. u"Encode", u"Newtonian", u"Frames", u"Bodies", u"Particles",
  251. u"Points", u"Constants", u"Specifieds", u"Imaginary",
  252. u"Variables", u"MotionVariables", u"INT", u"FLOAT",
  253. u"EXP", u"LINE_COMMENT", u"ID", u"WS" ]
  254. RULE_prog = 0
  255. RULE_stat = 1
  256. RULE_assignment = 2
  257. RULE_equals = 3
  258. RULE_index = 4
  259. RULE_diff = 5
  260. RULE_functionCall = 6
  261. RULE_varDecl = 7
  262. RULE_varType = 8
  263. RULE_varDecl2 = 9
  264. RULE_ranges = 10
  265. RULE_massDecl = 11
  266. RULE_massDecl2 = 12
  267. RULE_inertiaDecl = 13
  268. RULE_matrix = 14
  269. RULE_matrixInOutput = 15
  270. RULE_codeCommands = 16
  271. RULE_settings = 17
  272. RULE_units = 18
  273. RULE_inputs = 19
  274. RULE_id_diff = 20
  275. RULE_inputs2 = 21
  276. RULE_outputs = 22
  277. RULE_outputs2 = 23
  278. RULE_codegen = 24
  279. RULE_commands = 25
  280. RULE_vec = 26
  281. RULE_expr = 27
  282. ruleNames = [ u"prog", u"stat", u"assignment", u"equals", u"index",
  283. u"diff", u"functionCall", u"varDecl", u"varType", u"varDecl2",
  284. u"ranges", u"massDecl", u"massDecl2", u"inertiaDecl",
  285. u"matrix", u"matrixInOutput", u"codeCommands", u"settings",
  286. u"units", u"inputs", u"id_diff", u"inputs2", u"outputs",
  287. u"outputs2", u"codegen", u"commands", u"vec", u"expr" ]
  288. EOF = Token.EOF
  289. T__0=1
  290. T__1=2
  291. T__2=3
  292. T__3=4
  293. T__4=5
  294. T__5=6
  295. T__6=7
  296. T__7=8
  297. T__8=9
  298. T__9=10
  299. T__10=11
  300. T__11=12
  301. T__12=13
  302. T__13=14
  303. T__14=15
  304. T__15=16
  305. T__16=17
  306. T__17=18
  307. T__18=19
  308. T__19=20
  309. T__20=21
  310. T__21=22
  311. T__22=23
  312. T__23=24
  313. T__24=25
  314. T__25=26
  315. Mass=27
  316. Inertia=28
  317. Input=29
  318. Output=30
  319. Save=31
  320. UnitSystem=32
  321. Encode=33
  322. Newtonian=34
  323. Frames=35
  324. Bodies=36
  325. Particles=37
  326. Points=38
  327. Constants=39
  328. Specifieds=40
  329. Imaginary=41
  330. Variables=42
  331. MotionVariables=43
  332. INT=44
  333. FLOAT=45
  334. EXP=46
  335. LINE_COMMENT=47
  336. ID=48
  337. WS=49
  338. def __init__(self, input, output=sys.stdout):
  339. super(AutolevParser, self).__init__(input, output=output)
  340. self.checkVersion("4.7.1")
  341. self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
  342. self._predicates = None
  343. class ProgContext(ParserRuleContext):
  344. def __init__(self, parser, parent=None, invokingState=-1):
  345. super(AutolevParser.ProgContext, self).__init__(parent, invokingState)
  346. self.parser = parser
  347. def stat(self, i=None):
  348. if i is None:
  349. return self.getTypedRuleContexts(AutolevParser.StatContext)
  350. else:
  351. return self.getTypedRuleContext(AutolevParser.StatContext,i)
  352. def getRuleIndex(self):
  353. return AutolevParser.RULE_prog
  354. def enterRule(self, listener):
  355. if hasattr(listener, "enterProg"):
  356. listener.enterProg(self)
  357. def exitRule(self, listener):
  358. if hasattr(listener, "exitProg"):
  359. listener.exitProg(self)
  360. def prog(self):
  361. localctx = AutolevParser.ProgContext(self, self._ctx, self.state)
  362. self.enterRule(localctx, 0, self.RULE_prog)
  363. self._la = 0 # Token type
  364. try:
  365. self.enterOuterAlt(localctx, 1)
  366. self.state = 57
  367. self._errHandler.sync(self)
  368. _la = self._input.LA(1)
  369. while True:
  370. self.state = 56
  371. self.stat()
  372. self.state = 59
  373. self._errHandler.sync(self)
  374. _la = self._input.LA(1)
  375. if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << AutolevParser.T__21) | (1 << AutolevParser.T__22) | (1 << AutolevParser.Mass) | (1 << AutolevParser.Inertia) | (1 << AutolevParser.Input) | (1 << AutolevParser.Output) | (1 << AutolevParser.Save) | (1 << AutolevParser.UnitSystem) | (1 << AutolevParser.Encode) | (1 << AutolevParser.Newtonian) | (1 << AutolevParser.Frames) | (1 << AutolevParser.Bodies) | (1 << AutolevParser.Particles) | (1 << AutolevParser.Points) | (1 << AutolevParser.Constants) | (1 << AutolevParser.Specifieds) | (1 << AutolevParser.Imaginary) | (1 << AutolevParser.Variables) | (1 << AutolevParser.MotionVariables) | (1 << AutolevParser.ID))) != 0)):
  376. break
  377. except RecognitionException as re:
  378. localctx.exception = re
  379. self._errHandler.reportError(self, re)
  380. self._errHandler.recover(self, re)
  381. finally:
  382. self.exitRule()
  383. return localctx
  384. class StatContext(ParserRuleContext):
  385. def __init__(self, parser, parent=None, invokingState=-1):
  386. super(AutolevParser.StatContext, self).__init__(parent, invokingState)
  387. self.parser = parser
  388. def varDecl(self):
  389. return self.getTypedRuleContext(AutolevParser.VarDeclContext,0)
  390. def functionCall(self):
  391. return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0)
  392. def codeCommands(self):
  393. return self.getTypedRuleContext(AutolevParser.CodeCommandsContext,0)
  394. def massDecl(self):
  395. return self.getTypedRuleContext(AutolevParser.MassDeclContext,0)
  396. def inertiaDecl(self):
  397. return self.getTypedRuleContext(AutolevParser.InertiaDeclContext,0)
  398. def assignment(self):
  399. return self.getTypedRuleContext(AutolevParser.AssignmentContext,0)
  400. def settings(self):
  401. return self.getTypedRuleContext(AutolevParser.SettingsContext,0)
  402. def getRuleIndex(self):
  403. return AutolevParser.RULE_stat
  404. def enterRule(self, listener):
  405. if hasattr(listener, "enterStat"):
  406. listener.enterStat(self)
  407. def exitRule(self, listener):
  408. if hasattr(listener, "exitStat"):
  409. listener.exitStat(self)
  410. def stat(self):
  411. localctx = AutolevParser.StatContext(self, self._ctx, self.state)
  412. self.enterRule(localctx, 2, self.RULE_stat)
  413. try:
  414. self.state = 68
  415. self._errHandler.sync(self)
  416. la_ = self._interp.adaptivePredict(self._input,1,self._ctx)
  417. if la_ == 1:
  418. self.enterOuterAlt(localctx, 1)
  419. self.state = 61
  420. self.varDecl()
  421. pass
  422. elif la_ == 2:
  423. self.enterOuterAlt(localctx, 2)
  424. self.state = 62
  425. self.functionCall()
  426. pass
  427. elif la_ == 3:
  428. self.enterOuterAlt(localctx, 3)
  429. self.state = 63
  430. self.codeCommands()
  431. pass
  432. elif la_ == 4:
  433. self.enterOuterAlt(localctx, 4)
  434. self.state = 64
  435. self.massDecl()
  436. pass
  437. elif la_ == 5:
  438. self.enterOuterAlt(localctx, 5)
  439. self.state = 65
  440. self.inertiaDecl()
  441. pass
  442. elif la_ == 6:
  443. self.enterOuterAlt(localctx, 6)
  444. self.state = 66
  445. self.assignment()
  446. pass
  447. elif la_ == 7:
  448. self.enterOuterAlt(localctx, 7)
  449. self.state = 67
  450. self.settings()
  451. pass
  452. except RecognitionException as re:
  453. localctx.exception = re
  454. self._errHandler.reportError(self, re)
  455. self._errHandler.recover(self, re)
  456. finally:
  457. self.exitRule()
  458. return localctx
  459. class AssignmentContext(ParserRuleContext):
  460. def __init__(self, parser, parent=None, invokingState=-1):
  461. super(AutolevParser.AssignmentContext, self).__init__(parent, invokingState)
  462. self.parser = parser
  463. def getRuleIndex(self):
  464. return AutolevParser.RULE_assignment
  465. def copyFrom(self, ctx):
  466. super(AutolevParser.AssignmentContext, self).copyFrom(ctx)
  467. class VecAssignContext(AssignmentContext):
  468. def __init__(self, parser, ctx): # actually a AutolevParser.AssignmentContext)
  469. super(AutolevParser.VecAssignContext, self).__init__(parser)
  470. self.copyFrom(ctx)
  471. def vec(self):
  472. return self.getTypedRuleContext(AutolevParser.VecContext,0)
  473. def equals(self):
  474. return self.getTypedRuleContext(AutolevParser.EqualsContext,0)
  475. def expr(self):
  476. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  477. def enterRule(self, listener):
  478. if hasattr(listener, "enterVecAssign"):
  479. listener.enterVecAssign(self)
  480. def exitRule(self, listener):
  481. if hasattr(listener, "exitVecAssign"):
  482. listener.exitVecAssign(self)
  483. class RegularAssignContext(AssignmentContext):
  484. def __init__(self, parser, ctx): # actually a AutolevParser.AssignmentContext)
  485. super(AutolevParser.RegularAssignContext, self).__init__(parser)
  486. self.copyFrom(ctx)
  487. def ID(self):
  488. return self.getToken(AutolevParser.ID, 0)
  489. def equals(self):
  490. return self.getTypedRuleContext(AutolevParser.EqualsContext,0)
  491. def expr(self):
  492. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  493. def diff(self):
  494. return self.getTypedRuleContext(AutolevParser.DiffContext,0)
  495. def enterRule(self, listener):
  496. if hasattr(listener, "enterRegularAssign"):
  497. listener.enterRegularAssign(self)
  498. def exitRule(self, listener):
  499. if hasattr(listener, "exitRegularAssign"):
  500. listener.exitRegularAssign(self)
  501. class IndexAssignContext(AssignmentContext):
  502. def __init__(self, parser, ctx): # actually a AutolevParser.AssignmentContext)
  503. super(AutolevParser.IndexAssignContext, self).__init__(parser)
  504. self.copyFrom(ctx)
  505. def ID(self):
  506. return self.getToken(AutolevParser.ID, 0)
  507. def index(self):
  508. return self.getTypedRuleContext(AutolevParser.IndexContext,0)
  509. def equals(self):
  510. return self.getTypedRuleContext(AutolevParser.EqualsContext,0)
  511. def expr(self):
  512. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  513. def enterRule(self, listener):
  514. if hasattr(listener, "enterIndexAssign"):
  515. listener.enterIndexAssign(self)
  516. def exitRule(self, listener):
  517. if hasattr(listener, "exitIndexAssign"):
  518. listener.exitIndexAssign(self)
  519. def assignment(self):
  520. localctx = AutolevParser.AssignmentContext(self, self._ctx, self.state)
  521. self.enterRule(localctx, 4, self.RULE_assignment)
  522. self._la = 0 # Token type
  523. try:
  524. self.state = 88
  525. self._errHandler.sync(self)
  526. la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
  527. if la_ == 1:
  528. localctx = AutolevParser.VecAssignContext(self, localctx)
  529. self.enterOuterAlt(localctx, 1)
  530. self.state = 70
  531. self.vec()
  532. self.state = 71
  533. self.equals()
  534. self.state = 72
  535. self.expr(0)
  536. pass
  537. elif la_ == 2:
  538. localctx = AutolevParser.IndexAssignContext(self, localctx)
  539. self.enterOuterAlt(localctx, 2)
  540. self.state = 74
  541. self.match(AutolevParser.ID)
  542. self.state = 75
  543. self.match(AutolevParser.T__0)
  544. self.state = 76
  545. self.index()
  546. self.state = 77
  547. self.match(AutolevParser.T__1)
  548. self.state = 78
  549. self.equals()
  550. self.state = 79
  551. self.expr(0)
  552. pass
  553. elif la_ == 3:
  554. localctx = AutolevParser.RegularAssignContext(self, localctx)
  555. self.enterOuterAlt(localctx, 3)
  556. self.state = 81
  557. self.match(AutolevParser.ID)
  558. self.state = 83
  559. self._errHandler.sync(self)
  560. _la = self._input.LA(1)
  561. if _la==AutolevParser.T__10:
  562. self.state = 82
  563. self.diff()
  564. self.state = 85
  565. self.equals()
  566. self.state = 86
  567. self.expr(0)
  568. pass
  569. except RecognitionException as re:
  570. localctx.exception = re
  571. self._errHandler.reportError(self, re)
  572. self._errHandler.recover(self, re)
  573. finally:
  574. self.exitRule()
  575. return localctx
  576. class EqualsContext(ParserRuleContext):
  577. def __init__(self, parser, parent=None, invokingState=-1):
  578. super(AutolevParser.EqualsContext, self).__init__(parent, invokingState)
  579. self.parser = parser
  580. def getRuleIndex(self):
  581. return AutolevParser.RULE_equals
  582. def enterRule(self, listener):
  583. if hasattr(listener, "enterEquals"):
  584. listener.enterEquals(self)
  585. def exitRule(self, listener):
  586. if hasattr(listener, "exitEquals"):
  587. listener.exitEquals(self)
  588. def equals(self):
  589. localctx = AutolevParser.EqualsContext(self, self._ctx, self.state)
  590. self.enterRule(localctx, 6, self.RULE_equals)
  591. self._la = 0 # Token type
  592. try:
  593. self.enterOuterAlt(localctx, 1)
  594. self.state = 90
  595. _la = self._input.LA(1)
  596. if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << AutolevParser.T__2) | (1 << AutolevParser.T__3) | (1 << AutolevParser.T__4) | (1 << AutolevParser.T__5) | (1 << AutolevParser.T__6) | (1 << AutolevParser.T__7) | (1 << AutolevParser.T__8))) != 0)):
  597. self._errHandler.recoverInline(self)
  598. else:
  599. self._errHandler.reportMatch(self)
  600. self.consume()
  601. except RecognitionException as re:
  602. localctx.exception = re
  603. self._errHandler.reportError(self, re)
  604. self._errHandler.recover(self, re)
  605. finally:
  606. self.exitRule()
  607. return localctx
  608. class IndexContext(ParserRuleContext):
  609. def __init__(self, parser, parent=None, invokingState=-1):
  610. super(AutolevParser.IndexContext, self).__init__(parent, invokingState)
  611. self.parser = parser
  612. def expr(self, i=None):
  613. if i is None:
  614. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  615. else:
  616. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  617. def getRuleIndex(self):
  618. return AutolevParser.RULE_index
  619. def enterRule(self, listener):
  620. if hasattr(listener, "enterIndex"):
  621. listener.enterIndex(self)
  622. def exitRule(self, listener):
  623. if hasattr(listener, "exitIndex"):
  624. listener.exitIndex(self)
  625. def index(self):
  626. localctx = AutolevParser.IndexContext(self, self._ctx, self.state)
  627. self.enterRule(localctx, 8, self.RULE_index)
  628. self._la = 0 # Token type
  629. try:
  630. self.enterOuterAlt(localctx, 1)
  631. self.state = 92
  632. self.expr(0)
  633. self.state = 97
  634. self._errHandler.sync(self)
  635. _la = self._input.LA(1)
  636. while _la==AutolevParser.T__9:
  637. self.state = 93
  638. self.match(AutolevParser.T__9)
  639. self.state = 94
  640. self.expr(0)
  641. self.state = 99
  642. self._errHandler.sync(self)
  643. _la = self._input.LA(1)
  644. except RecognitionException as re:
  645. localctx.exception = re
  646. self._errHandler.reportError(self, re)
  647. self._errHandler.recover(self, re)
  648. finally:
  649. self.exitRule()
  650. return localctx
  651. class DiffContext(ParserRuleContext):
  652. def __init__(self, parser, parent=None, invokingState=-1):
  653. super(AutolevParser.DiffContext, self).__init__(parent, invokingState)
  654. self.parser = parser
  655. def getRuleIndex(self):
  656. return AutolevParser.RULE_diff
  657. def enterRule(self, listener):
  658. if hasattr(listener, "enterDiff"):
  659. listener.enterDiff(self)
  660. def exitRule(self, listener):
  661. if hasattr(listener, "exitDiff"):
  662. listener.exitDiff(self)
  663. def diff(self):
  664. localctx = AutolevParser.DiffContext(self, self._ctx, self.state)
  665. self.enterRule(localctx, 10, self.RULE_diff)
  666. self._la = 0 # Token type
  667. try:
  668. self.enterOuterAlt(localctx, 1)
  669. self.state = 101
  670. self._errHandler.sync(self)
  671. _la = self._input.LA(1)
  672. while True:
  673. self.state = 100
  674. self.match(AutolevParser.T__10)
  675. self.state = 103
  676. self._errHandler.sync(self)
  677. _la = self._input.LA(1)
  678. if not (_la==AutolevParser.T__10):
  679. break
  680. except RecognitionException as re:
  681. localctx.exception = re
  682. self._errHandler.reportError(self, re)
  683. self._errHandler.recover(self, re)
  684. finally:
  685. self.exitRule()
  686. return localctx
  687. class FunctionCallContext(ParserRuleContext):
  688. def __init__(self, parser, parent=None, invokingState=-1):
  689. super(AutolevParser.FunctionCallContext, self).__init__(parent, invokingState)
  690. self.parser = parser
  691. def ID(self, i=None):
  692. if i is None:
  693. return self.getTokens(AutolevParser.ID)
  694. else:
  695. return self.getToken(AutolevParser.ID, i)
  696. def expr(self, i=None):
  697. if i is None:
  698. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  699. else:
  700. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  701. def Mass(self):
  702. return self.getToken(AutolevParser.Mass, 0)
  703. def Inertia(self):
  704. return self.getToken(AutolevParser.Inertia, 0)
  705. def getRuleIndex(self):
  706. return AutolevParser.RULE_functionCall
  707. def enterRule(self, listener):
  708. if hasattr(listener, "enterFunctionCall"):
  709. listener.enterFunctionCall(self)
  710. def exitRule(self, listener):
  711. if hasattr(listener, "exitFunctionCall"):
  712. listener.exitFunctionCall(self)
  713. def functionCall(self):
  714. localctx = AutolevParser.FunctionCallContext(self, self._ctx, self.state)
  715. self.enterRule(localctx, 12, self.RULE_functionCall)
  716. self._la = 0 # Token type
  717. try:
  718. self.state = 131
  719. self._errHandler.sync(self)
  720. token = self._input.LA(1)
  721. if token in [AutolevParser.ID]:
  722. self.enterOuterAlt(localctx, 1)
  723. self.state = 105
  724. self.match(AutolevParser.ID)
  725. self.state = 106
  726. self.match(AutolevParser.T__11)
  727. self.state = 115
  728. self._errHandler.sync(self)
  729. _la = self._input.LA(1)
  730. if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << AutolevParser.T__0) | (1 << AutolevParser.T__11) | (1 << AutolevParser.T__13) | (1 << AutolevParser.T__17) | (1 << AutolevParser.T__21) | (1 << AutolevParser.T__22) | (1 << AutolevParser.Mass) | (1 << AutolevParser.Inertia) | (1 << AutolevParser.INT) | (1 << AutolevParser.FLOAT) | (1 << AutolevParser.EXP) | (1 << AutolevParser.ID))) != 0):
  731. self.state = 107
  732. self.expr(0)
  733. self.state = 112
  734. self._errHandler.sync(self)
  735. _la = self._input.LA(1)
  736. while _la==AutolevParser.T__9:
  737. self.state = 108
  738. self.match(AutolevParser.T__9)
  739. self.state = 109
  740. self.expr(0)
  741. self.state = 114
  742. self._errHandler.sync(self)
  743. _la = self._input.LA(1)
  744. self.state = 117
  745. self.match(AutolevParser.T__12)
  746. pass
  747. elif token in [AutolevParser.Mass, AutolevParser.Inertia]:
  748. self.enterOuterAlt(localctx, 2)
  749. self.state = 118
  750. _la = self._input.LA(1)
  751. if not(_la==AutolevParser.Mass or _la==AutolevParser.Inertia):
  752. self._errHandler.recoverInline(self)
  753. else:
  754. self._errHandler.reportMatch(self)
  755. self.consume()
  756. self.state = 119
  757. self.match(AutolevParser.T__11)
  758. self.state = 128
  759. self._errHandler.sync(self)
  760. _la = self._input.LA(1)
  761. if _la==AutolevParser.ID:
  762. self.state = 120
  763. self.match(AutolevParser.ID)
  764. self.state = 125
  765. self._errHandler.sync(self)
  766. _la = self._input.LA(1)
  767. while _la==AutolevParser.T__9:
  768. self.state = 121
  769. self.match(AutolevParser.T__9)
  770. self.state = 122
  771. self.match(AutolevParser.ID)
  772. self.state = 127
  773. self._errHandler.sync(self)
  774. _la = self._input.LA(1)
  775. self.state = 130
  776. self.match(AutolevParser.T__12)
  777. pass
  778. else:
  779. raise NoViableAltException(self)
  780. except RecognitionException as re:
  781. localctx.exception = re
  782. self._errHandler.reportError(self, re)
  783. self._errHandler.recover(self, re)
  784. finally:
  785. self.exitRule()
  786. return localctx
  787. class VarDeclContext(ParserRuleContext):
  788. def __init__(self, parser, parent=None, invokingState=-1):
  789. super(AutolevParser.VarDeclContext, self).__init__(parent, invokingState)
  790. self.parser = parser
  791. def varType(self):
  792. return self.getTypedRuleContext(AutolevParser.VarTypeContext,0)
  793. def varDecl2(self, i=None):
  794. if i is None:
  795. return self.getTypedRuleContexts(AutolevParser.VarDecl2Context)
  796. else:
  797. return self.getTypedRuleContext(AutolevParser.VarDecl2Context,i)
  798. def getRuleIndex(self):
  799. return AutolevParser.RULE_varDecl
  800. def enterRule(self, listener):
  801. if hasattr(listener, "enterVarDecl"):
  802. listener.enterVarDecl(self)
  803. def exitRule(self, listener):
  804. if hasattr(listener, "exitVarDecl"):
  805. listener.exitVarDecl(self)
  806. def varDecl(self):
  807. localctx = AutolevParser.VarDeclContext(self, self._ctx, self.state)
  808. self.enterRule(localctx, 14, self.RULE_varDecl)
  809. self._la = 0 # Token type
  810. try:
  811. self.enterOuterAlt(localctx, 1)
  812. self.state = 133
  813. self.varType()
  814. self.state = 134
  815. self.varDecl2()
  816. self.state = 139
  817. self._errHandler.sync(self)
  818. _la = self._input.LA(1)
  819. while _la==AutolevParser.T__9:
  820. self.state = 135
  821. self.match(AutolevParser.T__9)
  822. self.state = 136
  823. self.varDecl2()
  824. self.state = 141
  825. self._errHandler.sync(self)
  826. _la = self._input.LA(1)
  827. except RecognitionException as re:
  828. localctx.exception = re
  829. self._errHandler.reportError(self, re)
  830. self._errHandler.recover(self, re)
  831. finally:
  832. self.exitRule()
  833. return localctx
  834. class VarTypeContext(ParserRuleContext):
  835. def __init__(self, parser, parent=None, invokingState=-1):
  836. super(AutolevParser.VarTypeContext, self).__init__(parent, invokingState)
  837. self.parser = parser
  838. def Newtonian(self):
  839. return self.getToken(AutolevParser.Newtonian, 0)
  840. def Frames(self):
  841. return self.getToken(AutolevParser.Frames, 0)
  842. def Bodies(self):
  843. return self.getToken(AutolevParser.Bodies, 0)
  844. def Particles(self):
  845. return self.getToken(AutolevParser.Particles, 0)
  846. def Points(self):
  847. return self.getToken(AutolevParser.Points, 0)
  848. def Constants(self):
  849. return self.getToken(AutolevParser.Constants, 0)
  850. def Specifieds(self):
  851. return self.getToken(AutolevParser.Specifieds, 0)
  852. def Imaginary(self):
  853. return self.getToken(AutolevParser.Imaginary, 0)
  854. def Variables(self):
  855. return self.getToken(AutolevParser.Variables, 0)
  856. def MotionVariables(self):
  857. return self.getToken(AutolevParser.MotionVariables, 0)
  858. def getRuleIndex(self):
  859. return AutolevParser.RULE_varType
  860. def enterRule(self, listener):
  861. if hasattr(listener, "enterVarType"):
  862. listener.enterVarType(self)
  863. def exitRule(self, listener):
  864. if hasattr(listener, "exitVarType"):
  865. listener.exitVarType(self)
  866. def varType(self):
  867. localctx = AutolevParser.VarTypeContext(self, self._ctx, self.state)
  868. self.enterRule(localctx, 16, self.RULE_varType)
  869. self._la = 0 # Token type
  870. try:
  871. self.state = 164
  872. self._errHandler.sync(self)
  873. token = self._input.LA(1)
  874. if token in [AutolevParser.Newtonian]:
  875. self.enterOuterAlt(localctx, 1)
  876. self.state = 142
  877. self.match(AutolevParser.Newtonian)
  878. pass
  879. elif token in [AutolevParser.Frames]:
  880. self.enterOuterAlt(localctx, 2)
  881. self.state = 143
  882. self.match(AutolevParser.Frames)
  883. pass
  884. elif token in [AutolevParser.Bodies]:
  885. self.enterOuterAlt(localctx, 3)
  886. self.state = 144
  887. self.match(AutolevParser.Bodies)
  888. pass
  889. elif token in [AutolevParser.Particles]:
  890. self.enterOuterAlt(localctx, 4)
  891. self.state = 145
  892. self.match(AutolevParser.Particles)
  893. pass
  894. elif token in [AutolevParser.Points]:
  895. self.enterOuterAlt(localctx, 5)
  896. self.state = 146
  897. self.match(AutolevParser.Points)
  898. pass
  899. elif token in [AutolevParser.Constants]:
  900. self.enterOuterAlt(localctx, 6)
  901. self.state = 147
  902. self.match(AutolevParser.Constants)
  903. pass
  904. elif token in [AutolevParser.Specifieds]:
  905. self.enterOuterAlt(localctx, 7)
  906. self.state = 148
  907. self.match(AutolevParser.Specifieds)
  908. pass
  909. elif token in [AutolevParser.Imaginary]:
  910. self.enterOuterAlt(localctx, 8)
  911. self.state = 149
  912. self.match(AutolevParser.Imaginary)
  913. pass
  914. elif token in [AutolevParser.Variables]:
  915. self.enterOuterAlt(localctx, 9)
  916. self.state = 150
  917. self.match(AutolevParser.Variables)
  918. self.state = 154
  919. self._errHandler.sync(self)
  920. _la = self._input.LA(1)
  921. while _la==AutolevParser.T__10:
  922. self.state = 151
  923. self.match(AutolevParser.T__10)
  924. self.state = 156
  925. self._errHandler.sync(self)
  926. _la = self._input.LA(1)
  927. pass
  928. elif token in [AutolevParser.MotionVariables]:
  929. self.enterOuterAlt(localctx, 10)
  930. self.state = 157
  931. self.match(AutolevParser.MotionVariables)
  932. self.state = 161
  933. self._errHandler.sync(self)
  934. _la = self._input.LA(1)
  935. while _la==AutolevParser.T__10:
  936. self.state = 158
  937. self.match(AutolevParser.T__10)
  938. self.state = 163
  939. self._errHandler.sync(self)
  940. _la = self._input.LA(1)
  941. pass
  942. else:
  943. raise NoViableAltException(self)
  944. except RecognitionException as re:
  945. localctx.exception = re
  946. self._errHandler.reportError(self, re)
  947. self._errHandler.recover(self, re)
  948. finally:
  949. self.exitRule()
  950. return localctx
  951. class VarDecl2Context(ParserRuleContext):
  952. def __init__(self, parser, parent=None, invokingState=-1):
  953. super(AutolevParser.VarDecl2Context, self).__init__(parent, invokingState)
  954. self.parser = parser
  955. def ID(self):
  956. return self.getToken(AutolevParser.ID, 0)
  957. def INT(self, i=None):
  958. if i is None:
  959. return self.getTokens(AutolevParser.INT)
  960. else:
  961. return self.getToken(AutolevParser.INT, i)
  962. def expr(self):
  963. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  964. def getRuleIndex(self):
  965. return AutolevParser.RULE_varDecl2
  966. def enterRule(self, listener):
  967. if hasattr(listener, "enterVarDecl2"):
  968. listener.enterVarDecl2(self)
  969. def exitRule(self, listener):
  970. if hasattr(listener, "exitVarDecl2"):
  971. listener.exitVarDecl2(self)
  972. def varDecl2(self):
  973. localctx = AutolevParser.VarDecl2Context(self, self._ctx, self.state)
  974. self.enterRule(localctx, 18, self.RULE_varDecl2)
  975. self._la = 0 # Token type
  976. try:
  977. self.enterOuterAlt(localctx, 1)
  978. self.state = 166
  979. self.match(AutolevParser.ID)
  980. self.state = 172
  981. self._errHandler.sync(self)
  982. la_ = self._interp.adaptivePredict(self._input,15,self._ctx)
  983. if la_ == 1:
  984. self.state = 167
  985. self.match(AutolevParser.T__13)
  986. self.state = 168
  987. self.match(AutolevParser.INT)
  988. self.state = 169
  989. self.match(AutolevParser.T__9)
  990. self.state = 170
  991. self.match(AutolevParser.INT)
  992. self.state = 171
  993. self.match(AutolevParser.T__14)
  994. self.state = 188
  995. self._errHandler.sync(self)
  996. la_ = self._interp.adaptivePredict(self._input,17,self._ctx)
  997. if la_ == 1:
  998. self.state = 174
  999. self.match(AutolevParser.T__13)
  1000. self.state = 175
  1001. self.match(AutolevParser.INT)
  1002. self.state = 176
  1003. self.match(AutolevParser.T__15)
  1004. self.state = 177
  1005. self.match(AutolevParser.INT)
  1006. self.state = 184
  1007. self._errHandler.sync(self)
  1008. _la = self._input.LA(1)
  1009. while _la==AutolevParser.T__9:
  1010. self.state = 178
  1011. self.match(AutolevParser.T__9)
  1012. self.state = 179
  1013. self.match(AutolevParser.INT)
  1014. self.state = 180
  1015. self.match(AutolevParser.T__15)
  1016. self.state = 181
  1017. self.match(AutolevParser.INT)
  1018. self.state = 186
  1019. self._errHandler.sync(self)
  1020. _la = self._input.LA(1)
  1021. self.state = 187
  1022. self.match(AutolevParser.T__14)
  1023. self.state = 193
  1024. self._errHandler.sync(self)
  1025. _la = self._input.LA(1)
  1026. if _la==AutolevParser.T__13:
  1027. self.state = 190
  1028. self.match(AutolevParser.T__13)
  1029. self.state = 191
  1030. self.match(AutolevParser.INT)
  1031. self.state = 192
  1032. self.match(AutolevParser.T__14)
  1033. self.state = 196
  1034. self._errHandler.sync(self)
  1035. _la = self._input.LA(1)
  1036. if _la==AutolevParser.T__16 or _la==AutolevParser.T__17:
  1037. self.state = 195
  1038. _la = self._input.LA(1)
  1039. if not(_la==AutolevParser.T__16 or _la==AutolevParser.T__17):
  1040. self._errHandler.recoverInline(self)
  1041. else:
  1042. self._errHandler.reportMatch(self)
  1043. self.consume()
  1044. self.state = 201
  1045. self._errHandler.sync(self)
  1046. _la = self._input.LA(1)
  1047. while _la==AutolevParser.T__10:
  1048. self.state = 198
  1049. self.match(AutolevParser.T__10)
  1050. self.state = 203
  1051. self._errHandler.sync(self)
  1052. _la = self._input.LA(1)
  1053. self.state = 206
  1054. self._errHandler.sync(self)
  1055. _la = self._input.LA(1)
  1056. if _la==AutolevParser.T__2:
  1057. self.state = 204
  1058. self.match(AutolevParser.T__2)
  1059. self.state = 205
  1060. self.expr(0)
  1061. except RecognitionException as re:
  1062. localctx.exception = re
  1063. self._errHandler.reportError(self, re)
  1064. self._errHandler.recover(self, re)
  1065. finally:
  1066. self.exitRule()
  1067. return localctx
  1068. class RangesContext(ParserRuleContext):
  1069. def __init__(self, parser, parent=None, invokingState=-1):
  1070. super(AutolevParser.RangesContext, self).__init__(parent, invokingState)
  1071. self.parser = parser
  1072. def INT(self, i=None):
  1073. if i is None:
  1074. return self.getTokens(AutolevParser.INT)
  1075. else:
  1076. return self.getToken(AutolevParser.INT, i)
  1077. def getRuleIndex(self):
  1078. return AutolevParser.RULE_ranges
  1079. def enterRule(self, listener):
  1080. if hasattr(listener, "enterRanges"):
  1081. listener.enterRanges(self)
  1082. def exitRule(self, listener):
  1083. if hasattr(listener, "exitRanges"):
  1084. listener.exitRanges(self)
  1085. def ranges(self):
  1086. localctx = AutolevParser.RangesContext(self, self._ctx, self.state)
  1087. self.enterRule(localctx, 20, self.RULE_ranges)
  1088. self._la = 0 # Token type
  1089. try:
  1090. self.enterOuterAlt(localctx, 1)
  1091. self.state = 208
  1092. self.match(AutolevParser.T__13)
  1093. self.state = 209
  1094. self.match(AutolevParser.INT)
  1095. self.state = 210
  1096. self.match(AutolevParser.T__15)
  1097. self.state = 211
  1098. self.match(AutolevParser.INT)
  1099. self.state = 218
  1100. self._errHandler.sync(self)
  1101. _la = self._input.LA(1)
  1102. while _la==AutolevParser.T__9:
  1103. self.state = 212
  1104. self.match(AutolevParser.T__9)
  1105. self.state = 213
  1106. self.match(AutolevParser.INT)
  1107. self.state = 214
  1108. self.match(AutolevParser.T__15)
  1109. self.state = 215
  1110. self.match(AutolevParser.INT)
  1111. self.state = 220
  1112. self._errHandler.sync(self)
  1113. _la = self._input.LA(1)
  1114. self.state = 221
  1115. self.match(AutolevParser.T__14)
  1116. except RecognitionException as re:
  1117. localctx.exception = re
  1118. self._errHandler.reportError(self, re)
  1119. self._errHandler.recover(self, re)
  1120. finally:
  1121. self.exitRule()
  1122. return localctx
  1123. class MassDeclContext(ParserRuleContext):
  1124. def __init__(self, parser, parent=None, invokingState=-1):
  1125. super(AutolevParser.MassDeclContext, self).__init__(parent, invokingState)
  1126. self.parser = parser
  1127. def Mass(self):
  1128. return self.getToken(AutolevParser.Mass, 0)
  1129. def massDecl2(self, i=None):
  1130. if i is None:
  1131. return self.getTypedRuleContexts(AutolevParser.MassDecl2Context)
  1132. else:
  1133. return self.getTypedRuleContext(AutolevParser.MassDecl2Context,i)
  1134. def getRuleIndex(self):
  1135. return AutolevParser.RULE_massDecl
  1136. def enterRule(self, listener):
  1137. if hasattr(listener, "enterMassDecl"):
  1138. listener.enterMassDecl(self)
  1139. def exitRule(self, listener):
  1140. if hasattr(listener, "exitMassDecl"):
  1141. listener.exitMassDecl(self)
  1142. def massDecl(self):
  1143. localctx = AutolevParser.MassDeclContext(self, self._ctx, self.state)
  1144. self.enterRule(localctx, 22, self.RULE_massDecl)
  1145. self._la = 0 # Token type
  1146. try:
  1147. self.enterOuterAlt(localctx, 1)
  1148. self.state = 223
  1149. self.match(AutolevParser.Mass)
  1150. self.state = 224
  1151. self.massDecl2()
  1152. self.state = 229
  1153. self._errHandler.sync(self)
  1154. _la = self._input.LA(1)
  1155. while _la==AutolevParser.T__9:
  1156. self.state = 225
  1157. self.match(AutolevParser.T__9)
  1158. self.state = 226
  1159. self.massDecl2()
  1160. self.state = 231
  1161. self._errHandler.sync(self)
  1162. _la = self._input.LA(1)
  1163. except RecognitionException as re:
  1164. localctx.exception = re
  1165. self._errHandler.reportError(self, re)
  1166. self._errHandler.recover(self, re)
  1167. finally:
  1168. self.exitRule()
  1169. return localctx
  1170. class MassDecl2Context(ParserRuleContext):
  1171. def __init__(self, parser, parent=None, invokingState=-1):
  1172. super(AutolevParser.MassDecl2Context, self).__init__(parent, invokingState)
  1173. self.parser = parser
  1174. def ID(self):
  1175. return self.getToken(AutolevParser.ID, 0)
  1176. def expr(self):
  1177. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  1178. def getRuleIndex(self):
  1179. return AutolevParser.RULE_massDecl2
  1180. def enterRule(self, listener):
  1181. if hasattr(listener, "enterMassDecl2"):
  1182. listener.enterMassDecl2(self)
  1183. def exitRule(self, listener):
  1184. if hasattr(listener, "exitMassDecl2"):
  1185. listener.exitMassDecl2(self)
  1186. def massDecl2(self):
  1187. localctx = AutolevParser.MassDecl2Context(self, self._ctx, self.state)
  1188. self.enterRule(localctx, 24, self.RULE_massDecl2)
  1189. try:
  1190. self.enterOuterAlt(localctx, 1)
  1191. self.state = 232
  1192. self.match(AutolevParser.ID)
  1193. self.state = 233
  1194. self.match(AutolevParser.T__2)
  1195. self.state = 234
  1196. self.expr(0)
  1197. except RecognitionException as re:
  1198. localctx.exception = re
  1199. self._errHandler.reportError(self, re)
  1200. self._errHandler.recover(self, re)
  1201. finally:
  1202. self.exitRule()
  1203. return localctx
  1204. class InertiaDeclContext(ParserRuleContext):
  1205. def __init__(self, parser, parent=None, invokingState=-1):
  1206. super(AutolevParser.InertiaDeclContext, self).__init__(parent, invokingState)
  1207. self.parser = parser
  1208. def Inertia(self):
  1209. return self.getToken(AutolevParser.Inertia, 0)
  1210. def ID(self, i=None):
  1211. if i is None:
  1212. return self.getTokens(AutolevParser.ID)
  1213. else:
  1214. return self.getToken(AutolevParser.ID, i)
  1215. def expr(self, i=None):
  1216. if i is None:
  1217. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  1218. else:
  1219. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  1220. def getRuleIndex(self):
  1221. return AutolevParser.RULE_inertiaDecl
  1222. def enterRule(self, listener):
  1223. if hasattr(listener, "enterInertiaDecl"):
  1224. listener.enterInertiaDecl(self)
  1225. def exitRule(self, listener):
  1226. if hasattr(listener, "exitInertiaDecl"):
  1227. listener.exitInertiaDecl(self)
  1228. def inertiaDecl(self):
  1229. localctx = AutolevParser.InertiaDeclContext(self, self._ctx, self.state)
  1230. self.enterRule(localctx, 26, self.RULE_inertiaDecl)
  1231. self._la = 0 # Token type
  1232. try:
  1233. self.enterOuterAlt(localctx, 1)
  1234. self.state = 236
  1235. self.match(AutolevParser.Inertia)
  1236. self.state = 237
  1237. self.match(AutolevParser.ID)
  1238. self.state = 241
  1239. self._errHandler.sync(self)
  1240. _la = self._input.LA(1)
  1241. if _la==AutolevParser.T__11:
  1242. self.state = 238
  1243. self.match(AutolevParser.T__11)
  1244. self.state = 239
  1245. self.match(AutolevParser.ID)
  1246. self.state = 240
  1247. self.match(AutolevParser.T__12)
  1248. self.state = 245
  1249. self._errHandler.sync(self)
  1250. _la = self._input.LA(1)
  1251. while True:
  1252. self.state = 243
  1253. self.match(AutolevParser.T__9)
  1254. self.state = 244
  1255. self.expr(0)
  1256. self.state = 247
  1257. self._errHandler.sync(self)
  1258. _la = self._input.LA(1)
  1259. if not (_la==AutolevParser.T__9):
  1260. break
  1261. except RecognitionException as re:
  1262. localctx.exception = re
  1263. self._errHandler.reportError(self, re)
  1264. self._errHandler.recover(self, re)
  1265. finally:
  1266. self.exitRule()
  1267. return localctx
  1268. class MatrixContext(ParserRuleContext):
  1269. def __init__(self, parser, parent=None, invokingState=-1):
  1270. super(AutolevParser.MatrixContext, self).__init__(parent, invokingState)
  1271. self.parser = parser
  1272. def expr(self, i=None):
  1273. if i is None:
  1274. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  1275. else:
  1276. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  1277. def getRuleIndex(self):
  1278. return AutolevParser.RULE_matrix
  1279. def enterRule(self, listener):
  1280. if hasattr(listener, "enterMatrix"):
  1281. listener.enterMatrix(self)
  1282. def exitRule(self, listener):
  1283. if hasattr(listener, "exitMatrix"):
  1284. listener.exitMatrix(self)
  1285. def matrix(self):
  1286. localctx = AutolevParser.MatrixContext(self, self._ctx, self.state)
  1287. self.enterRule(localctx, 28, self.RULE_matrix)
  1288. self._la = 0 # Token type
  1289. try:
  1290. self.enterOuterAlt(localctx, 1)
  1291. self.state = 249
  1292. self.match(AutolevParser.T__0)
  1293. self.state = 250
  1294. self.expr(0)
  1295. self.state = 255
  1296. self._errHandler.sync(self)
  1297. _la = self._input.LA(1)
  1298. while _la==AutolevParser.T__9 or _la==AutolevParser.T__18:
  1299. self.state = 251
  1300. _la = self._input.LA(1)
  1301. if not(_la==AutolevParser.T__9 or _la==AutolevParser.T__18):
  1302. self._errHandler.recoverInline(self)
  1303. else:
  1304. self._errHandler.reportMatch(self)
  1305. self.consume()
  1306. self.state = 252
  1307. self.expr(0)
  1308. self.state = 257
  1309. self._errHandler.sync(self)
  1310. _la = self._input.LA(1)
  1311. self.state = 258
  1312. self.match(AutolevParser.T__1)
  1313. except RecognitionException as re:
  1314. localctx.exception = re
  1315. self._errHandler.reportError(self, re)
  1316. self._errHandler.recover(self, re)
  1317. finally:
  1318. self.exitRule()
  1319. return localctx
  1320. class MatrixInOutputContext(ParserRuleContext):
  1321. def __init__(self, parser, parent=None, invokingState=-1):
  1322. super(AutolevParser.MatrixInOutputContext, self).__init__(parent, invokingState)
  1323. self.parser = parser
  1324. def ID(self, i=None):
  1325. if i is None:
  1326. return self.getTokens(AutolevParser.ID)
  1327. else:
  1328. return self.getToken(AutolevParser.ID, i)
  1329. def FLOAT(self):
  1330. return self.getToken(AutolevParser.FLOAT, 0)
  1331. def INT(self):
  1332. return self.getToken(AutolevParser.INT, 0)
  1333. def getRuleIndex(self):
  1334. return AutolevParser.RULE_matrixInOutput
  1335. def enterRule(self, listener):
  1336. if hasattr(listener, "enterMatrixInOutput"):
  1337. listener.enterMatrixInOutput(self)
  1338. def exitRule(self, listener):
  1339. if hasattr(listener, "exitMatrixInOutput"):
  1340. listener.exitMatrixInOutput(self)
  1341. def matrixInOutput(self):
  1342. localctx = AutolevParser.MatrixInOutputContext(self, self._ctx, self.state)
  1343. self.enterRule(localctx, 30, self.RULE_matrixInOutput)
  1344. self._la = 0 # Token type
  1345. try:
  1346. self.state = 268
  1347. self._errHandler.sync(self)
  1348. token = self._input.LA(1)
  1349. if token in [AutolevParser.ID]:
  1350. self.enterOuterAlt(localctx, 1)
  1351. self.state = 260
  1352. self.match(AutolevParser.ID)
  1353. self.state = 261
  1354. self.match(AutolevParser.ID)
  1355. self.state = 262
  1356. self.match(AutolevParser.T__2)
  1357. self.state = 264
  1358. self._errHandler.sync(self)
  1359. _la = self._input.LA(1)
  1360. if _la==AutolevParser.INT or _la==AutolevParser.FLOAT:
  1361. self.state = 263
  1362. _la = self._input.LA(1)
  1363. if not(_la==AutolevParser.INT or _la==AutolevParser.FLOAT):
  1364. self._errHandler.recoverInline(self)
  1365. else:
  1366. self._errHandler.reportMatch(self)
  1367. self.consume()
  1368. pass
  1369. elif token in [AutolevParser.FLOAT]:
  1370. self.enterOuterAlt(localctx, 2)
  1371. self.state = 266
  1372. self.match(AutolevParser.FLOAT)
  1373. pass
  1374. elif token in [AutolevParser.INT]:
  1375. self.enterOuterAlt(localctx, 3)
  1376. self.state = 267
  1377. self.match(AutolevParser.INT)
  1378. pass
  1379. else:
  1380. raise NoViableAltException(self)
  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 CodeCommandsContext(ParserRuleContext):
  1389. def __init__(self, parser, parent=None, invokingState=-1):
  1390. super(AutolevParser.CodeCommandsContext, self).__init__(parent, invokingState)
  1391. self.parser = parser
  1392. def units(self):
  1393. return self.getTypedRuleContext(AutolevParser.UnitsContext,0)
  1394. def inputs(self):
  1395. return self.getTypedRuleContext(AutolevParser.InputsContext,0)
  1396. def outputs(self):
  1397. return self.getTypedRuleContext(AutolevParser.OutputsContext,0)
  1398. def codegen(self):
  1399. return self.getTypedRuleContext(AutolevParser.CodegenContext,0)
  1400. def commands(self):
  1401. return self.getTypedRuleContext(AutolevParser.CommandsContext,0)
  1402. def getRuleIndex(self):
  1403. return AutolevParser.RULE_codeCommands
  1404. def enterRule(self, listener):
  1405. if hasattr(listener, "enterCodeCommands"):
  1406. listener.enterCodeCommands(self)
  1407. def exitRule(self, listener):
  1408. if hasattr(listener, "exitCodeCommands"):
  1409. listener.exitCodeCommands(self)
  1410. def codeCommands(self):
  1411. localctx = AutolevParser.CodeCommandsContext(self, self._ctx, self.state)
  1412. self.enterRule(localctx, 32, self.RULE_codeCommands)
  1413. try:
  1414. self.state = 275
  1415. self._errHandler.sync(self)
  1416. token = self._input.LA(1)
  1417. if token in [AutolevParser.UnitSystem]:
  1418. self.enterOuterAlt(localctx, 1)
  1419. self.state = 270
  1420. self.units()
  1421. pass
  1422. elif token in [AutolevParser.Input]:
  1423. self.enterOuterAlt(localctx, 2)
  1424. self.state = 271
  1425. self.inputs()
  1426. pass
  1427. elif token in [AutolevParser.Output]:
  1428. self.enterOuterAlt(localctx, 3)
  1429. self.state = 272
  1430. self.outputs()
  1431. pass
  1432. elif token in [AutolevParser.ID]:
  1433. self.enterOuterAlt(localctx, 4)
  1434. self.state = 273
  1435. self.codegen()
  1436. pass
  1437. elif token in [AutolevParser.Save, AutolevParser.Encode]:
  1438. self.enterOuterAlt(localctx, 5)
  1439. self.state = 274
  1440. self.commands()
  1441. pass
  1442. else:
  1443. raise NoViableAltException(self)
  1444. except RecognitionException as re:
  1445. localctx.exception = re
  1446. self._errHandler.reportError(self, re)
  1447. self._errHandler.recover(self, re)
  1448. finally:
  1449. self.exitRule()
  1450. return localctx
  1451. class SettingsContext(ParserRuleContext):
  1452. def __init__(self, parser, parent=None, invokingState=-1):
  1453. super(AutolevParser.SettingsContext, self).__init__(parent, invokingState)
  1454. self.parser = parser
  1455. def ID(self, i=None):
  1456. if i is None:
  1457. return self.getTokens(AutolevParser.ID)
  1458. else:
  1459. return self.getToken(AutolevParser.ID, i)
  1460. def EXP(self):
  1461. return self.getToken(AutolevParser.EXP, 0)
  1462. def FLOAT(self):
  1463. return self.getToken(AutolevParser.FLOAT, 0)
  1464. def INT(self):
  1465. return self.getToken(AutolevParser.INT, 0)
  1466. def getRuleIndex(self):
  1467. return AutolevParser.RULE_settings
  1468. def enterRule(self, listener):
  1469. if hasattr(listener, "enterSettings"):
  1470. listener.enterSettings(self)
  1471. def exitRule(self, listener):
  1472. if hasattr(listener, "exitSettings"):
  1473. listener.exitSettings(self)
  1474. def settings(self):
  1475. localctx = AutolevParser.SettingsContext(self, self._ctx, self.state)
  1476. self.enterRule(localctx, 34, self.RULE_settings)
  1477. self._la = 0 # Token type
  1478. try:
  1479. self.enterOuterAlt(localctx, 1)
  1480. self.state = 277
  1481. self.match(AutolevParser.ID)
  1482. self.state = 279
  1483. self._errHandler.sync(self)
  1484. la_ = self._interp.adaptivePredict(self._input,30,self._ctx)
  1485. if la_ == 1:
  1486. self.state = 278
  1487. _la = self._input.LA(1)
  1488. if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << AutolevParser.INT) | (1 << AutolevParser.FLOAT) | (1 << AutolevParser.EXP) | (1 << AutolevParser.ID))) != 0)):
  1489. self._errHandler.recoverInline(self)
  1490. else:
  1491. self._errHandler.reportMatch(self)
  1492. self.consume()
  1493. except RecognitionException as re:
  1494. localctx.exception = re
  1495. self._errHandler.reportError(self, re)
  1496. self._errHandler.recover(self, re)
  1497. finally:
  1498. self.exitRule()
  1499. return localctx
  1500. class UnitsContext(ParserRuleContext):
  1501. def __init__(self, parser, parent=None, invokingState=-1):
  1502. super(AutolevParser.UnitsContext, self).__init__(parent, invokingState)
  1503. self.parser = parser
  1504. def UnitSystem(self):
  1505. return self.getToken(AutolevParser.UnitSystem, 0)
  1506. def ID(self, i=None):
  1507. if i is None:
  1508. return self.getTokens(AutolevParser.ID)
  1509. else:
  1510. return self.getToken(AutolevParser.ID, i)
  1511. def getRuleIndex(self):
  1512. return AutolevParser.RULE_units
  1513. def enterRule(self, listener):
  1514. if hasattr(listener, "enterUnits"):
  1515. listener.enterUnits(self)
  1516. def exitRule(self, listener):
  1517. if hasattr(listener, "exitUnits"):
  1518. listener.exitUnits(self)
  1519. def units(self):
  1520. localctx = AutolevParser.UnitsContext(self, self._ctx, self.state)
  1521. self.enterRule(localctx, 36, self.RULE_units)
  1522. self._la = 0 # Token type
  1523. try:
  1524. self.enterOuterAlt(localctx, 1)
  1525. self.state = 281
  1526. self.match(AutolevParser.UnitSystem)
  1527. self.state = 282
  1528. self.match(AutolevParser.ID)
  1529. self.state = 287
  1530. self._errHandler.sync(self)
  1531. _la = self._input.LA(1)
  1532. while _la==AutolevParser.T__9:
  1533. self.state = 283
  1534. self.match(AutolevParser.T__9)
  1535. self.state = 284
  1536. self.match(AutolevParser.ID)
  1537. self.state = 289
  1538. self._errHandler.sync(self)
  1539. _la = self._input.LA(1)
  1540. except RecognitionException as re:
  1541. localctx.exception = re
  1542. self._errHandler.reportError(self, re)
  1543. self._errHandler.recover(self, re)
  1544. finally:
  1545. self.exitRule()
  1546. return localctx
  1547. class InputsContext(ParserRuleContext):
  1548. def __init__(self, parser, parent=None, invokingState=-1):
  1549. super(AutolevParser.InputsContext, self).__init__(parent, invokingState)
  1550. self.parser = parser
  1551. def Input(self):
  1552. return self.getToken(AutolevParser.Input, 0)
  1553. def inputs2(self, i=None):
  1554. if i is None:
  1555. return self.getTypedRuleContexts(AutolevParser.Inputs2Context)
  1556. else:
  1557. return self.getTypedRuleContext(AutolevParser.Inputs2Context,i)
  1558. def getRuleIndex(self):
  1559. return AutolevParser.RULE_inputs
  1560. def enterRule(self, listener):
  1561. if hasattr(listener, "enterInputs"):
  1562. listener.enterInputs(self)
  1563. def exitRule(self, listener):
  1564. if hasattr(listener, "exitInputs"):
  1565. listener.exitInputs(self)
  1566. def inputs(self):
  1567. localctx = AutolevParser.InputsContext(self, self._ctx, self.state)
  1568. self.enterRule(localctx, 38, self.RULE_inputs)
  1569. self._la = 0 # Token type
  1570. try:
  1571. self.enterOuterAlt(localctx, 1)
  1572. self.state = 290
  1573. self.match(AutolevParser.Input)
  1574. self.state = 291
  1575. self.inputs2()
  1576. self.state = 296
  1577. self._errHandler.sync(self)
  1578. _la = self._input.LA(1)
  1579. while _la==AutolevParser.T__9:
  1580. self.state = 292
  1581. self.match(AutolevParser.T__9)
  1582. self.state = 293
  1583. self.inputs2()
  1584. self.state = 298
  1585. self._errHandler.sync(self)
  1586. _la = self._input.LA(1)
  1587. except RecognitionException as re:
  1588. localctx.exception = re
  1589. self._errHandler.reportError(self, re)
  1590. self._errHandler.recover(self, re)
  1591. finally:
  1592. self.exitRule()
  1593. return localctx
  1594. class Id_diffContext(ParserRuleContext):
  1595. def __init__(self, parser, parent=None, invokingState=-1):
  1596. super(AutolevParser.Id_diffContext, self).__init__(parent, invokingState)
  1597. self.parser = parser
  1598. def ID(self):
  1599. return self.getToken(AutolevParser.ID, 0)
  1600. def diff(self):
  1601. return self.getTypedRuleContext(AutolevParser.DiffContext,0)
  1602. def getRuleIndex(self):
  1603. return AutolevParser.RULE_id_diff
  1604. def enterRule(self, listener):
  1605. if hasattr(listener, "enterId_diff"):
  1606. listener.enterId_diff(self)
  1607. def exitRule(self, listener):
  1608. if hasattr(listener, "exitId_diff"):
  1609. listener.exitId_diff(self)
  1610. def id_diff(self):
  1611. localctx = AutolevParser.Id_diffContext(self, self._ctx, self.state)
  1612. self.enterRule(localctx, 40, self.RULE_id_diff)
  1613. self._la = 0 # Token type
  1614. try:
  1615. self.enterOuterAlt(localctx, 1)
  1616. self.state = 299
  1617. self.match(AutolevParser.ID)
  1618. self.state = 301
  1619. self._errHandler.sync(self)
  1620. _la = self._input.LA(1)
  1621. if _la==AutolevParser.T__10:
  1622. self.state = 300
  1623. self.diff()
  1624. except RecognitionException as re:
  1625. localctx.exception = re
  1626. self._errHandler.reportError(self, re)
  1627. self._errHandler.recover(self, re)
  1628. finally:
  1629. self.exitRule()
  1630. return localctx
  1631. class Inputs2Context(ParserRuleContext):
  1632. def __init__(self, parser, parent=None, invokingState=-1):
  1633. super(AutolevParser.Inputs2Context, self).__init__(parent, invokingState)
  1634. self.parser = parser
  1635. def id_diff(self):
  1636. return self.getTypedRuleContext(AutolevParser.Id_diffContext,0)
  1637. def expr(self, i=None):
  1638. if i is None:
  1639. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  1640. else:
  1641. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  1642. def getRuleIndex(self):
  1643. return AutolevParser.RULE_inputs2
  1644. def enterRule(self, listener):
  1645. if hasattr(listener, "enterInputs2"):
  1646. listener.enterInputs2(self)
  1647. def exitRule(self, listener):
  1648. if hasattr(listener, "exitInputs2"):
  1649. listener.exitInputs2(self)
  1650. def inputs2(self):
  1651. localctx = AutolevParser.Inputs2Context(self, self._ctx, self.state)
  1652. self.enterRule(localctx, 42, self.RULE_inputs2)
  1653. try:
  1654. self.enterOuterAlt(localctx, 1)
  1655. self.state = 303
  1656. self.id_diff()
  1657. self.state = 304
  1658. self.match(AutolevParser.T__2)
  1659. self.state = 305
  1660. self.expr(0)
  1661. self.state = 307
  1662. self._errHandler.sync(self)
  1663. la_ = self._interp.adaptivePredict(self._input,34,self._ctx)
  1664. if la_ == 1:
  1665. self.state = 306
  1666. self.expr(0)
  1667. except RecognitionException as re:
  1668. localctx.exception = re
  1669. self._errHandler.reportError(self, re)
  1670. self._errHandler.recover(self, re)
  1671. finally:
  1672. self.exitRule()
  1673. return localctx
  1674. class OutputsContext(ParserRuleContext):
  1675. def __init__(self, parser, parent=None, invokingState=-1):
  1676. super(AutolevParser.OutputsContext, self).__init__(parent, invokingState)
  1677. self.parser = parser
  1678. def Output(self):
  1679. return self.getToken(AutolevParser.Output, 0)
  1680. def outputs2(self, i=None):
  1681. if i is None:
  1682. return self.getTypedRuleContexts(AutolevParser.Outputs2Context)
  1683. else:
  1684. return self.getTypedRuleContext(AutolevParser.Outputs2Context,i)
  1685. def getRuleIndex(self):
  1686. return AutolevParser.RULE_outputs
  1687. def enterRule(self, listener):
  1688. if hasattr(listener, "enterOutputs"):
  1689. listener.enterOutputs(self)
  1690. def exitRule(self, listener):
  1691. if hasattr(listener, "exitOutputs"):
  1692. listener.exitOutputs(self)
  1693. def outputs(self):
  1694. localctx = AutolevParser.OutputsContext(self, self._ctx, self.state)
  1695. self.enterRule(localctx, 44, self.RULE_outputs)
  1696. self._la = 0 # Token type
  1697. try:
  1698. self.enterOuterAlt(localctx, 1)
  1699. self.state = 309
  1700. self.match(AutolevParser.Output)
  1701. self.state = 310
  1702. self.outputs2()
  1703. self.state = 315
  1704. self._errHandler.sync(self)
  1705. _la = self._input.LA(1)
  1706. while _la==AutolevParser.T__9:
  1707. self.state = 311
  1708. self.match(AutolevParser.T__9)
  1709. self.state = 312
  1710. self.outputs2()
  1711. self.state = 317
  1712. self._errHandler.sync(self)
  1713. _la = self._input.LA(1)
  1714. except RecognitionException as re:
  1715. localctx.exception = re
  1716. self._errHandler.reportError(self, re)
  1717. self._errHandler.recover(self, re)
  1718. finally:
  1719. self.exitRule()
  1720. return localctx
  1721. class Outputs2Context(ParserRuleContext):
  1722. def __init__(self, parser, parent=None, invokingState=-1):
  1723. super(AutolevParser.Outputs2Context, self).__init__(parent, invokingState)
  1724. self.parser = parser
  1725. def expr(self, i=None):
  1726. if i is None:
  1727. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  1728. else:
  1729. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  1730. def getRuleIndex(self):
  1731. return AutolevParser.RULE_outputs2
  1732. def enterRule(self, listener):
  1733. if hasattr(listener, "enterOutputs2"):
  1734. listener.enterOutputs2(self)
  1735. def exitRule(self, listener):
  1736. if hasattr(listener, "exitOutputs2"):
  1737. listener.exitOutputs2(self)
  1738. def outputs2(self):
  1739. localctx = AutolevParser.Outputs2Context(self, self._ctx, self.state)
  1740. self.enterRule(localctx, 46, self.RULE_outputs2)
  1741. try:
  1742. self.enterOuterAlt(localctx, 1)
  1743. self.state = 318
  1744. self.expr(0)
  1745. self.state = 320
  1746. self._errHandler.sync(self)
  1747. la_ = self._interp.adaptivePredict(self._input,36,self._ctx)
  1748. if la_ == 1:
  1749. self.state = 319
  1750. self.expr(0)
  1751. except RecognitionException as re:
  1752. localctx.exception = re
  1753. self._errHandler.reportError(self, re)
  1754. self._errHandler.recover(self, re)
  1755. finally:
  1756. self.exitRule()
  1757. return localctx
  1758. class CodegenContext(ParserRuleContext):
  1759. def __init__(self, parser, parent=None, invokingState=-1):
  1760. super(AutolevParser.CodegenContext, self).__init__(parent, invokingState)
  1761. self.parser = parser
  1762. def ID(self, i=None):
  1763. if i is None:
  1764. return self.getTokens(AutolevParser.ID)
  1765. else:
  1766. return self.getToken(AutolevParser.ID, i)
  1767. def functionCall(self):
  1768. return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0)
  1769. def matrixInOutput(self, i=None):
  1770. if i is None:
  1771. return self.getTypedRuleContexts(AutolevParser.MatrixInOutputContext)
  1772. else:
  1773. return self.getTypedRuleContext(AutolevParser.MatrixInOutputContext,i)
  1774. def getRuleIndex(self):
  1775. return AutolevParser.RULE_codegen
  1776. def enterRule(self, listener):
  1777. if hasattr(listener, "enterCodegen"):
  1778. listener.enterCodegen(self)
  1779. def exitRule(self, listener):
  1780. if hasattr(listener, "exitCodegen"):
  1781. listener.exitCodegen(self)
  1782. def codegen(self):
  1783. localctx = AutolevParser.CodegenContext(self, self._ctx, self.state)
  1784. self.enterRule(localctx, 48, self.RULE_codegen)
  1785. self._la = 0 # Token type
  1786. try:
  1787. self.enterOuterAlt(localctx, 1)
  1788. self.state = 322
  1789. self.match(AutolevParser.ID)
  1790. self.state = 323
  1791. self.functionCall()
  1792. self.state = 335
  1793. self._errHandler.sync(self)
  1794. _la = self._input.LA(1)
  1795. if _la==AutolevParser.T__0:
  1796. self.state = 324
  1797. self.match(AutolevParser.T__0)
  1798. self.state = 325
  1799. self.matrixInOutput()
  1800. self.state = 330
  1801. self._errHandler.sync(self)
  1802. _la = self._input.LA(1)
  1803. while _la==AutolevParser.T__9:
  1804. self.state = 326
  1805. self.match(AutolevParser.T__9)
  1806. self.state = 327
  1807. self.matrixInOutput()
  1808. self.state = 332
  1809. self._errHandler.sync(self)
  1810. _la = self._input.LA(1)
  1811. self.state = 333
  1812. self.match(AutolevParser.T__1)
  1813. self.state = 337
  1814. self.match(AutolevParser.ID)
  1815. self.state = 338
  1816. self.match(AutolevParser.T__19)
  1817. self.state = 339
  1818. self.match(AutolevParser.ID)
  1819. except RecognitionException as re:
  1820. localctx.exception = re
  1821. self._errHandler.reportError(self, re)
  1822. self._errHandler.recover(self, re)
  1823. finally:
  1824. self.exitRule()
  1825. return localctx
  1826. class CommandsContext(ParserRuleContext):
  1827. def __init__(self, parser, parent=None, invokingState=-1):
  1828. super(AutolevParser.CommandsContext, self).__init__(parent, invokingState)
  1829. self.parser = parser
  1830. def Save(self):
  1831. return self.getToken(AutolevParser.Save, 0)
  1832. def ID(self, i=None):
  1833. if i is None:
  1834. return self.getTokens(AutolevParser.ID)
  1835. else:
  1836. return self.getToken(AutolevParser.ID, i)
  1837. def Encode(self):
  1838. return self.getToken(AutolevParser.Encode, 0)
  1839. def getRuleIndex(self):
  1840. return AutolevParser.RULE_commands
  1841. def enterRule(self, listener):
  1842. if hasattr(listener, "enterCommands"):
  1843. listener.enterCommands(self)
  1844. def exitRule(self, listener):
  1845. if hasattr(listener, "exitCommands"):
  1846. listener.exitCommands(self)
  1847. def commands(self):
  1848. localctx = AutolevParser.CommandsContext(self, self._ctx, self.state)
  1849. self.enterRule(localctx, 50, self.RULE_commands)
  1850. self._la = 0 # Token type
  1851. try:
  1852. self.state = 354
  1853. self._errHandler.sync(self)
  1854. token = self._input.LA(1)
  1855. if token in [AutolevParser.Save]:
  1856. self.enterOuterAlt(localctx, 1)
  1857. self.state = 341
  1858. self.match(AutolevParser.Save)
  1859. self.state = 342
  1860. self.match(AutolevParser.ID)
  1861. self.state = 343
  1862. self.match(AutolevParser.T__19)
  1863. self.state = 344
  1864. self.match(AutolevParser.ID)
  1865. pass
  1866. elif token in [AutolevParser.Encode]:
  1867. self.enterOuterAlt(localctx, 2)
  1868. self.state = 345
  1869. self.match(AutolevParser.Encode)
  1870. self.state = 346
  1871. self.match(AutolevParser.ID)
  1872. self.state = 351
  1873. self._errHandler.sync(self)
  1874. _la = self._input.LA(1)
  1875. while _la==AutolevParser.T__9:
  1876. self.state = 347
  1877. self.match(AutolevParser.T__9)
  1878. self.state = 348
  1879. self.match(AutolevParser.ID)
  1880. self.state = 353
  1881. self._errHandler.sync(self)
  1882. _la = self._input.LA(1)
  1883. pass
  1884. else:
  1885. raise NoViableAltException(self)
  1886. except RecognitionException as re:
  1887. localctx.exception = re
  1888. self._errHandler.reportError(self, re)
  1889. self._errHandler.recover(self, re)
  1890. finally:
  1891. self.exitRule()
  1892. return localctx
  1893. class VecContext(ParserRuleContext):
  1894. def __init__(self, parser, parent=None, invokingState=-1):
  1895. super(AutolevParser.VecContext, self).__init__(parent, invokingState)
  1896. self.parser = parser
  1897. def ID(self):
  1898. return self.getToken(AutolevParser.ID, 0)
  1899. def getRuleIndex(self):
  1900. return AutolevParser.RULE_vec
  1901. def enterRule(self, listener):
  1902. if hasattr(listener, "enterVec"):
  1903. listener.enterVec(self)
  1904. def exitRule(self, listener):
  1905. if hasattr(listener, "exitVec"):
  1906. listener.exitVec(self)
  1907. def vec(self):
  1908. localctx = AutolevParser.VecContext(self, self._ctx, self.state)
  1909. self.enterRule(localctx, 52, self.RULE_vec)
  1910. try:
  1911. self.state = 364
  1912. self._errHandler.sync(self)
  1913. token = self._input.LA(1)
  1914. if token in [AutolevParser.ID]:
  1915. self.enterOuterAlt(localctx, 1)
  1916. self.state = 356
  1917. self.match(AutolevParser.ID)
  1918. self.state = 358
  1919. self._errHandler.sync(self)
  1920. _alt = 1
  1921. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  1922. if _alt == 1:
  1923. self.state = 357
  1924. self.match(AutolevParser.T__20)
  1925. else:
  1926. raise NoViableAltException(self)
  1927. self.state = 360
  1928. self._errHandler.sync(self)
  1929. _alt = self._interp.adaptivePredict(self._input,41,self._ctx)
  1930. pass
  1931. elif token in [AutolevParser.T__21]:
  1932. self.enterOuterAlt(localctx, 2)
  1933. self.state = 362
  1934. self.match(AutolevParser.T__21)
  1935. pass
  1936. elif token in [AutolevParser.T__22]:
  1937. self.enterOuterAlt(localctx, 3)
  1938. self.state = 363
  1939. self.match(AutolevParser.T__22)
  1940. pass
  1941. else:
  1942. raise NoViableAltException(self)
  1943. except RecognitionException as re:
  1944. localctx.exception = re
  1945. self._errHandler.reportError(self, re)
  1946. self._errHandler.recover(self, re)
  1947. finally:
  1948. self.exitRule()
  1949. return localctx
  1950. class ExprContext(ParserRuleContext):
  1951. def __init__(self, parser, parent=None, invokingState=-1):
  1952. super(AutolevParser.ExprContext, self).__init__(parent, invokingState)
  1953. self.parser = parser
  1954. def getRuleIndex(self):
  1955. return AutolevParser.RULE_expr
  1956. def copyFrom(self, ctx):
  1957. super(AutolevParser.ExprContext, self).copyFrom(ctx)
  1958. class ParensContext(ExprContext):
  1959. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  1960. super(AutolevParser.ParensContext, self).__init__(parser)
  1961. self.copyFrom(ctx)
  1962. def expr(self):
  1963. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  1964. def enterRule(self, listener):
  1965. if hasattr(listener, "enterParens"):
  1966. listener.enterParens(self)
  1967. def exitRule(self, listener):
  1968. if hasattr(listener, "exitParens"):
  1969. listener.exitParens(self)
  1970. class VectorOrDyadicContext(ExprContext):
  1971. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  1972. super(AutolevParser.VectorOrDyadicContext, self).__init__(parser)
  1973. self.copyFrom(ctx)
  1974. def vec(self):
  1975. return self.getTypedRuleContext(AutolevParser.VecContext,0)
  1976. def enterRule(self, listener):
  1977. if hasattr(listener, "enterVectorOrDyadic"):
  1978. listener.enterVectorOrDyadic(self)
  1979. def exitRule(self, listener):
  1980. if hasattr(listener, "exitVectorOrDyadic"):
  1981. listener.exitVectorOrDyadic(self)
  1982. class ExponentContext(ExprContext):
  1983. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  1984. super(AutolevParser.ExponentContext, self).__init__(parser)
  1985. self.copyFrom(ctx)
  1986. def expr(self, i=None):
  1987. if i is None:
  1988. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  1989. else:
  1990. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  1991. def enterRule(self, listener):
  1992. if hasattr(listener, "enterExponent"):
  1993. listener.enterExponent(self)
  1994. def exitRule(self, listener):
  1995. if hasattr(listener, "exitExponent"):
  1996. listener.exitExponent(self)
  1997. class MulDivContext(ExprContext):
  1998. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  1999. super(AutolevParser.MulDivContext, self).__init__(parser)
  2000. self.copyFrom(ctx)
  2001. def expr(self, i=None):
  2002. if i is None:
  2003. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  2004. else:
  2005. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  2006. def enterRule(self, listener):
  2007. if hasattr(listener, "enterMulDiv"):
  2008. listener.enterMulDiv(self)
  2009. def exitRule(self, listener):
  2010. if hasattr(listener, "exitMulDiv"):
  2011. listener.exitMulDiv(self)
  2012. class AddSubContext(ExprContext):
  2013. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2014. super(AutolevParser.AddSubContext, self).__init__(parser)
  2015. self.copyFrom(ctx)
  2016. def expr(self, i=None):
  2017. if i is None:
  2018. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  2019. else:
  2020. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  2021. def enterRule(self, listener):
  2022. if hasattr(listener, "enterAddSub"):
  2023. listener.enterAddSub(self)
  2024. def exitRule(self, listener):
  2025. if hasattr(listener, "exitAddSub"):
  2026. listener.exitAddSub(self)
  2027. class FloatContext(ExprContext):
  2028. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2029. super(AutolevParser.FloatContext, self).__init__(parser)
  2030. self.copyFrom(ctx)
  2031. def FLOAT(self):
  2032. return self.getToken(AutolevParser.FLOAT, 0)
  2033. def enterRule(self, listener):
  2034. if hasattr(listener, "enterFloat"):
  2035. listener.enterFloat(self)
  2036. def exitRule(self, listener):
  2037. if hasattr(listener, "exitFloat"):
  2038. listener.exitFloat(self)
  2039. class IntContext(ExprContext):
  2040. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2041. super(AutolevParser.IntContext, self).__init__(parser)
  2042. self.copyFrom(ctx)
  2043. def INT(self):
  2044. return self.getToken(AutolevParser.INT, 0)
  2045. def enterRule(self, listener):
  2046. if hasattr(listener, "enterInt"):
  2047. listener.enterInt(self)
  2048. def exitRule(self, listener):
  2049. if hasattr(listener, "exitInt"):
  2050. listener.exitInt(self)
  2051. class IdEqualsExprContext(ExprContext):
  2052. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2053. super(AutolevParser.IdEqualsExprContext, self).__init__(parser)
  2054. self.copyFrom(ctx)
  2055. def expr(self, i=None):
  2056. if i is None:
  2057. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  2058. else:
  2059. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  2060. def enterRule(self, listener):
  2061. if hasattr(listener, "enterIdEqualsExpr"):
  2062. listener.enterIdEqualsExpr(self)
  2063. def exitRule(self, listener):
  2064. if hasattr(listener, "exitIdEqualsExpr"):
  2065. listener.exitIdEqualsExpr(self)
  2066. class NegativeOneContext(ExprContext):
  2067. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2068. super(AutolevParser.NegativeOneContext, self).__init__(parser)
  2069. self.copyFrom(ctx)
  2070. def expr(self):
  2071. return self.getTypedRuleContext(AutolevParser.ExprContext,0)
  2072. def enterRule(self, listener):
  2073. if hasattr(listener, "enterNegativeOne"):
  2074. listener.enterNegativeOne(self)
  2075. def exitRule(self, listener):
  2076. if hasattr(listener, "exitNegativeOne"):
  2077. listener.exitNegativeOne(self)
  2078. class FunctionContext(ExprContext):
  2079. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2080. super(AutolevParser.FunctionContext, self).__init__(parser)
  2081. self.copyFrom(ctx)
  2082. def functionCall(self):
  2083. return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0)
  2084. def enterRule(self, listener):
  2085. if hasattr(listener, "enterFunction"):
  2086. listener.enterFunction(self)
  2087. def exitRule(self, listener):
  2088. if hasattr(listener, "exitFunction"):
  2089. listener.exitFunction(self)
  2090. class RangessContext(ExprContext):
  2091. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2092. super(AutolevParser.RangessContext, self).__init__(parser)
  2093. self.copyFrom(ctx)
  2094. def ranges(self):
  2095. return self.getTypedRuleContext(AutolevParser.RangesContext,0)
  2096. def ID(self):
  2097. return self.getToken(AutolevParser.ID, 0)
  2098. def enterRule(self, listener):
  2099. if hasattr(listener, "enterRangess"):
  2100. listener.enterRangess(self)
  2101. def exitRule(self, listener):
  2102. if hasattr(listener, "exitRangess"):
  2103. listener.exitRangess(self)
  2104. class ColonContext(ExprContext):
  2105. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2106. super(AutolevParser.ColonContext, self).__init__(parser)
  2107. self.copyFrom(ctx)
  2108. def expr(self, i=None):
  2109. if i is None:
  2110. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  2111. else:
  2112. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  2113. def enterRule(self, listener):
  2114. if hasattr(listener, "enterColon"):
  2115. listener.enterColon(self)
  2116. def exitRule(self, listener):
  2117. if hasattr(listener, "exitColon"):
  2118. listener.exitColon(self)
  2119. class IdContext(ExprContext):
  2120. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2121. super(AutolevParser.IdContext, self).__init__(parser)
  2122. self.copyFrom(ctx)
  2123. def ID(self):
  2124. return self.getToken(AutolevParser.ID, 0)
  2125. def enterRule(self, listener):
  2126. if hasattr(listener, "enterId"):
  2127. listener.enterId(self)
  2128. def exitRule(self, listener):
  2129. if hasattr(listener, "exitId"):
  2130. listener.exitId(self)
  2131. class ExpContext(ExprContext):
  2132. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2133. super(AutolevParser.ExpContext, self).__init__(parser)
  2134. self.copyFrom(ctx)
  2135. def EXP(self):
  2136. return self.getToken(AutolevParser.EXP, 0)
  2137. def enterRule(self, listener):
  2138. if hasattr(listener, "enterExp"):
  2139. listener.enterExp(self)
  2140. def exitRule(self, listener):
  2141. if hasattr(listener, "exitExp"):
  2142. listener.exitExp(self)
  2143. class MatricesContext(ExprContext):
  2144. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2145. super(AutolevParser.MatricesContext, self).__init__(parser)
  2146. self.copyFrom(ctx)
  2147. def matrix(self):
  2148. return self.getTypedRuleContext(AutolevParser.MatrixContext,0)
  2149. def enterRule(self, listener):
  2150. if hasattr(listener, "enterMatrices"):
  2151. listener.enterMatrices(self)
  2152. def exitRule(self, listener):
  2153. if hasattr(listener, "exitMatrices"):
  2154. listener.exitMatrices(self)
  2155. class IndexingContext(ExprContext):
  2156. def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext)
  2157. super(AutolevParser.IndexingContext, self).__init__(parser)
  2158. self.copyFrom(ctx)
  2159. def ID(self):
  2160. return self.getToken(AutolevParser.ID, 0)
  2161. def expr(self, i=None):
  2162. if i is None:
  2163. return self.getTypedRuleContexts(AutolevParser.ExprContext)
  2164. else:
  2165. return self.getTypedRuleContext(AutolevParser.ExprContext,i)
  2166. def enterRule(self, listener):
  2167. if hasattr(listener, "enterIndexing"):
  2168. listener.enterIndexing(self)
  2169. def exitRule(self, listener):
  2170. if hasattr(listener, "exitIndexing"):
  2171. listener.exitIndexing(self)
  2172. def expr(self, _p=0):
  2173. _parentctx = self._ctx
  2174. _parentState = self.state
  2175. localctx = AutolevParser.ExprContext(self, self._ctx, _parentState)
  2176. _prevctx = localctx
  2177. _startState = 54
  2178. self.enterRecursionRule(localctx, 54, self.RULE_expr, _p)
  2179. self._la = 0 # Token type
  2180. try:
  2181. self.enterOuterAlt(localctx, 1)
  2182. self.state = 408
  2183. self._errHandler.sync(self)
  2184. la_ = self._interp.adaptivePredict(self._input,47,self._ctx)
  2185. if la_ == 1:
  2186. localctx = AutolevParser.ExpContext(self, localctx)
  2187. self._ctx = localctx
  2188. _prevctx = localctx
  2189. self.state = 367
  2190. self.match(AutolevParser.EXP)
  2191. pass
  2192. elif la_ == 2:
  2193. localctx = AutolevParser.NegativeOneContext(self, localctx)
  2194. self._ctx = localctx
  2195. _prevctx = localctx
  2196. self.state = 368
  2197. self.match(AutolevParser.T__17)
  2198. self.state = 369
  2199. self.expr(12)
  2200. pass
  2201. elif la_ == 3:
  2202. localctx = AutolevParser.FloatContext(self, localctx)
  2203. self._ctx = localctx
  2204. _prevctx = localctx
  2205. self.state = 370
  2206. self.match(AutolevParser.FLOAT)
  2207. pass
  2208. elif la_ == 4:
  2209. localctx = AutolevParser.IntContext(self, localctx)
  2210. self._ctx = localctx
  2211. _prevctx = localctx
  2212. self.state = 371
  2213. self.match(AutolevParser.INT)
  2214. pass
  2215. elif la_ == 5:
  2216. localctx = AutolevParser.IdContext(self, localctx)
  2217. self._ctx = localctx
  2218. _prevctx = localctx
  2219. self.state = 372
  2220. self.match(AutolevParser.ID)
  2221. self.state = 376
  2222. self._errHandler.sync(self)
  2223. _alt = self._interp.adaptivePredict(self._input,43,self._ctx)
  2224. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  2225. if _alt==1:
  2226. self.state = 373
  2227. self.match(AutolevParser.T__10)
  2228. self.state = 378
  2229. self._errHandler.sync(self)
  2230. _alt = self._interp.adaptivePredict(self._input,43,self._ctx)
  2231. pass
  2232. elif la_ == 6:
  2233. localctx = AutolevParser.VectorOrDyadicContext(self, localctx)
  2234. self._ctx = localctx
  2235. _prevctx = localctx
  2236. self.state = 379
  2237. self.vec()
  2238. pass
  2239. elif la_ == 7:
  2240. localctx = AutolevParser.IndexingContext(self, localctx)
  2241. self._ctx = localctx
  2242. _prevctx = localctx
  2243. self.state = 380
  2244. self.match(AutolevParser.ID)
  2245. self.state = 381
  2246. self.match(AutolevParser.T__0)
  2247. self.state = 382
  2248. self.expr(0)
  2249. self.state = 387
  2250. self._errHandler.sync(self)
  2251. _la = self._input.LA(1)
  2252. while _la==AutolevParser.T__9:
  2253. self.state = 383
  2254. self.match(AutolevParser.T__9)
  2255. self.state = 384
  2256. self.expr(0)
  2257. self.state = 389
  2258. self._errHandler.sync(self)
  2259. _la = self._input.LA(1)
  2260. self.state = 390
  2261. self.match(AutolevParser.T__1)
  2262. pass
  2263. elif la_ == 8:
  2264. localctx = AutolevParser.FunctionContext(self, localctx)
  2265. self._ctx = localctx
  2266. _prevctx = localctx
  2267. self.state = 392
  2268. self.functionCall()
  2269. pass
  2270. elif la_ == 9:
  2271. localctx = AutolevParser.MatricesContext(self, localctx)
  2272. self._ctx = localctx
  2273. _prevctx = localctx
  2274. self.state = 393
  2275. self.matrix()
  2276. pass
  2277. elif la_ == 10:
  2278. localctx = AutolevParser.ParensContext(self, localctx)
  2279. self._ctx = localctx
  2280. _prevctx = localctx
  2281. self.state = 394
  2282. self.match(AutolevParser.T__11)
  2283. self.state = 395
  2284. self.expr(0)
  2285. self.state = 396
  2286. self.match(AutolevParser.T__12)
  2287. pass
  2288. elif la_ == 11:
  2289. localctx = AutolevParser.RangessContext(self, localctx)
  2290. self._ctx = localctx
  2291. _prevctx = localctx
  2292. self.state = 399
  2293. self._errHandler.sync(self)
  2294. _la = self._input.LA(1)
  2295. if _la==AutolevParser.ID:
  2296. self.state = 398
  2297. self.match(AutolevParser.ID)
  2298. self.state = 401
  2299. self.ranges()
  2300. self.state = 405
  2301. self._errHandler.sync(self)
  2302. _alt = self._interp.adaptivePredict(self._input,46,self._ctx)
  2303. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  2304. if _alt==1:
  2305. self.state = 402
  2306. self.match(AutolevParser.T__10)
  2307. self.state = 407
  2308. self._errHandler.sync(self)
  2309. _alt = self._interp.adaptivePredict(self._input,46,self._ctx)
  2310. pass
  2311. self._ctx.stop = self._input.LT(-1)
  2312. self.state = 427
  2313. self._errHandler.sync(self)
  2314. _alt = self._interp.adaptivePredict(self._input,49,self._ctx)
  2315. while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
  2316. if _alt==1:
  2317. if self._parseListeners is not None:
  2318. self.triggerExitRuleEvent()
  2319. _prevctx = localctx
  2320. self.state = 425
  2321. self._errHandler.sync(self)
  2322. la_ = self._interp.adaptivePredict(self._input,48,self._ctx)
  2323. if la_ == 1:
  2324. localctx = AutolevParser.ExponentContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
  2325. self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
  2326. self.state = 410
  2327. if not self.precpred(self._ctx, 16):
  2328. from antlr4.error.Errors import FailedPredicateException
  2329. raise FailedPredicateException(self, "self.precpred(self._ctx, 16)")
  2330. self.state = 411
  2331. self.match(AutolevParser.T__23)
  2332. self.state = 412
  2333. self.expr(17)
  2334. pass
  2335. elif la_ == 2:
  2336. localctx = AutolevParser.MulDivContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
  2337. self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
  2338. self.state = 413
  2339. if not self.precpred(self._ctx, 15):
  2340. from antlr4.error.Errors import FailedPredicateException
  2341. raise FailedPredicateException(self, "self.precpred(self._ctx, 15)")
  2342. self.state = 414
  2343. _la = self._input.LA(1)
  2344. if not(_la==AutolevParser.T__24 or _la==AutolevParser.T__25):
  2345. self._errHandler.recoverInline(self)
  2346. else:
  2347. self._errHandler.reportMatch(self)
  2348. self.consume()
  2349. self.state = 415
  2350. self.expr(16)
  2351. pass
  2352. elif la_ == 3:
  2353. localctx = AutolevParser.AddSubContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
  2354. self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
  2355. self.state = 416
  2356. if not self.precpred(self._ctx, 14):
  2357. from antlr4.error.Errors import FailedPredicateException
  2358. raise FailedPredicateException(self, "self.precpred(self._ctx, 14)")
  2359. self.state = 417
  2360. _la = self._input.LA(1)
  2361. if not(_la==AutolevParser.T__16 or _la==AutolevParser.T__17):
  2362. self._errHandler.recoverInline(self)
  2363. else:
  2364. self._errHandler.reportMatch(self)
  2365. self.consume()
  2366. self.state = 418
  2367. self.expr(15)
  2368. pass
  2369. elif la_ == 4:
  2370. localctx = AutolevParser.IdEqualsExprContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
  2371. self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
  2372. self.state = 419
  2373. if not self.precpred(self._ctx, 3):
  2374. from antlr4.error.Errors import FailedPredicateException
  2375. raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
  2376. self.state = 420
  2377. self.match(AutolevParser.T__2)
  2378. self.state = 421
  2379. self.expr(4)
  2380. pass
  2381. elif la_ == 5:
  2382. localctx = AutolevParser.ColonContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState))
  2383. self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
  2384. self.state = 422
  2385. if not self.precpred(self._ctx, 2):
  2386. from antlr4.error.Errors import FailedPredicateException
  2387. raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
  2388. self.state = 423
  2389. self.match(AutolevParser.T__15)
  2390. self.state = 424
  2391. self.expr(3)
  2392. pass
  2393. self.state = 429
  2394. self._errHandler.sync(self)
  2395. _alt = self._interp.adaptivePredict(self._input,49,self._ctx)
  2396. except RecognitionException as re:
  2397. localctx.exception = re
  2398. self._errHandler.reportError(self, re)
  2399. self._errHandler.recover(self, re)
  2400. finally:
  2401. self.unrollRecursionContexts(_parentctx)
  2402. return localctx
  2403. def sempred(self, localctx, ruleIndex, predIndex):
  2404. if self._predicates == None:
  2405. self._predicates = dict()
  2406. self._predicates[27] = self.expr_sempred
  2407. pred = self._predicates.get(ruleIndex, None)
  2408. if pred is None:
  2409. raise Exception("No predicate with index:" + str(ruleIndex))
  2410. else:
  2411. return pred(localctx, predIndex)
  2412. def expr_sempred(self, localctx, predIndex):
  2413. if predIndex == 0:
  2414. return self.precpred(self._ctx, 16)
  2415. if predIndex == 1:
  2416. return self.precpred(self._ctx, 15)
  2417. if predIndex == 2:
  2418. return self.precpred(self._ctx, 14)
  2419. if predIndex == 3:
  2420. return self.precpred(self._ctx, 3)
  2421. if predIndex == 4:
  2422. return self.precpred(self._ctx, 2)