From 3a2a1363e6d88d60052fd391290ac3ebcbc43245 Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Mon, 4 Aug 2025 13:45:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=AE=9A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jcnc/snow/compiler/lexer/core/LexicalError.java | 2 +- .../org/jcnc/snow/compiler/parser/context/ParseError.java | 2 +- .../org/jcnc/snow/compiler/semantic/error/SemanticError.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java b/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java index b036fa0..2454088 100644 --- a/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java +++ b/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java @@ -50,6 +50,6 @@ public class LexicalError { */ @Override public String toString() { - return file + ": 行 " + line + ", 列 " + column + ": " + message; + return file + ":" + line + ":" + column + ": " + message; } } diff --git a/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java b/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java index 24c1d27..105fd20 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java @@ -40,6 +40,6 @@ public class ParseError { */ @Override public String toString() { - return file + ": 行 " + line + ", 列 " + column + ": " + message; + return file + ":" + line + ":" + column + ": " + message; } } diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java b/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java index ce7bfc4..5bdec98 100644 --- a/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java +++ b/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java @@ -49,8 +49,8 @@ public record SemanticError(Node node, String message) { StringBuilder sb = new StringBuilder(); - if (file != null && !file.isBlank()) sb.append(file).append(": "); - sb.append((line >= 0 && col >= 0) ? "行 " + line + ", 列 " + col : "未知位置"); + if (file != null && !file.isBlank()) sb.append(file).append(":"); + sb.append((line >= 0 && col >= 0) ? line + ":" + col : "未知位置"); sb.append(": ").append(message); return sb.toString(); } From 3e7e5f2dadb8522e98b89acd73289ff99e66fb00 Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Mon, 4 Aug 2025 15:01:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E6=A0=87?= =?UTF-8?q?=E5=87=86=20URL=20=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jcnc/snow/compiler/lexer/core/LexerEngine.java | 2 +- .../java/org/jcnc/snow/compiler/lexer/core/LexicalError.java | 2 +- .../java/org/jcnc/snow/compiler/parser/context/ParseError.java | 2 +- .../org/jcnc/snow/compiler/parser/context/ParserContext.java | 2 +- .../org/jcnc/snow/compiler/semantic/error/SemanticError.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/lexer/core/LexerEngine.java b/src/main/java/org/jcnc/snow/compiler/lexer/core/LexerEngine.java index 672116f..ec69e67 100644 --- a/src/main/java/org/jcnc/snow/compiler/lexer/core/LexerEngine.java +++ b/src/main/java/org/jcnc/snow/compiler/lexer/core/LexerEngine.java @@ -37,7 +37,7 @@ public class LexerEngine { * @param sourceName 文件名(诊断用) */ public LexerEngine(String source, String sourceName) { - this.absPath = new File(sourceName).getAbsolutePath(); + this.absPath = new File(sourceName).getAbsolutePath().replace('\\', '/'); this.context = new LexerContext(source); this.scanners = List.of( new WhitespaceTokenScanner(), diff --git a/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java b/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java index 2454088..ae928d4 100644 --- a/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java +++ b/src/main/java/org/jcnc/snow/compiler/lexer/core/LexicalError.java @@ -50,6 +50,6 @@ public class LexicalError { */ @Override public String toString() { - return file + ":" + line + ":" + column + ": " + message; + return "file:///" + file + ":" + line + ":" + column + ": " + message; } } diff --git a/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java b/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java index 105fd20..c32d95e 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/context/ParseError.java @@ -40,6 +40,6 @@ public class ParseError { */ @Override public String toString() { - return file + ":" + line + ":" + column + ": " + message; + return "file:///" + file + ":" + line + ":" + column + ": " + message; } } diff --git a/src/main/java/org/jcnc/snow/compiler/parser/context/ParserContext.java b/src/main/java/org/jcnc/snow/compiler/parser/context/ParserContext.java index b9c9852..e9ce832 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/context/ParserContext.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/context/ParserContext.java @@ -39,7 +39,7 @@ public class ParserContext { */ public ParserContext(List tokens, String sourceName) { this.tokens = new TokenStream(tokens); - this.sourceName = Paths.get(sourceName).toAbsolutePath().toString(); + this.sourceName = Paths.get(sourceName).toAbsolutePath().toString().replace('\\', '/'); } diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java b/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java index 5bdec98..c43e6c9 100644 --- a/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java +++ b/src/main/java/org/jcnc/snow/compiler/semantic/error/SemanticError.java @@ -48,7 +48,7 @@ public record SemanticError(Node node, String message) { } - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder("file:///"); if (file != null && !file.isBlank()) sb.append(file).append(":"); sb.append((line >= 0 && col >= 0) ? line + ":" + col : "未知位置"); sb.append(": ").append(message);