如何生成規則以將1種形式的語法翻譯成另一種?編譯器中的文法
例如:
語法1:
BLOCK: while (id:=N) { BLOCK } | id:=N
N: 1 | 2 | 3 | 4 | 5
語法2:
BLOCK: while id:=N DO BLOCK END | id:=N
N: 1 | 2 | 3 | 4 | 5
我想2生成一個翻譯,這樣我可以在語法2翻譯一個語句轉換成相應的在語法1中的語句...
如何生成規則以將1種形式的語法翻譯成另一種?編譯器中的文法
例如:
語法1:
BLOCK: while (id:=N) { BLOCK } | id:=N
N: 1 | 2 | 3 | 4 | 5
語法2:
BLOCK: while id:=N DO BLOCK END | id:=N
N: 1 | 2 | 3 | 4 | 5
我想2生成一個翻譯,這樣我可以在語法2翻譯一個語句轉換成相應的在語法1中的語句...
給我們一些關於語法樹以及如何創建它的更多細節? – 2010-10-24 15:14:50
基本上你想建立一個完整的語言翻譯器。即使你擁有兩個文法,這也不是一件容易的事。如果沒有別的,你必須處理*語義*差異。 – 2013-01-14 18:52:01