ANTLRworks中的TestRig:如何使用自己的类?

时间:2014-02-12 20:06:50

标签: java import classpath antlr4 antlrworks

我正在尝试使用antlr4构建MT940解析器。语法很简单,但适用于大多数情况。

现在我想返回自己的课程。这有效:

file returns [String myString]
    :
    Header940?  record+ EOF
  ;

我认为这是因为String是默认的java包。

我想要这个:

file returns [List<MT940Record> records]
    :
    Header940?  record+ EOF
  ;

TestRig抱怨(逻辑上):

/tmp/TestRigTask-1392235543340/MT940_5aParser.java:50: error: cannot find symbol
        public List<MT940Record> records;
                    ^
  symbol:   class MT940Record
  location: class FileContext

如何在ANLTRWorks中的TestRig中设置CLASSPATH / lib目录?

1 个答案:

答案 0 :(得分:1)

在ANTLRWorks中,你不能。您可以在问题跟踪器上为此添加问题: https://github.com/sharwell/antlrworks2/issues

请注意,ANTLR 4的设计使您不再需要在语法中使用用户定义的参数和/或返回值。您应该在完成解析后使用侦听器或访问者来计算必要的结果,而不是像上面描述的那样返回List<MT940Record>