ANTLR,步骤顺序

ANTLR,步骤顺序,antlr,compiler-construction,Antlr,Compiler Construction,我正试图为ANTLR中的C#这样的语言设计一个编译器。但我并不完全理解应该采取的步骤的正确顺序 我是这样看的: 首先我定义Lexer标记 然后是语法规则(使用重写规则来构建AST)以及收集类和方法声明信息的操作(这样我就可以在下一步中解析方法调用) 最后,我创建了“树语法”,它遍历AST树并调用生成(虚拟)机器语言操作码的规则 这是正确的吗?第二步的角色是读取方法的声明和构建AST吗 如何在没有构建AST的情况下解析重载方法的声明?(backpatching?看看它,它解释了如何创建自己的语

我正试图为ANTLR中的C#这样的语言设计一个编译器。但我并不完全理解应该采取的步骤的正确顺序

我是这样看的:

  • 首先我定义Lexer标记
  • 然后是语法规则(使用重写规则来构建AST)以及收集类和方法声明信息的操作(这样我就可以在下一步中解析方法调用)
  • 最后,我创建了“树语法”,它遍历AST树并调用生成(虚拟)机器语言操作码的规则
这是正确的吗?第二步的角色是读取方法的声明和构建AST吗

如何在没有构建AST的情况下解析重载方法的声明?(backpatching?

看看它,它解释了如何创建自己的语言(包括解释语言和字节码/VM之类的语言)。目前,你的问题太广泛了,我认为没有人能够在论坛上发布答案,解释如何从头到尾创建自己的语言的所有细节

当然,当你有更具体的问题时,请随意提问

祝你好运