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

时间:2016-03-28 07:30:12

标签: parsing antlr

我正在开展涉及ANTLR的项目。我生成了Lexer和Parser并将其用于另一个目录中的项目。该项目托管在GitHub上,所以我仍然拥有ANTLR生成的所有文件。但是由于硬盘故障,我丢失了语法文件。无论如何从ANTLR生成的文件重新生成语法文件?再次重写语法文件是一个令人头痛的问题,需要在很多地方更改我的项目代码。

1 个答案:

答案 0 :(得分:1)

答案是:只是部分。生成的文件包含与原始规则名称(词法分析器和解析器)对应的函数/枚举。所以你可以恢复整体结构。但是,由于规则本身已被转换为状态更改以加速处理(DFA),因此您无法实现这一目标。这些状态使用生成的数字,您没有映射回原始代码。

一如既往:根本不需要备份数据,而是何时,这不是问题。