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
フィールド3 = 0
anull0
は私が把握することはできません。生成されたEclipseプラグインでは、この入力には正しくないラベルが付けられます。
Results eresourceにエラーがありますか?あなたはvalidationtesthelperも見ているかもしれません –
それはそうでした!ありがとう。おそらく、生成された 'Hello World'テストケースに' assertEquals(0、result.eResource.errors.size) 'のようなものを追加することができます。 –