xtext自定义验证器错误标记

时间:2013-08-15 18:16:30

标签: validation xtext

我有一张桌子

CREATE TABLE demo {
   a int,
   b int, 
   PRIMARY KEY (a, b, c)
};

每一行都是

Columns
  : k=ID v=ComparatorType (is_pk?=K_PRIMARY K_KEY)?
  | is_pk?=K_PRIMARY K_KEY '(' cs+=ID (',' cs+=ID )* ')'
;

我像这样调用我的错误函数

error('PRIMARY KEYS id need to declare in advance', 
  MyPackage.Literals.COLUMNS__CS,
  PRIMARY_KEYS_DONT_EXIST)  

它可以找到语法错​​误,但xtext会在PRIMARY KEY行的第一个元素处标记错误,在我的示例中为a。有没有办法在c或整个(a, b, c)标记错误?

1 个答案:

答案 0 :(得分:1)

您可以将应该标记为附加参数的索引传递给错误函数。如果您不仅要标记c,您当然可以为每个索引创建多个错误。

相关问题