【发布时间】:2017-11-04 11:36:31
【问题描述】:
构建一个解析文件的独立程序,我使用了http://www.davehofmann.de/?p=101的第一个选项
如果文本不以大写字母开头,则会定义一个验证,该验证会给出错误(在 Eclipse 中为红色下划线)。
独立解析器不会给出未通过验证的输入文件的错误。我怎样才能要求独立实现也验证验证?
更新 1
用于解析带有checkResource的语法的类包括:
class XtextParser {
@Inject
private IParser parser;
new() {
var injector = new MyDslStandaloneSetup().
createInjectorAndDoEMFRegistration();
injector.injectMembers(this)
}
def EObject parse(Reader reader) throws IOException {
var result = parser.parse(reader)
if (result.hasSyntaxErrors()) {
throw new ParseException("Provided input contains syntax errors.")
}
var resource = result.getRootASTElement().eResource()
//resource is null
//checkResource(resource)
return result.getRootASTElement();
}
@Inject IResourceValidator resourceValidator
def void checkResource(Resource resource) {
val issues = resourceValidator.validate(resource,
CheckMode.ALL, CancelIndicator.NullImpl)
for (issue : issues) {
switch issue.severity {
case ERROR:
println("ERROR: " + issue.message)
case WARNING:
println("WARNING: " + issue.message)
}
}
}
}
【问题讨论】:
标签: xtext