java - 从 beanshell 或 Java 程序使用 ANTLR

标签 java syntax antlr beanshell

是否可以使用 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/

相关文章:

java - AWS ElasticSearch 2.3 Java HTTP 批量 API

java - Android Studio 上的 Gradle 加载错误

python - Python 如何计算这个表达式?

php - 这个查询有什么问题?语法错误

java - antlr4 语法适用于 Java 目标,但适用于 Python 目标

error-handling - 在丢失的 token 上输出适合上下文的错误消息

java - Hadoop中的getJobStatus错误

java - 如何知道是否存在内存大小问题,或者只是 JVM 变空?

JavaScript 函数调用语法

java - 将字符串与词法分析器匹配 : 'expecting' error