feat: 结构体 struct — 最后一项 P0 功能
- lexer: TOK_STRUCT, TOK_DOT 关键字和运算符
- ast: AST_STRUCT_DECL/STRUCT_INIT/FIELD_ACCESS 3 种新节点
- parser: struct 声明 + .field 访问 + Name{field:val} 初始化
- sema: struct 类型符号表,字段类型解析,初始化字段检查
- codegen: LLVMStructType + extractvalue/insertvalue 字段操作
- 新增集成测试: 12_struct.l, 13_struct_nested.l
- 基于 Codex 分析报告 P0 #4
所有 P0 功能已全部完成。
This commit is contained in:
+5
-3
@@ -12,8 +12,9 @@ typedef enum {
|
||||
TYPE_BOOL,
|
||||
TYPE_STR,
|
||||
TYPE_VOID,
|
||||
TYPE_STRUCT, // 结构体类型
|
||||
TYPE_UNKNOWN, // 尚未推断
|
||||
TYPE_ERROR, // 类型错误
|
||||
TYPE_ERROR, // 类型错误
|
||||
} TypeKind;
|
||||
|
||||
static inline const char* type_name(TypeKind kind) {
|
||||
@@ -22,8 +23,9 @@ static inline const char* type_name(TypeKind kind) {
|
||||
case TYPE_F64: return "f64";
|
||||
case TYPE_BOOL: return "bool";
|
||||
case TYPE_STR: return "str";
|
||||
case TYPE_VOID: return "void";
|
||||
default: return "<unknown>";
|
||||
case TYPE_VOID: return "void";
|
||||
case TYPE_STRUCT: return "struct";
|
||||
default: return "<unknown>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user