我正在寻找一个解析器生成器,它接受 Javacc 语法文件 (.jj) 并在 Javascript(而不是 Java)中生成解析器。这样的事情存在吗?或者,将 .jj 文件转换为 ANTLR(可以输出 Javascript)可以理解的东西会有多困难?
4 回答
我正在寻找一个解析器生成器,它接受 Javacc 语法文件 (.jj) 并在 Javascript(而不是 Java)中生成解析器。这样的事情存在吗?
显然,没有。
或者,将 .jj 文件转换为 ANTLR(可以输出 Javascript)可以理解的东西会有多困难?
这将是非常重要的,您需要手动完成。但实际难度可能取决于您尝试转换的语法。
值得注意的是,还有其他解析器生成器在 Javascript 中输出解析器。(而且,不,我不会列出它们或推荐一个!)
显然,输入语言将不同于 Javacc 输入。
只要只使用 JDK 的特定子集,Google 的 GWT 就会将 java 代码编译为 JavaScript。我也不确定它带来了多少特定于 GWT 的杂物。但这可能是一种可能性:使用 javacc 生成 java 代码,然后 GWT 将其转换为 JavaScript。
我最近向 JavaCC 添加了对 GWT 兼容解析器目标的支持(不依赖于 Java IO 类)。我最近写了两篇关于如何使用 JavaCC 以便可以通过 GWT 生成 JavaScript 解析器的博客。下方链接:
如果你不介意重写你的语法,我已经用 Kotlin 通用代码编写了一个解析器构建器,所以它可以在 JavaScript 平台上运行。
语法语法相当简单,类似于 EBNF。
您可以在此处查看详细信息,如果您想尝试一下,还有一个在浏览器中运行的演示链接。