From 50f4fbb82d3e9b54fbf5c1472803fbc6de5bb3e0 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 29 Aug 2025 15:23:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=AF=B9=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E4=BD=93=E8=8A=82=E7=82=B9=E7=9A=84=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加了对 StructNode 类型的处理逻辑 - 打印结构体名称、字段、初始化函数和方法 - 优化了打印结构体信息的输出格式 --- .../jcnc/snow/compiler/parser/function/ASTPrinter.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/jcnc/snow/compiler/parser/function/ASTPrinter.java b/src/main/java/org/jcnc/snow/compiler/parser/function/ASTPrinter.java index ae45674..f448854 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/function/ASTPrinter.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/function/ASTPrinter.java @@ -66,6 +66,14 @@ public class ASTPrinter { print(fn, indent + 1); } } + + case StructNode s -> { + System.out.println(pad + "struct " + s.name()); + s.fields().forEach(f -> print(f, indent + 1)); + if (s.init() != null) print(s.init(), indent + 1); + s.methods().forEach(m -> print(m, indent + 1)); + } + case FunctionNode( String name, List parameters, String returnType, List body, NodeContext _