簡體   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