summaryrefslogtreecommitdiff
path: root/qface/idl/parser/T.g4
diff options
context:
space:
mode:
Diffstat (limited to 'qface/idl/parser/T.g4')
-rw-r--r--qface/idl/parser/T.g413
1 files changed, 8 insertions, 5 deletions
diff --git a/qface/idl/parser/T.g4 b/qface/idl/parser/T.g4
index 8d07623..2551937 100644
--- a/qface/idl/parser/T.g4
+++ b/qface/idl/parser/T.g4
@@ -7,8 +7,8 @@ documentSymbol
;
/**
-module name;
-import name;
+module <name> <version>;
+import <name> <version>;
*/
headerSymbol
: moduleSymbol importSymbol*
@@ -52,7 +52,7 @@ signalSymbol
propertySymbol
- : comment=DOCCOMMENT? tagSymbol* propertyModifierSymbol? typeSymbol name=IDENTIFIER ';'?
+ : comment=DOCCOMMENT? tagSymbol* propertyModifierSymbol? typeSymbol name=IDENTIFIER ('=' value=STRING)? ';'?
;
propertyModifierSymbol
@@ -109,7 +109,7 @@ structSymbol
;
structFieldSymbol
- : comment=DOCCOMMENT? tagSymbol* typeSymbol name=IDENTIFIER ';'?
+ : comment=DOCCOMMENT? tagSymbol* typeSymbol name=IDENTIFIER ('=' value=STRING)? ';'?
;
enumSymbol
@@ -130,6 +130,9 @@ intSymbol
| value=HEXCONSTANT
;
+STRING: DOUBLE_STRING | SINGLE_STRING;
+DOUBLE_STRING : '"' ( ESC | ~ ["\\] )* '"';
+SINGLE_STRING : '\'' ( ESC | ~ ['\\] )* '\'';
TAGLINE : '@' ~[\r\n]*;
INTCONSTANT : ('+' | '-')? '0'..'9'+;
HEXCONSTANT : '0x' ('0'..'9' | 'a'..'f' | 'A'..'F')+;
@@ -140,4 +143,4 @@ DOCCOMMENT : '/**' .*? '*/';
WHITESPACE : [ \t\r\n]+ -> skip;
COMMENT : '//' ~[\r\n]* -> skip;
MULTICOMM : '/*' .*? '*/' -> skip;
-
+fragment ESC : '\\' ( ["\\/bfnrt] );