圈复杂度-delphiapi

圈复杂度-delphiapi,delphi,api,cyclomatic-complexity,Delphi,Api,Cyclomatic Complexity,我正在Delphi(2010)中搜索圈复杂度Api。我需要创建一个程序来分析源代码并报告所有类中所有方法的圈复杂度(就像SourceMonitor一样)。 我不能使用其他软件,我真的需要建立一个。 有人知道delphi 2010的API可以做到这一点吗?您需要一个语言解析器,从中可以生成控制流图。然后需要使用公式计算CC 我知道没有一家图书馆会为你做这件事 您可以使用源代码生成控制流图(这是编译器中用于消除无法访问代码的常用技术) 不幸的是,我相信自Delphi6以来,Delphi的文档中还没有

我正在Delphi(2010)中搜索圈复杂度Api。我需要创建一个程序来分析源代码并报告所有类中所有方法的圈复杂度(就像SourceMonitor一样)。
我不能使用其他软件,我真的需要建立一个。

有人知道delphi 2010的API可以做到这一点吗?

您需要一个语言解析器,从中可以生成控制流图。然后需要使用公式计算CC

我知道没有一家图书馆会为你做这件事

您可以使用源代码生成控制流图(这是编译器中用于消除无法访问代码的常用技术)


不幸的是,我相信自Delphi6以来,Delphi的文档中还没有完整的语言形式定义(bnf语法)。(即使在那时,它也不是完全准确的)所以所有的第三方解析器都是在黑暗中拍摄的。

Afaik德尔福手册语法从来没有被使用过,只是供参考。FPC也没有语法,因为它使用递归下降解析器,这是习惯于使用Wirthian语言的。即使您手动描述Delphi(如FPC所做的),您也将永远不知道什么是未定义的行为(有效但巧合),以及意图是什么。我将看看Coco/R及其交叉引用示例。但是仍然存在语法缺失的问题。(特别是如果你瞄准最近的子集)等等——一个计算复杂度的库是可以的,但是一个做同样事情的程序不是吗?为什么这种区别如此重要?