xtext에서 작동하는 문법이 있으며 코드의 유효성 검사가 시작됩니다.AbstractDeclarativeValidator.warning 및 error에 사용되는 매개 변수는 무엇입니까?
이를 위해 작성된 유효성 검사기 xtext에 메소드를 추가했습니다.
물론 표현식이 유효하지 않으면 주어진 AST 노드에 경고를 줄 수 있기를 원합니다. Expression_Number가 EObject
를 확장하지만, EStructuralFeature
아니므로, 성공하지
@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());
}
}
:
나는 명백한을 시도했다.warning(String message, EStructuralFeature feature)
이 warning
에 대한 다른 많은 프로토 타입이 있지만, 단지 String
과 Eobject
소요 없음. null
을 사용하거나 eContainingFeature
에서 다양한 값을 추출하면 오류가 기록되며 때로 올바른 위치에 경고가 표시됩니다. 예제를 검색해 보면 값이 종종 Literals
또는 ***Package
이라는 클래스의 통계 필드에서 나온 것으로 나타났습니다. 프로젝트에 생성 된 값은 EStructuralFeature
입니다. 그러나 어느 것을 사용해야하는지, 또는 내가 필요한 이유를 모릅니다. 이 중 하나.
그래서 질문은 :
는어떻게 주어진 AST 요소에 경고를 배치 할 수 있습니다 ?
많은 솔루션을 사용하지 못했지만 많은 상태를 유지할 준비가되면 작동합니다. –