From caa62b0bfbbf676c6075016073f62e4939409c67 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 26 Aug 2025 18:08:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=A7=81=E6=9C=89=E5=87=BD=E6=95=B0=E8=AE=BF=E9=97=AE=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增规则:以"_"开头的函数名只允许在本模块访问,禁止跨模块访问 - 在 CallExpressionAnalyzer 中实现该规则的检查逻辑 --- .../expression/CallExpressionAnalyzer.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/CallExpressionAnalyzer.java b/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/CallExpressionAnalyzer.java index 250e12e..c71f54a 100644 --- a/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/CallExpressionAnalyzer.java +++ b/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/CallExpressionAnalyzer.java @@ -25,6 +25,7 @@ import java.util.List; *
  • 支持数值参数的宽化转换(如 int → double);
  • *
  • 支持数值到字符串的隐式转换(自动视为调用 {@code to_string});
  • *
  • 在发生类型不匹配、未导入模块或函数未定义等情况下记录语义错误。
  • + *
  • 新增:以"_"开头的函数名只允许在本模块访问,禁止跨模块访问。
  • * */ public class CallExpressionAnalyzer implements ExpressionAnalyzer { @@ -64,20 +65,32 @@ public class CallExpressionAnalyzer implements ExpressionAnalyzer