我正在尝试使用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目录?
答案 0 :(得分:1)
在ANTLRWorks中,你不能。您可以在问题跟踪器上为此添加问题: https://github.com/sharwell/antlrworks2/issues
请注意,ANTLR 4的设计使您不再需要在语法中使用用户定义的参数和/或返回值。您应该在完成解析后使用侦听器或访问者来计算必要的结果,而不是像上面描述的那样返回List<MT940Record>
。