首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于查找注释掉的VHDL代码的工具

用于查找注释掉的VHDL代码的工具
EN

Stack Overflow用户
提问于 2011-03-09 01:30:34
回答 2查看 774关注 0票数 5

This question提出了一个一般性问题。我特别问的是VHDL,因为问题的答案提到的工具是用于Java和PL/SQL的。它不需要完美,一些手动解释就可以了。我这样做是为了一个自动提交任务。

编辑3/9/11:@phillipe指出自动提交任务与手动解释不一致。我试图鼓励其他工程师摆脱代码,并看到他们做到了这一点。我猜悲观的工具更适合提交;如果它遗漏了一些代码,那就不是世界末日。或者我可以让它报告这样的行数,然后给我发邮件,而不是停止提交。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-10 00:10:45

到目前为止,我使用的是以下内容

代码语言:javascript
复制
egrep  "^\s*--.*[;,]$" *.vhd

即,查找可能包含空格的行,然后是文本,并以;或结尾。我发现注释中的逗号是正常的,但这两个字符是经常注释掉的代码,因为它们经常在VHDL行的末尾使用。

使用@Freddy Mallet在引用的关于关键字中建议的内容,我想出了这个。我尝试使用VHDL关键字,这些关键字在英语中并不常用。这往往对相同的代码工作得很好,但在诸如"process for ...“之类的注释上遇到了麻烦。您可能希望使用egrep -f并将regexp放在一个文件中。

代码语言:javascript
复制
  egrep "^\s*--.*([;,]$|\s(architecture|array|assert|begin|block|case|component|downto|elsif|entity|generate|generic|inout|library|null|package|port|range|records|select|signal|type|until)\s)" src/*.vhd    
票数 1
EN

Stack Overflow用户

发布于 2011-03-14 13:33:46

在我看来,理想的答案要求您应用一个解析器,该解析器可以识别每个评论的内容。如果语法错误率与注释的大小相比很小,那么您已经注释掉了代码。

为此,您需要一个愿意解析不完整代码片段的解析器。提供源代码到源代码转换的程序转换系统(如果您看到此结构,请将其替换为该结构)具有此内置机制;它们必须解析包含源代码到源代码转换的代码模式,这些代码模式通常是语言句子形式。

我们的DMS Software Reengineering Toolkit就有这个属性。与DMS通常一样,它必须配置为解析VHDL (或Verilog) (这很容易,DMS有完整的VHDL、Verilog和SystemVerilog前端),扫描解析树,找到附加的注释(DMS在解析时捕获注释),然后尝试使用DMS内置的“模式解析器”解析注释。需要一些记账来统计语法错误。所以这是可能的。

我觉得这不值得你费这个周折。如果一个人不介意进行额外的代码审查,那么您的regexp hueristic可能会非常好,尤其是在有一个人支持的情况下。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5236081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档