aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2016-09-11 09:35:21 +0200
committerJuergen Ryannel <juergen.bocklage-ryannel@pelagicore.com>2016-11-30 10:01:20 +0100
commit37fe686d82bfcdfa9fcc8bb1383cf243eeb68a7e (patch)
tree690d7c8e5c5779774a10dc8a1c9ea81402a0cd4b
parent43b40b9af549b0b92bc152252f1a93f28496f2f2 (diff)
Fixed Version string for module imports
-rw-r--r--qface/idl/parser/T.g43
-rw-r--r--qface/idl/parser/T.tokens9
-rw-r--r--qface/idl/parser/TLexer.py210
-rw-r--r--qface/idl/parser/TLexer.tokens9
-rw-r--r--qface/idl/parser/TParser.py381
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: