编译器中的语法

时间:2010-10-24 14:25:41

标签: compiler-construction

如何生成规则以将1种形式的语法翻译成另一种语法?

例如:

GRAMMAR 1:

BLOCK: while ( id:=N) { BLOCK } | id:=N
N: 1 | 2 | 3 | 4 | 5

GRAMMAR 2:

BLOCK: while id:=N DO BLOCK END | id:=N
N: 1 | 2 | 3 | 4 | 5

我希望2生成一个翻译,以便我可以将语法2中的语句翻译成语法1中的相应语句...

1 个答案:

答案 0 :(得分:1)

嗯,创建一个解析器,将语法1中的句子转换为语法树,然后将语法树转换回语法2中的句子?