From 341161687091c88d2b75d936712152399d22bf14 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 27 Apr 2025 14:32:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DIDE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/jcnc/snow/compiler/Main.java | 3 ++- .../snow/compiler/parser/statement/IfStatementParser.java | 2 +- .../org/jcnc/snow/compiler/parser/util/JSONParser.java | 7 +++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/Main.java b/src/main/java/org/jcnc/snow/compiler/Main.java index dc6fa5c..ec0a0a1 100644 --- a/src/main/java/org/jcnc/snow/compiler/Main.java +++ b/src/main/java/org/jcnc/snow/compiler/Main.java @@ -2,7 +2,6 @@ package org.jcnc.snow.compiler; import org.jcnc.snow.compiler.lexer.LexerEngine; import org.jcnc.snow.compiler.lexer.token.Token; -import org.jcnc.snow.compiler.lexer.utils.TokenPrinter; import org.jcnc.snow.compiler.parser.ParserEngine; import org.jcnc.snow.compiler.parser.context.ParserContext; import org.jcnc.snow.compiler.parser.ast.base.Node; @@ -28,6 +27,8 @@ public class Main { ParserContext ctx = new ParserContext(tokens); List ast = new ParserEngine(ctx).parse(); + // 3. 语义分析 + // 打印 diff --git a/src/main/java/org/jcnc/snow/compiler/parser/statement/IfStatementParser.java b/src/main/java/org/jcnc/snow/compiler/parser/statement/IfStatementParser.java index 61d044e..7c42555 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/statement/IfStatementParser.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/statement/IfStatementParser.java @@ -13,7 +13,7 @@ import java.util.List; /** * 解析 if 语句: - * + *

* 支持格式: * if then * diff --git a/src/main/java/org/jcnc/snow/compiler/parser/util/JSONParser.java b/src/main/java/org/jcnc/snow/compiler/parser/util/JSONParser.java index d5204a6..9a52939 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/util/JSONParser.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/util/JSONParser.java @@ -203,8 +203,8 @@ public class JSONParser { if (currentChar() == '-') advance(); while (isDigit(currentChar())) advance(); if (currentChar() == '.') { - advance(); - while (isDigit(currentChar())) advance(); + do advance(); + while (isDigit(currentChar())); } if (currentChar() == 'e' || currentChar() == 'E') { advance(); @@ -316,14 +316,13 @@ public class JSONParser { /** * 根据对象类型选择合适的写入方式 */ - @SuppressWarnings("unchecked") private static void writeValue(Object obj, StringBuilder sb) { if (obj == null) { sb.append("null"); } else if (obj instanceof String) { quote((String) obj, sb); } else if (obj instanceof Number || obj instanceof Boolean) { - sb.append(obj.toString()); + sb.append(obj); } else if (obj instanceof Map) { sb.append('{'); boolean first = true;