Skip to content

Commit b358050

Browse files
authored
Merge pull request #4 from EmbarkStudios/feature/access-specifiers
Add support for access specifiers
2 parents ed9dd48 + 00efdfd commit b358050

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

UnrealAngelscriptParser/Grammar/UnrealAngelscriptLexer.g4

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ Bool: 'bool';
8080
8181
Auto: 'auto';
8282
83+
Access: 'access';
84+
8385
Break: 'break';
8486
8587
Case: 'case';
@@ -98,6 +100,8 @@ Default: 'default';
98100
99101
Do: 'do';
100102
103+
EditDefaults: 'editdefaults';
104+
101105
Else: 'else';
102106
103107
Enum: 'enum';
@@ -114,6 +118,8 @@ Goto: 'goto';
114118
115119
If: 'if';
116120
121+
Inherited: 'inherited';
122+
117123
Namespace: 'namespace';
118124
119125
Nullptr: 'nullptr';
@@ -128,6 +134,8 @@ Protected: 'protected';
128134
129135
Public: 'public';
130136
137+
ReadOnly: 'readonly';
138+
131139
Return: 'return';
132140
133141
Short: 'short';

UnrealAngelscriptParser/Grammar/UnrealAngelscriptParser.g4

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ parameterDeclaration:
444444
declSpecifierSeq Identifier? (Assign initializerClause)?;
445445

446446
functionDefinition:
447-
ufunction? accessSpecifier? Mixin? declSpecifierSeq? declarator postFuncSpecifierSeq? functionBody;
447+
ufunction? (accessSpecifier | accessPattern)? Mixin? declSpecifierSeq? declarator postFuncSpecifierSeq? functionBody;
448448

449449
functionBody:
450450
compoundStatement
@@ -491,10 +491,11 @@ memberdeclaration:
491491
propertyDefinition
492492
| functionDefinition
493493
| aliasDeclaration
494-
| emptyDeclaration;
494+
| emptyDeclaration
495+
| accessDeclaration;
495496

496497
propertyDefinition:
497-
uproperty? accessSpecifier? Default? declSpecifierSeq? (memberDeclaratorList | assignmentExpression)? Semi;
498+
uproperty? (accessSpecifier | accessPattern)? Default? declSpecifierSeq? (memberDeclaratorList | assignmentExpression)? Semi;
498499

499500
memberDeclaratorList:
500501
memberDeclarator (Comma memberDeclarator)*;
@@ -532,6 +533,14 @@ baseTypeSpecifier: classOrDeclType;
532533

533534
accessSpecifier: Private | Protected | Public;
534535

536+
accessModifier: Inherited | EditDefaults | ReadOnly;
537+
538+
accessModifiers: LeftParen accessModifier (Comma accessModifier)* RightParen;
539+
540+
accessDeclaration: Access Identifier Assign accessSpecifier ((Comma Identifier accessModifiers?)* | (Comma Star accessModifiers)) Semi;
541+
542+
accessPattern: Access Colon Identifier;
543+
535544
/*Overloading*/
536545

537546
operatorFunctionId: Operator theOperator;

0 commit comments

Comments
 (0)