2010-07-14 67 views
0

我想在ANTLR中为C#语言设计编译器。但我不完全理解应该采取的步骤的正确顺序。ANTLR,步骤顺序

这就是我看待它:

  • 首先我定义词法令牌
  • 然后语法规则(与重写规则建立AST)用行动是收集有关的类和方法的声明信息(这样我可以在下一步中解析方法调用)
  • 最后,我创建了遍历AST树并调用生成(虚拟)机器语言操作码的规则的“树语法”。

这是正确的吗?第二步是读取方法的声明和构建AST?

如何解决没有构建AST的重载方法的声明? (backpatching?)

回答

2

看看Language Implementation Patterns它解释了如何创建自己的语言(包括解释和字节码/虚拟机)。目前,您的问题太广泛了,我不认为任何人都可以在论坛上发布答案,以解释如何从头到尾创建自己的语言的所有细节。

当然,如果您有这些问题,请随时提出具体问题。

祝你好运!