0

谁能帮助我就如何解决以下问题提供一些建议?

问题的想法是扫描Foo.c文件以查找所有变量、它们出现的次数以及它们确实出现的行。

该实现可以是至少一种方法:

  1. 构建一个 bat 脚本并最终构建额外的 C 程序来解决问题。在 cmd 窗口中运行实现。

  2. 构建一个 ps1 脚本并最终构建额外的 C 程序来解决问题。在 PowerShell 窗口中运行实现。

4

3 回答 3

1

我认为,为了获得所有变量声明和使用,并且只有变量声明和使用,您将需要至少部分解析源文件并分析生成的抽象语法树。

那么,您的第一步是编写一个解析器或弄清楚如何利用现有的解析器。

于 2012-04-04T05:07:28.753 回答
0

如果您正在编写 C#,您可以使用ANTLR V3来解析您的源代码,因为存在“C”语法。

于 2012-04-04T09:06:58.027 回答
0

您当然可以尝试将其编写为 bat 脚本,但请相信我,我已经编写了近 200 个 bat 脚本,这太可怕了。cmd.exe 的 findstr 会是你的朋友,但在 bat 和 regex 之间,你会发疯的。Powershell 肯定会更好,但是最好的选择是真正的脚本语言,例如 perl、ruby 或 python。

幸运的是,无论如何,在您的情况下,C 中的所有 var 都是显式声明的,因此您可以扫描一次以查找所有 var 声明并创建它们的数组。然后,再次扫描以查找这些变量名称的实例。实例总数将为 total_times_seen -1,因为第一个是 var 声明。这当然假设它们只被声明一次......

于 2013-12-14T00:51:28.177 回答