是否可以使用 ANTLR .jar 从语法定义(在字符串变量中)在运行时编译语法解析器?
我想在beanshell环境中以编程方式合成语法描述,然后调用ANTLR来创建解析器对象,而不使用任何文件。
最佳答案
是的,这是可能的,因为解析器生成器本身是用 Java 编写的。
您需要的是:
- 将 ANTLR 编译时库与 ANTLR 运行时库一起放入运行时类路径
- 调用 ANTLR 的解析器生成器 - 在 ANTLR 3 中,生成器类是
org.antlr.Tool
。 - 如果您想在同一个 Java 应用程序中使用解析器,则必须动态加载新创建的类</li>
我唯一不确定的是是否可以从字符串构建解析器 - 也许您必须将其保存到临时文件中。
关于java - 从 beanshell 或 Java 程序使用 ANTLR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185503/