feat!: Labeled switch

This commit is contained in:
FalsePattern 2024-10-17 11:22:08 +02:00
parent bba1874840
commit 8d56f9cadf
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
2 changed files with 8 additions and 4 deletions

View file

@ -17,6 +17,11 @@ Changelog structure reference:
## [Unreleased]
### Added
- Zig
- Labeled switch statements
### Changed
- LSP

View file

@ -197,7 +197,6 @@ Statement
| KEYWORD_ERRDEFER Payload? BlockExprStatement
| IfStatement
| LabeledStatement
| SwitchExpr
| VarDeclExprStatement
ComptimeStatement
@ -211,7 +210,7 @@ private ZB_IfStatement_Body
::= BlockExpr ( KEYWORD_ELSE Payload? Statement )?
| AssignExpr ( SEMICOLON | KEYWORD_ELSE Payload? Statement )
LabeledStatement ::= BlockLabel? (Block | LoopStatement)
LabeledStatement ::= BlockLabel? (Block | LoopStatement | SwitchExpr)
LoopStatement ::= KEYWORD_INLINE? (ForStatement | WhileStatement)
@ -273,7 +272,7 @@ PrimaryExpr
| KEYWORD_BREAK BreakLabel? Expr?
| KEYWORD_COMPTIME Expr
| KEYWORD_NOSUSPEND Expr
| KEYWORD_CONTINUE BreakLabel?
| KEYWORD_CONTINUE BreakLabel? Expr?
| KEYWORD_RESUME Expr
| KEYWORD_RETURN Expr?
| BlockLabel? LoopExpr
@ -336,7 +335,6 @@ PrimaryTypeExpr
| KEYWORD_ANYFRAME
| KEYWORD_UNREACHABLE
| StringLiteral
| SwitchExpr
ContainerDecl ::= (KEYWORD_EXTERN | KEYWORD_PACKED)? ContainerDeclAuto
@ -349,6 +347,7 @@ IfTypeExpr ::= IfPrefix TypeExpr (KEYWORD_ELSE Payload? TypeExpr)?
LabeledTypeExpr
::= BlockLabel Block
| BlockLabel? LoopTypeExpr
| BlockLabel? SwitchExpr
LoopTypeExpr ::= KEYWORD_INLINE? (ForTypeExpr | WhileTypeExpr)