给出一个java代码的抽象语法树实例
时间: 2024-09-28 22:12:11 浏览: 33
抽象语法树(Abstract Syntax Tree,AST)是一种树形数据结构,它代表源代码的一种形式化表示,用于程序分析、优化和编译。在Java中,我们可以创建一个简单的AST节点来表示基本的算术表达式,比如加法操作。这里是一个简化的例子:
```java
public abstract class Node {
public String name;
// 构造函数
public Node(String name) {
this.name = name;
}
}
// 定义一个具体节点类,如AddNode表示加法
public class AddNode extends Node {
private Node left, right;
public AddNode(String op, Node left, Node right) {
super(op);
this.left = left;
this.right = right;
}
public Node getLeft() { return left; }
public Node getRight() { return right; }
}
// 使用示例
public static void main(String[] args) {
Node addNode = new AddNode("+", new Node("5"), new Node("7"));
System.out.println(addNode.getName()); // 输出 "+"
System.out.println(addNode.getLeft().getName()); // 输出 "5"
System.out.println(addNode.getRight().getName()); // 输出 "7"
}
```
在这个例子中,`AddNode`是`Node`的子类,它有两个子节点分别代表两个操作数。每个节点都有一个名称,表示其在AST中的运算符。
阅读全文