我当然错了,但是antlr的unit似乎没有给用户选择。
bash-3.2$ java org.antlr.gunit.Interp --help
Exception in thread "main" java.io.FileNotFoundException: --help (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at org.antlr.runtime.ANTLRFileStream.load(ANTLRFileStream.java:59)
at org.antlr.runtime.ANTLRFileStream.<init>(ANTLRFileStream.java:47)
at org.antlr.runtime.ANTLRFileStream.<init>(ANTLRFileStream.java:42)
at org.antlr.gunit.Interp.main(Interp.java:62)
bash-3.2$
特别是,我想打开详细选项,否则它告诉真的很少当错误发生。
您知道如何打开它的详细/调试选项吗?
[java] -----------------------------------------------------------------------
[java] executing testsuite for grammar:while with 31 tests
[java] -----------------------------------------------------------------------
[java] 2 failures found:
[java] test15 (variables, line20) -
[java] expected: OK
[java] actual: FAIL
[java]
[java] test20 (read, line27) -
[java] expected: OK
[java] actual: FAIL
[java]
假设您正在使用antlr3,查看GitHub (https://github.com/antlr/antlr3/blob/master/gunit/src/main/java/org/antlr/gunit/Interp.java)上的源代码,您是正确的,没有详细选项。
验证测试失败原因的一种方法是在调试模式下通过AntlrWorks运行输入,这样您就可以看到匹配的规则。