diff options
Diffstat (limited to 'qface/idl/parser/T.g4')
-rw-r--r-- | qface/idl/parser/T.g4 | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/qface/idl/parser/T.g4 b/qface/idl/parser/T.g4 index 4ec68c8..9cfe4e7 100644 --- a/qface/idl/parser/T.g4 +++ b/qface/idl/parser/T.g4 @@ -29,7 +29,7 @@ definitionSymbol ; interfaceSymbol - : comment=DOCCOMMENT? tagSymbol* 'interface' name=IDENTIFIER '{' interfaceMemberSymbol* '}' ';'? + : comment=DOCCOMMENT? tagSymbol* 'interface' name=IDENTIFIER ('extends' extends=IDENTIFIER)? '{' interfaceMemberSymbol* '}' ';'? ; interfaceMemberSymbol @@ -39,7 +39,11 @@ interfaceMemberSymbol ; operationSymbol - : comment=DOCCOMMENT? tagSymbol* (typeSymbol | 'void') name=IDENTIFIER '(' operationParameterSymbol* ')' ';'? + : comment=DOCCOMMENT? tagSymbol* (typeSymbol | 'void') name=IDENTIFIER '(' operationParameterSymbol* ')' operationModifierSymbol? ';'? + ; + +operationModifierSymbol + : is_const='const' ; signalSymbol @@ -48,7 +52,12 @@ signalSymbol propertySymbol - : comment=DOCCOMMENT? tagSymbol* isReadOnly='readonly'? typeSymbol name=IDENTIFIER ';'? + : comment=DOCCOMMENT? tagSymbol* propertyModifierSymbol? typeSymbol name=IDENTIFIER ';'? + ; + +propertyModifierSymbol + : is_readonly='readonly' + | is_const='const' ; operationParameterSymbol |