我想創建一個使用XTEXT一個非常簡單的DSL,具有以下特點:定義基元內XTEXT語法
- 它有兩個基本類型:數字和字符串
- 用戶可以定義自己的類,其由字段聲明的
- 字段聲明相關聯的名稱與類型,其中一個類型可以是一個類或一個原始
以下是我嘗試在DSL,類定義和引用工作正常,但我無法弄清楚如何擁有原始類型。在「字符串」和「數字」文字不工作:
Model:
(classes+=Class)*
(fields+=Field)*;
FieldType: Class | 'String' | 'Number';
Field:
type=[FieldType] name=ID ";";
Class:
"class" name=ID
"{"
(fields+=Field)*
"}";
這是我期望能夠針對上述DSL有效的例子:
Class SomeClass {
}
// This works!
SomeClass reference;
// This does not, doesn't recognise the "String" literal
String string;
注意,進一步下跌的線我會配套工作。因此,我的DSL將需要結合數字/字符串文字的概念,以便它支持Number someNumber = 123;
您的其他文字用雙引號括起來,這有什麼關係嗎?我不知道語法。 –