xtext で動作する文法があり、コードの検証を開始しています。
このために、私のために作成されたバリデータ xtext にメソッドを追加しました。
もちろん、式が有効でない場合は、指定された AST ノードに警告を表示できるようにしたいと考えています。
私は明らかなことを試みました:
@Check
public void testCheck(Expression_Multiplication m){
if(!(m.getLeft() instanceof Expression_Number)){
warning("Multiplication should be on numbers.",m.getLeft());
}
if(!(m.getRight() instanceof Expression_Number)){
warning("Multiplication should be on numbers.",m.getRight());
}
}
Expression_Number extendsEObject
であるため、成功しませんが、 ではありませんEStructuralFeature
。
warning(String message, EStructuralFeature feature)
のプロトタイプは他にもたくさんありますが、 aと awarning
だけを取るものはありません。またはログから抽出されたさまざまな値を使用すると、エラーが発生し、とにかく正しい場所に警告が表示されることがあります。例を検索すると、値はorという名前のクラスの statics フィールドから取得されることが多く、プロジェクトで生成されたものにはs が含まれていることがわかりましたが、どれを使用すればよいか、またはこれらのいずれかが必要な理由がわかりません.String
Eobject
null
eContainingFeature
Literals
***Package
EStructuralFeature
質問は次のとおりです。
特定の AST 要素に警告を表示するにはどうすればよいですか?