0
我已經重新定義了STRING終端這樣XTEXT:第一,在自定義字符串終端截斷最後一個字符
terminal STRING : ('.'|'+'|'('|')'|'a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
,因爲我不得不承認STRING沒有分隔「或」
的問題是,雖然生成的解析器有效,但它會截斷識別字符串的第一個字符和最後一個字符。我錯過了什麼?
我已經重新定義了STRING終端這樣XTEXT:第一,在自定義字符串終端截斷最後一個字符
terminal STRING : ('.'|'+'|'('|')'|'a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
,因爲我不得不承認STRING沒有分隔「或」
的問題是,雖然生成的解析器有效,但它會截斷識別字符串的第一個字符和最後一個字符。我錯過了什麼?
如果您自定義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;
}
}
請參閱該文檔的詳細信息。
這裏是完整的答案http://www.eclipse.org/forums/index.php/m/943203/#msg_943203 – Sindico