diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/MemberExpressionAnalyzer.java b/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/MemberExpressionAnalyzer.java index 5080545..4285893 100644 --- a/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/MemberExpressionAnalyzer.java +++ b/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/expression/MemberExpressionAnalyzer.java @@ -11,39 +11,49 @@ import org.jcnc.snow.compiler.semantic.error.SemanticError; import org.jcnc.snow.compiler.semantic.symbol.Symbol; import org.jcnc.snow.compiler.semantic.symbol.SymbolTable; import org.jcnc.snow.compiler.semantic.type.BuiltinType; +import org.jcnc.snow.compiler.semantic.type.FunctionType; +import org.jcnc.snow.compiler.semantic.type.StructType; import org.jcnc.snow.compiler.semantic.type.Type; /** - * {@code MemberExpressionAnalyzer} 用于分析模块成员访问表达式的类型和语义。 + * {@code MemberExpressionAnalyzer} * *
- * 当前实现支持 ModuleName.constOrVar 形式的跨模块常量/全局变量访问,
- * 能根据目标模块的全局符号表,返回准确的类型信息,完全支持跨模块类型推断。
- *
- * 对于非模块成员的访问(如对象.属性、多级 a.b.c),暂不支持,遇到时将报告语义错误。
+ * 负责成员访问表达式的语义分析与类型推断。
+ * 典型形如 a.b、this.x、Module.member。
*
- * 核心特性: - *
this.x,等价于访问当前作用域下名为 x 的变量或字段。ModuleName.member,常用于引用其他模块的全局变量、常量、函数等。a.b 或 a.method,a 为结构体变量,b 为字段或方法。+ * 主要处理流程分为四大分支: + *