如何获取代表xText中任何字符的终端

问题描述:

我正在使用Xtext开发DSL。这个DSL应该接受任何类型的代码。这意味着它应该接受任何角色。另外,我需要记录这些代码,而不会忽略它。有没有人知道这个正则表达式?我试图使用。*但它不起作用,因为它期望字符不是数字或字母。我甚至尝试使用“ - >”,但它也不起作用。如何获取代表xText中任何字符的终端

代码:

Param: 

    'param' value=Anything; 

...

Instance: 

    component=[Component] name=ID 

    'call:' code=Anything; 

应该怎样 “Antything” 是什么?

感谢

+0

什么停止此特定点什么呢?任何事情都停止了,下一个规则开始了吗? –

+0

@ChristianDietrich对于我尝试使用“”的代码,但在编写第一个“,期待其他”之后,忽略了我可能写在其中的任何内容。对于参数,它是另一个参数或配置集的结尾,a}。 –

+0

嗯,不知道如果切换到外部词法分析器和/或jflex,这是否可能很容易。你怎么知道一个配置集合结束?什么是允许的那种东西?真的是一切,或者像'STUFF:(ID | INT |“somekeyword”| STRING)+'这样的规则可以帮助 –

取决于你的东西是你可以尝试像

Model: 
    params+=Param*; 

Param: 

    'param' value=Anything; 

// this is a so called datatype rule 
Anything : 
    (ID | INT | STRING | ANY_OTHER)+ 
; 
+0

使用'''通配符运算符而不是额外的解析器规则是不是更容易?或者不支持Xtext?当然,在语法结尾处必须有一个附加的词法分析器规则,以便每个输入将由词法分析器进行标记... – Raven

+0

否Lexing无法解析 –

+0

是的我知道...您声明和我的? Afaik Xtext在底层使用了ANTLR v3,我的建议应该与它一起工作,除非Xtext在那里改变了某些东西(或者我错过了某些东西) – Raven