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);