Eclipse Xtext:需要帮助解决 Xtext 中重复单行注释的问题

问题描述

用于 INI 文件格式解析的 Xtext 编辑器:

添加了语法来解析 ini 文件。语法如下,

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

Xtext 自动删除重复的注释行。

这很奇怪。为什么会这样?解决方案是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...