docs: 更新代码注释

This commit is contained in:
luke 2025-06-09 00:39:31 +08:00
parent 6d835b1655
commit 46e3f6d6e9

View File

@ -7,46 +7,55 @@ import java.util.List;
/** /**
* {@code CallExpressionNode} 表示抽象语法树AST中的函数调用表达式节点 * {@code CallExpressionNode} 表示抽象语法树AST中的函数调用表达式节点
* <p> * <p>
* 函数调用表达式用于表示函数或过程的调用操作 * 函数调用表达式用于表示函数或过程的调用操作包含被调用对象callee以及一组参数表达式arguments
* 包括被调用对象callee以及一组参数表达式arguments
* </p> * </p>
* *
* @param callee 被调用的表达式节点通常为函数标识符或成员访问表达式 * @param callee 被调用的表达式节点通常为函数标识符或成员访问表达式表示函数名或方法名等
* @param arguments 参数表达式列表依照调用顺序排列 * @param arguments 参数表达式列表表示函数调用中传递给函数的实际参数参数的顺序与调用顺序一致
* @param line 当前表达式所在的行号方便调试和错误定位
* @param column 当前表达式所在的列号用于精确定位错误位置
*/ */
public record CallExpressionNode( public record CallExpressionNode(
ExpressionNode callee, ExpressionNode callee, // 被调用的表达式节点表示函数或方法名
List<ExpressionNode> arguments, List<ExpressionNode> arguments, // 函数调用的参数表达式列表
int line, // 添加行号 int line, // 当前节点所在的行号
int column // 添加列号 int column // 当前节点所在的列号
) implements ExpressionNode { ) implements ExpressionNode {
/** /**
* 返回函数调用表达式的字符串形式 * 返回函数调用表达式的字符串形式便于调试与语法树可视化
* <p> * <p>
* 该格式将输出为类似 {@code foo(a, b, c)} 的形式 * 该方法将表达式节点转化为类似 {@code foo(a, b, c)} 的格式便于查看和理解抽象语法树的结构
* 便于调试与语法树可视化
* </p> * </p>
* *
* @return 表示函数调用的字符串表示 * @return 表示函数调用的字符串表示格式为 {@code callee(arguments)}
*/ */
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(callee).append("("); sb.append(callee).append("("); // 拼接函数名和左括号
for (int i = 0; i < arguments.size(); i++) { for (int i = 0; i < arguments.size(); i++) {
sb.append(arguments.get(i)); sb.append(arguments.get(i)); // 拼接每个参数
if (i + 1 < arguments.size()) sb.append(", "); if (i + 1 < arguments.size()) sb.append(", "); // 如果不是最后一个参数添加逗号和空格
} }
sb.append(")"); sb.append(")"); // 拼接右括号
return sb.toString(); return sb.toString(); // 返回拼接好的字符串
} }
// Getter方法用于访问行号和列号 /**
* 获取当前表达式所在的行号
*
* @return 当前表达式的行号
*/
public int line() { public int line() {
return line; return line;
} }
/**
* 获取当前表达式所在的列号
*
* @return 当前表达式的列号
*/
public int column() { public int column() {
return column; return column;
} }