Я думаю, что ваш лучший вариант - заменить правило enum обычным правилом синтаксического анализа, например
MySpec_directionEnum:
value=STRING;
и проверьте, является ли value
допустимой строкой (нечувствительный к регистру вариант «left», «right» или «none») в валидаторе:
@Check
public void check(MySpec_directionEnum e) {
String lowercaseValue = e.getValue().toLowerCase();
if (!lowercaseValue.equals("left")) {
error("Expected \"left\".", e,
ArithmeticsPackage.Literals.MY_SPEC_DIRECTION_ENUM__VALUE,
validationMessageAcceptor.INSIGNIFICANT_INDEX);
}
}