feat: 添加常量符号类型并完善文档注释
- 在 SymbolKind 枚举中添加 CONSTANT 类型,用于表示只读、不可变的公开常量- 完善了各符号类型的文档注释,明确其用途和特点 - 优化了代码格式和段落结构,提高了代码可读性
This commit is contained in:
parent
18c9cbad7b
commit
91aef32a42
@ -3,31 +3,47 @@ package org.jcnc.snow.compiler.semantic.symbol;
|
||||
/**
|
||||
* {@code SymbolKind} 枚举用于标识符号表中不同类型的命名实体。
|
||||
* <p>
|
||||
* 在语义分析过程中,编译器需要根据符号的种类(Kind)采用不同的处理策略:
|
||||
* 在语义分析过程中,编译器需要根据符号的种类(Kind)采用不同的处理策略:
|
||||
* 例如变量参与类型推导、函数用于调用匹配、模块用于跨作用域引用等。
|
||||
* </p>
|
||||
* <p>
|
||||
* 当前支持的符号种类包括:
|
||||
* 当前支持的符号种类包括:
|
||||
* <ul>
|
||||
* <li>{@link #VARIABLE}: 变量符号(局部变量、全局变量、成员变量等);</li>
|
||||
* <li>{@link #CONSTANT}: 常量符号(只读、不可变的公开常量);</li>
|
||||
* <li>{@link #FUNCTION}: 函数符号(自由函数、方法、构造函数等);</li>
|
||||
* <li>{@link #MODULE}: 模块符号(代表命名空间、库或逻辑模块);</li>
|
||||
* </ul>
|
||||
* <p>
|
||||
* 可根据需求扩展更多符号种类。
|
||||
* </p>
|
||||
*/
|
||||
public enum SymbolKind {
|
||||
|
||||
/**
|
||||
* 变量符号,表示在作用域中声明的可赋值实体。
|
||||
* <p>
|
||||
* 包括函数参数、局部变量、全局变量、常量等,
|
||||
* 包括函数参数、局部变量、全局变量、成员变量等。
|
||||
* 分析器会基于其类型参与表达式类型校验和赋值检查。
|
||||
* </p>
|
||||
*/
|
||||
VARIABLE,
|
||||
|
||||
/**
|
||||
* 常量符号,表示只读、不可变的公开常量。
|
||||
* <p>
|
||||
* 常量在声明后不可被修改,仅可读取。常用于定义全局、模块级的常量值,
|
||||
* 在类型推断、常量折叠等语义分析过程中单独处理。
|
||||
* </p>
|
||||
*/
|
||||
CONSTANT,
|
||||
|
||||
/**
|
||||
* 函数符号,表示可调用的过程实体。
|
||||
* <p>
|
||||
* 包括普通函数、方法、构造器等。
|
||||
* 用于函数签名注册、函数调用检查及返回值推导。
|
||||
* </p>
|
||||
*/
|
||||
FUNCTION,
|
||||
|
||||
@ -35,6 +51,7 @@ public enum SymbolKind {
|
||||
* 模块符号,表示一个命名空间或模块单元。
|
||||
* <p>
|
||||
* 在跨模块调用、导入语句校验、作用域隔离中发挥作用。
|
||||
* </p>
|
||||
*/
|
||||
MODULE
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user