diff --git a/src/main/java/org/jcnc/snow/compiler/parser/ast/NewExpressionNode.java b/src/main/java/org/jcnc/snow/compiler/parser/ast/NewExpressionNode.java new file mode 100644 index 0000000..345c485 --- /dev/null +++ b/src/main/java/org/jcnc/snow/compiler/parser/ast/NewExpressionNode.java @@ -0,0 +1,54 @@ +package org.jcnc.snow.compiler.parser.ast; + +import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode; +import org.jcnc.snow.compiler.parser.ast.base.NodeContext; + +import java.util.List; + +/** + * {@code NewExpressionNode} + *
+ * 抽象语法树(AST)节点 —— 对象创建表达式。 + *
new TypeName(arg1, arg2, ...)+ * + *
+ * 语义:在源码中通过 new 关键字实例化某个类型, + * 实参列表为构造函数参数。表达式类型通常为对应结构体类型。 + *
+ * + *+ * 字段说明: + *
+ * 该类型为 Java record,天然不可变,构造参数即为字段名,自动生成 getter。 + *
+ * + * @param typeName 目标类型名 + * @param arguments 构造参数表达式列表 + * @param ctx 源代码位置信息 + */ +public record NewExpressionNode( + String typeName, + List+ * 实现 ExpressionNode 接口的抽象方法,便于统一错误处理与调试。 + *
+ * + * @return 当前节点的源代码上下文信息 + */ + @Override + public NodeContext context() { + return ctx; + } +}