如何模块化JavaCC语法文件(.jj)?

问题描述 投票:0回答:2

我正在学习编译器构造,并希望使用JavaCC实现JavaScript语法。

(我已经编写了自己的JavaScript CodeModel,它允许以编程方式构建JavaScript代码,现在我想为此编写一个基于JavaCC的解析器。)

我的问题是,有没有办法将JavaCC语法(.jj文件)模块化为几个文件?

我对JavaParser有很好的经验,所以我从他们的java_1_5.jj语法中学习。但是,这是一个3000+ LoC文件,有点难以理解。

我想将语法文件分成几个部分,以便更容易理解和理解。关于“javacc模块化”,“javacc include”,“javacc import”的谷歌搜索给我带来了一些神秘的结果,这些结果并没有多大帮助。

具体来说,我如何将IDENTIFIERlines 380-1081)的定义移动到另一个文件?

java javascript javacc javaparser
2个回答
1
投票

JavaCC无法内置模块化.jj文件。最好的办法通常是使用JJT,因为这允许您将所有操作移出语法文件。如果您不想使用JJT,那么下一个最好的方法可能是使用构建器模式。

如果您只想要一个包含工具,那么可以使用许多预处理器。


0
投票

是的,您可以通过创建对象来创建各种类并传递参数,并将其发送到javacc文件中的try catch中的对象,使其看起来模块化。

© www.soinside.com 2019 - 2024. All rights reserved.