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

Eclipse XText:在自定义字符串终端中截断的第一个和最后一个字符,eclipse,xtext,emf,Eclipse,Xtext,Emf,我用这种方式重新定义了字符串终端 terminal STRING : ('.'|'+'|'('|')'|'a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 因为我必须识别不以“或”分隔的字符串 问题是,虽然生成的解析器可以工作,但它会截断识别字符串的第一个和最后一个字符。我缺少什么?如果您自定义字符串规则,您还必须调整相应的值转换器 必须在运行时模块中绑定类似的内容: public class MyStringValueConverter extends STRINGValue

我用这种方式重新定义了字符串终端

terminal STRING : ('.'|'+'|'('|')'|'a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
因为我必须识别不以“或”分隔的字符串


问题是,虽然生成的解析器可以工作,但它会截断识别字符串的第一个和最后一个字符。我缺少什么?

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

必须在运行时模块中绑定类似的内容:

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;
    }
}
有关详细信息,请参阅文档。

以下是完整答案