# *** GENERATED BY antlr4, DO NOT EDIT BY HAND *** # # Generated from Autolev.g4 by ANTLR 4.7.1 # # Generated with antlr4 # antlr4 is licensed under the BSD-3-Clause License # https://github.com/antlr/antlr4/blob/master/LICENSE.txt from __future__ import print_function from antlr4 import * from io import StringIO import sys def serializedATN(): with StringIO() as buf: buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3") 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") 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") buf.write(u"\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22") buf.write(u"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4") buf.write(u"\30\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35") 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") 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") 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") 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") 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") 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") 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") buf.write(u"\7\t\u008c\n\t\f\t\16\t\u008f\13\t\3\n\3\n\3\n\3\n\3") 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") buf.write(u"\n\3\n\3\n\7\n\u00a2\n\n\f\n\16\n\u00a5\13\n\5\n\u00a7") buf.write(u"\n\n\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u00af\n\13\3") buf.write(u"\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\7\13\u00b9\n\13") buf.write(u"\f\13\16\13\u00bc\13\13\3\13\5\13\u00bf\n\13\3\13\3\13") buf.write(u"\3\13\5\13\u00c4\n\13\3\13\5\13\u00c7\n\13\3\13\7\13") buf.write(u"\u00ca\n\13\f\13\16\13\u00cd\13\13\3\13\3\13\5\13\u00d1") 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") buf.write(u"\f\16\f\u00de\13\f\3\f\3\f\3\r\3\r\3\r\3\r\7\r\u00e6") buf.write(u"\n\r\f\r\16\r\u00e9\13\r\3\16\3\16\3\16\3\16\3\17\3\17") buf.write(u"\3\17\3\17\3\17\5\17\u00f4\n\17\3\17\3\17\6\17\u00f8") buf.write(u"\n\17\r\17\16\17\u00f9\3\20\3\20\3\20\3\20\7\20\u0100") buf.write(u"\n\20\f\20\16\20\u0103\13\20\3\20\3\20\3\21\3\21\3\21") buf.write(u"\3\21\5\21\u010b\n\21\3\21\3\21\5\21\u010f\n\21\3\22") buf.write(u"\3\22\3\22\3\22\3\22\5\22\u0116\n\22\3\23\3\23\5\23\u011a") buf.write(u"\n\23\3\24\3\24\3\24\3\24\7\24\u0120\n\24\f\24\16\24") buf.write(u"\u0123\13\24\3\25\3\25\3\25\3\25\7\25\u0129\n\25\f\25") buf.write(u"\16\25\u012c\13\25\3\26\3\26\5\26\u0130\n\26\3\27\3\27") buf.write(u"\3\27\3\27\5\27\u0136\n\27\3\30\3\30\3\30\3\30\7\30\u013c") buf.write(u"\n\30\f\30\16\30\u013f\13\30\3\31\3\31\5\31\u0143\n\31") buf.write(u"\3\32\3\32\3\32\3\32\3\32\3\32\7\32\u014b\n\32\f\32\16") buf.write(u"\32\u014e\13\32\3\32\3\32\5\32\u0152\n\32\3\32\3\32\3") buf.write(u"\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\7\33") buf.write(u"\u0160\n\33\f\33\16\33\u0163\13\33\5\33\u0165\n\33\3") buf.write(u"\34\3\34\6\34\u0169\n\34\r\34\16\34\u016a\3\34\3\34\5") buf.write(u"\34\u016f\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35") buf.write(u"\7\35\u0179\n\35\f\35\16\35\u017c\13\35\3\35\3\35\3\35") buf.write(u"\3\35\3\35\3\35\7\35\u0184\n\35\f\35\16\35\u0187\13\35") buf.write(u"\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u0192") buf.write(u"\n\35\3\35\3\35\7\35\u0196\n\35\f\35\16\35\u0199\13\35") buf.write(u"\5\35\u019b\n\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3") buf.write(u"\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\7\35\u01ac\n\35") buf.write(u"\f\35\16\35\u01af\13\35\3\35\2\38\36\2\4\6\b\n\f\16\20") buf.write(u"\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668\2\t\3\2\5") buf.write(u"\13\3\2\35\36\3\2\23\24\4\2\f\f\25\25\3\2./\4\2.\60\62") buf.write(u"\62\3\2\33\34\2\u01e5\2;\3\2\2\2\4F\3\2\2\2\6Z\3\2\2") 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") buf.write(u"\20\u0087\3\2\2\2\22\u00a6\3\2\2\2\24\u00a8\3\2\2\2\26") buf.write(u"\u00d2\3\2\2\2\30\u00e1\3\2\2\2\32\u00ea\3\2\2\2\34\u00ee") buf.write(u"\3\2\2\2\36\u00fb\3\2\2\2 \u010e\3\2\2\2\"\u0115\3\2") buf.write(u"\2\2$\u0117\3\2\2\2&\u011b\3\2\2\2(\u0124\3\2\2\2*\u012d") buf.write(u"\3\2\2\2,\u0131\3\2\2\2.\u0137\3\2\2\2\60\u0140\3\2\2") buf.write(u"\2\62\u0144\3\2\2\2\64\u0164\3\2\2\2\66\u016e\3\2\2\2") buf.write(u"8\u019a\3\2\2\2:<\5\4\3\2;:\3\2\2\2<=\3\2\2\2=;\3\2\2") 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") buf.write(u"\2BG\5\30\r\2CG\5\34\17\2DG\5\6\4\2EG\5$\23\2F?\3\2\2") buf.write(u"\2F@\3\2\2\2FA\3\2\2\2FB\3\2\2\2FC\3\2\2\2FD\3\2\2\2") buf.write(u"FE\3\2\2\2G\5\3\2\2\2HI\5\66\34\2IJ\5\b\5\2JK\58\35\2") buf.write(u"K[\3\2\2\2LM\7\62\2\2MN\7\3\2\2NO\5\n\6\2OP\7\4\2\2P") buf.write(u"Q\5\b\5\2QR\58\35\2R[\3\2\2\2SU\7\62\2\2TV\5\f\7\2UT") buf.write(u"\3\2\2\2UV\3\2\2\2VW\3\2\2\2WX\5\b\5\2XY\58\35\2Y[\3") buf.write(u"\2\2\2ZH\3\2\2\2ZL\3\2\2\2ZS\3\2\2\2[\7\3\2\2\2\\]\t") 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") buf.write(u"\2\2be\3\2\2\2ca\3\2\2\2cd\3\2\2\2d\13\3\2\2\2ec\3\2") buf.write(u"\2\2fh\7\r\2\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2ij\3\2\2") buf.write(u"\2j\r\3\2\2\2kl\7\62\2\2lu\7\16\2\2mr\58\35\2no\7\f\2") buf.write(u"\2oq\58\35\2pn\3\2\2\2qt\3\2\2\2rp\3\2\2\2rs\3\2\2\2") 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") buf.write(u"\7\17\2\2xy\t\3\2\2y\u0082\7\16\2\2z\177\7\62\2\2{|\7") buf.write(u"\f\2\2|~\7\62\2\2}{\3\2\2\2~\u0081\3\2\2\2\177}\3\2\2") buf.write(u"\2\177\u0080\3\2\2\2\u0080\u0083\3\2\2\2\u0081\177\3") buf.write(u"\2\2\2\u0082z\3\2\2\2\u0082\u0083\3\2\2\2\u0083\u0084") buf.write(u"\3\2\2\2\u0084\u0086\7\17\2\2\u0085k\3\2\2\2\u0085x\3") buf.write(u"\2\2\2\u0086\17\3\2\2\2\u0087\u0088\5\22\n\2\u0088\u008d") buf.write(u"\5\24\13\2\u0089\u008a\7\f\2\2\u008a\u008c\5\24\13\2") buf.write(u"\u008b\u0089\3\2\2\2\u008c\u008f\3\2\2\2\u008d\u008b") buf.write(u"\3\2\2\2\u008d\u008e\3\2\2\2\u008e\21\3\2\2\2\u008f\u008d") buf.write(u"\3\2\2\2\u0090\u00a7\7$\2\2\u0091\u00a7\7%\2\2\u0092") buf.write(u"\u00a7\7&\2\2\u0093\u00a7\7\'\2\2\u0094\u00a7\7(\2\2") buf.write(u"\u0095\u00a7\7)\2\2\u0096\u00a7\7*\2\2\u0097\u00a7\7") buf.write(u"+\2\2\u0098\u009c\7,\2\2\u0099\u009b\7\r\2\2\u009a\u0099") buf.write(u"\3\2\2\2\u009b\u009e\3\2\2\2\u009c\u009a\3\2\2\2\u009c") buf.write(u"\u009d\3\2\2\2\u009d\u00a7\3\2\2\2\u009e\u009c\3\2\2") buf.write(u"\2\u009f\u00a3\7-\2\2\u00a0\u00a2\7\r\2\2\u00a1\u00a0") buf.write(u"\3\2\2\2\u00a2\u00a5\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a3") buf.write(u"\u00a4\3\2\2\2\u00a4\u00a7\3\2\2\2\u00a5\u00a3\3\2\2") buf.write(u"\2\u00a6\u0090\3\2\2\2\u00a6\u0091\3\2\2\2\u00a6\u0092") buf.write(u"\3\2\2\2\u00a6\u0093\3\2\2\2\u00a6\u0094\3\2\2\2\u00a6") buf.write(u"\u0095\3\2\2\2\u00a6\u0096\3\2\2\2\u00a6\u0097\3\2\2") buf.write(u"\2\u00a6\u0098\3\2\2\2\u00a6\u009f\3\2\2\2\u00a7\23\3") buf.write(u"\2\2\2\u00a8\u00ae\7\62\2\2\u00a9\u00aa\7\20\2\2\u00aa") buf.write(u"\u00ab\7.\2\2\u00ab\u00ac\7\f\2\2\u00ac\u00ad\7.\2\2") buf.write(u"\u00ad\u00af\7\21\2\2\u00ae\u00a9\3\2\2\2\u00ae\u00af") buf.write(u"\3\2\2\2\u00af\u00be\3\2\2\2\u00b0\u00b1\7\20\2\2\u00b1") buf.write(u"\u00b2\7.\2\2\u00b2\u00b3\7\22\2\2\u00b3\u00ba\7.\2\2") buf.write(u"\u00b4\u00b5\7\f\2\2\u00b5\u00b6\7.\2\2\u00b6\u00b7\7") buf.write(u"\22\2\2\u00b7\u00b9\7.\2\2\u00b8\u00b4\3\2\2\2\u00b9") buf.write(u"\u00bc\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2") buf.write(u"\2\u00bb\u00bd\3\2\2\2\u00bc\u00ba\3\2\2\2\u00bd\u00bf") buf.write(u"\7\21\2\2\u00be\u00b0\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf") buf.write(u"\u00c3\3\2\2\2\u00c0\u00c1\7\20\2\2\u00c1\u00c2\7.\2") buf.write(u"\2\u00c2\u00c4\7\21\2\2\u00c3\u00c0\3\2\2\2\u00c3\u00c4") buf.write(u"\3\2\2\2\u00c4\u00c6\3\2\2\2\u00c5\u00c7\t\4\2\2\u00c6") buf.write(u"\u00c5\3\2\2\2\u00c6\u00c7\3\2\2\2\u00c7\u00cb\3\2\2") buf.write(u"\2\u00c8\u00ca\7\r\2\2\u00c9\u00c8\3\2\2\2\u00ca\u00cd") buf.write(u"\3\2\2\2\u00cb\u00c9\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc") buf.write(u"\u00d0\3\2\2\2\u00cd\u00cb\3\2\2\2\u00ce\u00cf\7\5\2") buf.write(u"\2\u00cf\u00d1\58\35\2\u00d0\u00ce\3\2\2\2\u00d0\u00d1") buf.write(u"\3\2\2\2\u00d1\25\3\2\2\2\u00d2\u00d3\7\20\2\2\u00d3") buf.write(u"\u00d4\7.\2\2\u00d4\u00d5\7\22\2\2\u00d5\u00dc\7.\2\2") buf.write(u"\u00d6\u00d7\7\f\2\2\u00d7\u00d8\7.\2\2\u00d8\u00d9\7") buf.write(u"\22\2\2\u00d9\u00db\7.\2\2\u00da\u00d6\3\2\2\2\u00db") buf.write(u"\u00de\3\2\2\2\u00dc\u00da\3\2\2\2\u00dc\u00dd\3\2\2") buf.write(u"\2\u00dd\u00df\3\2\2\2\u00de\u00dc\3\2\2\2\u00df\u00e0") buf.write(u"\7\21\2\2\u00e0\27\3\2\2\2\u00e1\u00e2\7\35\2\2\u00e2") buf.write(u"\u00e7\5\32\16\2\u00e3\u00e4\7\f\2\2\u00e4\u00e6\5\32") buf.write(u"\16\2\u00e5\u00e3\3\2\2\2\u00e6\u00e9\3\2\2\2\u00e7\u00e5") buf.write(u"\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\31\3\2\2\2\u00e9\u00e7") buf.write(u"\3\2\2\2\u00ea\u00eb\7\62\2\2\u00eb\u00ec\7\5\2\2\u00ec") buf.write(u"\u00ed\58\35\2\u00ed\33\3\2\2\2\u00ee\u00ef\7\36\2\2") buf.write(u"\u00ef\u00f3\7\62\2\2\u00f0\u00f1\7\16\2\2\u00f1\u00f2") buf.write(u"\7\62\2\2\u00f2\u00f4\7\17\2\2\u00f3\u00f0\3\2\2\2\u00f3") buf.write(u"\u00f4\3\2\2\2\u00f4\u00f7\3\2\2\2\u00f5\u00f6\7\f\2") buf.write(u"\2\u00f6\u00f8\58\35\2\u00f7\u00f5\3\2\2\2\u00f8\u00f9") buf.write(u"\3\2\2\2\u00f9\u00f7\3\2\2\2\u00f9\u00fa\3\2\2\2\u00fa") buf.write(u"\35\3\2\2\2\u00fb\u00fc\7\3\2\2\u00fc\u0101\58\35\2\u00fd") buf.write(u"\u00fe\t\5\2\2\u00fe\u0100\58\35\2\u00ff\u00fd\3\2\2") buf.write(u"\2\u0100\u0103\3\2\2\2\u0101\u00ff\3\2\2\2\u0101\u0102") buf.write(u"\3\2\2\2\u0102\u0104\3\2\2\2\u0103\u0101\3\2\2\2\u0104") buf.write(u"\u0105\7\4\2\2\u0105\37\3\2\2\2\u0106\u0107\7\62\2\2") buf.write(u"\u0107\u0108\7\62\2\2\u0108\u010a\7\5\2\2\u0109\u010b") buf.write(u"\t\6\2\2\u010a\u0109\3\2\2\2\u010a\u010b\3\2\2\2\u010b") buf.write(u"\u010f\3\2\2\2\u010c\u010f\7/\2\2\u010d\u010f\7.\2\2") buf.write(u"\u010e\u0106\3\2\2\2\u010e\u010c\3\2\2\2\u010e\u010d") buf.write(u"\3\2\2\2\u010f!\3\2\2\2\u0110\u0116\5&\24\2\u0111\u0116") buf.write(u"\5(\25\2\u0112\u0116\5.\30\2\u0113\u0116\5\62\32\2\u0114") buf.write(u"\u0116\5\64\33\2\u0115\u0110\3\2\2\2\u0115\u0111\3\2") buf.write(u"\2\2\u0115\u0112\3\2\2\2\u0115\u0113\3\2\2\2\u0115\u0114") buf.write(u"\3\2\2\2\u0116#\3\2\2\2\u0117\u0119\7\62\2\2\u0118\u011a") buf.write(u"\t\7\2\2\u0119\u0118\3\2\2\2\u0119\u011a\3\2\2\2\u011a") buf.write(u"%\3\2\2\2\u011b\u011c\7\"\2\2\u011c\u0121\7\62\2\2\u011d") buf.write(u"\u011e\7\f\2\2\u011e\u0120\7\62\2\2\u011f\u011d\3\2\2") buf.write(u"\2\u0120\u0123\3\2\2\2\u0121\u011f\3\2\2\2\u0121\u0122") buf.write(u"\3\2\2\2\u0122\'\3\2\2\2\u0123\u0121\3\2\2\2\u0124\u0125") buf.write(u"\7\37\2\2\u0125\u012a\5,\27\2\u0126\u0127\7\f\2\2\u0127") buf.write(u"\u0129\5,\27\2\u0128\u0126\3\2\2\2\u0129\u012c\3\2\2") buf.write(u"\2\u012a\u0128\3\2\2\2\u012a\u012b\3\2\2\2\u012b)\3\2") buf.write(u"\2\2\u012c\u012a\3\2\2\2\u012d\u012f\7\62\2\2\u012e\u0130") buf.write(u"\5\f\7\2\u012f\u012e\3\2\2\2\u012f\u0130\3\2\2\2\u0130") buf.write(u"+\3\2\2\2\u0131\u0132\5*\26\2\u0132\u0133\7\5\2\2\u0133") buf.write(u"\u0135\58\35\2\u0134\u0136\58\35\2\u0135\u0134\3\2\2") buf.write(u"\2\u0135\u0136\3\2\2\2\u0136-\3\2\2\2\u0137\u0138\7 ") buf.write(u"\2\2\u0138\u013d\5\60\31\2\u0139\u013a\7\f\2\2\u013a") buf.write(u"\u013c\5\60\31\2\u013b\u0139\3\2\2\2\u013c\u013f\3\2") buf.write(u"\2\2\u013d\u013b\3\2\2\2\u013d\u013e\3\2\2\2\u013e/\3") buf.write(u"\2\2\2\u013f\u013d\3\2\2\2\u0140\u0142\58\35\2\u0141") buf.write(u"\u0143\58\35\2\u0142\u0141\3\2\2\2\u0142\u0143\3\2\2") buf.write(u"\2\u0143\61\3\2\2\2\u0144\u0145\7\62\2\2\u0145\u0151") buf.write(u"\5\16\b\2\u0146\u0147\7\3\2\2\u0147\u014c\5 \21\2\u0148") buf.write(u"\u0149\7\f\2\2\u0149\u014b\5 \21\2\u014a\u0148\3\2\2") buf.write(u"\2\u014b\u014e\3\2\2\2\u014c\u014a\3\2\2\2\u014c\u014d") buf.write(u"\3\2\2\2\u014d\u014f\3\2\2\2\u014e\u014c\3\2\2\2\u014f") buf.write(u"\u0150\7\4\2\2\u0150\u0152\3\2\2\2\u0151\u0146\3\2\2") buf.write(u"\2\u0151\u0152\3\2\2\2\u0152\u0153\3\2\2\2\u0153\u0154") buf.write(u"\7\62\2\2\u0154\u0155\7\26\2\2\u0155\u0156\7\62\2\2\u0156") buf.write(u"\63\3\2\2\2\u0157\u0158\7!\2\2\u0158\u0159\7\62\2\2\u0159") buf.write(u"\u015a\7\26\2\2\u015a\u0165\7\62\2\2\u015b\u015c\7#\2") buf.write(u"\2\u015c\u0161\7\62\2\2\u015d\u015e\7\f\2\2\u015e\u0160") buf.write(u"\7\62\2\2\u015f\u015d\3\2\2\2\u0160\u0163\3\2\2\2\u0161") buf.write(u"\u015f\3\2\2\2\u0161\u0162\3\2\2\2\u0162\u0165\3\2\2") buf.write(u"\2\u0163\u0161\3\2\2\2\u0164\u0157\3\2\2\2\u0164\u015b") buf.write(u"\3\2\2\2\u0165\65\3\2\2\2\u0166\u0168\7\62\2\2\u0167") buf.write(u"\u0169\7\27\2\2\u0168\u0167\3\2\2\2\u0169\u016a\3\2\2") buf.write(u"\2\u016a\u0168\3\2\2\2\u016a\u016b\3\2\2\2\u016b\u016f") buf.write(u"\3\2\2\2\u016c\u016f\7\30\2\2\u016d\u016f\7\31\2\2\u016e") buf.write(u"\u0166\3\2\2\2\u016e\u016c\3\2\2\2\u016e\u016d\3\2\2") buf.write(u"\2\u016f\67\3\2\2\2\u0170\u0171\b\35\1\2\u0171\u019b") buf.write(u"\7\60\2\2\u0172\u0173\7\24\2\2\u0173\u019b\58\35\16\u0174") buf.write(u"\u019b\7/\2\2\u0175\u019b\7.\2\2\u0176\u017a\7\62\2\2") buf.write(u"\u0177\u0179\7\r\2\2\u0178\u0177\3\2\2\2\u0179\u017c") buf.write(u"\3\2\2\2\u017a\u0178\3\2\2\2\u017a\u017b\3\2\2\2\u017b") buf.write(u"\u019b\3\2\2\2\u017c\u017a\3\2\2\2\u017d\u019b\5\66\34") buf.write(u"\2\u017e\u017f\7\62\2\2\u017f\u0180\7\3\2\2\u0180\u0185") buf.write(u"\58\35\2\u0181\u0182\7\f\2\2\u0182\u0184\58\35\2\u0183") buf.write(u"\u0181\3\2\2\2\u0184\u0187\3\2\2\2\u0185\u0183\3\2\2") buf.write(u"\2\u0185\u0186\3\2\2\2\u0186\u0188\3\2\2\2\u0187\u0185") buf.write(u"\3\2\2\2\u0188\u0189\7\4\2\2\u0189\u019b\3\2\2\2\u018a") buf.write(u"\u019b\5\16\b\2\u018b\u019b\5\36\20\2\u018c\u018d\7\16") buf.write(u"\2\2\u018d\u018e\58\35\2\u018e\u018f\7\17\2\2\u018f\u019b") buf.write(u"\3\2\2\2\u0190\u0192\7\62\2\2\u0191\u0190\3\2\2\2\u0191") buf.write(u"\u0192\3\2\2\2\u0192\u0193\3\2\2\2\u0193\u0197\5\26\f") buf.write(u"\2\u0194\u0196\7\r\2\2\u0195\u0194\3\2\2\2\u0196\u0199") buf.write(u"\3\2\2\2\u0197\u0195\3\2\2\2\u0197\u0198\3\2\2\2\u0198") buf.write(u"\u019b\3\2\2\2\u0199\u0197\3\2\2\2\u019a\u0170\3\2\2") buf.write(u"\2\u019a\u0172\3\2\2\2\u019a\u0174\3\2\2\2\u019a\u0175") buf.write(u"\3\2\2\2\u019a\u0176\3\2\2\2\u019a\u017d\3\2\2\2\u019a") buf.write(u"\u017e\3\2\2\2\u019a\u018a\3\2\2\2\u019a\u018b\3\2\2") buf.write(u"\2\u019a\u018c\3\2\2\2\u019a\u0191\3\2\2\2\u019b\u01ad") buf.write(u"\3\2\2\2\u019c\u019d\f\22\2\2\u019d\u019e\7\32\2\2\u019e") buf.write(u"\u01ac\58\35\23\u019f\u01a0\f\21\2\2\u01a0\u01a1\t\b") buf.write(u"\2\2\u01a1\u01ac\58\35\22\u01a2\u01a3\f\20\2\2\u01a3") buf.write(u"\u01a4\t\4\2\2\u01a4\u01ac\58\35\21\u01a5\u01a6\f\5\2") buf.write(u"\2\u01a6\u01a7\7\5\2\2\u01a7\u01ac\58\35\6\u01a8\u01a9") buf.write(u"\f\4\2\2\u01a9\u01aa\7\22\2\2\u01aa\u01ac\58\35\5\u01ab") buf.write(u"\u019c\3\2\2\2\u01ab\u019f\3\2\2\2\u01ab\u01a2\3\2\2") buf.write(u"\2\u01ab\u01a5\3\2\2\2\u01ab\u01a8\3\2\2\2\u01ac\u01af") buf.write(u"\3\2\2\2\u01ad\u01ab\3\2\2\2\u01ad\u01ae\3\2\2\2\u01ae") buf.write(u"9\3\2\2\2\u01af\u01ad\3\2\2\2\64=FUZciru\177\u0082\u0085") buf.write(u"\u008d\u009c\u00a3\u00a6\u00ae\u00ba\u00be\u00c3\u00c6") buf.write(u"\u00cb\u00d0\u00dc\u00e7\u00f3\u00f9\u0101\u010a\u010e") buf.write(u"\u0115\u0119\u0121\u012a\u012f\u0135\u013d\u0142\u014c") buf.write(u"\u0151\u0161\u0164\u016a\u016e\u017a\u0185\u0191\u0197") buf.write(u"\u019a\u01ab\u01ad") return buf.getvalue() class AutolevParser ( Parser ): grammarFileName = "Autolev.g4" atn = ATNDeserializer().deserialize(serializedATN()) decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] sharedContextCache = PredictionContextCache() literalNames = [ u"", u"'['", u"']'", u"'='", u"'+='", u"'-='", u"':='", u"'*='", u"'/='", u"'^='", u"','", u"'''", u"'('", u"')'", u"'{'", u"'}'", u"':'", u"'+'", u"'-'", u"';'", u"'.'", u"'>'", u"'0>'", u"'1>>'", u"'^'", u"'*'", u"'/'" ] symbolicNames = [ u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"Mass", u"Inertia", u"Input", u"Output", u"Save", u"UnitSystem", u"Encode", u"Newtonian", u"Frames", u"Bodies", u"Particles", u"Points", u"Constants", u"Specifieds", u"Imaginary", u"Variables", u"MotionVariables", u"INT", u"FLOAT", u"EXP", u"LINE_COMMENT", u"ID", u"WS" ] RULE_prog = 0 RULE_stat = 1 RULE_assignment = 2 RULE_equals = 3 RULE_index = 4 RULE_diff = 5 RULE_functionCall = 6 RULE_varDecl = 7 RULE_varType = 8 RULE_varDecl2 = 9 RULE_ranges = 10 RULE_massDecl = 11 RULE_massDecl2 = 12 RULE_inertiaDecl = 13 RULE_matrix = 14 RULE_matrixInOutput = 15 RULE_codeCommands = 16 RULE_settings = 17 RULE_units = 18 RULE_inputs = 19 RULE_id_diff = 20 RULE_inputs2 = 21 RULE_outputs = 22 RULE_outputs2 = 23 RULE_codegen = 24 RULE_commands = 25 RULE_vec = 26 RULE_expr = 27 ruleNames = [ u"prog", u"stat", u"assignment", u"equals", u"index", u"diff", u"functionCall", u"varDecl", u"varType", u"varDecl2", u"ranges", u"massDecl", u"massDecl2", u"inertiaDecl", u"matrix", u"matrixInOutput", u"codeCommands", u"settings", u"units", u"inputs", u"id_diff", u"inputs2", u"outputs", u"outputs2", u"codegen", u"commands", u"vec", u"expr" ] EOF = Token.EOF T__0=1 T__1=2 T__2=3 T__3=4 T__4=5 T__5=6 T__6=7 T__7=8 T__8=9 T__9=10 T__10=11 T__11=12 T__12=13 T__13=14 T__14=15 T__15=16 T__16=17 T__17=18 T__18=19 T__19=20 T__20=21 T__21=22 T__22=23 T__23=24 T__24=25 T__25=26 Mass=27 Inertia=28 Input=29 Output=30 Save=31 UnitSystem=32 Encode=33 Newtonian=34 Frames=35 Bodies=36 Particles=37 Points=38 Constants=39 Specifieds=40 Imaginary=41 Variables=42 MotionVariables=43 INT=44 FLOAT=45 EXP=46 LINE_COMMENT=47 ID=48 WS=49 def __init__(self, input, output=sys.stdout): super(AutolevParser, self).__init__(input, output=output) self.checkVersion("4.7.1") self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) self._predicates = None class ProgContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.ProgContext, self).__init__(parent, invokingState) self.parser = parser def stat(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.StatContext) else: return self.getTypedRuleContext(AutolevParser.StatContext,i) def getRuleIndex(self): return AutolevParser.RULE_prog def enterRule(self, listener): if hasattr(listener, "enterProg"): listener.enterProg(self) def exitRule(self, listener): if hasattr(listener, "exitProg"): listener.exitProg(self) def prog(self): localctx = AutolevParser.ProgContext(self, self._ctx, self.state) self.enterRule(localctx, 0, self.RULE_prog) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 57 self._errHandler.sync(self) _la = self._input.LA(1) while True: self.state = 56 self.stat() self.state = 59 self._errHandler.sync(self) _la = self._input.LA(1) if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((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)): break except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class StatContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.StatContext, self).__init__(parent, invokingState) self.parser = parser def varDecl(self): return self.getTypedRuleContext(AutolevParser.VarDeclContext,0) def functionCall(self): return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0) def codeCommands(self): return self.getTypedRuleContext(AutolevParser.CodeCommandsContext,0) def massDecl(self): return self.getTypedRuleContext(AutolevParser.MassDeclContext,0) def inertiaDecl(self): return self.getTypedRuleContext(AutolevParser.InertiaDeclContext,0) def assignment(self): return self.getTypedRuleContext(AutolevParser.AssignmentContext,0) def settings(self): return self.getTypedRuleContext(AutolevParser.SettingsContext,0) def getRuleIndex(self): return AutolevParser.RULE_stat def enterRule(self, listener): if hasattr(listener, "enterStat"): listener.enterStat(self) def exitRule(self, listener): if hasattr(listener, "exitStat"): listener.exitStat(self) def stat(self): localctx = AutolevParser.StatContext(self, self._ctx, self.state) self.enterRule(localctx, 2, self.RULE_stat) try: self.state = 68 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,1,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 61 self.varDecl() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 62 self.functionCall() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) self.state = 63 self.codeCommands() pass elif la_ == 4: self.enterOuterAlt(localctx, 4) self.state = 64 self.massDecl() pass elif la_ == 5: self.enterOuterAlt(localctx, 5) self.state = 65 self.inertiaDecl() pass elif la_ == 6: self.enterOuterAlt(localctx, 6) self.state = 66 self.assignment() pass elif la_ == 7: self.enterOuterAlt(localctx, 7) self.state = 67 self.settings() pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class AssignmentContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.AssignmentContext, self).__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return AutolevParser.RULE_assignment def copyFrom(self, ctx): super(AutolevParser.AssignmentContext, self).copyFrom(ctx) class VecAssignContext(AssignmentContext): def __init__(self, parser, ctx): # actually a AutolevParser.AssignmentContext) super(AutolevParser.VecAssignContext, self).__init__(parser) self.copyFrom(ctx) def vec(self): return self.getTypedRuleContext(AutolevParser.VecContext,0) def equals(self): return self.getTypedRuleContext(AutolevParser.EqualsContext,0) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def enterRule(self, listener): if hasattr(listener, "enterVecAssign"): listener.enterVecAssign(self) def exitRule(self, listener): if hasattr(listener, "exitVecAssign"): listener.exitVecAssign(self) class RegularAssignContext(AssignmentContext): def __init__(self, parser, ctx): # actually a AutolevParser.AssignmentContext) super(AutolevParser.RegularAssignContext, self).__init__(parser) self.copyFrom(ctx) def ID(self): return self.getToken(AutolevParser.ID, 0) def equals(self): return self.getTypedRuleContext(AutolevParser.EqualsContext,0) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def diff(self): return self.getTypedRuleContext(AutolevParser.DiffContext,0) def enterRule(self, listener): if hasattr(listener, "enterRegularAssign"): listener.enterRegularAssign(self) def exitRule(self, listener): if hasattr(listener, "exitRegularAssign"): listener.exitRegularAssign(self) class IndexAssignContext(AssignmentContext): def __init__(self, parser, ctx): # actually a AutolevParser.AssignmentContext) super(AutolevParser.IndexAssignContext, self).__init__(parser) self.copyFrom(ctx) def ID(self): return self.getToken(AutolevParser.ID, 0) def index(self): return self.getTypedRuleContext(AutolevParser.IndexContext,0) def equals(self): return self.getTypedRuleContext(AutolevParser.EqualsContext,0) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def enterRule(self, listener): if hasattr(listener, "enterIndexAssign"): listener.enterIndexAssign(self) def exitRule(self, listener): if hasattr(listener, "exitIndexAssign"): listener.exitIndexAssign(self) def assignment(self): localctx = AutolevParser.AssignmentContext(self, self._ctx, self.state) self.enterRule(localctx, 4, self.RULE_assignment) self._la = 0 # Token type try: self.state = 88 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,3,self._ctx) if la_ == 1: localctx = AutolevParser.VecAssignContext(self, localctx) self.enterOuterAlt(localctx, 1) self.state = 70 self.vec() self.state = 71 self.equals() self.state = 72 self.expr(0) pass elif la_ == 2: localctx = AutolevParser.IndexAssignContext(self, localctx) self.enterOuterAlt(localctx, 2) self.state = 74 self.match(AutolevParser.ID) self.state = 75 self.match(AutolevParser.T__0) self.state = 76 self.index() self.state = 77 self.match(AutolevParser.T__1) self.state = 78 self.equals() self.state = 79 self.expr(0) pass elif la_ == 3: localctx = AutolevParser.RegularAssignContext(self, localctx) self.enterOuterAlt(localctx, 3) self.state = 81 self.match(AutolevParser.ID) self.state = 83 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__10: self.state = 82 self.diff() self.state = 85 self.equals() self.state = 86 self.expr(0) pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class EqualsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.EqualsContext, self).__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return AutolevParser.RULE_equals def enterRule(self, listener): if hasattr(listener, "enterEquals"): listener.enterEquals(self) def exitRule(self, listener): if hasattr(listener, "exitEquals"): listener.exitEquals(self) def equals(self): localctx = AutolevParser.EqualsContext(self, self._ctx, self.state) self.enterRule(localctx, 6, self.RULE_equals) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 90 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((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)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class IndexContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.IndexContext, self).__init__(parent, invokingState) self.parser = parser def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def getRuleIndex(self): return AutolevParser.RULE_index def enterRule(self, listener): if hasattr(listener, "enterIndex"): listener.enterIndex(self) def exitRule(self, listener): if hasattr(listener, "exitIndex"): listener.exitIndex(self) def index(self): localctx = AutolevParser.IndexContext(self, self._ctx, self.state) self.enterRule(localctx, 8, self.RULE_index) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 92 self.expr(0) self.state = 97 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 93 self.match(AutolevParser.T__9) self.state = 94 self.expr(0) self.state = 99 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class DiffContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.DiffContext, self).__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return AutolevParser.RULE_diff def enterRule(self, listener): if hasattr(listener, "enterDiff"): listener.enterDiff(self) def exitRule(self, listener): if hasattr(listener, "exitDiff"): listener.exitDiff(self) def diff(self): localctx = AutolevParser.DiffContext(self, self._ctx, self.state) self.enterRule(localctx, 10, self.RULE_diff) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 101 self._errHandler.sync(self) _la = self._input.LA(1) while True: self.state = 100 self.match(AutolevParser.T__10) self.state = 103 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==AutolevParser.T__10): break except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class FunctionCallContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.FunctionCallContext, self).__init__(parent, invokingState) self.parser = parser def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def Mass(self): return self.getToken(AutolevParser.Mass, 0) def Inertia(self): return self.getToken(AutolevParser.Inertia, 0) def getRuleIndex(self): return AutolevParser.RULE_functionCall def enterRule(self, listener): if hasattr(listener, "enterFunctionCall"): listener.enterFunctionCall(self) def exitRule(self, listener): if hasattr(listener, "exitFunctionCall"): listener.exitFunctionCall(self) def functionCall(self): localctx = AutolevParser.FunctionCallContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_functionCall) self._la = 0 # Token type try: self.state = 131 self._errHandler.sync(self) token = self._input.LA(1) if token in [AutolevParser.ID]: self.enterOuterAlt(localctx, 1) self.state = 105 self.match(AutolevParser.ID) self.state = 106 self.match(AutolevParser.T__11) self.state = 115 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((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): self.state = 107 self.expr(0) self.state = 112 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 108 self.match(AutolevParser.T__9) self.state = 109 self.expr(0) self.state = 114 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 117 self.match(AutolevParser.T__12) pass elif token in [AutolevParser.Mass, AutolevParser.Inertia]: self.enterOuterAlt(localctx, 2) self.state = 118 _la = self._input.LA(1) if not(_la==AutolevParser.Mass or _la==AutolevParser.Inertia): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 119 self.match(AutolevParser.T__11) self.state = 128 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.ID: self.state = 120 self.match(AutolevParser.ID) self.state = 125 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 121 self.match(AutolevParser.T__9) self.state = 122 self.match(AutolevParser.ID) self.state = 127 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 130 self.match(AutolevParser.T__12) pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class VarDeclContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.VarDeclContext, self).__init__(parent, invokingState) self.parser = parser def varType(self): return self.getTypedRuleContext(AutolevParser.VarTypeContext,0) def varDecl2(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.VarDecl2Context) else: return self.getTypedRuleContext(AutolevParser.VarDecl2Context,i) def getRuleIndex(self): return AutolevParser.RULE_varDecl def enterRule(self, listener): if hasattr(listener, "enterVarDecl"): listener.enterVarDecl(self) def exitRule(self, listener): if hasattr(listener, "exitVarDecl"): listener.exitVarDecl(self) def varDecl(self): localctx = AutolevParser.VarDeclContext(self, self._ctx, self.state) self.enterRule(localctx, 14, self.RULE_varDecl) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 133 self.varType() self.state = 134 self.varDecl2() self.state = 139 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 135 self.match(AutolevParser.T__9) self.state = 136 self.varDecl2() self.state = 141 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class VarTypeContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.VarTypeContext, self).__init__(parent, invokingState) self.parser = parser def Newtonian(self): return self.getToken(AutolevParser.Newtonian, 0) def Frames(self): return self.getToken(AutolevParser.Frames, 0) def Bodies(self): return self.getToken(AutolevParser.Bodies, 0) def Particles(self): return self.getToken(AutolevParser.Particles, 0) def Points(self): return self.getToken(AutolevParser.Points, 0) def Constants(self): return self.getToken(AutolevParser.Constants, 0) def Specifieds(self): return self.getToken(AutolevParser.Specifieds, 0) def Imaginary(self): return self.getToken(AutolevParser.Imaginary, 0) def Variables(self): return self.getToken(AutolevParser.Variables, 0) def MotionVariables(self): return self.getToken(AutolevParser.MotionVariables, 0) def getRuleIndex(self): return AutolevParser.RULE_varType def enterRule(self, listener): if hasattr(listener, "enterVarType"): listener.enterVarType(self) def exitRule(self, listener): if hasattr(listener, "exitVarType"): listener.exitVarType(self) def varType(self): localctx = AutolevParser.VarTypeContext(self, self._ctx, self.state) self.enterRule(localctx, 16, self.RULE_varType) self._la = 0 # Token type try: self.state = 164 self._errHandler.sync(self) token = self._input.LA(1) if token in [AutolevParser.Newtonian]: self.enterOuterAlt(localctx, 1) self.state = 142 self.match(AutolevParser.Newtonian) pass elif token in [AutolevParser.Frames]: self.enterOuterAlt(localctx, 2) self.state = 143 self.match(AutolevParser.Frames) pass elif token in [AutolevParser.Bodies]: self.enterOuterAlt(localctx, 3) self.state = 144 self.match(AutolevParser.Bodies) pass elif token in [AutolevParser.Particles]: self.enterOuterAlt(localctx, 4) self.state = 145 self.match(AutolevParser.Particles) pass elif token in [AutolevParser.Points]: self.enterOuterAlt(localctx, 5) self.state = 146 self.match(AutolevParser.Points) pass elif token in [AutolevParser.Constants]: self.enterOuterAlt(localctx, 6) self.state = 147 self.match(AutolevParser.Constants) pass elif token in [AutolevParser.Specifieds]: self.enterOuterAlt(localctx, 7) self.state = 148 self.match(AutolevParser.Specifieds) pass elif token in [AutolevParser.Imaginary]: self.enterOuterAlt(localctx, 8) self.state = 149 self.match(AutolevParser.Imaginary) pass elif token in [AutolevParser.Variables]: self.enterOuterAlt(localctx, 9) self.state = 150 self.match(AutolevParser.Variables) self.state = 154 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__10: self.state = 151 self.match(AutolevParser.T__10) self.state = 156 self._errHandler.sync(self) _la = self._input.LA(1) pass elif token in [AutolevParser.MotionVariables]: self.enterOuterAlt(localctx, 10) self.state = 157 self.match(AutolevParser.MotionVariables) self.state = 161 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__10: self.state = 158 self.match(AutolevParser.T__10) self.state = 163 self._errHandler.sync(self) _la = self._input.LA(1) pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class VarDecl2Context(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.VarDecl2Context, self).__init__(parent, invokingState) self.parser = parser def ID(self): return self.getToken(AutolevParser.ID, 0) def INT(self, i=None): if i is None: return self.getTokens(AutolevParser.INT) else: return self.getToken(AutolevParser.INT, i) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def getRuleIndex(self): return AutolevParser.RULE_varDecl2 def enterRule(self, listener): if hasattr(listener, "enterVarDecl2"): listener.enterVarDecl2(self) def exitRule(self, listener): if hasattr(listener, "exitVarDecl2"): listener.exitVarDecl2(self) def varDecl2(self): localctx = AutolevParser.VarDecl2Context(self, self._ctx, self.state) self.enterRule(localctx, 18, self.RULE_varDecl2) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 166 self.match(AutolevParser.ID) self.state = 172 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,15,self._ctx) if la_ == 1: self.state = 167 self.match(AutolevParser.T__13) self.state = 168 self.match(AutolevParser.INT) self.state = 169 self.match(AutolevParser.T__9) self.state = 170 self.match(AutolevParser.INT) self.state = 171 self.match(AutolevParser.T__14) self.state = 188 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,17,self._ctx) if la_ == 1: self.state = 174 self.match(AutolevParser.T__13) self.state = 175 self.match(AutolevParser.INT) self.state = 176 self.match(AutolevParser.T__15) self.state = 177 self.match(AutolevParser.INT) self.state = 184 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 178 self.match(AutolevParser.T__9) self.state = 179 self.match(AutolevParser.INT) self.state = 180 self.match(AutolevParser.T__15) self.state = 181 self.match(AutolevParser.INT) self.state = 186 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 187 self.match(AutolevParser.T__14) self.state = 193 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__13: self.state = 190 self.match(AutolevParser.T__13) self.state = 191 self.match(AutolevParser.INT) self.state = 192 self.match(AutolevParser.T__14) self.state = 196 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__16 or _la==AutolevParser.T__17: self.state = 195 _la = self._input.LA(1) if not(_la==AutolevParser.T__16 or _la==AutolevParser.T__17): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 201 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__10: self.state = 198 self.match(AutolevParser.T__10) self.state = 203 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 206 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__2: self.state = 204 self.match(AutolevParser.T__2) self.state = 205 self.expr(0) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class RangesContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.RangesContext, self).__init__(parent, invokingState) self.parser = parser def INT(self, i=None): if i is None: return self.getTokens(AutolevParser.INT) else: return self.getToken(AutolevParser.INT, i) def getRuleIndex(self): return AutolevParser.RULE_ranges def enterRule(self, listener): if hasattr(listener, "enterRanges"): listener.enterRanges(self) def exitRule(self, listener): if hasattr(listener, "exitRanges"): listener.exitRanges(self) def ranges(self): localctx = AutolevParser.RangesContext(self, self._ctx, self.state) self.enterRule(localctx, 20, self.RULE_ranges) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 208 self.match(AutolevParser.T__13) self.state = 209 self.match(AutolevParser.INT) self.state = 210 self.match(AutolevParser.T__15) self.state = 211 self.match(AutolevParser.INT) self.state = 218 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 212 self.match(AutolevParser.T__9) self.state = 213 self.match(AutolevParser.INT) self.state = 214 self.match(AutolevParser.T__15) self.state = 215 self.match(AutolevParser.INT) self.state = 220 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 221 self.match(AutolevParser.T__14) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class MassDeclContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.MassDeclContext, self).__init__(parent, invokingState) self.parser = parser def Mass(self): return self.getToken(AutolevParser.Mass, 0) def massDecl2(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.MassDecl2Context) else: return self.getTypedRuleContext(AutolevParser.MassDecl2Context,i) def getRuleIndex(self): return AutolevParser.RULE_massDecl def enterRule(self, listener): if hasattr(listener, "enterMassDecl"): listener.enterMassDecl(self) def exitRule(self, listener): if hasattr(listener, "exitMassDecl"): listener.exitMassDecl(self) def massDecl(self): localctx = AutolevParser.MassDeclContext(self, self._ctx, self.state) self.enterRule(localctx, 22, self.RULE_massDecl) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 223 self.match(AutolevParser.Mass) self.state = 224 self.massDecl2() self.state = 229 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 225 self.match(AutolevParser.T__9) self.state = 226 self.massDecl2() self.state = 231 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class MassDecl2Context(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.MassDecl2Context, self).__init__(parent, invokingState) self.parser = parser def ID(self): return self.getToken(AutolevParser.ID, 0) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def getRuleIndex(self): return AutolevParser.RULE_massDecl2 def enterRule(self, listener): if hasattr(listener, "enterMassDecl2"): listener.enterMassDecl2(self) def exitRule(self, listener): if hasattr(listener, "exitMassDecl2"): listener.exitMassDecl2(self) def massDecl2(self): localctx = AutolevParser.MassDecl2Context(self, self._ctx, self.state) self.enterRule(localctx, 24, self.RULE_massDecl2) try: self.enterOuterAlt(localctx, 1) self.state = 232 self.match(AutolevParser.ID) self.state = 233 self.match(AutolevParser.T__2) self.state = 234 self.expr(0) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class InertiaDeclContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.InertiaDeclContext, self).__init__(parent, invokingState) self.parser = parser def Inertia(self): return self.getToken(AutolevParser.Inertia, 0) def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def getRuleIndex(self): return AutolevParser.RULE_inertiaDecl def enterRule(self, listener): if hasattr(listener, "enterInertiaDecl"): listener.enterInertiaDecl(self) def exitRule(self, listener): if hasattr(listener, "exitInertiaDecl"): listener.exitInertiaDecl(self) def inertiaDecl(self): localctx = AutolevParser.InertiaDeclContext(self, self._ctx, self.state) self.enterRule(localctx, 26, self.RULE_inertiaDecl) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 236 self.match(AutolevParser.Inertia) self.state = 237 self.match(AutolevParser.ID) self.state = 241 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__11: self.state = 238 self.match(AutolevParser.T__11) self.state = 239 self.match(AutolevParser.ID) self.state = 240 self.match(AutolevParser.T__12) self.state = 245 self._errHandler.sync(self) _la = self._input.LA(1) while True: self.state = 243 self.match(AutolevParser.T__9) self.state = 244 self.expr(0) self.state = 247 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==AutolevParser.T__9): break except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class MatrixContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.MatrixContext, self).__init__(parent, invokingState) self.parser = parser def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def getRuleIndex(self): return AutolevParser.RULE_matrix def enterRule(self, listener): if hasattr(listener, "enterMatrix"): listener.enterMatrix(self) def exitRule(self, listener): if hasattr(listener, "exitMatrix"): listener.exitMatrix(self) def matrix(self): localctx = AutolevParser.MatrixContext(self, self._ctx, self.state) self.enterRule(localctx, 28, self.RULE_matrix) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 249 self.match(AutolevParser.T__0) self.state = 250 self.expr(0) self.state = 255 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9 or _la==AutolevParser.T__18: self.state = 251 _la = self._input.LA(1) if not(_la==AutolevParser.T__9 or _la==AutolevParser.T__18): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 252 self.expr(0) self.state = 257 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 258 self.match(AutolevParser.T__1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class MatrixInOutputContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.MatrixInOutputContext, self).__init__(parent, invokingState) self.parser = parser def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def FLOAT(self): return self.getToken(AutolevParser.FLOAT, 0) def INT(self): return self.getToken(AutolevParser.INT, 0) def getRuleIndex(self): return AutolevParser.RULE_matrixInOutput def enterRule(self, listener): if hasattr(listener, "enterMatrixInOutput"): listener.enterMatrixInOutput(self) def exitRule(self, listener): if hasattr(listener, "exitMatrixInOutput"): listener.exitMatrixInOutput(self) def matrixInOutput(self): localctx = AutolevParser.MatrixInOutputContext(self, self._ctx, self.state) self.enterRule(localctx, 30, self.RULE_matrixInOutput) self._la = 0 # Token type try: self.state = 268 self._errHandler.sync(self) token = self._input.LA(1) if token in [AutolevParser.ID]: self.enterOuterAlt(localctx, 1) self.state = 260 self.match(AutolevParser.ID) self.state = 261 self.match(AutolevParser.ID) self.state = 262 self.match(AutolevParser.T__2) self.state = 264 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.INT or _la==AutolevParser.FLOAT: self.state = 263 _la = self._input.LA(1) if not(_la==AutolevParser.INT or _la==AutolevParser.FLOAT): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() pass elif token in [AutolevParser.FLOAT]: self.enterOuterAlt(localctx, 2) self.state = 266 self.match(AutolevParser.FLOAT) pass elif token in [AutolevParser.INT]: self.enterOuterAlt(localctx, 3) self.state = 267 self.match(AutolevParser.INT) pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class CodeCommandsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.CodeCommandsContext, self).__init__(parent, invokingState) self.parser = parser def units(self): return self.getTypedRuleContext(AutolevParser.UnitsContext,0) def inputs(self): return self.getTypedRuleContext(AutolevParser.InputsContext,0) def outputs(self): return self.getTypedRuleContext(AutolevParser.OutputsContext,0) def codegen(self): return self.getTypedRuleContext(AutolevParser.CodegenContext,0) def commands(self): return self.getTypedRuleContext(AutolevParser.CommandsContext,0) def getRuleIndex(self): return AutolevParser.RULE_codeCommands def enterRule(self, listener): if hasattr(listener, "enterCodeCommands"): listener.enterCodeCommands(self) def exitRule(self, listener): if hasattr(listener, "exitCodeCommands"): listener.exitCodeCommands(self) def codeCommands(self): localctx = AutolevParser.CodeCommandsContext(self, self._ctx, self.state) self.enterRule(localctx, 32, self.RULE_codeCommands) try: self.state = 275 self._errHandler.sync(self) token = self._input.LA(1) if token in [AutolevParser.UnitSystem]: self.enterOuterAlt(localctx, 1) self.state = 270 self.units() pass elif token in [AutolevParser.Input]: self.enterOuterAlt(localctx, 2) self.state = 271 self.inputs() pass elif token in [AutolevParser.Output]: self.enterOuterAlt(localctx, 3) self.state = 272 self.outputs() pass elif token in [AutolevParser.ID]: self.enterOuterAlt(localctx, 4) self.state = 273 self.codegen() pass elif token in [AutolevParser.Save, AutolevParser.Encode]: self.enterOuterAlt(localctx, 5) self.state = 274 self.commands() pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class SettingsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.SettingsContext, self).__init__(parent, invokingState) self.parser = parser def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def EXP(self): return self.getToken(AutolevParser.EXP, 0) def FLOAT(self): return self.getToken(AutolevParser.FLOAT, 0) def INT(self): return self.getToken(AutolevParser.INT, 0) def getRuleIndex(self): return AutolevParser.RULE_settings def enterRule(self, listener): if hasattr(listener, "enterSettings"): listener.enterSettings(self) def exitRule(self, listener): if hasattr(listener, "exitSettings"): listener.exitSettings(self) def settings(self): localctx = AutolevParser.SettingsContext(self, self._ctx, self.state) self.enterRule(localctx, 34, self.RULE_settings) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 277 self.match(AutolevParser.ID) self.state = 279 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,30,self._ctx) if la_ == 1: self.state = 278 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << AutolevParser.INT) | (1 << AutolevParser.FLOAT) | (1 << AutolevParser.EXP) | (1 << AutolevParser.ID))) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class UnitsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.UnitsContext, self).__init__(parent, invokingState) self.parser = parser def UnitSystem(self): return self.getToken(AutolevParser.UnitSystem, 0) def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def getRuleIndex(self): return AutolevParser.RULE_units def enterRule(self, listener): if hasattr(listener, "enterUnits"): listener.enterUnits(self) def exitRule(self, listener): if hasattr(listener, "exitUnits"): listener.exitUnits(self) def units(self): localctx = AutolevParser.UnitsContext(self, self._ctx, self.state) self.enterRule(localctx, 36, self.RULE_units) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 281 self.match(AutolevParser.UnitSystem) self.state = 282 self.match(AutolevParser.ID) self.state = 287 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 283 self.match(AutolevParser.T__9) self.state = 284 self.match(AutolevParser.ID) self.state = 289 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class InputsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.InputsContext, self).__init__(parent, invokingState) self.parser = parser def Input(self): return self.getToken(AutolevParser.Input, 0) def inputs2(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.Inputs2Context) else: return self.getTypedRuleContext(AutolevParser.Inputs2Context,i) def getRuleIndex(self): return AutolevParser.RULE_inputs def enterRule(self, listener): if hasattr(listener, "enterInputs"): listener.enterInputs(self) def exitRule(self, listener): if hasattr(listener, "exitInputs"): listener.exitInputs(self) def inputs(self): localctx = AutolevParser.InputsContext(self, self._ctx, self.state) self.enterRule(localctx, 38, self.RULE_inputs) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 290 self.match(AutolevParser.Input) self.state = 291 self.inputs2() self.state = 296 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 292 self.match(AutolevParser.T__9) self.state = 293 self.inputs2() self.state = 298 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Id_diffContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.Id_diffContext, self).__init__(parent, invokingState) self.parser = parser def ID(self): return self.getToken(AutolevParser.ID, 0) def diff(self): return self.getTypedRuleContext(AutolevParser.DiffContext,0) def getRuleIndex(self): return AutolevParser.RULE_id_diff def enterRule(self, listener): if hasattr(listener, "enterId_diff"): listener.enterId_diff(self) def exitRule(self, listener): if hasattr(listener, "exitId_diff"): listener.exitId_diff(self) def id_diff(self): localctx = AutolevParser.Id_diffContext(self, self._ctx, self.state) self.enterRule(localctx, 40, self.RULE_id_diff) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 299 self.match(AutolevParser.ID) self.state = 301 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__10: self.state = 300 self.diff() except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Inputs2Context(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.Inputs2Context, self).__init__(parent, invokingState) self.parser = parser def id_diff(self): return self.getTypedRuleContext(AutolevParser.Id_diffContext,0) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def getRuleIndex(self): return AutolevParser.RULE_inputs2 def enterRule(self, listener): if hasattr(listener, "enterInputs2"): listener.enterInputs2(self) def exitRule(self, listener): if hasattr(listener, "exitInputs2"): listener.exitInputs2(self) def inputs2(self): localctx = AutolevParser.Inputs2Context(self, self._ctx, self.state) self.enterRule(localctx, 42, self.RULE_inputs2) try: self.enterOuterAlt(localctx, 1) self.state = 303 self.id_diff() self.state = 304 self.match(AutolevParser.T__2) self.state = 305 self.expr(0) self.state = 307 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,34,self._ctx) if la_ == 1: self.state = 306 self.expr(0) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class OutputsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.OutputsContext, self).__init__(parent, invokingState) self.parser = parser def Output(self): return self.getToken(AutolevParser.Output, 0) def outputs2(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.Outputs2Context) else: return self.getTypedRuleContext(AutolevParser.Outputs2Context,i) def getRuleIndex(self): return AutolevParser.RULE_outputs def enterRule(self, listener): if hasattr(listener, "enterOutputs"): listener.enterOutputs(self) def exitRule(self, listener): if hasattr(listener, "exitOutputs"): listener.exitOutputs(self) def outputs(self): localctx = AutolevParser.OutputsContext(self, self._ctx, self.state) self.enterRule(localctx, 44, self.RULE_outputs) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 309 self.match(AutolevParser.Output) self.state = 310 self.outputs2() self.state = 315 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 311 self.match(AutolevParser.T__9) self.state = 312 self.outputs2() self.state = 317 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Outputs2Context(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.Outputs2Context, self).__init__(parent, invokingState) self.parser = parser def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def getRuleIndex(self): return AutolevParser.RULE_outputs2 def enterRule(self, listener): if hasattr(listener, "enterOutputs2"): listener.enterOutputs2(self) def exitRule(self, listener): if hasattr(listener, "exitOutputs2"): listener.exitOutputs2(self) def outputs2(self): localctx = AutolevParser.Outputs2Context(self, self._ctx, self.state) self.enterRule(localctx, 46, self.RULE_outputs2) try: self.enterOuterAlt(localctx, 1) self.state = 318 self.expr(0) self.state = 320 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,36,self._ctx) if la_ == 1: self.state = 319 self.expr(0) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class CodegenContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.CodegenContext, self).__init__(parent, invokingState) self.parser = parser def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def functionCall(self): return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0) def matrixInOutput(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.MatrixInOutputContext) else: return self.getTypedRuleContext(AutolevParser.MatrixInOutputContext,i) def getRuleIndex(self): return AutolevParser.RULE_codegen def enterRule(self, listener): if hasattr(listener, "enterCodegen"): listener.enterCodegen(self) def exitRule(self, listener): if hasattr(listener, "exitCodegen"): listener.exitCodegen(self) def codegen(self): localctx = AutolevParser.CodegenContext(self, self._ctx, self.state) self.enterRule(localctx, 48, self.RULE_codegen) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 322 self.match(AutolevParser.ID) self.state = 323 self.functionCall() self.state = 335 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.T__0: self.state = 324 self.match(AutolevParser.T__0) self.state = 325 self.matrixInOutput() self.state = 330 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 326 self.match(AutolevParser.T__9) self.state = 327 self.matrixInOutput() self.state = 332 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 333 self.match(AutolevParser.T__1) self.state = 337 self.match(AutolevParser.ID) self.state = 338 self.match(AutolevParser.T__19) self.state = 339 self.match(AutolevParser.ID) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class CommandsContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.CommandsContext, self).__init__(parent, invokingState) self.parser = parser def Save(self): return self.getToken(AutolevParser.Save, 0) def ID(self, i=None): if i is None: return self.getTokens(AutolevParser.ID) else: return self.getToken(AutolevParser.ID, i) def Encode(self): return self.getToken(AutolevParser.Encode, 0) def getRuleIndex(self): return AutolevParser.RULE_commands def enterRule(self, listener): if hasattr(listener, "enterCommands"): listener.enterCommands(self) def exitRule(self, listener): if hasattr(listener, "exitCommands"): listener.exitCommands(self) def commands(self): localctx = AutolevParser.CommandsContext(self, self._ctx, self.state) self.enterRule(localctx, 50, self.RULE_commands) self._la = 0 # Token type try: self.state = 354 self._errHandler.sync(self) token = self._input.LA(1) if token in [AutolevParser.Save]: self.enterOuterAlt(localctx, 1) self.state = 341 self.match(AutolevParser.Save) self.state = 342 self.match(AutolevParser.ID) self.state = 343 self.match(AutolevParser.T__19) self.state = 344 self.match(AutolevParser.ID) pass elif token in [AutolevParser.Encode]: self.enterOuterAlt(localctx, 2) self.state = 345 self.match(AutolevParser.Encode) self.state = 346 self.match(AutolevParser.ID) self.state = 351 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 347 self.match(AutolevParser.T__9) self.state = 348 self.match(AutolevParser.ID) self.state = 353 self._errHandler.sync(self) _la = self._input.LA(1) pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class VecContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.VecContext, self).__init__(parent, invokingState) self.parser = parser def ID(self): return self.getToken(AutolevParser.ID, 0) def getRuleIndex(self): return AutolevParser.RULE_vec def enterRule(self, listener): if hasattr(listener, "enterVec"): listener.enterVec(self) def exitRule(self, listener): if hasattr(listener, "exitVec"): listener.exitVec(self) def vec(self): localctx = AutolevParser.VecContext(self, self._ctx, self.state) self.enterRule(localctx, 52, self.RULE_vec) try: self.state = 364 self._errHandler.sync(self) token = self._input.LA(1) if token in [AutolevParser.ID]: self.enterOuterAlt(localctx, 1) self.state = 356 self.match(AutolevParser.ID) self.state = 358 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: self.state = 357 self.match(AutolevParser.T__20) else: raise NoViableAltException(self) self.state = 360 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,41,self._ctx) pass elif token in [AutolevParser.T__21]: self.enterOuterAlt(localctx, 2) self.state = 362 self.match(AutolevParser.T__21) pass elif token in [AutolevParser.T__22]: self.enterOuterAlt(localctx, 3) self.state = 363 self.match(AutolevParser.T__22) pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class ExprContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): super(AutolevParser.ExprContext, self).__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return AutolevParser.RULE_expr def copyFrom(self, ctx): super(AutolevParser.ExprContext, self).copyFrom(ctx) class ParensContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.ParensContext, self).__init__(parser) self.copyFrom(ctx) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def enterRule(self, listener): if hasattr(listener, "enterParens"): listener.enterParens(self) def exitRule(self, listener): if hasattr(listener, "exitParens"): listener.exitParens(self) class VectorOrDyadicContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.VectorOrDyadicContext, self).__init__(parser) self.copyFrom(ctx) def vec(self): return self.getTypedRuleContext(AutolevParser.VecContext,0) def enterRule(self, listener): if hasattr(listener, "enterVectorOrDyadic"): listener.enterVectorOrDyadic(self) def exitRule(self, listener): if hasattr(listener, "exitVectorOrDyadic"): listener.exitVectorOrDyadic(self) class ExponentContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.ExponentContext, self).__init__(parser) self.copyFrom(ctx) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def enterRule(self, listener): if hasattr(listener, "enterExponent"): listener.enterExponent(self) def exitRule(self, listener): if hasattr(listener, "exitExponent"): listener.exitExponent(self) class MulDivContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.MulDivContext, self).__init__(parser) self.copyFrom(ctx) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def enterRule(self, listener): if hasattr(listener, "enterMulDiv"): listener.enterMulDiv(self) def exitRule(self, listener): if hasattr(listener, "exitMulDiv"): listener.exitMulDiv(self) class AddSubContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.AddSubContext, self).__init__(parser) self.copyFrom(ctx) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def enterRule(self, listener): if hasattr(listener, "enterAddSub"): listener.enterAddSub(self) def exitRule(self, listener): if hasattr(listener, "exitAddSub"): listener.exitAddSub(self) class FloatContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.FloatContext, self).__init__(parser) self.copyFrom(ctx) def FLOAT(self): return self.getToken(AutolevParser.FLOAT, 0) def enterRule(self, listener): if hasattr(listener, "enterFloat"): listener.enterFloat(self) def exitRule(self, listener): if hasattr(listener, "exitFloat"): listener.exitFloat(self) class IntContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.IntContext, self).__init__(parser) self.copyFrom(ctx) def INT(self): return self.getToken(AutolevParser.INT, 0) def enterRule(self, listener): if hasattr(listener, "enterInt"): listener.enterInt(self) def exitRule(self, listener): if hasattr(listener, "exitInt"): listener.exitInt(self) class IdEqualsExprContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.IdEqualsExprContext, self).__init__(parser) self.copyFrom(ctx) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def enterRule(self, listener): if hasattr(listener, "enterIdEqualsExpr"): listener.enterIdEqualsExpr(self) def exitRule(self, listener): if hasattr(listener, "exitIdEqualsExpr"): listener.exitIdEqualsExpr(self) class NegativeOneContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.NegativeOneContext, self).__init__(parser) self.copyFrom(ctx) def expr(self): return self.getTypedRuleContext(AutolevParser.ExprContext,0) def enterRule(self, listener): if hasattr(listener, "enterNegativeOne"): listener.enterNegativeOne(self) def exitRule(self, listener): if hasattr(listener, "exitNegativeOne"): listener.exitNegativeOne(self) class FunctionContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.FunctionContext, self).__init__(parser) self.copyFrom(ctx) def functionCall(self): return self.getTypedRuleContext(AutolevParser.FunctionCallContext,0) def enterRule(self, listener): if hasattr(listener, "enterFunction"): listener.enterFunction(self) def exitRule(self, listener): if hasattr(listener, "exitFunction"): listener.exitFunction(self) class RangessContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.RangessContext, self).__init__(parser) self.copyFrom(ctx) def ranges(self): return self.getTypedRuleContext(AutolevParser.RangesContext,0) def ID(self): return self.getToken(AutolevParser.ID, 0) def enterRule(self, listener): if hasattr(listener, "enterRangess"): listener.enterRangess(self) def exitRule(self, listener): if hasattr(listener, "exitRangess"): listener.exitRangess(self) class ColonContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.ColonContext, self).__init__(parser) self.copyFrom(ctx) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def enterRule(self, listener): if hasattr(listener, "enterColon"): listener.enterColon(self) def exitRule(self, listener): if hasattr(listener, "exitColon"): listener.exitColon(self) class IdContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.IdContext, self).__init__(parser) self.copyFrom(ctx) def ID(self): return self.getToken(AutolevParser.ID, 0) def enterRule(self, listener): if hasattr(listener, "enterId"): listener.enterId(self) def exitRule(self, listener): if hasattr(listener, "exitId"): listener.exitId(self) class ExpContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.ExpContext, self).__init__(parser) self.copyFrom(ctx) def EXP(self): return self.getToken(AutolevParser.EXP, 0) def enterRule(self, listener): if hasattr(listener, "enterExp"): listener.enterExp(self) def exitRule(self, listener): if hasattr(listener, "exitExp"): listener.exitExp(self) class MatricesContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.MatricesContext, self).__init__(parser) self.copyFrom(ctx) def matrix(self): return self.getTypedRuleContext(AutolevParser.MatrixContext,0) def enterRule(self, listener): if hasattr(listener, "enterMatrices"): listener.enterMatrices(self) def exitRule(self, listener): if hasattr(listener, "exitMatrices"): listener.exitMatrices(self) class IndexingContext(ExprContext): def __init__(self, parser, ctx): # actually a AutolevParser.ExprContext) super(AutolevParser.IndexingContext, self).__init__(parser) self.copyFrom(ctx) def ID(self): return self.getToken(AutolevParser.ID, 0) def expr(self, i=None): if i is None: return self.getTypedRuleContexts(AutolevParser.ExprContext) else: return self.getTypedRuleContext(AutolevParser.ExprContext,i) def enterRule(self, listener): if hasattr(listener, "enterIndexing"): listener.enterIndexing(self) def exitRule(self, listener): if hasattr(listener, "exitIndexing"): listener.exitIndexing(self) def expr(self, _p=0): _parentctx = self._ctx _parentState = self.state localctx = AutolevParser.ExprContext(self, self._ctx, _parentState) _prevctx = localctx _startState = 54 self.enterRecursionRule(localctx, 54, self.RULE_expr, _p) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 408 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,47,self._ctx) if la_ == 1: localctx = AutolevParser.ExpContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 367 self.match(AutolevParser.EXP) pass elif la_ == 2: localctx = AutolevParser.NegativeOneContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 368 self.match(AutolevParser.T__17) self.state = 369 self.expr(12) pass elif la_ == 3: localctx = AutolevParser.FloatContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 370 self.match(AutolevParser.FLOAT) pass elif la_ == 4: localctx = AutolevParser.IntContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 371 self.match(AutolevParser.INT) pass elif la_ == 5: localctx = AutolevParser.IdContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 372 self.match(AutolevParser.ID) self.state = 376 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,43,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: self.state = 373 self.match(AutolevParser.T__10) self.state = 378 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,43,self._ctx) pass elif la_ == 6: localctx = AutolevParser.VectorOrDyadicContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 379 self.vec() pass elif la_ == 7: localctx = AutolevParser.IndexingContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 380 self.match(AutolevParser.ID) self.state = 381 self.match(AutolevParser.T__0) self.state = 382 self.expr(0) self.state = 387 self._errHandler.sync(self) _la = self._input.LA(1) while _la==AutolevParser.T__9: self.state = 383 self.match(AutolevParser.T__9) self.state = 384 self.expr(0) self.state = 389 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 390 self.match(AutolevParser.T__1) pass elif la_ == 8: localctx = AutolevParser.FunctionContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 392 self.functionCall() pass elif la_ == 9: localctx = AutolevParser.MatricesContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 393 self.matrix() pass elif la_ == 10: localctx = AutolevParser.ParensContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 394 self.match(AutolevParser.T__11) self.state = 395 self.expr(0) self.state = 396 self.match(AutolevParser.T__12) pass elif la_ == 11: localctx = AutolevParser.RangessContext(self, localctx) self._ctx = localctx _prevctx = localctx self.state = 399 self._errHandler.sync(self) _la = self._input.LA(1) if _la==AutolevParser.ID: self.state = 398 self.match(AutolevParser.ID) self.state = 401 self.ranges() self.state = 405 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,46,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: self.state = 402 self.match(AutolevParser.T__10) self.state = 407 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,46,self._ctx) pass self._ctx.stop = self._input.LT(-1) self.state = 427 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,49,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: if self._parseListeners is not None: self.triggerExitRuleEvent() _prevctx = localctx self.state = 425 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,48,self._ctx) if la_ == 1: localctx = AutolevParser.ExponentContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState)) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 410 if not self.precpred(self._ctx, 16): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 16)") self.state = 411 self.match(AutolevParser.T__23) self.state = 412 self.expr(17) pass elif la_ == 2: localctx = AutolevParser.MulDivContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState)) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 413 if not self.precpred(self._ctx, 15): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 15)") self.state = 414 _la = self._input.LA(1) if not(_la==AutolevParser.T__24 or _la==AutolevParser.T__25): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 415 self.expr(16) pass elif la_ == 3: localctx = AutolevParser.AddSubContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState)) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 416 if not self.precpred(self._ctx, 14): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 14)") self.state = 417 _la = self._input.LA(1) if not(_la==AutolevParser.T__16 or _la==AutolevParser.T__17): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 418 self.expr(15) pass elif la_ == 4: localctx = AutolevParser.IdEqualsExprContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState)) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 419 if not self.precpred(self._ctx, 3): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") self.state = 420 self.match(AutolevParser.T__2) self.state = 421 self.expr(4) pass elif la_ == 5: localctx = AutolevParser.ColonContext(self, AutolevParser.ExprContext(self, _parentctx, _parentState)) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 422 if not self.precpred(self._ctx, 2): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") self.state = 423 self.match(AutolevParser.T__15) self.state = 424 self.expr(3) pass self.state = 429 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,49,self._ctx) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.unrollRecursionContexts(_parentctx) return localctx def sempred(self, localctx, ruleIndex, predIndex): if self._predicates == None: self._predicates = dict() self._predicates[27] = self.expr_sempred pred = self._predicates.get(ruleIndex, None) if pred is None: raise Exception("No predicate with index:" + str(ruleIndex)) else: return pred(localctx, predIndex) def expr_sempred(self, localctx, predIndex): if predIndex == 0: return self.precpred(self._ctx, 16) if predIndex == 1: return self.precpred(self._ctx, 15) if predIndex == 2: return self.precpred(self._ctx, 14) if predIndex == 3: return self.precpred(self._ctx, 3) if predIndex == 4: return self.precpred(self._ctx, 2)