4

我正在寻找一个解析器生成器,它接受 Javacc 语法文件 (.jj) 并在 Javascript(而不是 Java)中生成解析器。这样的事情存在吗?或者,将 .jj 文件转换为 ANTLR(可以输出 Javascript)可以理解的东西会有多困难?

4

4 回答 4

3

我正在寻找一个解析器生成器,它接受 Javacc 语法文件 (.jj) 并在 Javascript(而不是 Java)中生成解析器。这样的事情存在吗?

显然,没有。

或者,将 .jj 文件转换为 ANTLR(可以输出 Javascript)可以理解的东西会有多困难?

这将是非常重要的,您需要手动完成。但实际难度可能取决于您尝试转换的语法。


值得注意的是,还有其他解析器生成器在 Javascript 中输出解析器。(而且,不,我不会列出它们或推荐一个!)

显然,输入语言将不同于 Javacc 输入。

于 2012-10-24T12:18:03.210 回答
1

只要只使用 JDK 的特定子集,Google 的 GWT 就会将 java 代码编译为 JavaScript。我也不确定它带来了多少特定于 GWT 的杂物。但这可能是一种可能性:使用 javacc 生成 java 代码,然后 GWT 将其转换为 JavaScript。

于 2012-10-24T13:11:08.797 回答
0

我最近向 JavaCC 添加了对 GWT 兼容解析器目标的支持(不依赖于 Java IO 类)。我最近写了两篇关于如何使用 JavaCC 以便可以通过 GWT 生成 JavaScript 解析器的博客。下方链接:

使用 JavaCC 和 GWT 构建 Web 解析器(我的博文)

JavaCC 6.1 开发构建

于 2013-07-16T07:48:40.837 回答
0

如果你不介意重写你的语法,我已经用 Kotlin 通用代码编写了一个解析器构建器,所以它可以在 JavaScript 平台上运行。

语法语法相当简单,类似于 EBNF。

您可以在此处查看详细信息,如果您想尝试一下,还有一个在浏览器中运行的演示链接。

https://medium.com/@dr.david.h.akehurst/a-kotlin-multi-platform-parser-usable-from-a-jvm-or-javascript-59e870832a79

于 2020-04-09T14:03:38.713 回答