我嘗試定義一些XTEXT爲specifiying變量按照以下語法XTEXT逗號分隔的變量聲明
variables
MyVar1 : Bool at 0x020 value=true;
MyVar2, MyVar3 : Int at 0x030 value 200;
end-variables
因此,每個定義是語法
VarName ["," VarName]* ":" Type ["at" HEX]? ["value" VALUE]? ";"
所有變量應以他們的參考和訪問導致大綱應該是這樣的:
variables
+-MyVar1 : Bool
+-MyVar2 : Int
+-MyVar3 : Int
編輯: 這裏要求我的實際語法,這相當於上面的一些語句的語法定義。
Variable:
name=ID
;
Declaration_Var:
'variables'
vars+=Declaration_Var_Body+
'end-variables' ';'
;
Declaration_Var_Body:
varDecl+=Variable(',' varDecl +=Variable)*
':' type=[TR_Any]
('at' address=HEX)?
;
TR_Any:
...
;
terminal HEX:
...
;
有了這個,以下字符
variables
Test1, Test2, Test3 : DWORD at 0x20;
end_var;
導致的輪廓是這樣的順序:
<unnamed>
+-- 0x20
| +-- Test1
| +-- Test2
| +-- Test3
這幾乎是與我期望的相反。我所期望的以及我想要在大綱中生成的內容與此類似(數據類型和地址不能在那裏顯示,但至少它們必須可以作爲生成的變量聲明類的屬性訪問)
Test1
+-- DWORD
+-- 0x20
Test2
+-- DWORD
+-- 0x20
Test3
+-- DWORD
+-- 0x20
請問您可以發表您當前的語法並提出具體問題嗎? – 2013-03-15 15:24:46
我在那裏添加了一些更詳細的描述 – abs 2013-03-18 18:07:46
好吧,現在我明白你的問題了。你實際上只是對看起來很漂亮的輪廓感興趣,或者是以你描述的方式修改內部結構嗎? – 2013-03-19 10:44:03