From e3bc1a99e74e9d4d16e5a3867906186549d7bb60 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 25 Apr 2025 17:10:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=8F=96=E9=87=8D=E5=A4=8D=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ast => util}/ASTJsonSerializer.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) rename src/main/java/org/jcnc/snow/compiler/parser/{ast => util}/ASTJsonSerializer.java (94%) diff --git a/src/main/java/org/jcnc/snow/compiler/parser/ast/ASTJsonSerializer.java b/src/main/java/org/jcnc/snow/compiler/parser/util/ASTJsonSerializer.java similarity index 94% rename from src/main/java/org/jcnc/snow/compiler/parser/ast/ASTJsonSerializer.java rename to src/main/java/org/jcnc/snow/compiler/parser/util/ASTJsonSerializer.java index 31a3595..5a1e012 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/ast/ASTJsonSerializer.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/util/ASTJsonSerializer.java @@ -1,4 +1,6 @@ -package org.jcnc.snow.compiler.parser.ast; +package org.jcnc.snow.compiler.parser.util; + +import org.jcnc.snow.compiler.parser.ast.*; import java.util.List; @@ -80,12 +82,7 @@ public class ASTJsonSerializer { // body sb.append("\"body\":["); List body = f.body(); - for (int i = 0; i < body.size(); i++) { - sb.append(nodeToJson(body.get(i))); - if (i + 1 < body.size()) sb.append(","); - } - sb.append("]}"); - return sb.toString(); + return getString(sb, body); } private static String declarationToJson(DeclarationNode d) { @@ -114,6 +111,10 @@ public class ASTJsonSerializer { .append(exprToJson(i.condition())).append(","); sb.append("\"then\":["); List thenBranch = i.thenBranch(); + return getString(sb, thenBranch); + } + + private static String getString(StringBuilder sb, List thenBranch) { for (int j = 0; j < thenBranch.size(); j++) { sb.append(nodeToJson(thenBranch.get(j))); if (j + 1 < thenBranch.size()) sb.append(","); @@ -130,12 +131,7 @@ public class ASTJsonSerializer { .append("\"update\":").append(nodeToJson(l.update())).append(",") .append("\"body\":["); List body = l.body(); - for (int i = 0; i < body.size(); i++) { - sb.append(nodeToJson(body.get(i))); - if (i + 1 < body.size()) sb.append(","); - } - sb.append("]}"); - return sb.toString(); + return getString(sb, body); } private static String returnToJson(ReturnNode r) {