0
, 나는 텍스트를 대문자로 시작되지 않는 경우 (일식에 밑줄 빨간색) 오류를 줄 유효성 검증이 정의 http://www.davehofmann.de/?p=101Xtext 독립형 및 검증 파일을 구문 분석하는 독립 실행 형 프로그램을 구축
의 첫 번째 옵션을 사용 .
독립 실행 형 파서는 유효성 검사를 통과하지 못한 입력 파일의 오류를 제공하지 않습니다. 독립 실행 형 구현에 유효성 검증을 요청하려면 어떻게해야합니까?
업데이트 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)
}
}
}
}
를 호출하는 방법에 대한 매우 모호하기 때문에 (의사 코드)
호출? – Johan
구문 분석 결과가 루트 요소로 eResource를 제공합니다 –
'result.getRootASTElement(). eResource()가 반환 한 객체가 null – Johan