feat(ir): 添加线性IR转储功能并改进AST转储

- 实现了IR的线性转储功能,包括类型、节点、基本块和函数的线性表示
- 添加了scc_ir_dump_ctx_init函数用于初始化转储上下文
- 为AST函数类型添加了变参标记注释说明
- 改进了AST转储中函数类型的参数和返回值显示逻辑
- 统一了AST解析中节点类型的声明为通用的scc_ast_node_t指针类型

fix(lexer): 改进词法分析器错误信息显示

- 在不支持字符的错误信息中添加十六进制编码显示
- 便于调试时识别特殊不可打印字符
This commit is contained in:
zzy
2026-02-13 09:56:42 +08:00
parent 191cdcef53
commit ffee07a03d
6 changed files with 353 additions and 32 deletions

View File

@@ -419,7 +419,7 @@ void scc_lexer_get_token(scc_lexer_t *lexer, scc_lexer_tok_t *token) {
token->type = type;
goto END;
default:
LEX_ERROR("unsupport char in sourse code `%c`", ch);
LEX_ERROR("unsupport char in sourse code `%c`:0x%x", ch, ch);
break;
}
goto once_char;