2016-08-23 38 views
1

我已創建語法如何使用反引號

grammar com.iamsoft.net.Validate with org.eclipse.xtext.common.Terminals 

generate validate "http://www.iamsoft.com/net/Validate" 

Model: 
    netDescription+=DescriptionPair+; 

DescriptionPair:TSO; 
TSO: 
    name=TSO_NAME '=' '"' value=BOOLEAN '"'; 

terminal BOOLEAN: 
    'on' | 'off'; 


terminal TSO_NAME: 
    'TSO_' ID; 

和字符串

TSO_eth1="off" 

的驗證過程中添加值有以下錯誤消息

不匹配輸入「‘關’ 'expected''''

但如果我從規則TSO除去雙引號,語法正確驗證字符串

TSO_eth1 =關閉

那麼如何雙引號添加到語法?

問候, 弗拉基米爾

+0

可以反饋? –

回答

0

的問題是終端語法的基業已經包含字符串規則

取決於如果你需要的字符串終端規則其他地方你有以下選項

上( 1)不要從終端語法和副本繼承&將終端規則和隱藏子句從終端語法粘貼到您的語法中

(2)用未使用的simething覆蓋STRING規則。 terminal STRING: '@@@@@@[email protected]@@@@'

(3)使用的數據類型規則+一個valueconverter,而不是你的東西BOOLEAN: STRINGTSO: name=TSO_NAME '=' value=BOOLEAN;

+0

但是,如何解決這個問題呢? –

0

我會用一個簡單的字符串,並添加驗證和內容的建議。您的說明對不再綁定到BOOLEAN數據類型,但您可以在將來添加更多類型。

字符串終端也接受單引號,如果不想要的,你仍然要重寫規則上我的回答