feat: defer 延迟执行 — defer { stmts; } 在 return 前按 LIFO 执行
Token(73): +TOK_DEFER, AST(28): +AST_DEFER_STMT, 新增 38_defer.l
parser: defer { ... } 块 + defer expr; 表达式两种形式
codegen: defer 栈压入 block, emit_deferred() 在 return 前 LIFO 发射
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -65,7 +65,7 @@ static TokenKind check_keyword(const Token* tok) {
|
||||
KW("bool", TOK_BOOL); KW("char", TOK_CHAR);
|
||||
KW("str", TOK_STR); KW("void", TOK_VOID);
|
||||
KW("struct", TOK_STRUCT); KW("type", TOK_TYPE);
|
||||
KW("enum", TOK_ENUM); KW("extend", TOK_EXTEND); KW("match", TOK_MATCH);
|
||||
KW("enum", TOK_ENUM); KW("extend", TOK_EXTEND); KW("defer", TOK_DEFER); KW("match", TOK_MATCH);
|
||||
KW("pub", TOK_PUB); KW("mod", TOK_MOD); KW("use", TOK_USE);
|
||||
KW("trait", TOK_TRAIT); KW("Self", TOK_SELF);
|
||||
KW("_", TOK_UNDERSCORE);
|
||||
|
||||
Reference in New Issue
Block a user