1

所以,我想为 SimpleNode 的子类添加方法。例如,我有一个位置节点。运行 jjt 和 javacc 后,会生成一个 Position.java。预计看起来像

class Position extends SimpleNode {
    private int line, column; // I'll add private members here
    ...
    public int getLine() {
       return this.line;
    } // add some methods here
    ...
}

现在,我正在对生成的 java 文件进行更改。但是,这样做并不是一个好主意,因为生成的 java 文件经常被删除并且 jjt 文件被重新制作。是否可以在 jjt 文件中添加这些声明(我在手册中没有找到类似的内容)?我也在考虑派生它们的子类。它也不能干净地工作。

4

1 回答 1

4

您可以随意修改节点实现。JJTree 只会在它们丢失时生成它们。从手册

如果您不提供节点类的实现,JJTree 将为您生成基于 SimpleNode 的示例实现。然后,您可以修改实现以适应。

于 2013-07-31T12:08:38.457 回答