feat: 数组+索引 [T;N], arr[i] (P1 #6)
- lexer: TOK_LBRACKET, TOK_RBRACKET - type: TYPE_ARRAY + TypeInfo扩展(element_type/array_size) - ast: AST_INDEX_EXPR, AST_ARRAY_ASSIGN_STMT - parser: parse_type_expr()支持[T;N], Pratt加[索引], 数组元素赋值 - sema: 数组类型检查, 索引必须i64, 元素赋值类型匹配 - codegen: type_info_to_llvm(TYPE_ARRAY), GEP+load/store - 新增集成测试: 18_array.l 测试: 136 通过 (41+15+59+21)
This commit is contained in:
@@ -14,6 +14,7 @@ typedef enum {
|
||||
TYPE_VOID,
|
||||
TYPE_STRUCT, // 结构体类型
|
||||
TYPE_ENUM, // 枚举类型
|
||||
TYPE_ARRAY, // 固定大小数组类型
|
||||
TYPE_UNKNOWN, // 尚未推断
|
||||
TYPE_ERROR, // 类型错误
|
||||
} TypeKind;
|
||||
@@ -27,6 +28,7 @@ static inline const char* type_name(TypeKind kind) {
|
||||
case TYPE_VOID: return "void";
|
||||
case TYPE_STRUCT: return "struct";
|
||||
case TYPE_ENUM: return "enum";
|
||||
case TYPE_ARRAY: return "array";
|
||||
default: return "<unknown>";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user