2012-10-14 97 views
0

我已經重新定義了STRING終端這樣XTEXT:第一,在自定義字符串終端截斷最後一個字符

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

,因爲我不得不承認STRING沒有分隔「或」

的問題是,雖然生成的解析器有效,但它會截斷識別字符串的第一個字符和最後一個字符。我錯過了什麼?

回答

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; 
    } 
} 

請參閱該文檔的詳細信息。

+0

這裏是完整的答案http://www.eclipse.org/forums/index.php/m/943203/#msg_943203 – Sindico

相關問題