Skip to content

Commit 044ccc5

Browse files
committed
Support allow_discard.
1 parent 2558e2b commit 044ccc5

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

UnrealAngelscriptParser/Grammar/UnrealAngelscriptLexer.g4

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ Bool: 'bool';
8787

8888
/* UnrealAngelscript */
8989

90+
NoDiscard: 'no_discard';
91+
92+
AllowDiscard: 'allow_discard';
93+
94+
AcceptTemporaryThis: 'accept_temporary_this';
95+
9096
UClass: 'UCLASS';
9197

9298
UStruct: 'USTRUCT';
@@ -109,8 +115,6 @@ Check: 'check';
109115

110116
Auto: 'auto';
111117

112-
AcceptTemporaryThis: 'accept_temporary_this';
113-
114118
Access: 'access';
115119

116120
Break: 'break';
@@ -153,8 +157,6 @@ Inherited: 'inherited';
153157

154158
Namespace: 'namespace';
155159

156-
NoDiscard: 'no_discard';
157-
158160
Nullptr: 'nullptr';
159161

160162
Operator: 'operator';

UnrealAngelscriptParser/Grammar/UnrealAngelscriptParser.g4

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ ufunction:
5858

5959
moduleImport:
6060
Import Identifier (Dot Identifier)* Semi
61-
| Import declSpecifierSeq? declarator postFuncSpecifierSeq? From StringLiteral Semi
61+
| Import declSpecifierSeq? declarator virtualSpecifierSeq? From StringLiteral Semi
6262
;
6363

6464
asGeneric:
@@ -451,7 +451,7 @@ parameterDeclaration:
451451
declSpecifierSeq Identifier? (Assign initializerClause)?;
452452

453453
functionDefinition:
454-
ufunction? (accessSpecifier | accessPattern)? Mixin? declSpecifierSeq? declarator postFuncSpecifierSeq? functionBody;
454+
ufunction? (accessSpecifier | accessPattern)? Mixin? declSpecifierSeq? declarator virtualSpecifierSeq? angelscriptModifierSeq? functionBody;
455455

456456
functionBody:
457457
compoundStatement
@@ -514,15 +514,24 @@ memberDeclaratorList:
514514

515515
memberDeclarator:
516516
declarator (
517-
postFuncSpecifierSeq?
517+
virtualSpecifierSeq? angelscriptModifierSeq?
518518
| braceOrEqualInitializer?
519519
)
520520
| Identifier? Colon constantExpression
521521
| Identifier;
522522

523-
postFuncSpecifierSeq: virtualSpecifier+;
523+
virtualSpecifierSeq: virtualSpecifier+;
524524

525-
virtualSpecifier: Override | Final | Property;
525+
virtualSpecifier
526+
: Override
527+
| Final
528+
| Property // Angelscript
529+
;
530+
531+
angelscriptModifierSeq: angelscriptModifier+;
532+
533+
angelscriptModifier:
534+
NoDiscard | AllowDiscard;
526535

527536
/*Derived classes*/
528537

0 commit comments

Comments
 (0)