feat(ir): 添加线性IR转储功能并改进AST转储
- 实现了IR的线性转储功能,包括类型、节点、基本块和函数的线性表示 - 添加了scc_ir_dump_ctx_init函数用于初始化转储上下文 - 为AST函数类型添加了变参标记注释说明 - 改进了AST转储中函数类型的参数和返回值显示逻辑 - 统一了AST解析中节点类型的声明为通用的scc_ast_node_t指针类型 fix(lexer): 改进词法分析器错误信息显示 - 在不支持字符的错误信息中添加十六进制编码显示 - 便于调试时识别特殊不可打印字符
This commit is contained in:
@@ -10,7 +10,10 @@ typedef struct {
|
||||
scc_ir_cprog_t *cprog;
|
||||
scc_tree_dump_ctx_t *dump_ctx;
|
||||
} scc_ir_dump_ctx_t;
|
||||
void scc_ir_dump_ctx_init();
|
||||
|
||||
void scc_ir_dump_ctx_init(scc_ir_dump_ctx_t *ctx,
|
||||
scc_tree_dump_ctx_t *tree_dump, scc_ir_cprog_t *cprog,
|
||||
scc_ir_cprog_ctx_t *ir_ctx);
|
||||
|
||||
void scc_ir_dump_node(scc_ir_dump_ctx_t *ctx, scc_ir_node_ref_t node_ref);
|
||||
void scc_ir_dump_type(scc_ir_dump_ctx_t *ctx, scc_ir_type_ref_t type_ref);
|
||||
@@ -18,4 +21,6 @@ void scc_ir_dump_bblock(scc_ir_dump_ctx_t *ctx, scc_ir_bblock_ref_t bblock_ref);
|
||||
void scc_ir_dump_func(scc_ir_dump_ctx_t *ctx, scc_ir_func_ref_t func_ref);
|
||||
void scc_ir_dump_cprog(scc_ir_dump_ctx_t *ctx);
|
||||
|
||||
void scc_ir_dump_cprog_linear(scc_ir_dump_ctx_t *ctx);
|
||||
|
||||
#endif /* __SCC_IR_DUMP_H__ */
|
||||
|
||||
Reference in New Issue
Block a user