From 8ff103e105c99a21554d26df4db1975e6a574d61 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 31 Aug 2025 18:37:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=E7=BB=93=E6=9E=84=E4=BD=93?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=A7=E6=89=BF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 StructNode 中添加 parent 参数,用于表示父类名称 - 更新 toString 方法以包含 parent 信息 - 优化类注释,移除冗余信息并增加对继承特性的说明 --- .../snow/compiler/parser/ast/StructNode.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java b/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java index 8f2d27b..488933a 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/ast/StructNode.java @@ -16,24 +16,9 @@ import java.util.StringJoiner; * 描述一个结构体类型,包括字段、可选构造函数、方法列表等。 * 结构体可声明零个或多个字段,可选构造函数(init), * 以及零个或多个方法。 - *

- * - *

- * 字段说明: - *

- *

- * - *

- * 本类型为 Java record,不可变;构造参数即为字段名,自动生成 getter。 - *

* * @param name 结构体名称 + * @param parent 父类名称(无继承时为 {@code null}) * @param fields 字段声明列表 * @param init 构造函数(可为 null) * @param methods 方法列表 @@ -41,6 +26,7 @@ import java.util.StringJoiner; */ public record StructNode( String name, + String parent, List fields, FunctionNode init, List methods, @@ -64,6 +50,7 @@ public record StructNode( // 3) 合成最终输出 return "Struct(name=" + name + + ", parent=" + (parent == null ? "null" : parent) + ", fields=[" + fj + "], init=" + (init == null ? "null" : init.name()) + ", methods=[" + mj + "])";