从ANTLR 3中的Walker文件外部化java代码(从walker规则返回自定义对象)

时间:2017-09-05 12:25:49

标签: java parsing antlr antlr3

我正在使用树语法来解析在ANTLR 3中解析输入后生成的AST。在walker规则中,嵌入了java代码来填充并返回AST中用于操作输出的自定义java对象

我面临着从语法文件中外化Java代码的挑战。

请考虑以下规则:

Walker.g

    val returns [Node node]
    @init  { Node val= new Node(); }
    @after { node = val; }
    :
     NUMERIC 
      {
       node.setValue($NUMERIC.text); // Node initialisation and population 
                                     //   inside .g file
      }

;

这是一个示例节点类,我用它来存储和操作AST的信息

Node.java

    class Node{
      String value;

      public String getValue(){
         return this.value;
      }

      public void setValue(String text){
         this.value = text;
      }

    }

有没有办法在walker.g文件之外创建节点和填充?

0 个答案:

没有答案