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

标签 java javascript javacc javaparser

我正在学习编译器构造并想要实现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/

相关文章:

javascript面向对象函数调用初学者问题

javascript - 如何在 Angular 表达式大括号内引用动态变量?

java - 定义 token 的 "groups"

java - quartz : run task once a day, 无重复间隔

java - HashMap 类中的 final方法

javascript - 为什么弹出警报在我的应用程序中显示两次?

java - 我有使用 JavaCC v4 的旧产品,从那时到 v6 有何变化?

regex - JavaCC警告 "Regular expression choice : FOO can never be matched as : BAR"的解释和解决方案?

java - 通过 webservice android 读取 JSON

java - 如何在editText中放置一个按钮