我正在学习编译器构造并想要实现JavaScript使用 JavaCC 的语法。
(我已经编写了自己的 JavaScript CodeModel,它允许以编程方式构造 JavaScript 代码,现在我想为此编写一个基于 JavaCC 的解析器对应项。)
我的问题是,有没有办法将 JavaCC 语法(.jj
-file)模块化为多个文件?
我对JavaParser有很好的经验所以我正在向他们学习java_1_5.jj
语法。然而,这是一个 3000 多个 LoC 文件,有点难以理解。
我想将语法文件分成几个部分,以便更容易处理和理解。我在 Google 上搜索“javacc module”、“javacc include”、“javacc import”给我带来了一些神秘的结果,但没有多大帮助。
具体来说,如何将 IDENTIFIER
( lines 380-1081 ) 的定义移动到另一个文件?
最佳答案
JavaCC 中没有内置方法来模块化 .jj 文件。最好的办法通常是使用 JJT,因为这允许您将所有操作移出语法文件。如果您不想使用 JJT,下一个最好的办法可能是使用构建器模式。
如果您只想要一个包含工具,可以使用许多预处理器。
关于java - 如何模块化 JavaCC 语法文件 (.jj)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26698266/