0
大文字の一部として、私は「メソッド呼び出し」を記述するためのルールを定義しようとしています。私は問題に遭遇し、私はターミナルに関する私の知識の欠如に問題を減らしたと思う。Xtextルールは、端末が動作しないことを意味します。
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
Model: methodCalls+=MethodCall*;
MethodCall: 'call' ID '.' ID;
その文法では、私は今、私は、メソッド名にワイルドカード文字を許可したい
call variable.method
call foo.bar
のようなものを書くことができます。
は、ここに私の問題を説明する簡単な文法です。私は
MethodCall: 'call' ID '.' WildcardName;
にmethodCallで、ルールを変更し、文法の終わりに、私は、エラーメッセージまし再び
call variable.method
call foo.bar
をしようと
terminal WildcardName : ('a'..'z'|'A'..'Z'|'_'|'*'|'?') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'*'|'?')*;
を追加しました:
mismatched input 'foo' expecting RULE_ID
mismatched input 'variable' expecting RULE_ID
を
なぜ 'foo'と 'variable'がそうでないのですか端末IDと一致していますか?さらに重要なのは、新しい端末を実際に使用せずに追加しても、なぜこのエラーメッセージが表示されるのでしょうか?