XText:在自定义STRING终端中截断的第一个和最后一个字符

时间:2012-10-14 07:52:55

标签: eclipse xtext emf

我已经以这种方式重新定义了STRING终端

terminal STRING : ('.'|'+'|'('|')'|'a'..'z'|'A'..'Z'|'_'|'0'..'9')*;

因为我必须识别STRING没有用“或”

分隔

问题在于,尽管生成的解析器有效,但它会截断识别的字符串的第一个和最后一个字符。我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果您自定义STRING规则,则还必须调整相应的值转换器。

这样的东西必须绑定在运行时模块中:

public class MyStringValueConverter extends STRINGValueConverter {

    @Override
    protected String toEscapedString(String value) {
        return value;
    }

    public String toValue(String string, INode node) {
        if (string == null)
            return null;
        return string;
    }
}

有关详细信息,请参阅文档。