From 87560db20d17902c443208b5201148b9d9cd757c Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Mon, 4 Aug 2025 14:49:39 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../compiler/lexer/token/TokenFactory.java | 2 +- .../parser/function/FunctionParser.java | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/lexer/token/TokenFactory.java b/src/main/java/org/jcnc/snow/compiler/lexer/token/TokenFactory.java index 28e4697..1b0afe3 100644 --- a/src/main/java/org/jcnc/snow/compiler/lexer/token/TokenFactory.java +++ b/src/main/java/org/jcnc/snow/compiler/lexer/token/TokenFactory.java @@ -26,7 +26,7 @@ public class TokenFactory { * 语言的保留关键字集合。 */ private static final Set KEYWORDS = Set.of - ("module", "function", "parameter", "return_type", "body", "end", + ("module", "function", "params", "returns", "body", "end", "if", "then", "else", "loop", "declare", "return", "import", "init", "cond", "step", "globals", "break", "continue"); diff --git a/src/main/java/org/jcnc/snow/compiler/parser/function/FunctionParser.java b/src/main/java/org/jcnc/snow/compiler/parser/function/FunctionParser.java index 39d928a..dba62b3 100644 --- a/src/main/java/org/jcnc/snow/compiler/parser/function/FunctionParser.java +++ b/src/main/java/org/jcnc/snow/compiler/parser/function/FunctionParser.java @@ -27,8 +27,8 @@ import java.util.*; * * @@ -107,7 +107,7 @@ public class FunctionParser implements TopLevelParser { } /** - * 构造函数定义中各区块的解析规则(parameter、return_type、body)。 + * 构造函数定义中各区块的解析规则(params、returns、body)。 * *

* 每个 {@link SectionDefinition} 包含两个部分: 区块起始判断器(基于关键字)与具体的解析逻辑。 @@ -124,13 +124,13 @@ public class FunctionParser implements TopLevelParser { List body) { Map map = new HashMap<>(); - map.put("parameter", new SectionDefinition( - (TokenStream stream) -> stream.peek().getLexeme().equals("parameter"), + map.put("params", new SectionDefinition( + (TokenStream stream) -> stream.peek().getLexeme().equals("params"), (ParserContext context, TokenStream stream) -> params.addAll(parseParameters(context)) )); - map.put("return_type", new SectionDefinition( - (TokenStream stream) -> stream.peek().getLexeme().equals("return_type"), + map.put("returns", new SectionDefinition( + (TokenStream stream) -> stream.peek().getLexeme().equals("returns"), (ParserContext context, TokenStream stream) -> returnType[0] = parseReturnType(stream) )); @@ -182,7 +182,7 @@ public class FunctionParser implements TopLevelParser { *

* 支持声明后附加注释,格式示例: *

-     * parameter:
+     * params:
      *   declare x: int   // 说明文字
      *   declare y: float
      * 
@@ -194,7 +194,7 @@ public class FunctionParser implements TopLevelParser { private List parseParameters(ParserContext ctx) { TokenStream ts = ctx.getTokens(); - ts.expect("parameter"); + ts.expect("params"); ts.expect(":"); skipComments(ts); ts.expectType(TokenType.NEWLINE); @@ -208,7 +208,7 @@ public class FunctionParser implements TopLevelParser { continue; } String lex = ts.peek().getLexeme(); - if (lex.equals("return_type") || lex.equals("body") || lex.equals("end")) { + if (lex.equals("returns") || lex.equals("body") || lex.equals("end")) { break; } @@ -232,14 +232,14 @@ public class FunctionParser implements TopLevelParser { * 解析返回类型声明。 * *

- * 格式为 {@code return_type: TYPE},支持前置或行尾注释。 + * 格式为 {@code returns: TYPE},支持前置或行尾注释。 *

* * @param ts 当前使用的 {@link TokenStream}。 * @return 返回类型名称字符串。 */ private String parseReturnType(TokenStream ts) { - ts.expect("return_type"); + ts.expect("returns"); ts.expect(":"); skipComments(ts); Token typeToken = ts.expectType(TokenType.TYPE);