diff options
| author | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2016-09-11 09:35:21 +0200 |
|---|---|---|
| committer | Juergen Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2016-11-30 10:01:20 +0100 |
| commit | 37fe686d82bfcdfa9fcc8bb1383cf243eeb68a7e (patch) | |
| tree | 690d7c8e5c5779774a10dc8a1c9ea81402a0cd4b | |
| parent | 43b40b9af549b0b92bc152252f1a93f28496f2f2 (diff) | |
Fixed Version string for module imports
| -rw-r--r-- | qface/idl/parser/T.g4 | 3 | ||||
| -rw-r--r-- | qface/idl/parser/T.tokens | 9 | ||||
| -rw-r--r-- | qface/idl/parser/TLexer.py | 210 | ||||
| -rw-r--r-- | qface/idl/parser/TLexer.tokens | 9 | ||||
| -rw-r--r-- | qface/idl/parser/TParser.py | 381 |
5 files changed, 314 insertions, 298 deletions
diff --git a/qface/idl/parser/T.g4 b/qface/idl/parser/T.g4 index d6afb15..3bf8f18 100644 --- a/qface/idl/parser/T.g4 +++ b/qface/idl/parser/T.g4 @@ -15,7 +15,7 @@ headerSymbol ; importSymbol - : 'import' name=IDENTIFIER ';' + : 'import' name=IDENTIFIER version=VERSION ';' ; moduleSymbol @@ -106,6 +106,7 @@ intSymbol INTCONSTANT : ('+' | '-')? '0'..'9'+; HEXCONSTANT : '0x' ('0'..'9' | 'a'..'f' | 'A'..'F')+; IDENTIFIER : [a-zA-Z_][a-zA-Z0-9_\.]*; +VERSION : [0-9]'.'[0-9]; DOCCOMMENT : '/*!' .*? '*/'; WHITESPACE : [ \t\r\n]+ -> skip; COMMENT : '//' ~[\r\n]* -> skip; diff --git a/qface/idl/parser/T.tokens b/qface/idl/parser/T.tokens index d77faa8..9f73b7d 100644 --- a/qface/idl/parser/T.tokens +++ b/qface/idl/parser/T.tokens @@ -25,10 +25,11 @@ T__23=24 INTCONSTANT=25 HEXCONSTANT=26 IDENTIFIER=27 -DOCCOMMENT=28 -WHITESPACE=29 -COMMENT=30 -MULTICOMM=31 +VERSION=28 +DOCCOMMENT=29 +WHITESPACE=30 +COMMENT=31 +MULTICOMM=32 'import'=1 ';'=2 'module'=3 diff --git a/qface/idl/parser/TLexer.py b/qface/idl/parser/TLexer.py index 8c21183..cce5819 100644 --- a/qface/idl/parser/TLexer.py +++ b/qface/idl/parser/TLexer.py @@ -5,106 +5,108 @@ from io import StringIO def serializedATN(): with StringIO() as buf: - buf.write("\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2!") - buf.write("\u00f4\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") + buf.write("\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\"") + buf.write("\u00fa\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") buf.write("\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\r") buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36") - buf.write("\t\36\4\37\t\37\4 \t \3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3") - buf.write("\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3") - buf.write("\5\3\5\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\b\3\b") - buf.write("\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\f") - buf.write("\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\16\3\16\3\16\3\16\3") - buf.write("\16\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\21") - buf.write("\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22") - buf.write("\3\23\3\23\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\26") - buf.write("\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27") - buf.write("\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\32\5\32\u00b2\n") - buf.write("\32\3\32\6\32\u00b5\n\32\r\32\16\32\u00b6\3\33\3\33\3") - buf.write("\33\3\33\6\33\u00bd\n\33\r\33\16\33\u00be\3\34\3\34\7") - buf.write("\34\u00c3\n\34\f\34\16\34\u00c6\13\34\3\35\3\35\3\35\3") - buf.write("\35\3\35\7\35\u00cd\n\35\f\35\16\35\u00d0\13\35\3\35\3") - buf.write("\35\3\35\3\36\6\36\u00d6\n\36\r\36\16\36\u00d7\3\36\3") - buf.write("\36\3\37\3\37\3\37\3\37\7\37\u00e0\n\37\f\37\16\37\u00e3") - buf.write("\13\37\3\37\3\37\3 \3 \3 \3 \7 \u00eb\n \f \16 \u00ee") - buf.write("\13 \3 \3 \3 \3 \3 \4\u00ce\u00ec\2!\3\3\5\4\7\5\t\6\13") - buf.write("\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37") - buf.write("\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34") - buf.write("\67\359\36;\37= ?!\3\2\b\4\2--//\5\2\62;CHch\5\2C\\aa") - buf.write("c|\b\2\60\60\62;C\\^^aac|\5\2\13\f\17\17\"\"\4\2\f\f\17") - buf.write("\17\u00fb\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2") - buf.write("\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2") - buf.write("\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2") - buf.write("\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#") - buf.write("\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2") - buf.write("\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65") - buf.write("\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2") - buf.write("\2?\3\2\2\2\3A\3\2\2\2\5H\3\2\2\2\7J\3\2\2\2\tQ\3\2\2") - buf.write("\2\13[\3\2\2\2\r]\3\2\2\2\17_\3\2\2\2\21e\3\2\2\2\23j") - buf.write("\3\2\2\2\25l\3\2\2\2\27n\3\2\2\2\31w\3\2\2\2\33y\3\2\2") - buf.write("\2\35~\3\2\2\2\37\u0082\3\2\2\2!\u0087\3\2\2\2#\u008e") - buf.write("\3\2\2\2%\u0093\3\2\2\2\'\u0095\3\2\2\2)\u0097\3\2\2\2") - buf.write("+\u009d\3\2\2\2-\u00a4\3\2\2\2/\u00a9\3\2\2\2\61\u00ae") - buf.write("\3\2\2\2\63\u00b1\3\2\2\2\65\u00b8\3\2\2\2\67\u00c0\3") - buf.write("\2\2\29\u00c7\3\2\2\2;\u00d5\3\2\2\2=\u00db\3\2\2\2?\u00e6") - buf.write("\3\2\2\2AB\7k\2\2BC\7o\2\2CD\7r\2\2DE\7q\2\2EF\7t\2\2") - buf.write("FG\7v\2\2G\4\3\2\2\2HI\7=\2\2I\6\3\2\2\2JK\7o\2\2KL\7") - buf.write("q\2\2LM\7f\2\2MN\7w\2\2NO\7n\2\2OP\7g\2\2P\b\3\2\2\2Q") - buf.write("R\7k\2\2RS\7p\2\2ST\7v\2\2TU\7g\2\2UV\7t\2\2VW\7h\2\2") - buf.write("WX\7c\2\2XY\7e\2\2YZ\7g\2\2Z\n\3\2\2\2[\\\7}\2\2\\\f\3") - buf.write("\2\2\2]^\7\177\2\2^\16\3\2\2\2_`\7g\2\2`a\7x\2\2ab\7g") - buf.write("\2\2bc\7p\2\2cd\7v\2\2d\20\3\2\2\2ef\7x\2\2fg\7q\2\2g") - buf.write("h\7k\2\2hi\7f\2\2i\22\3\2\2\2jk\7*\2\2k\24\3\2\2\2lm\7") - buf.write("+\2\2m\26\3\2\2\2no\7t\2\2op\7g\2\2pq\7c\2\2qr\7f\2\2") - buf.write("rs\7q\2\2st\7p\2\2tu\7n\2\2uv\7{\2\2v\30\3\2\2\2wx\7.") - buf.write("\2\2x\32\3\2\2\2yz\7d\2\2z{\7q\2\2{|\7q\2\2|}\7n\2\2}") - buf.write("\34\3\2\2\2~\177\7k\2\2\177\u0080\7p\2\2\u0080\u0081\7") - buf.write("v\2\2\u0081\36\3\2\2\2\u0082\u0083\7t\2\2\u0083\u0084") - buf.write("\7g\2\2\u0084\u0085\7c\2\2\u0085\u0086\7n\2\2\u0086 \3") - buf.write("\2\2\2\u0087\u0088\7u\2\2\u0088\u0089\7v\2\2\u0089\u008a") - buf.write("\7t\2\2\u008a\u008b\7k\2\2\u008b\u008c\7p\2\2\u008c\u008d") - buf.write("\7i\2\2\u008d\"\3\2\2\2\u008e\u008f\7n\2\2\u008f\u0090") - buf.write("\7k\2\2\u0090\u0091\7u\2\2\u0091\u0092\7v\2\2\u0092$\3") - buf.write("\2\2\2\u0093\u0094\7>\2\2\u0094&\3\2\2\2\u0095\u0096\7") - buf.write("@\2\2\u0096(\3\2\2\2\u0097\u0098\7o\2\2\u0098\u0099\7") - buf.write("q\2\2\u0099\u009a\7f\2\2\u009a\u009b\7g\2\2\u009b\u009c") - buf.write("\7n\2\2\u009c*\3\2\2\2\u009d\u009e\7u\2\2\u009e\u009f") - buf.write("\7v\2\2\u009f\u00a0\7t\2\2\u00a0\u00a1\7w\2\2\u00a1\u00a2") - buf.write("\7e\2\2\u00a2\u00a3\7v\2\2\u00a3,\3\2\2\2\u00a4\u00a5") - buf.write("\7g\2\2\u00a5\u00a6\7p\2\2\u00a6\u00a7\7w\2\2\u00a7\u00a8") - buf.write("\7o\2\2\u00a8.\3\2\2\2\u00a9\u00aa\7h\2\2\u00aa\u00ab") - buf.write("\7n\2\2\u00ab\u00ac\7c\2\2\u00ac\u00ad\7i\2\2\u00ad\60") - buf.write("\3\2\2\2\u00ae\u00af\7?\2\2\u00af\62\3\2\2\2\u00b0\u00b2") - buf.write("\t\2\2\2\u00b1\u00b0\3\2\2\2\u00b1\u00b2\3\2\2\2\u00b2") - buf.write("\u00b4\3\2\2\2\u00b3\u00b5\4\62;\2\u00b4\u00b3\3\2\2\2") - buf.write("\u00b5\u00b6\3\2\2\2\u00b6\u00b4\3\2\2\2\u00b6\u00b7\3") - buf.write("\2\2\2\u00b7\64\3\2\2\2\u00b8\u00b9\7\62\2\2\u00b9\u00ba") - buf.write("\7z\2\2\u00ba\u00bc\3\2\2\2\u00bb\u00bd\t\3\2\2\u00bc") - buf.write("\u00bb\3\2\2\2\u00bd\u00be\3\2\2\2\u00be\u00bc\3\2\2\2") - buf.write("\u00be\u00bf\3\2\2\2\u00bf\66\3\2\2\2\u00c0\u00c4\t\4") - buf.write("\2\2\u00c1\u00c3\t\5\2\2\u00c2\u00c1\3\2\2\2\u00c3\u00c6") - buf.write("\3\2\2\2\u00c4\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5") - buf.write("8\3\2\2\2\u00c6\u00c4\3\2\2\2\u00c7\u00c8\7\61\2\2\u00c8") - buf.write("\u00c9\7,\2\2\u00c9\u00ca\7#\2\2\u00ca\u00ce\3\2\2\2\u00cb") - buf.write("\u00cd\13\2\2\2\u00cc\u00cb\3\2\2\2\u00cd\u00d0\3\2\2") - buf.write("\2\u00ce\u00cf\3\2\2\2\u00ce\u00cc\3\2\2\2\u00cf\u00d1") - buf.write("\3\2\2\2\u00d0\u00ce\3\2\2\2\u00d1\u00d2\7,\2\2\u00d2") - buf.write("\u00d3\7\61\2\2\u00d3:\3\2\2\2\u00d4\u00d6\t\6\2\2\u00d5") - buf.write("\u00d4\3\2\2\2\u00d6\u00d7\3\2\2\2\u00d7\u00d5\3\2\2\2") - buf.write("\u00d7\u00d8\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9\u00da\b") - buf.write("\36\2\2\u00da<\3\2\2\2\u00db\u00dc\7\61\2\2\u00dc\u00dd") - buf.write("\7\61\2\2\u00dd\u00e1\3\2\2\2\u00de\u00e0\n\7\2\2\u00df") - buf.write("\u00de\3\2\2\2\u00e0\u00e3\3\2\2\2\u00e1\u00df\3\2\2\2") - buf.write("\u00e1\u00e2\3\2\2\2\u00e2\u00e4\3\2\2\2\u00e3\u00e1\3") - buf.write("\2\2\2\u00e4\u00e5\b\37\2\2\u00e5>\3\2\2\2\u00e6\u00e7") - buf.write("\7\61\2\2\u00e7\u00e8\7,\2\2\u00e8\u00ec\3\2\2\2\u00e9") - buf.write("\u00eb\13\2\2\2\u00ea\u00e9\3\2\2\2\u00eb\u00ee\3\2\2") - buf.write("\2\u00ec\u00ed\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ed\u00ef") - buf.write("\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ef\u00f0\7,\2\2\u00f0") - buf.write("\u00f1\7\61\2\2\u00f1\u00f2\3\2\2\2\u00f2\u00f3\b \2\2") - buf.write("\u00f3@\3\2\2\2\13\2\u00b1\u00b6\u00be\u00c4\u00ce\u00d7") - buf.write("\u00e1\u00ec\3\b\2\2") + buf.write("\t\36\4\37\t\37\4 \t \4!\t!\3\2\3\2\3\2\3\2\3\2\3\2\3") + buf.write("\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5") + buf.write("\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3") + buf.write("\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3") + buf.write("\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\16\3\16\3\16") + buf.write("\3\16\3\16\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20") + buf.write("\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22") + buf.write("\3\22\3\23\3\23\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25") + buf.write("\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27") + buf.write("\3\27\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\32\5\32\u00b4") + buf.write("\n\32\3\32\6\32\u00b7\n\32\r\32\16\32\u00b8\3\33\3\33") + buf.write("\3\33\3\33\6\33\u00bf\n\33\r\33\16\33\u00c0\3\34\3\34") + buf.write("\7\34\u00c5\n\34\f\34\16\34\u00c8\13\34\3\35\3\35\3\35") + buf.write("\3\35\3\36\3\36\3\36\3\36\3\36\7\36\u00d3\n\36\f\36\16") + buf.write("\36\u00d6\13\36\3\36\3\36\3\36\3\37\6\37\u00dc\n\37\r") + buf.write("\37\16\37\u00dd\3\37\3\37\3 \3 \3 \3 \7 \u00e6\n \f \16") + buf.write(" \u00e9\13 \3 \3 \3!\3!\3!\3!\7!\u00f1\n!\f!\16!\u00f4") + buf.write("\13!\3!\3!\3!\3!\3!\4\u00d4\u00f2\2\"\3\3\5\4\7\5\t\6") + buf.write("\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20") + buf.write("\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65") + buf.write("\34\67\359\36;\37= ?!A\"\3\2\t\4\2--//\5\2\62;CHch\5\2") + buf.write("C\\aac|\b\2\60\60\62;C\\^^aac|\3\2\62;\5\2\13\f\17\17") + buf.write("\"\"\4\2\f\f\17\17\u0101\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3") + buf.write("\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2") + buf.write("\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2") + buf.write("\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2") + buf.write("!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2") + buf.write("\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3") + buf.write("\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2") + buf.write("\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\3C\3\2\2\2\5J\3\2\2") + buf.write("\2\7L\3\2\2\2\tS\3\2\2\2\13]\3\2\2\2\r_\3\2\2\2\17a\3") + buf.write("\2\2\2\21g\3\2\2\2\23l\3\2\2\2\25n\3\2\2\2\27p\3\2\2\2") + buf.write("\31y\3\2\2\2\33{\3\2\2\2\35\u0080\3\2\2\2\37\u0084\3\2") + buf.write("\2\2!\u0089\3\2\2\2#\u0090\3\2\2\2%\u0095\3\2\2\2\'\u0097") + buf.write("\3\2\2\2)\u0099\3\2\2\2+\u009f\3\2\2\2-\u00a6\3\2\2\2") + buf.write("/\u00ab\3\2\2\2\61\u00b0\3\2\2\2\63\u00b3\3\2\2\2\65\u00ba") + buf.write("\3\2\2\2\67\u00c2\3\2\2\29\u00c9\3\2\2\2;\u00cd\3\2\2") + buf.write("\2=\u00db\3\2\2\2?\u00e1\3\2\2\2A\u00ec\3\2\2\2CD\7k\2") + buf.write("\2DE\7o\2\2EF\7r\2\2FG\7q\2\2GH\7t\2\2HI\7v\2\2I\4\3\2") + buf.write("\2\2JK\7=\2\2K\6\3\2\2\2LM\7o\2\2MN\7q\2\2NO\7f\2\2OP") + buf.write("\7w\2\2PQ\7n\2\2QR\7g\2\2R\b\3\2\2\2ST\7k\2\2TU\7p\2\2") + buf.write("UV\7v\2\2VW\7g\2\2WX\7t\2\2XY\7h\2\2YZ\7c\2\2Z[\7e\2\2") + buf.write("[\\\7g\2\2\\\n\3\2\2\2]^\7}\2\2^\f\3\2\2\2_`\7\177\2\2") + buf.write("`\16\3\2\2\2ab\7g\2\2bc\7x\2\2cd\7g\2\2de\7p\2\2ef\7v") + buf.write("\2\2f\20\3\2\2\2gh\7x\2\2hi\7q\2\2ij\7k\2\2jk\7f\2\2k") + buf.write("\22\3\2\2\2lm\7*\2\2m\24\3\2\2\2no\7+\2\2o\26\3\2\2\2") + buf.write("pq\7t\2\2qr\7g\2\2rs\7c\2\2st\7f\2\2tu\7q\2\2uv\7p\2\2") + buf.write("vw\7n\2\2wx\7{\2\2x\30\3\2\2\2yz\7.\2\2z\32\3\2\2\2{|") + buf.write("\7d\2\2|}\7q\2\2}~\7q\2\2~\177\7n\2\2\177\34\3\2\2\2\u0080") + buf.write("\u0081\7k\2\2\u0081\u0082\7p\2\2\u0082\u0083\7v\2\2\u0083") + buf.write("\36\3\2\2\2\u0084\u0085\7t\2\2\u0085\u0086\7g\2\2\u0086") + buf.write("\u0087\7c\2\2\u0087\u0088\7n\2\2\u0088 \3\2\2\2\u0089") + buf.write("\u008a\7u\2\2\u008a\u008b\7v\2\2\u008b\u008c\7t\2\2\u008c") + buf.write("\u008d\7k\2\2\u008d\u008e\7p\2\2\u008e\u008f\7i\2\2\u008f") + buf.write("\"\3\2\2\2\u0090\u0091\7n\2\2\u0091\u0092\7k\2\2\u0092") + buf.write("\u0093\7u\2\2\u0093\u0094\7v\2\2\u0094$\3\2\2\2\u0095") + buf.write("\u0096\7>\2\2\u0096&\3\2\2\2\u0097\u0098\7@\2\2\u0098") + buf.write("(\3\2\2\2\u0099\u009a\7o\2\2\u009a\u009b\7q\2\2\u009b") + buf.write("\u009c\7f\2\2\u009c\u009d\7g\2\2\u009d\u009e\7n\2\2\u009e") + buf.write("*\3\2\2\2\u009f\u00a0\7u\2\2\u00a0\u00a1\7v\2\2\u00a1") + buf.write("\u00a2\7t\2\2\u00a2\u00a3\7w\2\2\u00a3\u00a4\7e\2\2\u00a4") + buf.write("\u00a5\7v\2\2\u00a5,\3\2\2\2\u00a6\u00a7\7g\2\2\u00a7") + buf.write("\u00a8\7p\2\2\u00a8\u00a9\7w\2\2\u00a9\u00aa\7o\2\2\u00aa") + buf.write(".\3\2\2\2\u00ab\u00ac\7h\2\2\u00ac\u00ad\7n\2\2\u00ad") + buf.write("\u00ae\7c\2\2\u00ae\u00af\7i\2\2\u00af\60\3\2\2\2\u00b0") + buf.write("\u00b1\7?\2\2\u00b1\62\3\2\2\2\u00b2\u00b4\t\2\2\2\u00b3") + buf.write("\u00b2\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4\u00b6\3\2\2\2") + buf.write("\u00b5\u00b7\4\62;\2\u00b6\u00b5\3\2\2\2\u00b7\u00b8\3") + buf.write("\2\2\2\u00b8\u00b6\3\2\2\2\u00b8\u00b9\3\2\2\2\u00b9\64") + buf.write("\3\2\2\2\u00ba\u00bb\7\62\2\2\u00bb\u00bc\7z\2\2\u00bc") + buf.write("\u00be\3\2\2\2\u00bd\u00bf\t\3\2\2\u00be\u00bd\3\2\2\2") + buf.write("\u00bf\u00c0\3\2\2\2\u00c0\u00be\3\2\2\2\u00c0\u00c1\3") + buf.write("\2\2\2\u00c1\66\3\2\2\2\u00c2\u00c6\t\4\2\2\u00c3\u00c5") + buf.write("\t\5\2\2\u00c4\u00c3\3\2\2\2\u00c5\u00c8\3\2\2\2\u00c6") + buf.write("\u00c4\3\2\2\2\u00c6\u00c7\3\2\2\2\u00c78\3\2\2\2\u00c8") + buf.write("\u00c6\3\2\2\2\u00c9\u00ca\t\6\2\2\u00ca\u00cb\7\60\2") + buf.write("\2\u00cb\u00cc\t\6\2\2\u00cc:\3\2\2\2\u00cd\u00ce\7\61") + buf.write("\2\2\u00ce\u00cf\7,\2\2\u00cf\u00d0\7#\2\2\u00d0\u00d4") + buf.write("\3\2\2\2\u00d1\u00d3\13\2\2\2\u00d2\u00d1\3\2\2\2\u00d3") + buf.write("\u00d6\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d4\u00d2\3\2\2\2") + buf.write("\u00d5\u00d7\3\2\2\2\u00d6\u00d4\3\2\2\2\u00d7\u00d8\7") + buf.write(",\2\2\u00d8\u00d9\7\61\2\2\u00d9<\3\2\2\2\u00da\u00dc") + buf.write("\t\7\2\2\u00db\u00da\3\2\2\2\u00dc\u00dd\3\2\2\2\u00dd") + buf.write("\u00db\3\2\2\2\u00dd\u00de\3\2\2\2\u00de\u00df\3\2\2\2") + buf.write("\u00df\u00e0\b\37\2\2\u00e0>\3\2\2\2\u00e1\u00e2\7\61") + buf.write("\2\2\u00e2\u00e3\7\61\2\2\u00e3\u00e7\3\2\2\2\u00e4\u00e6") + buf.write("\n\b\2\2\u00e5\u00e4\3\2\2\2\u00e6\u00e9\3\2\2\2\u00e7") + buf.write("\u00e5\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\u00ea\3\2\2\2") + buf.write("\u00e9\u00e7\3\2\2\2\u00ea\u00eb\b \2\2\u00eb@\3\2\2\2") + buf.write("\u00ec\u00ed\7\61\2\2\u00ed\u00ee\7,\2\2\u00ee\u00f2\3") + buf.write("\2\2\2\u00ef\u00f1\13\2\2\2\u00f0\u00ef\3\2\2\2\u00f1") + buf.write("\u00f4\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f2\u00f0\3\2\2\2") + buf.write("\u00f3\u00f5\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f5\u00f6\7") + buf.write(",\2\2\u00f6\u00f7\7\61\2\2\u00f7\u00f8\3\2\2\2\u00f8\u00f9") + buf.write("\b!\2\2\u00f9B\3\2\2\2\13\2\u00b3\u00b8\u00c0\u00c6\u00d4") + buf.write("\u00dd\u00e7\u00f2\3\b\2\2") return buf.getvalue() @@ -142,10 +144,11 @@ class TLexer(Lexer): INTCONSTANT = 25 HEXCONSTANT = 26 IDENTIFIER = 27 - DOCCOMMENT = 28 - WHITESPACE = 29 - COMMENT = 30 - MULTICOMM = 31 + VERSION = 28 + DOCCOMMENT = 29 + WHITESPACE = 30 + COMMENT = 31 + MULTICOMM = 32 modeNames = [ "DEFAULT_MODE" ] @@ -156,14 +159,15 @@ class TLexer(Lexer): "'struct'", "'enum'", "'flag'", "'='" ] symbolicNames = [ "<INVALID>", - "INTCONSTANT", "HEXCONSTANT", "IDENTIFIER", "DOCCOMMENT", "WHITESPACE", - "COMMENT", "MULTICOMM" ] + "INTCONSTANT", "HEXCONSTANT", "IDENTIFIER", "VERSION", "DOCCOMMENT", + "WHITESPACE", "COMMENT", "MULTICOMM" ] ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "INTCONSTANT", "HEXCONSTANT", - "IDENTIFIER", "DOCCOMMENT", "WHITESPACE", "COMMENT", "MULTICOMM" ] + "IDENTIFIER", "VERSION", "DOCCOMMENT", "WHITESPACE", "COMMENT", + "MULTICOMM" ] grammarFileName = "T.g4" diff --git a/qface/idl/parser/TLexer.tokens b/qface/idl/parser/TLexer.tokens index d77faa8..9f73b7d 100644 --- a/qface/idl/parser/TLexer.tokens +++ b/qface/idl/parser/TLexer.tokens @@ -25,10 +25,11 @@ T__23=24 INTCONSTANT=25 HEXCONSTANT=26 IDENTIFIER=27 -DOCCOMMENT=28 -WHITESPACE=29 -COMMENT=30 -MULTICOMM=31 +VERSION=28 +DOCCOMMENT=29 +WHITESPACE=30 +COMMENT=31 +MULTICOMM=32 'import'=1 ';'=2 'module'=3 diff --git a/qface/idl/parser/TParser.py b/qface/idl/parser/TParser.py index ee83482..78f02c7 100644 --- a/qface/idl/parser/TParser.py +++ b/qface/idl/parser/TParser.py @@ -5,89 +5,90 @@ from io import StringIO def serializedATN(): with StringIO() as buf: - buf.write("\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3!") - buf.write("\u00ce\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("\u00cf\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\3\2\3\2\7\2/\n\2\f\2\16") buf.write("\2\62\13\2\3\3\3\3\7\3\66\n\3\f\3\16\39\13\3\3\4\3\4\3") - buf.write("\4\3\4\3\5\5\5@\n\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\5\6I\n") - buf.write("\6\3\7\5\7L\n\7\3\7\3\7\3\7\3\7\7\7R\n\7\f\7\16\7U\13") - buf.write("\7\3\7\3\7\3\b\3\b\5\b[\n\b\3\t\5\t^\n\t\3\t\5\ta\n\t") - buf.write("\3\t\3\t\5\te\n\t\3\t\3\t\3\t\7\tj\n\t\f\t\16\tm\13\t") - buf.write("\3\t\3\t\3\t\3\n\5\ns\n\n\3\n\5\nv\n\n\3\n\3\n\3\n\3\n") - buf.write("\3\13\3\13\3\13\5\13\177\n\13\3\f\3\f\3\f\3\f\5\f\u0085") - buf.write("\n\f\3\r\3\r\3\16\3\16\3\16\3\16\5\16\u008d\n\16\3\17") - buf.write("\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\21\5\21") - buf.write("\u009a\n\21\3\21\3\21\3\21\3\21\7\21\u00a0\n\21\f\21\16") - buf.write("\21\u00a3\13\21\3\21\3\21\3\22\5\22\u00a8\n\22\3\22\3") - buf.write("\22\3\22\5\22\u00ad\n\22\3\23\5\23\u00b0\n\23\3\23\3\23") - buf.write("\3\23\3\23\7\23\u00b6\n\23\f\23\16\23\u00b9\13\23\3\23") - buf.write("\3\23\3\24\3\24\5\24\u00bf\n\24\3\25\5\25\u00c2\n\25\3") - buf.write("\25\3\25\3\25\3\25\5\25\u00c8\n\25\3\26\3\26\5\26\u00cc") - buf.write("\n\26\3\26\2\2\27\2\4\6\b\n\f\16\20\22\24\26\30\32\34") - buf.write("\36 \"$&(*\2\2\u00d7\2,\3\2\2\2\4\63\3\2\2\2\6:\3\2\2") - buf.write("\2\b?\3\2\2\2\nH\3\2\2\2\fK\3\2\2\2\16Z\3\2\2\2\20]\3") - buf.write("\2\2\2\22r\3\2\2\2\24{\3\2\2\2\26\u0084\3\2\2\2\30\u0086") - buf.write("\3\2\2\2\32\u008c\3\2\2\2\34\u008e\3\2\2\2\36\u0093\3") - buf.write("\2\2\2 \u0099\3\2\2\2\"\u00a7\3\2\2\2$\u00af\3\2\2\2&") - buf.write("\u00be\3\2\2\2(\u00c1\3\2\2\2*\u00cb\3\2\2\2,\60\5\4\3") - buf.write("\2-/\5\n\6\2.-\3\2\2\2/\62\3\2\2\2\60.\3\2\2\2\60\61\3") - buf.write("\2\2\2\61\3\3\2\2\2\62\60\3\2\2\2\63\67\5\b\5\2\64\66") - buf.write("\5\6\4\2\65\64\3\2\2\2\669\3\2\2\2\67\65\3\2\2\2\678\3") - buf.write("\2\2\28\5\3\2\2\29\67\3\2\2\2:;\7\3\2\2;<\7\35\2\2<=\7") - buf.write("\4\2\2=\7\3\2\2\2>@\7\36\2\2?>\3\2\2\2?@\3\2\2\2@A\3\2") - buf.write("\2\2AB\7\5\2\2BC\7\35\2\2CD\7\4\2\2D\t\3\2\2\2EI\5\f\7") - buf.write("\2FI\5 \21\2GI\5$\23\2HE\3\2\2\2HF\3\2\2\2HG\3\2\2\2I") - buf.write("\13\3\2\2\2JL\7\36\2\2KJ\3\2\2\2KL\3\2\2\2LM\3\2\2\2M") - buf.write("N\7\6\2\2NO\7\35\2\2OS\7\7\2\2PR\5\16\b\2QP\3\2\2\2RU") - buf.write("\3\2\2\2SQ\3\2\2\2ST\3\2\2\2TV\3\2\2\2US\3\2\2\2VW\7\b") - buf.write("\2\2W\r\3\2\2\2X[\5\20\t\2Y[\5\22\n\2ZX\3\2\2\2ZY\3\2") - buf.write("\2\2[\17\3\2\2\2\\^\7\36\2\2]\\\3\2\2\2]^\3\2\2\2^`\3") - buf.write("\2\2\2_a\7\t\2\2`_\3\2\2\2`a\3\2\2\2ad\3\2\2\2be\5\26") - buf.write("\f\2ce\7\n\2\2db\3\2\2\2dc\3\2\2\2ef\3\2\2\2fg\7\35\2") - buf.write("\2gk\7\13\2\2hj\5\24\13\2ih\3\2\2\2jm\3\2\2\2ki\3\2\2") - buf.write("\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2no\7\f\2\2op\7\4\2\2p") - buf.write("\21\3\2\2\2qs\7\36\2\2rq\3\2\2\2rs\3\2\2\2su\3\2\2\2t") - buf.write("v\7\r\2\2ut\3\2\2\2uv\3\2\2\2vw\3\2\2\2wx\5\26\f\2xy\7") - buf.write("\35\2\2yz\7\4\2\2z\23\3\2\2\2{|\5\26\f\2|~\7\35\2\2}\177") - buf.write("\7\16\2\2~}\3\2\2\2~\177\3\2\2\2\177\25\3\2\2\2\u0080") - buf.write("\u0085\5\32\16\2\u0081\u0085\5\30\r\2\u0082\u0085\5\34") - buf.write("\17\2\u0083\u0085\5\36\20\2\u0084\u0080\3\2\2\2\u0084") - buf.write("\u0081\3\2\2\2\u0084\u0082\3\2\2\2\u0084\u0083\3\2\2\2") - buf.write("\u0085\27\3\2\2\2\u0086\u0087\7\35\2\2\u0087\31\3\2\2") - buf.write("\2\u0088\u008d\7\17\2\2\u0089\u008d\7\20\2\2\u008a\u008d") - buf.write("\7\21\2\2\u008b\u008d\7\22\2\2\u008c\u0088\3\2\2\2\u008c") - buf.write("\u0089\3\2\2\2\u008c\u008a\3\2\2\2\u008c\u008b\3\2\2\2") - buf.write("\u008d\33\3\2\2\2\u008e\u008f\7\23\2\2\u008f\u0090\7\24") - buf.write("\2\2\u0090\u0091\5\26\f\2\u0091\u0092\7\25\2\2\u0092\35") - buf.write("\3\2\2\2\u0093\u0094\7\26\2\2\u0094\u0095\7\24\2\2\u0095") - buf.write("\u0096\5\26\f\2\u0096\u0097\7\25\2\2\u0097\37\3\2\2\2") - buf.write("\u0098\u009a\7\36\2\2\u0099\u0098\3\2\2\2\u0099\u009a") - buf.write("\3\2\2\2\u009a\u009b\3\2\2\2\u009b\u009c\7\27\2\2\u009c") - buf.write("\u009d\7\35\2\2\u009d\u00a1\7\7\2\2\u009e\u00a0\5\"\22") - buf.write("\2\u009f\u009e\3\2\2\2\u00a0\u00a3\3\2\2\2\u00a1\u009f") - buf.write("\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2\u00a4\3\2\2\2\u00a3") - buf.write("\u00a1\3\2\2\2\u00a4\u00a5\7\b\2\2\u00a5!\3\2\2\2\u00a6") - buf.write("\u00a8\7\36\2\2\u00a7\u00a6\3\2\2\2\u00a7\u00a8\3\2\2") - buf.write("\2\u00a8\u00a9\3\2\2\2\u00a9\u00aa\5\26\f\2\u00aa\u00ac") - buf.write("\7\35\2\2\u00ab\u00ad\7\4\2\2\u00ac\u00ab\3\2\2\2\u00ac") - buf.write("\u00ad\3\2\2\2\u00ad#\3\2\2\2\u00ae\u00b0\7\36\2\2\u00af") - buf.write("\u00ae\3\2\2\2\u00af\u00b0\3\2\2\2\u00b0\u00b1\3\2\2\2") - buf.write("\u00b1\u00b2\5&\24\2\u00b2\u00b3\7\35\2\2\u00b3\u00b7") - buf.write("\7\7\2\2\u00b4\u00b6\5(\25\2\u00b5\u00b4\3\2\2\2\u00b6") - buf.write("\u00b9\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2") - buf.write("\u00b8\u00ba\3\2\2\2\u00b9\u00b7\3\2\2\2\u00ba\u00bb\7") - buf.write("\b\2\2\u00bb%\3\2\2\2\u00bc\u00bf\7\30\2\2\u00bd\u00bf") - buf.write("\7\31\2\2\u00be\u00bc\3\2\2\2\u00be\u00bd\3\2\2\2\u00bf") - buf.write("\'\3\2\2\2\u00c0\u00c2\7\36\2\2\u00c1\u00c0\3\2\2\2\u00c1") - buf.write("\u00c2\3\2\2\2\u00c2\u00c3\3\2\2\2\u00c3\u00c4\7\35\2") - buf.write("\2\u00c4\u00c5\7\32\2\2\u00c5\u00c7\5*\26\2\u00c6\u00c8") - buf.write("\7\16\2\2\u00c7\u00c6\3\2\2\2\u00c7\u00c8\3\2\2\2\u00c8") - buf.write(")\3\2\2\2\u00c9\u00cc\7\33\2\2\u00ca\u00cc\7\34\2\2\u00cb") - buf.write("\u00c9\3\2\2\2\u00cb\u00ca\3\2\2\2\u00cc+\3\2\2\2\34\60") - buf.write("\67?HKSZ]`dkru~\u0084\u008c\u0099\u00a1\u00a7\u00ac\u00af") - buf.write("\u00b7\u00be\u00c1\u00c7\u00cb") + buf.write("\4\3\4\3\4\3\5\5\5A\n\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\5") + buf.write("\6J\n\6\3\7\5\7M\n\7\3\7\3\7\3\7\3\7\7\7S\n\7\f\7\16\7") + buf.write("V\13\7\3\7\3\7\3\b\3\b\5\b\\\n\b\3\t\5\t_\n\t\3\t\5\t") + buf.write("b\n\t\3\t\3\t\5\tf\n\t\3\t\3\t\3\t\7\tk\n\t\f\t\16\tn") + buf.write("\13\t\3\t\3\t\3\t\3\n\5\nt\n\n\3\n\5\nw\n\n\3\n\3\n\3") + buf.write("\n\3\n\3\13\3\13\3\13\5\13\u0080\n\13\3\f\3\f\3\f\3\f") + buf.write("\5\f\u0086\n\f\3\r\3\r\3\16\3\16\3\16\3\16\5\16\u008e") + buf.write("\n\16\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20") + buf.write("\3\21\5\21\u009b\n\21\3\21\3\21\3\21\3\21\7\21\u00a1\n") + buf.write("\21\f\21\16\21\u00a4\13\21\3\21\3\21\3\22\5\22\u00a9\n") + buf.write("\22\3\22\3\22\3\22\5\22\u00ae\n\22\3\23\5\23\u00b1\n\23") + buf.write("\3\23\3\23\3\23\3\23\7\23\u00b7\n\23\f\23\16\23\u00ba") + buf.write("\13\23\3\23\3\23\3\24\3\24\5\24\u00c0\n\24\3\25\5\25\u00c3") + buf.write("\n\25\3\25\3\25\3\25\3\25\5\25\u00c9\n\25\3\26\3\26\5") + buf.write("\26\u00cd\n\26\3\26\2\2\27\2\4\6\b\n\f\16\20\22\24\26") + buf.write("\30\32\34\36 \"$&(*\2\2\u00d8\2,\3\2\2\2\4\63\3\2\2\2") + buf.write("\6:\3\2\2\2\b@\3\2\2\2\nI\3\2\2\2\fL\3\2\2\2\16[\3\2\2") + buf.write("\2\20^\3\2\2\2\22s\3\2\2\2\24|\3\2\2\2\26\u0085\3\2\2") + buf.write("\2\30\u0087\3\2\2\2\32\u008d\3\2\2\2\34\u008f\3\2\2\2") + buf.write("\36\u0094\3\2\2\2 \u009a\3\2\2\2\"\u00a8\3\2\2\2$\u00b0") + buf.write("\3\2\2\2&\u00bf\3\2\2\2(\u00c2\3\2\2\2*\u00cc\3\2\2\2") + buf.write(",\60\5\4\3\2-/\5\n\6\2.-\3\2\2\2/\62\3\2\2\2\60.\3\2\2") + buf.write("\2\60\61\3\2\2\2\61\3\3\2\2\2\62\60\3\2\2\2\63\67\5\b") + buf.write("\5\2\64\66\5\6\4\2\65\64\3\2\2\2\669\3\2\2\2\67\65\3\2") + buf.write("\2\2\678\3\2\2\28\5\3\2\2\29\67\3\2\2\2:;\7\3\2\2;<\7") + buf.write("\35\2\2<=\7\36\2\2=>\7\4\2\2>\7\3\2\2\2?A\7\37\2\2@?\3") + buf.write("\2\2\2@A\3\2\2\2AB\3\2\2\2BC\7\5\2\2CD\7\35\2\2DE\7\4") + buf.write("\2\2E\t\3\2\2\2FJ\5\f\7\2GJ\5 \21\2HJ\5$\23\2IF\3\2\2") + buf.write("\2IG\3\2\2\2IH\3\2\2\2J\13\3\2\2\2KM\7\37\2\2LK\3\2\2") + buf.write("\2LM\3\2\2\2MN\3\2\2\2NO\7\6\2\2OP\7\35\2\2PT\7\7\2\2") + buf.write("QS\5\16\b\2RQ\3\2\2\2SV\3\2\2\2TR\3\2\2\2TU\3\2\2\2UW") + buf.write("\3\2\2\2VT\3\2\2\2WX\7\b\2\2X\r\3\2\2\2Y\\\5\20\t\2Z\\") + buf.write("\5\22\n\2[Y\3\2\2\2[Z\3\2\2\2\\\17\3\2\2\2]_\7\37\2\2") + buf.write("^]\3\2\2\2^_\3\2\2\2_a\3\2\2\2`b\7\t\2\2a`\3\2\2\2ab\3") + buf.write("\2\2\2be\3\2\2\2cf\5\26\f\2df\7\n\2\2ec\3\2\2\2ed\3\2") + buf.write("\2\2fg\3\2\2\2gh\7\35\2\2hl\7\13\2\2ik\5\24\13\2ji\3\2") + buf.write("\2\2kn\3\2\2\2lj\3\2\2\2lm\3\2\2\2mo\3\2\2\2nl\3\2\2\2") + buf.write("op\7\f\2\2pq\7\4\2\2q\21\3\2\2\2rt\7\37\2\2sr\3\2\2\2") + buf.write("st\3\2\2\2tv\3\2\2\2uw\7\r\2\2vu\3\2\2\2vw\3\2\2\2wx\3") + buf.write("\2\2\2xy\5\26\f\2yz\7\35\2\2z{\7\4\2\2{\23\3\2\2\2|}\5") + buf.write("\26\f\2}\177\7\35\2\2~\u0080\7\16\2\2\177~\3\2\2\2\177") + buf.write("\u0080\3\2\2\2\u0080\25\3\2\2\2\u0081\u0086\5\32\16\2") + buf.write("\u0082\u0086\5\30\r\2\u0083\u0086\5\34\17\2\u0084\u0086") + buf.write("\5\36\20\2\u0085\u0081\3\2\2\2\u0085\u0082\3\2\2\2\u0085") + buf.write("\u0083\3\2\2\2\u0085\u0084\3\2\2\2\u0086\27\3\2\2\2\u0087") + buf.write("\u0088\7\35\2\2\u0088\31\3\2\2\2\u0089\u008e\7\17\2\2") + buf.write("\u008a\u008e\7\20\2\2\u008b\u008e\7\21\2\2\u008c\u008e") + buf.write("\7\22\2\2\u008d\u0089\3\2\2\2\u008d\u008a\3\2\2\2\u008d") + buf.write("\u008b\3\2\2\2\u008d\u008c\3\2\2\2\u008e\33\3\2\2\2\u008f") + buf.write("\u0090\7\23\2\2\u0090\u0091\7\24\2\2\u0091\u0092\5\26") + buf.write("\f\2\u0092\u0093\7\25\2\2\u0093\35\3\2\2\2\u0094\u0095") + buf.write("\7\26\2\2\u0095\u0096\7\24\2\2\u0096\u0097\5\26\f\2\u0097") + buf.write("\u0098\7\25\2\2\u0098\37\3\2\2\2\u0099\u009b\7\37\2\2") + buf.write("\u009a\u0099\3\2\2\2\u009a\u009b\3\2\2\2\u009b\u009c\3") + buf.write("\2\2\2\u009c\u009d\7\27\2\2\u009d\u009e\7\35\2\2\u009e") + buf.write("\u00a2\7\7\2\2\u009f\u00a1\5\"\22\2\u00a0\u009f\3\2\2") + buf.write("\2\u00a1\u00a4\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2\u00a3") + buf.write("\3\2\2\2\u00a3\u00a5\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a5") + buf.write("\u00a6\7\b\2\2\u00a6!\3\2\2\2\u00a7\u00a9\7\37\2\2\u00a8") + buf.write("\u00a7\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00aa\3\2\2\2") + buf.write("\u00aa\u00ab\5\26\f\2\u00ab\u00ad\7\35\2\2\u00ac\u00ae") + buf.write("\7\4\2\2\u00ad\u00ac\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae") + buf.write("#\3\2\2\2\u00af\u00b1\7\37\2\2\u00b0\u00af\3\2\2\2\u00b0") + buf.write("\u00b1\3\2\2\2\u00b1\u00b2\3\2\2\2\u00b2\u00b3\5&\24\2") + buf.write("\u00b3\u00b4\7\35\2\2\u00b4\u00b8\7\7\2\2\u00b5\u00b7") + buf.write("\5(\25\2\u00b6\u00b5\3\2\2\2\u00b7\u00ba\3\2\2\2\u00b8") + buf.write("\u00b6\3\2\2\2\u00b8\u00b9\3\2\2\2\u00b9\u00bb\3\2\2\2") + buf.write("\u00ba\u00b8\3\2\2\2\u00bb\u00bc\7\b\2\2\u00bc%\3\2\2") + buf.write("\2\u00bd\u00c0\7\30\2\2\u00be\u00c0\7\31\2\2\u00bf\u00bd") + buf.write("\3\2\2\2\u00bf\u00be\3\2\2\2\u00c0\'\3\2\2\2\u00c1\u00c3") + buf.write("\7\37\2\2\u00c2\u00c1\3\2\2\2\u00c2\u00c3\3\2\2\2\u00c3") + buf.write("\u00c4\3\2\2\2\u00c4\u00c5\7\35\2\2\u00c5\u00c6\7\32\2") + buf.write("\2\u00c6\u00c8\5*\26\2\u00c7\u00c9\7\16\2\2\u00c8\u00c7") + buf.write("\3\2\2\2\u00c8\u00c9\3\2\2\2\u00c9)\3\2\2\2\u00ca\u00cd") + buf.write("\7\33\2\2\u00cb\u00cd\7\34\2\2\u00cc\u00ca\3\2\2\2\u00cc") + buf.write("\u00cb\3\2\2\2\u00cd+\3\2\2\2\34\60\67@ILT[^aelsv\177") + buf.write("\u0085\u008d\u009a\u00a2\u00a8\u00ad\u00b0\u00b8\u00bf") + buf.write("\u00c2\u00c8\u00cc") return buf.getvalue() @@ -114,7 +115,8 @@ class TParser ( Parser ): "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "INTCONSTANT", "HEXCONSTANT", "IDENTIFIER", - "DOCCOMMENT", "WHITESPACE", "COMMENT", "MULTICOMM" ] + "VERSION", "DOCCOMMENT", "WHITESPACE", "COMMENT", + "MULTICOMM" ] RULE_documentSymbol = 0 RULE_headerSymbol = 1 @@ -174,10 +176,11 @@ class TParser ( Parser ): INTCONSTANT=25 HEXCONSTANT=26 IDENTIFIER=27 - DOCCOMMENT=28 - WHITESPACE=29 - COMMENT=30 - MULTICOMM=31 + VERSION=28 + DOCCOMMENT=29 + WHITESPACE=30 + COMMENT=31 + MULTICOMM=32 def __init__(self, input:TokenStream): super().__init__(input) @@ -321,10 +324,14 @@ class TParser ( Parser ): super().__init__(parent, invokingState) self.parser = parser self.name = None # Token + self.version = None # Token def IDENTIFIER(self): return self.getToken(TParser.IDENTIFIER, 0) + def VERSION(self): + return self.getToken(TParser.VERSION, 0) + def getRuleIndex(self): return TParser.RULE_importSymbol @@ -356,6 +363,8 @@ class TParser ( Parser ): self.state = 57 localctx.name = self.match(TParser.IDENTIFIER) self.state = 58 + localctx.version = self.match(TParser.VERSION) + self.state = 59 self.match(TParser.T__1) except RecognitionException as re: localctx.exception = re @@ -406,18 +415,18 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 61 + self.state = 62 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 60 + self.state = 61 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 63 - self.match(TParser.T__2) self.state = 64 - localctx.name = self.match(TParser.IDENTIFIER) + self.match(TParser.T__2) self.state = 65 + localctx.name = self.match(TParser.IDENTIFIER) + self.state = 66 self.match(TParser.T__1) except RecognitionException as re: localctx.exception = re @@ -470,24 +479,24 @@ class TParser ( Parser ): localctx = TParser.DefinitionSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 8, self.RULE_definitionSymbol) try: - self.state = 70 + self.state = 71 self._errHandler.sync(self); la_ = self._interp.adaptivePredict(self._input,3,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 67 + self.state = 68 self.interfaceSymbol() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 68 + self.state = 69 self.structSymbol() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 69 + self.state = 70 self.enumSymbol() pass @@ -548,30 +557,30 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 73 + self.state = 74 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 72 + self.state = 73 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 75 - self.match(TParser.T__3) self.state = 76 - localctx.name = self.match(TParser.IDENTIFIER) + self.match(TParser.T__3) self.state = 77 + localctx.name = self.match(TParser.IDENTIFIER) + self.state = 78 self.match(TParser.T__4) - self.state = 81 + self.state = 82 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__6) | (1 << TParser.T__7) | (1 << TParser.T__10) | (1 << TParser.T__12) | (1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__19) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): - self.state = 78 + self.state = 79 self.memberSymbol() - self.state = 83 + self.state = 84 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 84 + self.state = 85 self.match(TParser.T__5) except RecognitionException as re: localctx.exception = re @@ -620,18 +629,18 @@ class TParser ( Parser ): localctx = TParser.MemberSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_memberSymbol) try: - self.state = 88 + self.state = 89 self._errHandler.sync(self); la_ = self._interp.adaptivePredict(self._input,6,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 86 + self.state = 87 self.operationSymbol() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 87 + self.state = 88 self.propertySymbol() pass @@ -697,50 +706,50 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 91 + self.state = 92 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 90 + self.state = 91 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 94 + self.state = 95 _la = self._input.LA(1) if _la==TParser.T__6: - self.state = 93 + self.state = 94 localctx.isEvent = self.match(TParser.T__6) - self.state = 98 + self.state = 99 token = self._input.LA(1) if token in [TParser.T__12, TParser.T__13, TParser.T__14, TParser.T__15, TParser.T__16, TParser.T__19, TParser.IDENTIFIER]: - self.state = 96 + self.state = 97 self.typeSymbol() elif token in [TParser.T__7]: - self.state = 97 + self.state = 98 self.match(TParser.T__7) else: raise NoViableAltException(self) - self.state = 100 - localctx.name = self.match(TParser.IDENTIFIER) self.state = 101 + localctx.name = self.match(TParser.IDENTIFIER) + self.state = 102 self.match(TParser.T__8) - self.state = 105 + self.state = 106 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__12) | (1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__19) | (1 << TParser.IDENTIFIER))) != 0): - self.state = 102 + self.state = 103 self.parameterSymbol() - self.state = 107 + self.state = 108 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 108 - self.match(TParser.T__9) self.state = 109 + self.match(TParser.T__9) + self.state = 110 self.match(TParser.T__1) except RecognitionException as re: localctx.exception = re @@ -796,25 +805,25 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 112 + self.state = 113 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 111 + self.state = 112 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 115 + self.state = 116 _la = self._input.LA(1) if _la==TParser.T__10: - self.state = 114 + self.state = 115 localctx.isReadOnly = self.match(TParser.T__10) - self.state = 117 - self.typeSymbol() self.state = 118 - localctx.name = self.match(TParser.IDENTIFIER) + self.typeSymbol() self.state = 119 + localctx.name = self.match(TParser.IDENTIFIER) + self.state = 120 self.match(TParser.T__1) except RecognitionException as re: localctx.exception = re @@ -865,14 +874,14 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 121 - self.typeSymbol() self.state = 122 + self.typeSymbol() + self.state = 123 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 124 + self.state = 125 _la = self._input.LA(1) if _la==TParser.T__11: - self.state = 123 + self.state = 124 self.match(TParser.T__11) @@ -931,26 +940,26 @@ class TParser ( Parser ): localctx = TParser.TypeSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 20, self.RULE_typeSymbol) try: - self.state = 130 + self.state = 131 token = self._input.LA(1) if token in [TParser.T__12, TParser.T__13, TParser.T__14, TParser.T__15]: self.enterOuterAlt(localctx, 1) - self.state = 126 + self.state = 127 self.primitiveTypeSymbol() elif token in [TParser.IDENTIFIER]: self.enterOuterAlt(localctx, 2) - self.state = 127 + self.state = 128 self.complexTypeSymbol() elif token in [TParser.T__16]: self.enterOuterAlt(localctx, 3) - self.state = 128 + self.state = 129 self.listTypeSymbol() elif token in [TParser.T__19]: self.enterOuterAlt(localctx, 4) - self.state = 129 + self.state = 130 self.modelTypeSymbol() else: @@ -1000,7 +1009,7 @@ class TParser ( Parser ): self.enterRule(localctx, 22, self.RULE_complexTypeSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 132 + self.state = 133 localctx.name = self.match(TParser.IDENTIFIER) except RecognitionException as re: localctx.exception = re @@ -1043,26 +1052,26 @@ class TParser ( Parser ): localctx = TParser.PrimitiveTypeSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 24, self.RULE_primitiveTypeSymbol) try: - self.state = 138 + self.state = 139 token = self._input.LA(1) if token in [TParser.T__12]: self.enterOuterAlt(localctx, 1) - self.state = 134 + self.state = 135 localctx.name = self.match(TParser.T__12) elif token in [TParser.T__13]: self.enterOuterAlt(localctx, 2) - self.state = 135 + self.state = 136 localctx.name = self.match(TParser.T__13) elif token in [TParser.T__14]: self.enterOuterAlt(localctx, 3) - self.state = 136 + self.state = 137 localctx.name = self.match(TParser.T__14) elif token in [TParser.T__15]: self.enterOuterAlt(localctx, 4) - self.state = 137 + self.state = 138 localctx.name = self.match(TParser.T__15) else: @@ -1113,13 +1122,13 @@ class TParser ( Parser ): self.enterRule(localctx, 26, self.RULE_listTypeSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 140 - self.match(TParser.T__16) self.state = 141 - self.match(TParser.T__17) + self.match(TParser.T__16) self.state = 142 - localctx.valueType = self.typeSymbol() + self.match(TParser.T__17) self.state = 143 + localctx.valueType = self.typeSymbol() + self.state = 144 self.match(TParser.T__18) except RecognitionException as re: localctx.exception = re @@ -1166,13 +1175,13 @@ class TParser ( Parser ): self.enterRule(localctx, 28, self.RULE_modelTypeSymbol) try: self.enterOuterAlt(localctx, 1) - self.state = 145 - self.match(TParser.T__19) self.state = 146 - self.match(TParser.T__17) + self.match(TParser.T__19) self.state = 147 - localctx.valueType = self.typeSymbol() + self.match(TParser.T__17) self.state = 148 + localctx.valueType = self.typeSymbol() + self.state = 149 self.match(TParser.T__18) except RecognitionException as re: localctx.exception = re @@ -1230,30 +1239,30 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 151 + self.state = 152 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 150 + self.state = 151 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 153 - self.match(TParser.T__20) self.state = 154 - localctx.name = self.match(TParser.IDENTIFIER) + self.match(TParser.T__20) self.state = 155 + localctx.name = self.match(TParser.IDENTIFIER) + self.state = 156 self.match(TParser.T__4) - self.state = 159 + self.state = 160 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TParser.T__12) | (1 << TParser.T__13) | (1 << TParser.T__14) | (1 << TParser.T__15) | (1 << TParser.T__16) | (1 << TParser.T__19) | (1 << TParser.IDENTIFIER) | (1 << TParser.DOCCOMMENT))) != 0): - self.state = 156 + self.state = 157 self.structMemberSymbol() - self.state = 161 + self.state = 162 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 162 + self.state = 163 self.match(TParser.T__5) except RecognitionException as re: localctx.exception = re @@ -1308,21 +1317,21 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 165 + self.state = 166 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 164 + self.state = 165 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 167 - self.typeSymbol() self.state = 168 + self.typeSymbol() + self.state = 169 localctx.name = self.match(TParser.IDENTIFIER) - self.state = 170 + self.state = 171 _la = self._input.LA(1) if _la==TParser.T__1: - self.state = 169 + self.state = 170 self.match(TParser.T__1) @@ -1386,30 +1395,30 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 173 + self.state = 174 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 172 + self.state = 173 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 175 - self.enumTypeSymbol() self.state = 176 - localctx.name = self.match(TParser.IDENTIFIER) + self.enumTypeSymbol() self.state = 177 + localctx.name = self.match(TParser.IDENTIFIER) + self.state = 178 self.match(TParser.T__4) - self.state = 181 + self.state = 182 self._errHandler.sync(self) _la = self._input.LA(1) while _la==TParser.IDENTIFIER or _la==TParser.DOCCOMMENT: - self.state = 178 + self.state = 179 self.enumMemberSymbol() - self.state = 183 + self.state = 184 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 184 + self.state = 185 self.match(TParser.T__5) except RecognitionException as re: localctx.exception = re @@ -1453,16 +1462,16 @@ class TParser ( Parser ): localctx = TParser.EnumTypeSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 36, self.RULE_enumTypeSymbol) try: - self.state = 188 + self.state = 189 token = self._input.LA(1) if token in [TParser.T__21]: self.enterOuterAlt(localctx, 1) - self.state = 186 + self.state = 187 localctx.isEnum = self.match(TParser.T__21) elif token in [TParser.T__22]: self.enterOuterAlt(localctx, 2) - self.state = 187 + self.state = 188 localctx.isFlag = self.match(TParser.T__22) else: @@ -1521,23 +1530,23 @@ class TParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 191 + self.state = 192 _la = self._input.LA(1) if _la==TParser.DOCCOMMENT: - self.state = 190 + self.state = 191 localctx.comment = self.match(TParser.DOCCOMMENT) - self.state = 193 - localctx.name = self.match(TParser.IDENTIFIER) self.state = 194 - self.match(TParser.T__23) + localctx.name = self.match(TParser.IDENTIFIER) self.state = 195 + self.match(TParser.T__23) + self.state = 196 self.intSymbol() - self.state = 197 + self.state = 198 _la = self._input.LA(1) if _la==TParser.T__11: - self.state = 196 + self.state = 197 self.match(TParser.T__11) @@ -1587,16 +1596,16 @@ class TParser ( Parser ): localctx = TParser.IntSymbolContext(self, self._ctx, self.state) self.enterRule(localctx, 40, self.RULE_intSymbol) try: - self.state = 201 + self.state = 202 token = self._input.LA(1) if token in [TParser.INTCONSTANT]: self.enterOuterAlt(localctx, 1) - self.state = 199 + self.state = 200 localctx.value = self.match(TParser.INTCONSTANT) elif token in [TParser.HEXCONSTANT]: self.enterOuterAlt(localctx, 2) - self.state = 200 + self.state = 201 localctx.value = self.match(TParser.HEXCONSTANT) else: |
