注释提取器[关闭]

问题描述 投票:-1回答:3

我正在寻找用于C,C ++,Python或Node.js的命令行工具或库,它们可以从多种语言的源文件中仅提取注释。

例如,给定“ bob.c”:

int main(){ //Here is a comment
  int i=3;  /*Another comment*/
}

应返回以下内容:

Here is a comment
Another comment

可能包含行号。

这应该适用于“ bob.py”,“ bob.js”,“ bob.css”,“ bob.rb”,“ bob.asm”等。

此问题与this other one不同,因为我不仅对C样式的注释感兴趣,而且对其他样式的注释也感兴趣。

此外,我对正则表达式非常可疑“作为解决方案。注释式短语可以以深层混淆的方式放在引用的文本中;我还没有看到关于正则表达式的正则表达式解决方案。

python c++ parsing comments
3个回答
2
投票

您可以将正则表达式表与任何python,C ++,grep等一起使用,请注意,请记住,许多语言具有多种注释类型,并且某些注释类型(在某些语言中)可以是多行。行号可以轻松返回。

以python re库文档为起点。


1
投票

[OP要求将此内容发布为答案]

[如果要处理多种语言,则需要确定它们是否属于类别(类似C,带有C样式注释,带有COBOL和COBOL样式注释,...),并为每种语言建立一个词法分析器。如果这种词法分析器的详细信息可能很难理解,如果该语言有很多奇特的词法语法(PHP在这方面非常粗糙,请查看插值的字符串)。

[如果您要一个现成的,我们的源代码搜索引擎通过对您提供的代码库进行索引和索引来提供大规模搜索;它具有用于40多种语言和方言的词法分析器;要求它查找所有注释(或任何其他标记)并将它们全部作为搜索命中导出到命中日志文件是很简单的。 (打开日志后,此命令的字面意思是字母“ C” [用于注释]。)>

[[回答其他问题]。它同时具有GUI和命令行界面。


1
投票

在Ira Baxter的有用建议下,我通过搜索词法分析器来跟踪Pygments。

© www.soinside.com 2019 - 2024. All rights reserved.