繁体   English   中英

如何在 xtext 中创建 goto 表达式?

[英]How can I create a goto expression in xtext?

我想创建一个goto表达式如下

//label
 <bb 2> :

//goto
goto <bb 2>;

以下语法适用于简单 ID。 我不知道如何在 goto 表达式中引用<ID INT>

Goto returns Goto:
    {Goto}
    'goto' goto+=[Label]  ';'
;

LabelDef returns LabelDef:
    {LabelDef}
    label+= Label ':'
    ;

Label returns Label:
    {Label}
    name= ID
    ;

你知道怎么做吗?

我认为您想要一个本质上是“ID INT”的终端,然后使用它来交叉引用您的 Label。 我认为这将是很多工作,只是为了能够在标签中允许“空格”。 为什么不简单地依赖终端“ID”,如果他们愿意,用户可以将它们命名为“bb2”?

您正在寻找的功能是 DataType 规则

Goto returns Goto:
    {Goto}
    'goto' goto+=[Label|IDandINT]  ';'
;

LabelDef returns LabelDef:
    {LabelDef}
    label+= Label ':'
    ;

Label returns Label:
    {Label}
    name= IDandINT
    ;
IDandINT: ID INT;

您还可以为数据类型规则引入/自定义 DefaultTerminalConverters/IValueConverter 以规范空白

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM