or_break and or_continue to core:odin packages

This commit is contained in:
gingerBill
2023-09-30 15:09:59 +01:00
parent 648b83d6ea
commit 41a22bd83d
5 changed files with 45 additions and 2 deletions
+11
View File
@@ -284,6 +284,13 @@ Or_Return_Expr :: struct {
token: tokenizer.Token,
}
Or_Branch_Expr :: struct {
using node: Expr,
expr: ^Expr,
token: tokenizer.Token,
label: ^Expr,
}
Type_Assertion :: struct {
using node: Expr,
expr: ^Expr,
@@ -563,6 +570,8 @@ strip_or_return_expr :: proc(expr: ^Expr) -> (val: ^Expr) {
#partial switch e in val.derived {
case ^Or_Return_Expr:
inner = e.expr
case ^Or_Branch_Expr:
inner = e.expr
case ^Paren_Expr:
inner = e.expr
}
@@ -860,6 +869,7 @@ Any_Node :: union {
^Ternary_When_Expr,
^Or_Else_Expr,
^Or_Return_Expr,
^Or_Branch_Expr,
^Type_Assertion,
^Type_Cast,
^Auto_Cast,
@@ -943,6 +953,7 @@ Any_Expr :: union {
^Ternary_When_Expr,
^Or_Else_Expr,
^Or_Return_Expr,
^Or_Branch_Expr,
^Type_Assertion,
^Type_Cast,
^Auto_Cast,