From de2190c21184f610cd4ca2705c0c76bfa094c97d Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 6 May 2025 22:15:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96ir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../compiler/ir/builder/ProgramBuilder.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/ir/builder/ProgramBuilder.java b/src/main/java/org/jcnc/snow/compiler/ir/builder/ProgramBuilder.java index 6331d57..9b823fb 100644 --- a/src/main/java/org/jcnc/snow/compiler/ir/builder/ProgramBuilder.java +++ b/src/main/java/org/jcnc/snow/compiler/ir/builder/ProgramBuilder.java @@ -31,17 +31,17 @@ public final class ProgramBuilder { public IRProgram buildProgram(List roots) { IRProgram prog = new IRProgram(); for (Node n : roots) { - if (n instanceof ModuleNode m) { - // 模块节点:将模块内的所有函数加入程序 - m.functions().forEach(f -> prog.add(buildFunction(f))); - } else if (n instanceof FunctionNode f) { - // 顶层函数节点 - prog.add(buildFunction(f)); - } else if (n instanceof StatementNode s) { - // 顶层脚本语句,包装为 _start 函数 - prog.add(buildFunction(wrapTopLevel(s))); - } else { - throw new IllegalStateException("Unsupported top-level node: " + n); + switch (n) { + case ModuleNode m -> + // 模块节点:将模块内的所有函数加入程序 + m.functions().forEach(f -> prog.add(buildFunction(f))); + case FunctionNode f -> + // 顶层函数节点 + prog.add(buildFunction(f)); + case StatementNode s -> + // 顶层脚本语句,包装为 _start 函数 + prog.add(buildFunction(wrapTopLevel(s))); + case null, default -> throw new IllegalStateException("Unsupported top-level node: " + n); } } return prog;