mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-17 03:12:22 -07:00
Bodged in support for region pragmas
Have them as basic directives They're similar to the assert and panic macros but are hardcoded to true #region (<string literal>) #endregion (<string literal>)
This commit is contained in:
+15
-1
@@ -1670,7 +1670,21 @@ gb_internal bool check_builtin_procedure_directive(CheckerContext *c, Operand *o
|
||||
operand->value = found->Constant.value;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
}
|
||||
|
||||
// Bodging in #region & #endregion support
|
||||
else if (name == "region") {
|
||||
operand->type = t_untyped_bool;
|
||||
operand->mode = Addressing_Constant;
|
||||
operand->value = exact_value_bool(true);
|
||||
}
|
||||
else if (name == "endregion") {
|
||||
operand->type = t_untyped_bool;
|
||||
operand->mode = Addressing_Constant;
|
||||
operand->value = exact_value_bool(true);
|
||||
}
|
||||
|
||||
else {
|
||||
error(call, "Unknown directive call: #%.*s", LIT(name));
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -7372,6 +7372,8 @@ gb_internal ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *c
|
||||
name == "location" ||
|
||||
name == "assert" ||
|
||||
name == "panic" ||
|
||||
name == "region" ||
|
||||
name == "endregion" ||
|
||||
name == "defined" ||
|
||||
name == "config" ||
|
||||
name == "load" ||
|
||||
|
||||
+1
-1
@@ -5147,7 +5147,7 @@ gb_internal Ast *parse_stmt(AstFile *f) {
|
||||
break;
|
||||
}
|
||||
return s;
|
||||
} else if (tag == "assert" || tag == "panic") {
|
||||
} else if (tag == "assert" || tag == "panic" || tag == "region" || tag == "endregion") {
|
||||
Ast *t = ast_basic_directive(f, hash_token, name);
|
||||
Ast *stmt = ast_expr_stmt(f, parse_call_expr(f, t));
|
||||
expect_semicolon(f);
|
||||
|
||||
Reference in New Issue
Block a user