我试图创建一个应用程序来搜索我公司的ColdFusion的代码库。我希望能够做到智能搜索,例如:找一个地方定义函数(而不是到处打调用该函数)。为了做到这一点,我需要解析ColdFusion代码识别类似的函数声明,函数调用,数据库查询等事情。

我已经研究过使用lex和yacc,但我从来没有使用过他们,学习曲线显得非常陡。我希望有一些东西已经在那里,我可以使用。我的另一个选项是难以维持的正则表达式,意大利面条代码,我想避免一团糟。

有帮助吗?

解决方案

我使用的源CFEclipse 时,因为它是开源和具有解析器。不知道这是否合法,如果我们销售/重新分配,但我们只使用它的一个内部工具。

其他提示

即时汉语语言书写解析器通常是困难的,因为它们包含的Lex和Yacc往往不处理好构建体,例如,的langauge不是LALR(1)。 ColdFusion的可能比有些是因为它像XML风格更容易。

如果你想快速构建复杂的解析器,你可以考虑使用我们的 具有GLR解析支持DMS软件再造工具包

如果你想的避免的编写您自己或黑客攻击那些正则表达式,你可以考虑我们的源代码搜索引擎。它具有语言敏感的解析器,并且可以在非常大的源代码库非常快速搜索。它的一个“语言敏感”解析器的是AdhocText,其目的是处理“通用”的编程语言如你可能会在随机编程的书找到;它甚至可以理解如XML的标记,如ColdFusion的了。您可以从提供的链接一个评估版本试试吧。

EDIT 3/4/2010:加入到SCSE最近特征是标记定义的能力,并且分别使用。这将解决OP的愿望,找到函数定义,而不是所有的呼叫。

无存在。由于ColdFusion的更像脚本代码相比,我想像这将是很难写一个解析器吧。

的ColdFusion生成器可以解析CFM / CFC在Eclipse的轮廓。也许你可以做一个CF Builder插件是否可以做你想做的事了一些研究。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top