我有一个像这样简单的语法:
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
- :
field1&gt; 5
field3 = 0
anull0
我无法弄清楚为什么会这样。在生成的Eclipse PlugIn中,此输入标记为不正确。
答案 0 :(得分:0)
您可以向result
询问其eResource
和资源的错误。您也可以查看ValidationTestHelper。