diff options
Diffstat (limited to 'qface/idl/parser/TParser.py')
-rw-r--r-- | qface/idl/parser/TParser.py | 987 |
1 files changed, 566 insertions, 421 deletions
diff --git a/qface/idl/parser/TParser.py b/qface/idl/parser/TParser.py index 15eadd6..835f86c 100644 --- a/qface/idl/parser/TParser.py +++ b/qface/idl/parser/TParser.py @@ -5,147 +5,156 @@ from io import StringIO def serializedATN(): with StringIO() as buf: - buf.write("\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3%") - buf.write("\u0131\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\'") + buf.write("\u0142\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") - buf.write("\t\31\3\2\3\2\7\2\65\n\2\f\2\16\28\13\2\3\3\3\3\7\3<\n") - buf.write("\3\f\3\16\3?\13\3\3\4\3\4\3\4\3\4\5\4E\n\4\3\5\5\5H\n") - buf.write("\5\3\5\7\5K\n\5\f\5\16\5N\13\5\3\5\3\5\3\5\3\5\5\5T\n") - buf.write("\5\3\6\3\6\3\6\5\6Y\n\6\3\7\5\7\\\n\7\3\7\7\7_\n\7\f\7") - buf.write("\16\7b\13\7\3\7\3\7\3\7\3\7\7\7h\n\7\f\7\16\7k\13\7\3") - buf.write("\7\3\7\5\7o\n\7\3\b\3\b\3\b\5\bt\n\b\3\t\5\tw\n\t\3\t") - buf.write("\7\tz\n\t\f\t\16\t}\13\t\3\t\3\t\5\t\u0081\n\t\3\t\3\t") - buf.write("\3\t\7\t\u0086\n\t\f\t\16\t\u0089\13\t\3\t\3\t\5\t\u008d") - buf.write("\n\t\3\n\5\n\u0090\n\n\3\n\7\n\u0093\n\n\f\n\16\n\u0096") - buf.write("\13\n\3\n\3\n\3\n\3\n\7\n\u009c\n\n\f\n\16\n\u009f\13") - buf.write("\n\3\n\3\n\5\n\u00a3\n\n\3\13\5\13\u00a6\n\13\3\13\7\13") - buf.write("\u00a9\n\13\f\13\16\13\u00ac\13\13\3\13\5\13\u00af\n\13") - buf.write("\3\13\3\13\3\13\5\13\u00b4\n\13\3\f\3\f\3\f\5\f\u00b9") - buf.write("\n\f\3\r\3\r\3\16\3\16\3\16\5\16\u00c0\n\16\3\16\5\16") - buf.write("\u00c3\n\16\3\17\3\17\3\17\3\17\5\17\u00c9\n\17\3\20\3") - buf.write("\20\3\21\3\21\3\21\3\21\3\21\5\21\u00d2\n\21\3\22\3\22") - buf.write("\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\24\5\24\u00df") - buf.write("\n\24\3\24\7\24\u00e2\n\24\f\24\16\24\u00e5\13\24\3\24") - buf.write("\3\24\3\24\3\24\7\24\u00eb\n\24\f\24\16\24\u00ee\13\24") - buf.write("\3\24\3\24\5\24\u00f2\n\24\3\25\5\25\u00f5\n\25\3\25\7") - buf.write("\25\u00f8\n\25\f\25\16\25\u00fb\13\25\3\25\3\25\3\25\5") - buf.write("\25\u0100\n\25\3\26\5\26\u0103\n\26\3\26\7\26\u0106\n") - buf.write("\26\f\26\16\26\u0109\13\26\3\26\3\26\3\26\3\26\7\26\u010f") - buf.write("\n\26\f\26\16\26\u0112\13\26\3\26\3\26\5\26\u0116\n\26") - buf.write("\3\27\3\27\5\27\u011a\n\27\3\30\5\30\u011d\n\30\3\30\7") - buf.write("\30\u0120\n\30\f\30\16\30\u0123\13\30\3\30\3\30\3\30\5") - buf.write("\30\u0128\n\30\3\30\5\30\u012b\n\30\3\31\3\31\5\31\u012f") - buf.write("\n\31\3\31\2\2\32\2\4\6\b\n\f\16\20\22\24\26\30\32\34") - buf.write("\36 \"$&(*,.\60\2\2\u014e\2\62\3\2\2\2\49\3\2\2\2\6@\3") - buf.write("\2\2\2\bG\3\2\2\2\nX\3\2\2\2\f[\3\2\2\2\16s\3\2\2\2\20") - buf.write("v\3\2\2\2\22\u008f\3\2\2\2\24\u00a5\3\2\2\2\26\u00b5\3") - buf.write("\2\2\2\30\u00ba\3\2\2\2\32\u00bc\3\2\2\2\34\u00c8\3\2") - buf.write("\2\2\36\u00ca\3\2\2\2 \u00d1\3\2\2\2\"\u00d3\3\2\2\2$") - buf.write("\u00d8\3\2\2\2&\u00de\3\2\2\2(\u00f4\3\2\2\2*\u0102\3") - buf.write("\2\2\2,\u0119\3\2\2\2.\u011c\3\2\2\2\60\u012e\3\2\2\2") - buf.write("\62\66\5\4\3\2\63\65\5\n\6\2\64\63\3\2\2\2\658\3\2\2\2") - buf.write("\66\64\3\2\2\2\66\67\3\2\2\2\67\3\3\2\2\28\66\3\2\2\2") - buf.write("9=\5\b\5\2:<\5\6\4\2;:\3\2\2\2<?\3\2\2\2=;\3\2\2\2=>\3") - buf.write("\2\2\2>\5\3\2\2\2?=\3\2\2\2@A\7\3\2\2AB\7 \2\2BD\7!\2") - buf.write("\2CE\7\4\2\2DC\3\2\2\2DE\3\2\2\2E\7\3\2\2\2FH\7\"\2\2") - buf.write("GF\3\2\2\2GH\3\2\2\2HL\3\2\2\2IK\5\30\r\2JI\3\2\2\2KN") - buf.write("\3\2\2\2LJ\3\2\2\2LM\3\2\2\2MO\3\2\2\2NL\3\2\2\2OP\7\5") - buf.write("\2\2PQ\7 \2\2QS\7!\2\2RT\7\4\2\2SR\3\2\2\2ST\3\2\2\2T") - buf.write("\t\3\2\2\2UY\5\f\7\2VY\5&\24\2WY\5*\26\2XU\3\2\2\2XV\3") - buf.write("\2\2\2XW\3\2\2\2Y\13\3\2\2\2Z\\\7\"\2\2[Z\3\2\2\2[\\\3") - buf.write("\2\2\2\\`\3\2\2\2]_\5\30\r\2^]\3\2\2\2_b\3\2\2\2`^\3\2") - buf.write("\2\2`a\3\2\2\2ac\3\2\2\2b`\3\2\2\2cd\7\6\2\2de\7 \2\2") - buf.write("ei\7\7\2\2fh\5\16\b\2gf\3\2\2\2hk\3\2\2\2ig\3\2\2\2ij") - buf.write("\3\2\2\2jl\3\2\2\2ki\3\2\2\2ln\7\b\2\2mo\7\4\2\2nm\3\2") - buf.write("\2\2no\3\2\2\2o\r\3\2\2\2pt\5\20\t\2qt\5\24\13\2rt\5\22") - buf.write("\n\2sp\3\2\2\2sq\3\2\2\2sr\3\2\2\2t\17\3\2\2\2uw\7\"\2") - buf.write("\2vu\3\2\2\2vw\3\2\2\2w{\3\2\2\2xz\5\30\r\2yx\3\2\2\2") - buf.write("z}\3\2\2\2{y\3\2\2\2{|\3\2\2\2|\u0080\3\2\2\2}{\3\2\2") - buf.write("\2~\u0081\5\34\17\2\177\u0081\7\t\2\2\u0080~\3\2\2\2\u0080") - buf.write("\177\3\2\2\2\u0081\u0082\3\2\2\2\u0082\u0083\7 \2\2\u0083") - buf.write("\u0087\7\n\2\2\u0084\u0086\5\26\f\2\u0085\u0084\3\2\2") - buf.write("\2\u0086\u0089\3\2\2\2\u0087\u0085\3\2\2\2\u0087\u0088") - buf.write("\3\2\2\2\u0088\u008a\3\2\2\2\u0089\u0087\3\2\2\2\u008a") - buf.write("\u008c\7\13\2\2\u008b\u008d\7\4\2\2\u008c\u008b\3\2\2") - buf.write("\2\u008c\u008d\3\2\2\2\u008d\21\3\2\2\2\u008e\u0090\7") - buf.write("\"\2\2\u008f\u008e\3\2\2\2\u008f\u0090\3\2\2\2\u0090\u0094") - buf.write("\3\2\2\2\u0091\u0093\5\30\r\2\u0092\u0091\3\2\2\2\u0093") - buf.write("\u0096\3\2\2\2\u0094\u0092\3\2\2\2\u0094\u0095\3\2\2\2") - buf.write("\u0095\u0097\3\2\2\2\u0096\u0094\3\2\2\2\u0097\u0098\7") - buf.write("\f\2\2\u0098\u0099\7 \2\2\u0099\u009d\7\n\2\2\u009a\u009c") - buf.write("\5\26\f\2\u009b\u009a\3\2\2\2\u009c\u009f\3\2\2\2\u009d") - buf.write("\u009b\3\2\2\2\u009d\u009e\3\2\2\2\u009e\u00a0\3\2\2\2") - buf.write("\u009f\u009d\3\2\2\2\u00a0\u00a2\7\13\2\2\u00a1\u00a3") - buf.write("\7\4\2\2\u00a2\u00a1\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3") - buf.write("\23\3\2\2\2\u00a4\u00a6\7\"\2\2\u00a5\u00a4\3\2\2\2\u00a5") - buf.write("\u00a6\3\2\2\2\u00a6\u00aa\3\2\2\2\u00a7\u00a9\5\30\r") - buf.write("\2\u00a8\u00a7\3\2\2\2\u00a9\u00ac\3\2\2\2\u00aa\u00a8") - buf.write("\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00ae\3\2\2\2\u00ac") - buf.write("\u00aa\3\2\2\2\u00ad\u00af\7\r\2\2\u00ae\u00ad\3\2\2\2") - buf.write("\u00ae\u00af\3\2\2\2\u00af\u00b0\3\2\2\2\u00b0\u00b1\5") - buf.write("\34\17\2\u00b1\u00b3\7 \2\2\u00b2\u00b4\7\4\2\2\u00b3") - buf.write("\u00b2\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4\25\3\2\2\2\u00b5") - buf.write("\u00b6\5\34\17\2\u00b6\u00b8\7 \2\2\u00b7\u00b9\7\16\2") - buf.write("\2\u00b8\u00b7\3\2\2\2\u00b8\u00b9\3\2\2\2\u00b9\27\3") - buf.write("\2\2\2\u00ba\u00bb\7\34\2\2\u00bb\31\3\2\2\2\u00bc\u00bf") - buf.write("\7 \2\2\u00bd\u00be\7\17\2\2\u00be\u00c0\7 \2\2\u00bf") - buf.write("\u00bd\3\2\2\2\u00bf\u00c0\3\2\2\2\u00c0\u00c2\3\2\2\2") - buf.write("\u00c1\u00c3\7\16\2\2\u00c2\u00c1\3\2\2\2\u00c2\u00c3") - buf.write("\3\2\2\2\u00c3\33\3\2\2\2\u00c4\u00c9\5 \21\2\u00c5\u00c9") - buf.write("\5\36\20\2\u00c6\u00c9\5\"\22\2\u00c7\u00c9\5$\23\2\u00c8") - buf.write("\u00c4\3\2\2\2\u00c8\u00c5\3\2\2\2\u00c8\u00c6\3\2\2\2") - buf.write("\u00c8\u00c7\3\2\2\2\u00c9\35\3\2\2\2\u00ca\u00cb\7 \2") - buf.write("\2\u00cb\37\3\2\2\2\u00cc\u00d2\7\20\2\2\u00cd\u00d2\7") - buf.write("\21\2\2\u00ce\u00d2\7\22\2\2\u00cf\u00d2\7\23\2\2\u00d0") - buf.write("\u00d2\7\24\2\2\u00d1\u00cc\3\2\2\2\u00d1\u00cd\3\2\2") - buf.write("\2\u00d1\u00ce\3\2\2\2\u00d1\u00cf\3\2\2\2\u00d1\u00d0") - buf.write("\3\2\2\2\u00d2!\3\2\2\2\u00d3\u00d4\7\25\2\2\u00d4\u00d5") - buf.write("\7\26\2\2\u00d5\u00d6\5\34\17\2\u00d6\u00d7\7\27\2\2\u00d7") - buf.write("#\3\2\2\2\u00d8\u00d9\7\30\2\2\u00d9\u00da\7\26\2\2\u00da") - buf.write("\u00db\5\34\17\2\u00db\u00dc\7\27\2\2\u00dc%\3\2\2\2\u00dd") - buf.write("\u00df\7\"\2\2\u00de\u00dd\3\2\2\2\u00de\u00df\3\2\2\2") - buf.write("\u00df\u00e3\3\2\2\2\u00e0\u00e2\5\30\r\2\u00e1\u00e0") - buf.write("\3\2\2\2\u00e2\u00e5\3\2\2\2\u00e3\u00e1\3\2\2\2\u00e3") - buf.write("\u00e4\3\2\2\2\u00e4\u00e6\3\2\2\2\u00e5\u00e3\3\2\2\2") - buf.write("\u00e6\u00e7\7\31\2\2\u00e7\u00e8\7 \2\2\u00e8\u00ec\7") - buf.write("\7\2\2\u00e9\u00eb\5(\25\2\u00ea\u00e9\3\2\2\2\u00eb\u00ee") - buf.write("\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed") - buf.write("\u00ef\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ef\u00f1\7\b\2\2") - buf.write("\u00f0\u00f2\7\4\2\2\u00f1\u00f0\3\2\2\2\u00f1\u00f2\3") - buf.write("\2\2\2\u00f2\'\3\2\2\2\u00f3\u00f5\7\"\2\2\u00f4\u00f3") - buf.write("\3\2\2\2\u00f4\u00f5\3\2\2\2\u00f5\u00f9\3\2\2\2\u00f6") - buf.write("\u00f8\5\30\r\2\u00f7\u00f6\3\2\2\2\u00f8\u00fb\3\2\2") - buf.write("\2\u00f9\u00f7\3\2\2\2\u00f9\u00fa\3\2\2\2\u00fa\u00fc") - buf.write("\3\2\2\2\u00fb\u00f9\3\2\2\2\u00fc\u00fd\5\34\17\2\u00fd") - buf.write("\u00ff\7 \2\2\u00fe\u0100\7\4\2\2\u00ff\u00fe\3\2\2\2") - buf.write("\u00ff\u0100\3\2\2\2\u0100)\3\2\2\2\u0101\u0103\7\"\2") - buf.write("\2\u0102\u0101\3\2\2\2\u0102\u0103\3\2\2\2\u0103\u0107") - buf.write("\3\2\2\2\u0104\u0106\5\30\r\2\u0105\u0104\3\2\2\2\u0106") - buf.write("\u0109\3\2\2\2\u0107\u0105\3\2\2\2\u0107\u0108\3\2\2\2") - buf.write("\u0108\u010a\3\2\2\2\u0109\u0107\3\2\2\2\u010a\u010b\5") - buf.write(",\27\2\u010b\u010c\7 \2\2\u010c\u0110\7\7\2\2\u010d\u010f") - buf.write("\5.\30\2\u010e\u010d\3\2\2\2\u010f\u0112\3\2\2\2\u0110") - buf.write("\u010e\3\2\2\2\u0110\u0111\3\2\2\2\u0111\u0113\3\2\2\2") - buf.write("\u0112\u0110\3\2\2\2\u0113\u0115\7\b\2\2\u0114\u0116\7") - buf.write("\4\2\2\u0115\u0114\3\2\2\2\u0115\u0116\3\2\2\2\u0116+") - buf.write("\3\2\2\2\u0117\u011a\7\32\2\2\u0118\u011a\7\33\2\2\u0119") - buf.write("\u0117\3\2\2\2\u0119\u0118\3\2\2\2\u011a-\3\2\2\2\u011b") - buf.write("\u011d\7\"\2\2\u011c\u011b\3\2\2\2\u011c\u011d\3\2\2\2") - buf.write("\u011d\u0121\3\2\2\2\u011e\u0120\5\30\r\2\u011f\u011e") - buf.write("\3\2\2\2\u0120\u0123\3\2\2\2\u0121\u011f\3\2\2\2\u0121") - buf.write("\u0122\3\2\2\2\u0122\u0124\3\2\2\2\u0123\u0121\3\2\2\2") - buf.write("\u0124\u0127\7 \2\2\u0125\u0126\7\17\2\2\u0126\u0128\5") - buf.write("\60\31\2\u0127\u0125\3\2\2\2\u0127\u0128\3\2\2\2\u0128") - buf.write("\u012a\3\2\2\2\u0129\u012b\7\16\2\2\u012a\u0129\3\2\2") - buf.write("\2\u012a\u012b\3\2\2\2\u012b/\3\2\2\2\u012c\u012f\7\35") - buf.write("\2\2\u012d\u012f\7\36\2\2\u012e\u012c\3\2\2\2\u012e\u012d") - buf.write("\3\2\2\2\u012f\61\3\2\2\2\61\66=DGLSX[`insv{\u0080\u0087") - buf.write("\u008c\u008f\u0094\u009d\u00a2\u00a5\u00aa\u00ae\u00b3") - buf.write("\u00b8\u00bf\u00c2\u00c8\u00d1\u00de\u00e3\u00ec\u00f1") - buf.write("\u00f4\u00f9\u00ff\u0102\u0107\u0110\u0115\u0119\u011c") - buf.write("\u0121\u0127\u012a\u012e") + buf.write("\t\31\4\32\t\32\4\33\t\33\3\2\3\2\7\29\n\2\f\2\16\2<\13") + buf.write("\2\3\3\3\3\7\3@\n\3\f\3\16\3C\13\3\3\4\3\4\3\4\3\4\5\4") + buf.write("I\n\4\3\5\5\5L\n\5\3\5\7\5O\n\5\f\5\16\5R\13\5\3\5\3\5") + buf.write("\3\5\3\5\5\5X\n\5\3\6\3\6\3\6\5\6]\n\6\3\7\5\7`\n\7\3") + buf.write("\7\7\7c\n\7\f\7\16\7f\13\7\3\7\3\7\3\7\3\7\5\7l\n\7\3") + buf.write("\7\3\7\7\7p\n\7\f\7\16\7s\13\7\3\7\3\7\5\7w\n\7\3\b\3") + buf.write("\b\3\b\5\b|\n\b\3\t\5\t\177\n\t\3\t\7\t\u0082\n\t\f\t") + buf.write("\16\t\u0085\13\t\3\t\3\t\5\t\u0089\n\t\3\t\3\t\3\t\7\t") + buf.write("\u008e\n\t\f\t\16\t\u0091\13\t\3\t\3\t\5\t\u0095\n\t\3") + buf.write("\t\5\t\u0098\n\t\3\n\3\n\3\13\5\13\u009d\n\13\3\13\7\13") + buf.write("\u00a0\n\13\f\13\16\13\u00a3\13\13\3\13\3\13\3\13\3\13") + buf.write("\7\13\u00a9\n\13\f\13\16\13\u00ac\13\13\3\13\3\13\5\13") + buf.write("\u00b0\n\13\3\f\5\f\u00b3\n\f\3\f\7\f\u00b6\n\f\f\f\16") + buf.write("\f\u00b9\13\f\3\f\5\f\u00bc\n\f\3\f\3\f\3\f\5\f\u00c1") + buf.write("\n\f\3\r\3\r\5\r\u00c5\n\r\3\16\3\16\3\16\5\16\u00ca\n") + buf.write("\16\3\17\3\17\3\20\3\20\3\20\5\20\u00d1\n\20\3\20\5\20") + buf.write("\u00d4\n\20\3\21\3\21\3\21\3\21\5\21\u00da\n\21\3\22\3") + buf.write("\22\3\23\3\23\3\23\3\23\3\23\5\23\u00e3\n\23\3\24\3\24") + buf.write("\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\26\5\26\u00f0") + buf.write("\n\26\3\26\7\26\u00f3\n\26\f\26\16\26\u00f6\13\26\3\26") + buf.write("\3\26\3\26\3\26\7\26\u00fc\n\26\f\26\16\26\u00ff\13\26") + buf.write("\3\26\3\26\5\26\u0103\n\26\3\27\5\27\u0106\n\27\3\27\7") + buf.write("\27\u0109\n\27\f\27\16\27\u010c\13\27\3\27\3\27\3\27\5") + buf.write("\27\u0111\n\27\3\30\5\30\u0114\n\30\3\30\7\30\u0117\n") + buf.write("\30\f\30\16\30\u011a\13\30\3\30\3\30\3\30\3\30\7\30\u0120") + buf.write("\n\30\f\30\16\30\u0123\13\30\3\30\3\30\5\30\u0127\n\30") + buf.write("\3\31\3\31\5\31\u012b\n\31\3\32\5\32\u012e\n\32\3\32\7") + buf.write("\32\u0131\n\32\f\32\16\32\u0134\13\32\3\32\3\32\3\32\5") + buf.write("\32\u0139\n\32\3\32\5\32\u013c\n\32\3\33\3\33\5\33\u0140") + buf.write("\n\33\3\33\2\2\34\2\4\6\b\n\f\16\20\22\24\26\30\32\34") + buf.write("\36 \"$&(*,.\60\62\64\2\2\u0160\2\66\3\2\2\2\4=\3\2\2") + buf.write("\2\6D\3\2\2\2\bK\3\2\2\2\n\\\3\2\2\2\f_\3\2\2\2\16{\3") + buf.write("\2\2\2\20~\3\2\2\2\22\u0099\3\2\2\2\24\u009c\3\2\2\2\26") + buf.write("\u00b2\3\2\2\2\30\u00c4\3\2\2\2\32\u00c6\3\2\2\2\34\u00cb") + buf.write("\3\2\2\2\36\u00cd\3\2\2\2 \u00d9\3\2\2\2\"\u00db\3\2\2") + buf.write("\2$\u00e2\3\2\2\2&\u00e4\3\2\2\2(\u00e9\3\2\2\2*\u00ef") + buf.write("\3\2\2\2,\u0105\3\2\2\2.\u0113\3\2\2\2\60\u012a\3\2\2") + buf.write("\2\62\u012d\3\2\2\2\64\u013f\3\2\2\2\66:\5\4\3\2\679\5") + buf.write("\n\6\28\67\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\3\3") + buf.write("\2\2\2<:\3\2\2\2=A\5\b\5\2>@\5\6\4\2?>\3\2\2\2@C\3\2\2") + buf.write("\2A?\3\2\2\2AB\3\2\2\2B\5\3\2\2\2CA\3\2\2\2DE\7\3\2\2") + buf.write("EF\7\"\2\2FH\7#\2\2GI\7\4\2\2HG\3\2\2\2HI\3\2\2\2I\7\3") + buf.write("\2\2\2JL\7$\2\2KJ\3\2\2\2KL\3\2\2\2LP\3\2\2\2MO\5\34\17") + buf.write("\2NM\3\2\2\2OR\3\2\2\2PN\3\2\2\2PQ\3\2\2\2QS\3\2\2\2R") + buf.write("P\3\2\2\2ST\7\5\2\2TU\7\"\2\2UW\7#\2\2VX\7\4\2\2WV\3\2") + buf.write("\2\2WX\3\2\2\2X\t\3\2\2\2Y]\5\f\7\2Z]\5*\26\2[]\5.\30") + buf.write("\2\\Y\3\2\2\2\\Z\3\2\2\2\\[\3\2\2\2]\13\3\2\2\2^`\7$\2") + buf.write("\2_^\3\2\2\2_`\3\2\2\2`d\3\2\2\2ac\5\34\17\2ba\3\2\2\2") + buf.write("cf\3\2\2\2db\3\2\2\2de\3\2\2\2eg\3\2\2\2fd\3\2\2\2gh\7") + buf.write("\6\2\2hk\7\"\2\2ij\7\7\2\2jl\7\"\2\2ki\3\2\2\2kl\3\2\2") + buf.write("\2lm\3\2\2\2mq\7\b\2\2np\5\16\b\2on\3\2\2\2ps\3\2\2\2") + buf.write("qo\3\2\2\2qr\3\2\2\2rt\3\2\2\2sq\3\2\2\2tv\7\t\2\2uw\7") + buf.write("\4\2\2vu\3\2\2\2vw\3\2\2\2w\r\3\2\2\2x|\5\20\t\2y|\5\26") + buf.write("\f\2z|\5\24\13\2{x\3\2\2\2{y\3\2\2\2{z\3\2\2\2|\17\3\2") + buf.write("\2\2}\177\7$\2\2~}\3\2\2\2~\177\3\2\2\2\177\u0083\3\2") + buf.write("\2\2\u0080\u0082\5\34\17\2\u0081\u0080\3\2\2\2\u0082\u0085") + buf.write("\3\2\2\2\u0083\u0081\3\2\2\2\u0083\u0084\3\2\2\2\u0084") + buf.write("\u0088\3\2\2\2\u0085\u0083\3\2\2\2\u0086\u0089\5 \21\2") + buf.write("\u0087\u0089\7\n\2\2\u0088\u0086\3\2\2\2\u0088\u0087\3") + buf.write("\2\2\2\u0089\u008a\3\2\2\2\u008a\u008b\7\"\2\2\u008b\u008f") + buf.write("\7\13\2\2\u008c\u008e\5\32\16\2\u008d\u008c\3\2\2\2\u008e") + buf.write("\u0091\3\2\2\2\u008f\u008d\3\2\2\2\u008f\u0090\3\2\2\2") + buf.write("\u0090\u0092\3\2\2\2\u0091\u008f\3\2\2\2\u0092\u0094\7") + buf.write("\f\2\2\u0093\u0095\5\22\n\2\u0094\u0093\3\2\2\2\u0094") + buf.write("\u0095\3\2\2\2\u0095\u0097\3\2\2\2\u0096\u0098\7\4\2\2") + buf.write("\u0097\u0096\3\2\2\2\u0097\u0098\3\2\2\2\u0098\21\3\2") + buf.write("\2\2\u0099\u009a\7\r\2\2\u009a\23\3\2\2\2\u009b\u009d") + buf.write("\7$\2\2\u009c\u009b\3\2\2\2\u009c\u009d\3\2\2\2\u009d") + buf.write("\u00a1\3\2\2\2\u009e\u00a0\5\34\17\2\u009f\u009e\3\2\2") + buf.write("\2\u00a0\u00a3\3\2\2\2\u00a1\u009f\3\2\2\2\u00a1\u00a2") + buf.write("\3\2\2\2\u00a2\u00a4\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a4") + buf.write("\u00a5\7\16\2\2\u00a5\u00a6\7\"\2\2\u00a6\u00aa\7\13\2") + buf.write("\2\u00a7\u00a9\5\32\16\2\u00a8\u00a7\3\2\2\2\u00a9\u00ac") + buf.write("\3\2\2\2\u00aa\u00a8\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab") + buf.write("\u00ad\3\2\2\2\u00ac\u00aa\3\2\2\2\u00ad\u00af\7\f\2\2") + buf.write("\u00ae\u00b0\7\4\2\2\u00af\u00ae\3\2\2\2\u00af\u00b0\3") + buf.write("\2\2\2\u00b0\25\3\2\2\2\u00b1\u00b3\7$\2\2\u00b2\u00b1") + buf.write("\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3\u00b7\3\2\2\2\u00b4") + buf.write("\u00b6\5\34\17\2\u00b5\u00b4\3\2\2\2\u00b6\u00b9\3\2\2") + buf.write("\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00bb") + buf.write("\3\2\2\2\u00b9\u00b7\3\2\2\2\u00ba\u00bc\5\30\r\2\u00bb") + buf.write("\u00ba\3\2\2\2\u00bb\u00bc\3\2\2\2\u00bc\u00bd\3\2\2\2") + buf.write("\u00bd\u00be\5 \21\2\u00be\u00c0\7\"\2\2\u00bf\u00c1\7") + buf.write("\4\2\2\u00c0\u00bf\3\2\2\2\u00c0\u00c1\3\2\2\2\u00c1\27") + buf.write("\3\2\2\2\u00c2\u00c5\7\17\2\2\u00c3\u00c5\7\r\2\2\u00c4") + buf.write("\u00c2\3\2\2\2\u00c4\u00c3\3\2\2\2\u00c5\31\3\2\2\2\u00c6") + buf.write("\u00c7\5 \21\2\u00c7\u00c9\7\"\2\2\u00c8\u00ca\7\20\2") + buf.write("\2\u00c9\u00c8\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\33\3") + buf.write("\2\2\2\u00cb\u00cc\7\36\2\2\u00cc\35\3\2\2\2\u00cd\u00d0") + buf.write("\7\"\2\2\u00ce\u00cf\7\21\2\2\u00cf\u00d1\7\"\2\2\u00d0") + buf.write("\u00ce\3\2\2\2\u00d0\u00d1\3\2\2\2\u00d1\u00d3\3\2\2\2") + buf.write("\u00d2\u00d4\7\20\2\2\u00d3\u00d2\3\2\2\2\u00d3\u00d4") + buf.write("\3\2\2\2\u00d4\37\3\2\2\2\u00d5\u00da\5$\23\2\u00d6\u00da") + buf.write("\5\"\22\2\u00d7\u00da\5&\24\2\u00d8\u00da\5(\25\2\u00d9") + buf.write("\u00d5\3\2\2\2\u00d9\u00d6\3\2\2\2\u00d9\u00d7\3\2\2\2") + buf.write("\u00d9\u00d8\3\2\2\2\u00da!\3\2\2\2\u00db\u00dc\7\"\2") + buf.write("\2\u00dc#\3\2\2\2\u00dd\u00e3\7\22\2\2\u00de\u00e3\7\23") + buf.write("\2\2\u00df\u00e3\7\24\2\2\u00e0\u00e3\7\25\2\2\u00e1\u00e3") + buf.write("\7\26\2\2\u00e2\u00dd\3\2\2\2\u00e2\u00de\3\2\2\2\u00e2") + buf.write("\u00df\3\2\2\2\u00e2\u00e0\3\2\2\2\u00e2\u00e1\3\2\2\2") + buf.write("\u00e3%\3\2\2\2\u00e4\u00e5\7\27\2\2\u00e5\u00e6\7\30") + buf.write("\2\2\u00e6\u00e7\5 \21\2\u00e7\u00e8\7\31\2\2\u00e8\'") + buf.write("\3\2\2\2\u00e9\u00ea\7\32\2\2\u00ea\u00eb\7\30\2\2\u00eb") + buf.write("\u00ec\5 \21\2\u00ec\u00ed\7\31\2\2\u00ed)\3\2\2\2\u00ee") + buf.write("\u00f0\7$\2\2\u00ef\u00ee\3\2\2\2\u00ef\u00f0\3\2\2\2") + buf.write("\u00f0\u00f4\3\2\2\2\u00f1\u00f3\5\34\17\2\u00f2\u00f1") + buf.write("\3\2\2\2\u00f3\u00f6\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f4") + buf.write("\u00f5\3\2\2\2\u00f5\u00f7\3\2\2\2\u00f6\u00f4\3\2\2\2") + buf.write("\u00f7\u00f8\7\33\2\2\u00f8\u00f9\7\"\2\2\u00f9\u00fd") + buf.write("\7\b\2\2\u00fa\u00fc\5,\27\2\u00fb\u00fa\3\2\2\2\u00fc") + buf.write("\u00ff\3\2\2\2\u00fd\u00fb\3\2\2\2\u00fd\u00fe\3\2\2\2") + buf.write("\u00fe\u0100\3\2\2\2\u00ff\u00fd\3\2\2\2\u0100\u0102\7") + buf.write("\t\2\2\u0101\u0103\7\4\2\2\u0102\u0101\3\2\2\2\u0102\u0103") + buf.write("\3\2\2\2\u0103+\3\2\2\2\u0104\u0106\7$\2\2\u0105\u0104") + buf.write("\3\2\2\2\u0105\u0106\3\2\2\2\u0106\u010a\3\2\2\2\u0107") + buf.write("\u0109\5\34\17\2\u0108\u0107\3\2\2\2\u0109\u010c\3\2\2") + buf.write("\2\u010a\u0108\3\2\2\2\u010a\u010b\3\2\2\2\u010b\u010d") + buf.write("\3\2\2\2\u010c\u010a\3\2\2\2\u010d\u010e\5 \21\2\u010e") + buf.write("\u0110\7\"\2\2\u010f\u0111\7\4\2\2\u0110\u010f\3\2\2\2") + buf.write("\u0110\u0111\3\2\2\2\u0111-\3\2\2\2\u0112\u0114\7$\2\2") + buf.write("\u0113\u0112\3\2\2\2\u0113\u0114\3\2\2\2\u0114\u0118\3") + buf.write("\2\2\2\u0115\u0117\5\34\17\2\u0116\u0115\3\2\2\2\u0117") + buf.write("\u011a\3\2\2\2\u0118\u0116\3\2\2\2\u0118\u0119\3\2\2\2") + buf.write("\u0119\u011b\3\2\2\2\u011a\u0118\3\2\2\2\u011b\u011c\5") + buf.write("\60\31\2\u011c\u011d\7\"\2\2\u011d\u0121\7\b\2\2\u011e") + buf.write("\u0120\5\62\32\2\u011f\u011e\3\2\2\2\u0120\u0123\3\2\2") + buf.write("\2\u0121\u011f\3\2\2\2\u0121\u0122\3\2\2\2\u0122\u0124") + buf.write("\3\2\2\2\u0123\u0121\3\2\2\2\u0124\u0126\7\t\2\2\u0125") + buf.write("\u0127\7\4\2\2\u0126\u0125\3\2\2\2\u0126\u0127\3\2\2\2") + buf.write("\u0127/\3\2\2\2\u0128\u012b\7\34\2\2\u0129\u012b\7\35") + buf.write("\2\2\u012a\u0128\3\2\2\2\u012a\u0129\3\2\2\2\u012b\61") + buf.write("\3\2\2\2\u012c\u012e\7$\2\2\u012d\u012c\3\2\2\2\u012d") + buf.write("\u012e\3\2\2\2\u012e\u0132\3\2\2\2\u012f\u0131\5\34\17") + buf.write("\2\u0130\u012f\3\2\2\2\u0131\u0134\3\2\2\2\u0132\u0130") + buf.write("\3\2\2\2\u0132\u0133\3\2\2\2\u0133\u0135\3\2\2\2\u0134") + buf.write("\u0132\3\2\2\2\u0135\u0138\7\"\2\2\u0136\u0137\7\21\2") + buf.write("\2\u0137\u0139\5\64\33\2\u0138\u0136\3\2\2\2\u0138\u0139") + buf.write("\3\2\2\2\u0139\u013b\3\2\2\2\u013a\u013c\7\20\2\2\u013b") + buf.write("\u013a\3\2\2\2\u013b\u013c\3\2\2\2\u013c\63\3\2\2\2\u013d") + buf.write("\u0140\7\37\2\2\u013e\u0140\7 \2\2\u013f\u013d\3\2\2\2") + buf.write("\u013f\u013e\3\2\2\2\u0140\65\3\2\2\2\64:AHKPW\\_dkqv") + buf.write("{~\u0083\u0088\u008f\u0094\u0097\u009c\u00a1\u00aa\u00af") + buf.write("\u00b2\u00b7\u00bb\u00c0\u00c4\u00c9\u00d0\u00d3\u00d9") + buf.write("\u00e2\u00ef\u00f4\u00fd\u0102\u0105\u010a\u0110\u0113") + buf.write("\u0118\u0121\u0126\u012a\u012d\u0132\u0138\u013b\u013f") return buf.getvalue() @@ -160,10 +169,10 @@ class TParser ( Parser ): sharedContextCache = PredictionContextCache() literalNames = [ "<INVALID>", "'import'", "';'", "'module'", "'interface'", - "'{'", "'}'", "'void'", "'('", "')'", "'signal'", "'readonly'", - "','", "'='", "'bool'", "'int'", "'real'", "'string'", - "'var'", "'list'", "'<'", "'>'", "'model'", "'struct'", - "'enum'", "'flag'" ] + "'extends'", "'{'", "'}'", "'void'", "'('", "')'", + "'const'", "'signal'", "'readonly'", "','", "'='", + "'bool'", "'int'", "'real'", "'string'", "'var'", "'list'", + "'<'", "'>'", "'model'", "'struct'", "'enum'", "'flag'" ] symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", @@ -171,9 +180,10 @@ class TParser ( Parser ): "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", - "<INVALID>", "<INVALID>", "TAGLINE", "INTCONSTANT", - "HEXCONSTANT", "TAGIDENTIFIER", "IDENTIFIER", "VERSION", - "DOCCOMMENT", "WHITESPACE", "COMMENT", "MULTICOMM" ] + "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", + "TAGLINE", "INTCONSTANT", "HEXCONSTANT", "TAGIDENTIFIER", + "IDENTIFIER", "VERSION", "DOCCOMMENT", "WHITESPACE", + "COMMENT", "MULTICOMM" ] RULE_documentSymbol = 0 RULE_headerSymbol = 1 @@ -183,30 +193,32 @@ class TParser ( Parser ): RULE_interfaceSymbol = 5 RULE_interfaceMemberSymbol = 6 RULE_operationSymbol = 7 - RULE_signalSymbol = 8 - RULE_propertySymbol = 9 - RULE_operationParameterSymbol = 10 - RULE_tagSymbol = 11 - RULE_tagAttributeSymbol = 12 - RULE_typeSymbol = 13 - RULE_complexTypeSymbol = 14 - RULE_primitiveTypeSymbol = 15 - RULE_listTypeSymbol = 16 - RULE_modelTypeSymbol = 17 - RULE_structSymbol = 18 - RULE_structFieldSymbol = 19 - RULE_enumSymbol = 20 - RULE_enumTypeSymbol = 21 - RULE_enumMemberSymbol = 22 - RULE_intSymbol = 23 + RULE_operationModifierSymbol = 8 + RULE_signalSymbol = 9 + RULE_propertySymbol = 10 + RULE_propertyModifierSymbol = 11 + RULE_operationParameterSymbol = 12 + RULE_tagSymbol = 13 + RULE_tagAttributeSymbol = 14 + RULE_typeSymbol = 15 + RULE_complexTypeSymbol = 16 + RULE_primitiveTypeSymbol = 17 + RULE_listTypeSymbol = 18 + RULE_modelTypeSymbol = 19 + RULE_structSymbol = 20 + RULE_structFieldSymbol = 21 + RULE_enumSymbol = 22 + RULE_enumTypeSymbol = 23 + RULE_enumMemberSymbol = 24 + RULE_intSymbol = 25 ruleNames = [ "documentSymbol", "headerSymbol", "importSymbol", "moduleSymbol", "definitionSymbol", "interfaceSymbol", "interfaceMemberSymbol", - "operationSymbol", "signalSymbol", "propertySymbol", - "operationParameterSymbol", "tagSymbol", "tagAttributeSymbol", - "typeSymbol", "complexTypeSymbol", "primitiveTypeSymbol", - "listTypeSymbol", "modelTypeSymbol", "structSymbol", - "structFieldSymbol", "enumSymbol", "enumTypeSymbol", + "operationSymbol", "operationModifierSymbol", "signalSymbol", + "propertySymbol", "propertyModifierSymbol", "operationParameterSymbol", + "tagSymbol", "tagAttributeSymbol", "typeSymbol", "complexTypeSymbol", + "primitiveTypeSymbol", "listTypeSymbol", "modelTypeSymbol", + "structSymbol", "structFieldSymbol", "enumSymbol", "enumTypeSymbol", "enumMemberSymbol", "intSymbol" ] EOF = Token.EOF @@ -235,16 +247,18 @@ class TParser ( Parser ): T__22=23 T__23=24 T__24=25 - TAGLINE=26 - INTCONSTANT=27 - HEXCONSTANT=28 - TAGIDENTIFIER=29 - IDENTIFIER=30 - VERSION=31 - DOCCOMMENT=32 - WHITESPACE=33 - COMMENT=34 - MULTICOMM=35 + T__25=26 + T__26=27 + TAGLINE=28 + INTCONSTANT=29 + HEXCONSTANT=30 + TAGIDENTIFIER=31 + IDENTIFIER=32 + VERSION=33 + DOCCOMMENT=34 + WHITESPACE=35 + COMMENT=36 + MULTICOMM=37 def __init__(self, input:TokenStream): super().__init__(input) @@ -298,15 +312,15 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 48 - self.headerSymbol() self.state = 52 + self.headerSymbol() + self.state = 56 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__3) | (1 << TParser.T__22) | (1 << TParser.T__23) | (1 << TParser.T__24) | (1 << TParser.TAGLINE) | (1 << TParser.DOCCOMMENT))) != 0): - self.state = 49 + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__3) | (1 << TParser.T__24) | (1 << TParser.T__25) | (1 << TParser.T__26) | (1 << TParser.TAGLINE) | (1 << TParser.DOCCOMMENT))) != 0): + self.state = 53 self.definitionSymbol() - self.state = 54 + self.state = 58 self._errHandler.sync(self) _la = self._input.LA(1) @@ -362,15 +376,15 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 55 - self.moduleSymbol() self.state = 59 + self.moduleSymbol() + self.state = 63 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.T__0: - self.state = 56 + self.state = 60 self.importSymbol() - self.state = 61 + self.state = 65 self._errHandler.sync(self) _la = self._input.LA(1) @@ -423,17 +437,17 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 62 + self.state = 66 self.match(TParser.T__0) - self.state = 63 + self.state = 67 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 64 + self.state = 68 localctx.version = self.match(TParser.VERSION) - self.state = 66 + self.state = 70 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 65 + self.state = 69 self.match(TParser.T__1) @@ -497,35 +511,35 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 69 + self.state = 73 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 68 + self.state = 72 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 74 + self.state = 78 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 71 + self.state = 75 self.tagSymbol() - self.state = 76 + self.state = 80 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 77 + self.state = 81 self.match(TParser.T__2) - self.state = 78 + self.state = 82 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 79 + self.state = 83 localctx.version = self.match(TParser.VERSION) - self.state = 81 + self.state = 85 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 80 + self.state = 84 self.match(TParser.T__1) @@ -580,24 +594,24 @@ class TParser ( Parser ): localctx = TParser.DefinitionSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 8, self.RULE_definitionSymbol) try: - self.state = 86 + self.state = 90 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,6,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 83 + self.state = 87 self.interfaceSymbol() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 84 + self.state = 88 self.structSymbol() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 85 + self.state = 89 self.enumSymbol() pass @@ -617,9 +631,13 @@ class TParser ( Parser ): self.parser = parser self.comment = None # Token self.name = None # Token + self.extends = None # Token - def IDENTIFIER(self): - return self.getToken(TParser.IDENTIFIER, 0) + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(TParser.IDENTIFIER) + else: + return self.getToken(TParser.IDENTIFIER, i) def tagSymbol(self, i:int=None): if i is None: @@ -665,47 +683,57 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 89 + self.state = 93 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 88 + self.state = 92 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 94 + self.state = 98 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 91 + self.state = 95 self.tagSymbol() - self.state = 96 + self.state = 100 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 97 + self.state = 101 self.match(TParser.T__3) - self.state = 98 + self.state = 102 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 99 - self.match(TParser.T__4) - self.state = 103 + self.state = 105 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__6) | (1 << TParser.T__9) | (1 << TParser.T__10) | (1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__21) | (1 << TParser.TAGLINE) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): - self.state = 100 + if _la==TParser.T__4: + self.state = 103 + self.match(TParser.T__4) + self.state = 104 + localctx.extends = self.match(TParser.IDENTIFIER) + + + self.state = 107 + self.match(TParser.T__5) + self.state = 111 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__7) | (1 << TParser.T__10) | (1 << TParser.T__11) | (1 << TParser.T__12) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__19) | (1 << TParser.T__20) | (1 << TParser.T__23) | (1 << TParser.TAGLINE) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): + self.state = 108 self.interfaceMemberSymbol() - self.state = 105 + self.state = 113 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 106 - self.match(TParser.T__5) - self.state = 108 + self.state = 114 + self.match(TParser.T__6) + self.state = 116 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 107 + self.state = 115 self.match(TParser.T__1) @@ -760,24 +788,24 @@ class TParser ( Parser ): localctx = TParser.InterfaceMemberSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_interfaceMemberSymbol) try: - self.state = 113 + self.state = 121 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,11,self._ctx) + la_ = self._interp.adaptivePredict(self._input,12,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 110 + self.state = 118 self.operationSymbol() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 111 + self.state = 119 self.propertySymbol() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 112 + self.state = 120 self.signalSymbol() pass @@ -819,6 +847,10 @@ class TParser ( Parser ): return self.getTypedRuleContext(TParser.OperationParameterSymbolContext,i) + def operationModifierSymbol(self): + return self.getTypedRuleContext(TParser.OperationModifierSymbolContext,0) + + def DOCCOMMENT(self): return self.getToken(TParser.DOCCOMMENT, 0) @@ -849,59 +881,67 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 116 + self.state = 124 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 115 + self.state = 123 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 121 + self.state = 129 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 118 + self.state = 126 self.tagSymbol() - self.state = 123 + self.state = 131 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 126 + self.state = 134 self._errHandler.sync(self) token = self._input.LA(1) - if token in [TParser.T__13, TParser.T__14, TParser.T__15, TParser.T__16, TParser.T__17, TParser.T__18, TParser.T__21, TParser.IDENTIFIER]: - self.state = 124 + if token in [TParser.T__15, TParser.T__16, TParser.T__17, TParser.T__18, TParser.T__19, TParser.T__20, TParser.T__23, TParser.IDENTIFIER]: + self.state = 132 self.typeSymbol() pass - elif token in [TParser.T__6]: - self.state = 125 - self.match(TParser.T__6) + elif token in [TParser.T__7]: + self.state = 133 + self.match(TParser.T__7) pass else: raise NoViableAltException(self) - self.state = 128 + self.state = 136 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 129 - self.match(TParser.T__7) - self.state = 133 + self.state = 137 + self.match(TParser.T__8) + self.state = 141 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__21) | (1 << TParser.IDENTIFIER))) != 0): - self.state = 130 + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__19) | (1 << TParser.T__20) | (1 << TParser.T__23) | (1 << TParser.IDENTIFIER))) != 0): + self.state = 138 self.operationParameterSymbol() - self.state = 135 + self.state = 143 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 136 - self.match(TParser.T__8) - self.state = 138 + self.state = 144 + self.match(TParser.T__9) + self.state = 146 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,17,self._ctx) + if la_ == 1: + self.state = 145 + self.operationModifierSymbol() + + + self.state = 149 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 137 + self.state = 148 self.match(TParser.T__1) @@ -913,6 +953,50 @@ class TParser ( Parser ): self.exitRule() return localctx + class OperationModifierSymbolContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.is_const = None # Token + + + def getRuleIndex(self): + return TParser.RULE_operationModifierSymbol + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterOperationModifierSymbol" ): + listener.enterOperationModifierSymbol(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitOperationModifierSymbol" ): + listener.exitOperationModifierSymbol(self) + + def accept(self, visitor:ParseTreeVisitor): + if hasattr( visitor, "visitOperationModifierSymbol" ): + return visitor.visitOperationModifierSymbol(self) + else: + return visitor.visitChildren(self) + + + + + def operationModifierSymbol(self): + + localctx = TParser.OperationModifierSymbolContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_operationModifierSymbol) + try: + self.enterOuterAlt(localctx, 1) + self.state = 151 + localctx.is_const = self.match(TParser.T__10) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class SignalSymbolContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): @@ -964,51 +1048,51 @@ class TParser ( Parser ): def signalSymbol(self): localctx = TParser.SignalSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 16, self.RULE_signalSymbol) + self.enterRule(localctx, 18, self.RULE_signalSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 141 + self.state = 154 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 140 + self.state = 153 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 146 + self.state = 159 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 143 + self.state = 156 self.tagSymbol() - self.state = 148 + self.state = 161 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 149 - self.match(TParser.T__9) - self.state = 150 + self.state = 162 + self.match(TParser.T__11) + self.state = 163 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 151 - self.match(TParser.T__7) - self.state = 155 + self.state = 164 + self.match(TParser.T__8) + self.state = 168 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__21) | (1 << TParser.IDENTIFIER))) != 0): - self.state = 152 + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__19) | (1 << TParser.T__20) | (1 << TParser.T__23) | (1 << TParser.IDENTIFIER))) != 0): + self.state = 165 self.operationParameterSymbol() - self.state = 157 + self.state = 170 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 158 - self.match(TParser.T__8) - self.state = 160 + self.state = 171 + self.match(TParser.T__9) + self.state = 173 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 159 + self.state = 172 self.match(TParser.T__1) @@ -1026,7 +1110,6 @@ class TParser ( Parser ): super().__init__(parent, invokingState) self.parser = parser self.comment = None # Token - self.isReadOnly = None # Token self.name = None # Token def typeSymbol(self): @@ -1043,6 +1126,10 @@ class TParser ( Parser ): return self.getTypedRuleContext(TParser.TagSymbolContext,i) + def propertyModifierSymbol(self): + return self.getTypedRuleContext(TParser.PropertyModifierSymbolContext,0) + + def DOCCOMMENT(self): return self.getToken(TParser.DOCCOMMENT, 0) @@ -1069,45 +1156,45 @@ class TParser ( Parser ): def propertySymbol(self): localctx = TParser.PropertySymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 18, self.RULE_propertySymbol) + self.enterRule(localctx, 20, self.RULE_propertySymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 163 + self.state = 176 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 162 + self.state = 175 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 168 + self.state = 181 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 165 + self.state = 178 self.tagSymbol() - self.state = 170 + self.state = 183 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 172 + self.state = 185 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==TParser.T__10: - self.state = 171 - localctx.isReadOnly = self.match(TParser.T__10) + if _la==TParser.T__10 or _la==TParser.T__12: + self.state = 184 + self.propertyModifierSymbol() - self.state = 174 + self.state = 187 self.typeSymbol() - self.state = 175 + self.state = 188 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 177 + self.state = 190 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 176 + self.state = 189 self.match(TParser.T__1) @@ -1119,6 +1206,64 @@ class TParser ( Parser ): self.exitRule() return localctx + class PropertyModifierSymbolContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.is_readonly = None # Token + self.is_const = None # Token + + + def getRuleIndex(self): + return TParser.RULE_propertyModifierSymbol + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPropertyModifierSymbol" ): + listener.enterPropertyModifierSymbol(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPropertyModifierSymbol" ): + listener.exitPropertyModifierSymbol(self) + + def accept(self, visitor:ParseTreeVisitor): + if hasattr( visitor, "visitPropertyModifierSymbol" ): + return visitor.visitPropertyModifierSymbol(self) + else: + return visitor.visitChildren(self) + + + + + def propertyModifierSymbol(self): + + localctx = TParser.PropertyModifierSymbolContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_propertyModifierSymbol) + try: + self.state = 194 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [TParser.T__12]: + self.enterOuterAlt(localctx, 1) + self.state = 192 + localctx.is_readonly = self.match(TParser.T__12) + pass + elif token in [TParser.T__10]: + self.enterOuterAlt(localctx, 2) + self.state = 193 + localctx.is_const = self.match(TParser.T__10) + 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 OperationParameterSymbolContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): @@ -1156,20 +1301,20 @@ class TParser ( Parser ): def operationParameterSymbol(self): localctx = TParser.OperationParameterSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 20, self.RULE_operationParameterSymbol) + self.enterRule(localctx, 24, self.RULE_operationParameterSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 179 + self.state = 196 self.typeSymbol() - self.state = 180 + self.state = 197 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 182 + self.state = 199 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==TParser.T__11: - self.state = 181 - self.match(TParser.T__11) + if _la==TParser.T__13: + self.state = 198 + self.match(TParser.T__13) except RecognitionException as re: @@ -1213,10 +1358,10 @@ class TParser ( Parser ): def tagSymbol(self): localctx = TParser.TagSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 22, self.RULE_tagSymbol) + self.enterRule(localctx, 26, self.RULE_tagSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 184 + self.state = 201 localctx.line = self.match(TParser.TAGLINE) except RecognitionException as re: localctx.exception = re @@ -1263,28 +1408,28 @@ class TParser ( Parser ): def tagAttributeSymbol(self): localctx = TParser.TagAttributeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 24, self.RULE_tagAttributeSymbol) + self.enterRule(localctx, 28, self.RULE_tagAttributeSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 186 + self.state = 203 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 189 + self.state = 206 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==TParser.T__12: - self.state = 187 - self.match(TParser.T__12) - self.state = 188 + if _la==TParser.T__14: + self.state = 204 + self.match(TParser.T__14) + self.state = 205 localctx.value = self.match(TParser.IDENTIFIER) - self.state = 192 + self.state = 209 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==TParser.T__11: - self.state = 191 - self.match(TParser.T__11) + if _la==TParser.T__13: + self.state = 208 + self.match(TParser.T__13) except RecognitionException as re: @@ -1340,29 +1485,29 @@ class TParser ( Parser ): def typeSymbol(self): localctx = TParser.TypeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 26, self.RULE_typeSymbol) + self.enterRule(localctx, 30, self.RULE_typeSymbol) try: - self.state = 198 + self.state = 215 self._errHandler.sync(self) token = self._input.LA(1) - if token in [TParser.T__13, TParser.T__14, TParser.T__15, TParser.T__16, TParser.T__17]: + if token in [TParser.T__15, TParser.T__16, TParser.T__17, TParser.T__18, TParser.T__19]: self.enterOuterAlt(localctx, 1) - self.state = 194 + self.state = 211 self.primitiveTypeSymbol() pass elif token in [TParser.IDENTIFIER]: self.enterOuterAlt(localctx, 2) - self.state = 195 + self.state = 212 self.complexTypeSymbol() pass - elif token in [TParser.T__18]: + elif token in [TParser.T__20]: self.enterOuterAlt(localctx, 3) - self.state = 196 + self.state = 213 self.listTypeSymbol() pass - elif token in [TParser.T__21]: + elif token in [TParser.T__23]: self.enterOuterAlt(localctx, 4) - self.state = 197 + self.state = 214 self.modelTypeSymbol() pass else: @@ -1409,10 +1554,10 @@ class TParser ( Parser ): def complexTypeSymbol(self): localctx = TParser.ComplexTypeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 28, self.RULE_complexTypeSymbol) + self.enterRule(localctx, 32, self.RULE_complexTypeSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 200 + self.state = 217 localctx.name = self.match(TParser.IDENTIFIER) except RecognitionException as re: localctx.exception = re @@ -1453,35 +1598,35 @@ class TParser ( Parser ): def primitiveTypeSymbol(self): localctx = TParser.PrimitiveTypeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 30, self.RULE_primitiveTypeSymbol) + self.enterRule(localctx, 34, self.RULE_primitiveTypeSymbol) try: - self.state = 207 + self.state = 224 self._errHandler.sync(self) token = self._input.LA(1) - if token in [TParser.T__13]: + if token in [TParser.T__15]: self.enterOuterAlt(localctx, 1) - self.state = 202 - localctx.name = self.match(TParser.T__13) + self.state = 219 + localctx.name = self.match(TParser.T__15) pass - elif token in [TParser.T__14]: + elif token in [TParser.T__16]: self.enterOuterAlt(localctx, 2) - self.state = 203 - localctx.name = self.match(TParser.T__14) + self.state = 220 + localctx.name = self.match(TParser.T__16) pass - elif token in [TParser.T__15]: + elif token in [TParser.T__17]: self.enterOuterAlt(localctx, 3) - self.state = 204 - localctx.name = self.match(TParser.T__15) + self.state = 221 + localctx.name = self.match(TParser.T__17) pass - elif token in [TParser.T__16]: + elif token in [TParser.T__18]: self.enterOuterAlt(localctx, 4) - self.state = 205 - localctx.name = self.match(TParser.T__16) + self.state = 222 + localctx.name = self.match(TParser.T__18) pass - elif token in [TParser.T__17]: + elif token in [TParser.T__19]: self.enterOuterAlt(localctx, 5) - self.state = 206 - localctx.name = self.match(TParser.T__17) + self.state = 223 + localctx.name = self.match(TParser.T__19) pass else: raise NoViableAltException(self) @@ -1528,17 +1673,17 @@ class TParser ( Parser ): def listTypeSymbol(self): localctx = TParser.ListTypeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 32, self.RULE_listTypeSymbol) + self.enterRule(localctx, 36, self.RULE_listTypeSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 209 - self.match(TParser.T__18) - self.state = 210 - self.match(TParser.T__19) - self.state = 211 - localctx.valueType = self.typeSymbol() - self.state = 212 + self.state = 226 self.match(TParser.T__20) + self.state = 227 + self.match(TParser.T__21) + self.state = 228 + localctx.valueType = self.typeSymbol() + self.state = 229 + self.match(TParser.T__22) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -1581,17 +1726,17 @@ class TParser ( Parser ): def modelTypeSymbol(self): localctx = TParser.ModelTypeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 34, self.RULE_modelTypeSymbol) + self.enterRule(localctx, 38, self.RULE_modelTypeSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 214 + self.state = 231 + self.match(TParser.T__23) + self.state = 232 self.match(TParser.T__21) - self.state = 215 - self.match(TParser.T__19) - self.state = 216 + self.state = 233 localctx.valueType = self.typeSymbol() - self.state = 217 - self.match(TParser.T__20) + self.state = 234 + self.match(TParser.T__22) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -1651,51 +1796,51 @@ class TParser ( Parser ): def structSymbol(self): localctx = TParser.StructSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 36, self.RULE_structSymbol) + self.enterRule(localctx, 40, self.RULE_structSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 220 + self.state = 237 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 219 + self.state = 236 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 225 + self.state = 242 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 222 + self.state = 239 self.tagSymbol() - self.state = 227 + self.state = 244 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 228 - self.match(TParser.T__22) - self.state = 229 + self.state = 245 + self.match(TParser.T__24) + self.state = 246 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 230 - self.match(TParser.T__4) - self.state = 234 + self.state = 247 + self.match(TParser.T__5) + self.state = 251 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__21) | (1 << TParser.TAGLINE) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): - self.state = 231 + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__17) | (1 << TParser.T__18) | (1 << TParser.T__19) | (1 << TParser.T__20) | (1 << TParser.T__23) | (1 << TParser.TAGLINE) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): + self.state = 248 self.structFieldSymbol() - self.state = 236 + self.state = 253 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 237 - self.match(TParser.T__5) - self.state = 239 + self.state = 254 + self.match(TParser.T__6) + self.state = 256 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 238 + self.state = 255 self.match(TParser.T__1) @@ -1755,37 +1900,37 @@ class TParser ( Parser ): def structFieldSymbol(self): localctx = TParser.StructFieldSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 38, self.RULE_structFieldSymbol) + self.enterRule(localctx, 42, self.RULE_structFieldSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 242 + self.state = 259 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 241 + self.state = 258 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 247 + self.state = 264 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 244 + self.state = 261 self.tagSymbol() - self.state = 249 + self.state = 266 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 250 + self.state = 267 self.typeSymbol() - self.state = 251 + self.state = 268 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 253 + self.state = 270 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 252 + self.state = 269 self.match(TParser.T__1) @@ -1852,51 +1997,51 @@ class TParser ( Parser ): def enumSymbol(self): localctx = TParser.EnumSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 40, self.RULE_enumSymbol) + self.enterRule(localctx, 44, self.RULE_enumSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 256 + self.state = 273 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 255 + self.state = 272 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 261 + self.state = 278 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 258 + self.state = 275 self.tagSymbol() - self.state = 263 + self.state = 280 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 264 + self.state = 281 self.enumTypeSymbol() - self.state = 265 + self.state = 282 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 266 - self.match(TParser.T__4) - self.state = 270 + self.state = 283 + self.match(TParser.T__5) + self.state = 287 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.TAGLINE) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): - self.state = 267 + self.state = 284 self.enumMemberSymbol() - self.state = 272 + self.state = 289 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 273 - self.match(TParser.T__5) - self.state = 275 + self.state = 290 + self.match(TParser.T__6) + self.state = 292 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 274 + self.state = 291 self.match(TParser.T__1) @@ -1940,20 +2085,20 @@ class TParser ( Parser ): def enumTypeSymbol(self): localctx = TParser.EnumTypeSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 42, self.RULE_enumTypeSymbol) + self.enterRule(localctx, 46, self.RULE_enumTypeSymbol) try: - self.state = 279 + self.state = 296 self._errHandler.sync(self) token = self._input.LA(1) - if token in [TParser.T__23]: + if token in [TParser.T__25]: self.enterOuterAlt(localctx, 1) - self.state = 277 - localctx.isEnum = self.match(TParser.T__23) + self.state = 294 + localctx.isEnum = self.match(TParser.T__25) pass - elif token in [TParser.T__24]: + elif token in [TParser.T__26]: self.enterOuterAlt(localctx, 2) - self.state = 278 - localctx.isFlag = self.match(TParser.T__24) + self.state = 295 + localctx.isFlag = self.match(TParser.T__26) pass else: raise NoViableAltException(self) @@ -2014,46 +2159,46 @@ class TParser ( Parser ): def enumMemberSymbol(self): localctx = TParser.EnumMemberSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 44, self.RULE_enumMemberSymbol) + self.enterRule(localctx, 48, self.RULE_enumMemberSymbol) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 282 + self.state = 299 self._errHandler.sync(self) _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 281 + self.state = 298 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 287 + self.state = 304 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.TAGLINE: - self.state = 284 + self.state = 301 self.tagSymbol() - self.state = 289 + self.state = 306 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 290 + self.state = 307 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 293 + self.state = 310 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==TParser.T__12: - self.state = 291 - self.match(TParser.T__12) - self.state = 292 + if _la==TParser.T__14: + self.state = 308 + self.match(TParser.T__14) + self.state = 309 self.intSymbol() - self.state = 296 + self.state = 313 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==TParser.T__11: - self.state = 295 - self.match(TParser.T__11) + if _la==TParser.T__13: + self.state = 312 + self.match(TParser.T__13) except RecognitionException as re: @@ -2100,19 +2245,19 @@ class TParser ( Parser ): def intSymbol(self): localctx = TParser.IntSymbolContext(self, self._ctx, self.state) - self.enterRule(localctx, 46, self.RULE_intSymbol) + self.enterRule(localctx, 50, self.RULE_intSymbol) try: - self.state = 300 + self.state = 317 self._errHandler.sync(self) token = self._input.LA(1) if token in [TParser.INTCONSTANT]: self.enterOuterAlt(localctx, 1) - self.state = 298 + self.state = 315 localctx.value = self.match(TParser.INTCONSTANT) pass elif token in [TParser.HEXCONSTANT]: self.enterOuterAlt(localctx, 2) - self.state = 299 + self.state = 316 localctx.value = self.match(TParser.HEXCONSTANT) pass else: |