我有以下语法:

grammar ru.focusmedia.fire.idl.IDL with org.eclipse.xtext.xbase.Xbase

generate idl "http://www.focusmedia.ru/fire/idl/IDL"

Model:
    'package' package=QualifiedName
    imports+=Import*
    typeDefs+=TypeDef+;

...

所以字符串 asd 应该无法解析,任何不以开头的东西都应该如此 package.我预料到 ParseHelper.parse("asd") 抛出异常或返回 null, ,但它既没有。如何识别解析失败?

有帮助吗?

解决方案

您可以通过Resource#getErrors查询包含错误解析结果的资源。类似的东西 resultFromParseHelper.eResource().getErrors() 应该做的伎俩。

使用junit:

Assert.assertEquals(result.eResource().getErrors().toString,0,result.eResource().getErrors().size)

其他提示

另一种选择是使用 ValidationTestHelper.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top