fix: grammar moment

This commit is contained in:
FalsePattern 2024-05-30 19:16:18 +02:00
parent 3afefe0e1c
commit aaab6dcba4
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
2 changed files with 19 additions and 9 deletions

View file

@ -27,6 +27,7 @@ Changelog structure reference:
- Zig - Zig
- Fixed inconsistent caret indenting for switches and function parameters - Fixed inconsistent caret indenting for switches and function parameters
- More robust highlighting when auto-formatting - More robust highlighting when auto-formatting
- Fixed multiple grammar errors
### Removed ### Removed

View file

@ -177,7 +177,7 @@ TestDecl ::= DOC_COMMENT? KEYWORD_TEST (STRING_LITERAL_SINGLE | IDENTIFIER)? Blo
ComptimeDecl ::= KEYWORD_COMPTIME Block {pin=1} ComptimeDecl ::= KEYWORD_COMPTIME Block {pin=1}
Decl Decl
::= (KEYWORD_EXPORT | KEYWORD_EXTERN STRING_LITERAL_SINGLE? | KEYWORD_INLINE | KEYWORD_NOILINE)? FnProto (SEMICOLON | Block) ::= (KEYWORD_EXPORT | KEYWORD_EXTERN STRING_LITERAL_SINGLE? | KEYWORD_INLINE | KEYWORD_NOINLINE)? FnProto (SEMICOLON | Block)
| (KEYWORD_EXPORT | KEYWORD_EXTERN STRING_LITERAL_SINGLE?)? KEYWORD_THREADLOCAL? GlobalVarDecl | (KEYWORD_EXPORT | KEYWORD_EXTERN STRING_LITERAL_SINGLE?)? KEYWORD_THREADLOCAL? GlobalVarDecl
| KEYWORD_USINGNAMESPACE Expr SEMICOLON | KEYWORD_USINGNAMESPACE Expr SEMICOLON
@ -216,12 +216,18 @@ LabeledStatement ::= BlockLabel? (Block | LoopStatement)
LoopStatement ::= KEYWORD_INLINE? (ForStatement | WhileStatement) LoopStatement ::= KEYWORD_INLINE? (ForStatement | WhileStatement)
ForStatement ForStatement
::= ForPrefix BlockExpr ( KEYWORD_ELSE Statement )? ::= ForPrefix ZB_ForStatement_Body {pin(".*")=1}
| ForPrefix AssignExpr ( SEMICOLON | KEYWORD_ELSE Statement ) {pin(".*")=1}
private ZB_ForStatement_Body
::= BlockExpr ( KEYWORD_ELSE Statement )?
| AssignExpr ( SEMICOLON | KEYWORD_ELSE Statement )
WhileStatement WhileStatement
::= WhilePrefix BlockExpr ( KEYWORD_ELSE Payload? Statement )? ::= WhilePrefix ZB_WhileStatement_Body {pin(".*") =1}
| WhilePrefix AssignExpr ( SEMICOLON | KEYWORD_ELSE Payload? Statement) {pin(".*") =1}
private ZB_WhileStatement_Body
::= BlockExpr ( KEYWORD_ELSE Payload? Statement )?
| AssignExpr ( SEMICOLON | KEYWORD_ELSE Payload? Statement)
BlockExprStatement BlockExprStatement
::= BlockExpr ::= BlockExpr
@ -276,7 +282,7 @@ PrimaryExpr
IfExpr ::= IfPrefix Expr (KEYWORD_ELSE Payload? Expr)? IfExpr ::= IfPrefix Expr (KEYWORD_ELSE Payload? Expr)?
Block ::= LBRACE ZB_Block_Statement RBRACE {pin(".*")=1} Block ::= LBRACE ZB_Block_Statement RBRACE {pin=1}
private ZB_Block_Statement ::= Statement* {recoverWhile="ZB_Block_Statement_recover"} private ZB_Block_Statement ::= Statement* {recoverWhile="ZB_Block_Statement_recover"}
@ -291,9 +297,12 @@ WhileExpr ::= WhilePrefix Expr (KEYWORD_ELSE Payload? Expr)?
CurlySuffixExpr ::= TypeExpr InitList? CurlySuffixExpr ::= TypeExpr InitList?
InitList InitList
::= LBRACE FieldInit (COMMA ZB_InitList_FieldInit)* COMMA? RBRACE ::= LBRACE ZB_InitList_Body {pin=1}
| LBRACE Expr (COMMA ZB_InitList_Expr)* COMMA? RBRACE
| LBRACE RBRACE {pin=1} private ZB_InitList_Body
::= FieldInit (COMMA ZB_InitList_FieldInit)* COMMA? RBRACE
| Expr (COMMA ZB_InitList_Expr)* COMMA? RBRACE
| RBRACE {pin(".*")=1}
private ZB_InitList_FieldInit ::= FieldInit {recoverWhile="#auto"} private ZB_InitList_FieldInit ::= FieldInit {recoverWhile="#auto"}
private ZB_InitList_Expr ::= Expr {recoverWhile="#auto"} private ZB_InitList_Expr ::= Expr {recoverWhile="#auto"}