1
在ANTLR中有一个采用参数的解析器规则。在GUnit中将参数传递给解析器规则
tincture [Tinctures tinctures] returns [Tincture tincture]
: { String tinctureName = ""; }
( COLOUR { tinctureName = $COLOUR.text; }
| METAL { tinctureName = $METAL.text; }
| FUR { tinctureName = $FUR.text; }
)
{
try {
$tincture = tinctures.getTincture(tinctureName);
} catch (UnknownTinctureException e) {
throw new MyRecognitionException("Unknown tincture found.", e);
}
}
;
如何在GUnit中编写测试?
我已成功为我的Lexer规则编写测试,因为它们没有任何参数。 如果我写,我得到了下面的“java.lang.NoSuchMethodException:mypackage.BlazonParser.tincture()”
tincture
: "gules" OK
"sable" OK
"blah" FAIL
我可以从this页面除了发现周围GUnit很少的文件,但它并没有包括在本。
我快速浏览了aunit,但它缺少文档,所以没有真正跟踪发生的事情。正如你所说,我可能只是使用JUnit来测试ANTLR。谢谢 – luketorjussen