是否可以从 ANTLR 生成的 Lexer 和 Parser 文件生成语法文件?

Is it possible to generate grammar file from the Lexer and Parser files generated by ANTLR?

我正在从事一个涉及 ANTLR 的项目。我生成了 Lexer 和 Parser 并将其用于另一个目录中的项目。该项目托管在 GitHub 上,所以我仍然拥有 ANTLR 生成的所有文件。但是由于硬盘故障我丢失了语法文件。有没有办法从 ANTLR 生成的文件中重新生成语法文件?再次重写语法文件很头疼,而且会涉及在很多地方更改我的项目代码。

答案是:只是部分。生成的文件包含 functions/enums 对应于原始规则名称(词法分析器和解析器)。所以你可以恢复整体结构。但是你不会走得太远,因为规则本身已经转化为状态变化以加速处理 (DFA)。这些状态使用生成的数字,您无法将其映射回原始代码。

一如既往:问题根本不是您是否需要备份数据,而是什么时候