EclipseXText:需要帮助解决Xtext中存在重复单行注释的问题吗
用于INI文件格式解析的Xtext编辑器: 我添加了语法来解析ini文件。语法如下:EclipseXText:需要帮助解决Xtext中存在重复单行注释的问题吗,eclipse,xtext,Eclipse,Xtext,用于INI文件格式解析的Xtext编辑器: 我添加了语法来解析ini文件。语法如下: terminal ALPHA: ('a'..'z' | 'A'..'Z'); terminal NUM: ('0'..'9')+; terminal WS: (' '); SYMBOL: ('[' | ']' | '.' | ',' | '(' | ')' | '<' | '>' | '+' | '-' | '*' | '%' | '!' | '"'
terminal ALPHA:
('a'..'z' | 'A'..'Z');
terminal NUM:
('0'..'9')+;
terminal WS:
(' ');
SYMBOL:
('[' | ']' | '.' | ',' | '(' | ')' | '<' | '>' | '+' | '-' | '*' | '%' | '!' | '"' | ':' | '?' | '#' | '_' | '=' |
'\\' | '~' | '$' | '^' | '&' | '\'');
terminal SL_COMMENT:
'//' !('\n' | '\r')* ('\r'? '\n')*;
terminal ML_COMMENT:
'/*'->'*/';
ANY_VALUE:
(ALPHA | NUM | SYMBOL | WS | SL_COMMENT | '}' | '/')+;
SECTION:
(ALPHA | NUM | '_')*;
KEY:
(ALPHA | NUM ) (ALPHA | NUM | SYMBOL|'_')*;
NL:
('\n' | '\r\n');
GRPCOMMENT:
SL_COMMENT (NL)*
SL_COMMENT? (NL)*
SL_COMMENT (NL)*;
AnyValue:
{AnyValue}
value=ANY_VALUE;
IniNewSection:
{IniNewSection}
(comment+=SL_COMMENT)* (NL)* // <-- Problem is here
'[' (sectName=SECTION) ']' (NL)*
(keyGroupsComment+=GRPCOMMENT)* (NL)* // <-- Problem is here
(keySet+=IniNewKey)* (NL)*;
IniNewKey:
{IniNewKey}
(keyComment+=SL_COMMENT)* (NL)* // <-- Problem is here
(keyName=KEY) '=' (keyValue+=AnyValue)* (NL)*;
终端ALPHA:
('a'..'z'|'a'..'z');
终端编号:
('0'..'9')+;
终端WS:
(' ');
符号:
('[' | ']' | '.' | ',' | '(' | ')' | '' | '+' | '-' | '*' | '%' | '!' | '"' | ':' | '?' | '#' | '_' | '=' |
'\\' | '~' | '$' | '^' | '&' | '\'');
终端SL_注释:
“//”!(“\n”|“\r')*(“\r”?“\n')*;
终端ML_注释:
'/*'->'*/';
任何_值:
(ALPHA | NUM | SYMBOL | WS | SL|u COMMENT |'}'|'/')+;
第节:
(ALPHA | NUM |'|')*;
关键:
(ALPHA | NUM)(ALPHA | NUM | SYMBOL |‘’)*;
荷兰:
('\n'|'\r\n');
GRP建议:
SL_评论(NL)*
SL_评论?(NL)*
SL_评论(NL)*;
任意值:
{AnyValue}
值=任何_值;
InInNewSection:
{InInInNewSection}
(注释+=SL_注释)*(NL)*//
[Section_A]
//======================
// Key Group Comment
//====================== // <-- Problem is here
// Key Comment
// Key Comment 1
// Key Comment // <-- Problem is here
Key1 = Value1