问题描述
用于 INI 文件格式解析的 Xtext 编辑器:
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)*;
在后台使用 EMF 模型来存储数据。
一切都很完美。例如,当我们添加具有相似文本的评论时会出现问题, 当用户提供这样的输入时,
[Section_A]
//======================
// Key Group Comment
//====================== // <-- Problem is here
// Key Comment
// Key Comment 1
// Key Comment // <-- Problem is here
Key1 = Value1
这很奇怪。为什么会这样?解决方案是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)