解析不完整或不正确的代码的任何引用?

时间:2012-09-14 01:12:49

标签: parsing programming-languages heuristics

有人可以指点我参考解析包含语法错误的代码的技术,或者缺少必要的标点符号吗?

我正在开发的应用程序是一个IDE,我们希望提供“跳转到定义”,自动完成和重构功能等功能,而不需要源语法在语法上正确调用函数。

我见过的大多数解析器代码似乎都是基于“早期失败”的原则,而不是专注于错误恢复或解析部分完整的代码。

1 个答案:

答案 0 :(得分:2)

我不知道任何论文或教程,但uu-parsinglib是一个Haskell解析库,可以通过一般方式从语法错误中恢复。例如,如果预期;但收到int,则解析器可以继续,就像在该源位置插入了;一样。

由您决定解析器将失败的位置以及将在何处继续进行更正,结果将与解析期间更正的一组错误一起传递。即使您不打算在Haskell中实现解析代码,对库的检查也可能为您提供一些见解。或者您可以在Haskell和call it from C中编写解析器。