2016-08-23 82 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数据类型,但您可以在将来添加更多类型。

字符串终端也接受单引号,如果不想要的,你仍然要重写规则上我的回答