首页 > 解决方案 > JVM 是否在运行时用于 ANTLR4 c++ 程序?

问题描述

因此,antlr4 C++ 之神(Mike Lischke 的)网站声明解析器中的所有内容都被翻译成 C++。因此,jar 在 c++ 实现中究竟做了什么?更重要的是,我生成的程序在编译后是否需要 JVM?

标签: antlr4c++17

解决方案


ANTLR一般由三部分组成:

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

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

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

因此,执行 C++ 词法分析器/解析器不需要 JVM——JVM 仅用于代码生成。


推荐阅读