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



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

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

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

我认为这是因为字符串在默认的 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 目录?

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

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

相关内容

  • 没有找到相关文章

最新更新