将源代码行中的文本关联到行 - 太脆弱了

时间:2012-07-26 21:31:26

标签: c++ c text

我需要将文本数据与源代码文件中的行相关联。像“这些行是创建Myclass对象”之类的东西 - >从20到32的行。

问题在于这种线跟踪非常脆弱:有人添加换行符就足以打破相关文本和行之间的对应关系。

我需要一个想法,让这个链接更强一些(不是太多,但至少抵制几行换班),非常欢迎建议。

3 个答案:

答案 0 :(得分:2)

一个简单的解决方案是散列(md5非常容易和可访问)这些行并沿着数据存储散列。

然后,您可以根据可能修改的文件检查哈希值。如果它匹配,那么很好,否则开始检查匹配的上一行/下一行。

答案 1 :(得分:2)

一种方法可能是获得源控制系统的帮助。例如,使用Git,您可以将文本数据与源代码的特定版本相关联。如果更改了源代码,则可以使用“diff”算法来发现添加或删除了哪些行。使用该增量信息,您可以更新注释行(例如,在文件顶部添加一行将导致您的20-32注释移动到21-33)。

答案 2 :(得分:2)

您是否尝试实施某种形式的自动文档系统?如果是这样,那么基于行号编号确实很脆弱。我建议使用某种标记将文本与代码的语义块相关联,这些代码在移动或更改时是健壮的。也许doxygen的某些内容可能正是您所寻找的。