feat(ir): 添加线性IR转储功能并改进AST转储
- 实现了IR的线性转储功能,包括类型、节点、基本块和函数的线性表示 - 添加了scc_ir_dump_ctx_init函数用于初始化转储上下文 - 为AST函数类型添加了变参标记注释说明 - 改进了AST转储中函数类型的参数和返回值显示逻辑 - 统一了AST解析中节点类型的声明为通用的scc_ast_node_t指针类型 fix(lexer): 改进词法分析器错误信息显示 - 在不支持字符的错误信息中添加十六进制编码显示 - 便于调试时识别特殊不可打印字符
This commit is contained in:
@@ -158,10 +158,10 @@ static scc_ast_stmt_t *parse_compound_statement(scc_parser_t *parser) {
|
||||
while (!scc_parse_consume_if(parser->lex_stream, SCC_TOK_R_BRACE)) {
|
||||
/// TODO
|
||||
// scc_parse_is_decl();
|
||||
scc_ast_node_type_t *ret = null;
|
||||
ret = (scc_ast_node_type_t *)scc_parse_declaration(parser);
|
||||
scc_ast_node_t *ret = null;
|
||||
ret = (scc_ast_node_t *)scc_parse_declaration(parser);
|
||||
if (ret == null) {
|
||||
ret = (scc_ast_node_type_t *)scc_parse_statement(parser);
|
||||
ret = (scc_ast_node_t *)scc_parse_statement(parser);
|
||||
}
|
||||
if (ret == null) {
|
||||
LOG_ERROR("Invalid statement");
|
||||
|
||||
Reference in New Issue
Block a user