2014-04-20 27 views
1

我正在處理Xtext項目,我想要一個允許我的語法: 1.字符串引號,例如:「string」 - >字符串 2.允許將以空格分隔的字符串塊視爲一個字符串。從字符串Xtext strip引號但在字之間留有空格

我想有以下具體的語法:

fieldSet setname[ 

question what do you prefer to drink? [ 
    cola, 
    coda water, 
    apple juice 
    ] 
] 

正如你可以看到「你喜歡喝什麼做」必須被視爲不帶引號的一個字符串。 目前我做了一個自定義終端以及轉換器。但它不起作用,因爲我想。

terminal QSTRING returns ecore::EString: //custom terminal SurveyString 
    ('a'..'z'|'A'..'Z')('a'..'z' | 'A'..'Z' | '_' | '?' | '!'| '@'| '#' | '%' | '^' |  '&' | '('|')'| '0'..'9'|' ')*; 



FieldSet returns FieldSet: 
'fieldSet' name=QSTRING 
'[' 
question+=Question (',' question+=Question)* 
']'; 

Question returns Question: 
'question' 
name=QSTRING 
'[' has+=AnswerOption (',' has+=AnswerOption)* 
(other?=('other'))? 
']'; 

AnswerOption returns AnswerOption: 
name=QSTRING; 

回答

0

我猜你的語法繼承自common.Terminals?該語法默認隱藏空白。

您可以將hidden()放在終端規則的名稱後面,以確保其內部不會忽略空白。

相關問題