0
나는이 같은 간단한 문법이 있습니다파서 수용 손상 입력
grammar RuleDSL with org.eclipse.xtext.common.Terminals
generate ruledsl "http://www.ruledsl.org"
Model:
rules += Rule*;
Rule:
rule = 'Rule' '{' subrules += Subrule* '}'
;
Subrule: fieldA=ID opName=Operator fieldC=INT ';';
Operator:
'<' | '<=' | '=' | '>=' | '>'
;
을 그리고 난이 입력이 허용됩니다 이유를 궁금해 :
Rule { field1 > 5 field3 = a }
이
@RunWith(XtextRunner)
@InjectWith(RuledslInjectorProvider)
class RuledslParsingTest{
@Inject
ParseHelper<Model> parseHelper
@Test
def void loadModel() {
val result = parseHelper.parse('''
Rule {
field1 > 5
field3 = a
}
''')
println(result)
}
}
에 의해 구문 분석
및 수율 - 일부 트리를 반복하고 Subrule
인쇄 - : 이런 이유
필드 1> 5
FIELD3 = 0
anull0
내가 알아낼 수 없습니다. 생성 된 Eclipse PlugIn에서이 입력은 올바르지 않은 것으로 레이블이 지정됩니다.
Results eresource에 오류가 있습니까? validationtesthelper도 살펴볼 수 있습니다. –
그랬습니다! 감사. 생성 된'Hello World' 테스트 케이스에'assertEquals (0, result.eResource.errors.size)'와 같은 것을 추가 할 수 있습니다. –