我正在尝试将Xtext语法识别为文件的结尾作为有效语句,但到目前为止我所尝试的都不起作用。
尝试直接使用EOF会在编辑器中向我显示“输入'EOF'中没有可行的替代方案”消息:
Object :
typ=('char'| 'any' | 'number' | 'space' | 'symbol') ( ' ' | ';' | EOF )
;
所以我尝试引入一个链接到EOF的终端:
terminal ETX: EOF;
...
Object :
typ=('char'| 'any' | 'number' | 'space' | 'symbol') ( ' ' | ';' | ETX )
;
xtext可以这样编译,但会在上面给出与上面相同的错误
“语言编辑器窗口”(运行xtext作为eclipse应用程序时打开的窗口)
当我没有在最后一个元素(char)后面键入空格或分号时发生错误:
symbol number char(!)
当我将所有三个允许的元素放入终端时,同样的事情发生了:
terminal END: ( ' ' | ';' | EOF);
...
Object :
typ=('char'| 'any' | 'number' | 'space' | 'symbol') END
;
语法用于描述一种正则表达式语言,
这将用于解析定义格式的字符串。例如:
(我将用下划线替换空格以使其清晰)
char_symbol_number_
char_symbol_number;
代码修正接受(不显示错误)。
尽管
char_symbol_number
会在第二个eclipse编辑器窗口中给出上述错误 (对于我定义的语言,代码完成等的那个。)
要指出这一点,我想要完成的是一个纯粹的化妆调整,
所以我可以保留最后一个语句而不必添加空格或分号。
所以问题是:如何让Xtext将EOF(无)识别为有效的结束语句?
答案 0 :(得分:0)
我只能从语法片段中猜出你的最终语法应该如何,但不会
Object: typ=('char'|'any') ';'? ;
为你工作?