JVM 是否在运行时用于 ANTLR4 c++ 程序?

Does the JVM get used in an ANTLR4 c++ program at runtime?

因此,antlr4 C++ 大神(Mike Lischke 的)网站指出,解析器中的所有内容都已转换为 C++。因此,jar 在 C++ 实现中到底做了什么?更重要的是,我生成的程序在编译后是否需要 JVM?

ANTLR一般由三部分组成:

  • 代码生成器工具,又名前端,在 Java
  • 中编码
  • 一组特定于语言的代码模板(python、java、...)
  • 一组特定于语言的运行次,又名后端

根据选项块的语言属性(默认值:java),该工具选择相应的模板来生成解析器、词法分析器和 visitor/listener 文件。

生成的文件只需要 运行 的特定语言后端。当然,还有该后端明确要求的任何依赖项。

因此,执行 C++ 不需要 JVM lexer/parser -- JVM 仅用于代码生成。