解析Xtext中的字符串

| 我目前正在尝试为我们在公司中使用的内部语言编写基于Eclipse的编辑器。语言是以下形式的语句的集合:
{action}: {arguments}
...自己行事{arguments}的格式取决于要执行的{action}的类型。脚本片段的示例如下所示:
banner: Some string with numbers and punctuation (23) in it!
# some comment
timeout: 42
我的问题是解析这样的片段。我有注释,并且超时语句有效,但是我似乎无法创建规则来覆盖标题语句。我的所有尝试都导致Antlr“令牌定义无法访问”警告,或者编辑器无法匹配输入。我已经对banner语句尝试了以下规则:
Banner:
  \'banner:\' name=ANY_OTHER*;
Banner:
  \'banner:\' name=FF_STRING;
terminal FF_STRING : (\'a\'..\'z\'|\'A\'..\'Z\'|\'0\'..\'9\'|\'.\'|\':\'|\' \')+;
...这会向我发出antlr警告。我想出的一个办法是简单地创建一个与SL_COMMENT相同的终端,开头是\'banner:\'而不是\'#\'。缺点是我没有得到语法着色,\'banner \'也没有显示在自动完成列表中。 欢迎任何建议。     
已邀请:
您可以尝试使用数据类型规则和减少的终端规则集。 这样的事情可能会起作用:
Banner
  \'Banner:\' name=Value;
Value hidden(): 
  (ID | WS | INT | <any keyword from your grammar>)* LineBreak;
terminal LineBreak: \'\\r\' \'\\n\'? | \'\\n\';
termianl WS: (\' \'|\'\\t\') *
    

要回复问题请先登录注册