feat(ast): 添加内置类型定义和AST节点初始化函数
添加了完整的内置类型支持,包括整数、浮点数、字符、布尔等基本类型, 以及它们的有符号/无符号变体。同时添加了大量的AST节点初始化函数, 简化了AST节点的创建过程。 BREAKING CHANGE: 重构了AST表达式和声明结构,移除了冗余字段, 统一了命名规范,并修改了函数调用和成员访问的表示方式。
This commit is contained in:
@@ -760,7 +760,7 @@ static scc_ast_expr_t *parse_postfix_expression(scc_parser_t *parser) {
|
||||
scc_lexer_tok_drop(&lp);
|
||||
|
||||
scc_ast_expr_t *call = expr_create(parser, SCC_AST_EXPR_CALL);
|
||||
call->call.callee = left;
|
||||
call->call._target = left;
|
||||
scc_vec_init(call->call.args);
|
||||
|
||||
// 解析参数列表
|
||||
@@ -811,13 +811,9 @@ static scc_ast_expr_t *parse_postfix_expression(scc_parser_t *parser) {
|
||||
scc_ast_expr_t *member = expr_create(
|
||||
parser, op_tok.type == SCC_TOK_DOT ? SCC_AST_EXPR_MEMBER
|
||||
: SCC_AST_EXPR_PTR_MEMBER);
|
||||
if (op_tok.type == SCC_TOK_DOT) {
|
||||
member->member.base = left;
|
||||
member->member.member_name = name;
|
||||
} else {
|
||||
member->ptr_member.base = left;
|
||||
member->ptr_member.member_name = name;
|
||||
}
|
||||
member->member.base = left;
|
||||
member->member.name = name;
|
||||
|
||||
scc_lexer_tok_drop(&op_tok);
|
||||
left = member;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user