我有一個語法的Xtext,做這樣的事情:如何訪問Xtext驗證程序中的上下文信息?
Model:
(names += Name)*
(rules += Rule)*
;
Rule:
'rule' ruleName = ID;
Name:
name = ID+;
terminal ID:
('a'..'z')+;
我想驗證ruleName
已申報的名稱塊。我可以在JavaValidator
這樣的訪問規則名稱本身:
@Check
public void checkName(Rule rule) {
rule.getName(); // how to compare to names without access to Model object?
}
,但我無法從Model
訪問names
領域。我如何在JavaValidator
中做到這一點?
很抱歉,如果該示例語法不能編譯,我只是以此爲例。主要想法應該清楚。 – Jorn