[问题] 移除 Verilog comments.

楼主: jasonlee1001 (Jason)   2015-03-04 15:11:51
请问有没有人能写个 sed 或是 awk 小程式
我需要移除 Verilog 里面的注解.
1. " // " 之后的文字都要移除,但同一行若前面有字则必须留下.
ex:
reg [7:0] mem; // this is memory
变成 reg [7:0] mem;
2. /* this is a comment */ 将这种注解移除,同一行内若有其他字则不可移除.
如:
a. reg [7:0] addr; /* this is address */
变成 reg [7:0] addr;
b. .addr(ADDR), /* xyzabc */ .data(DATA), .we(WE) );
变成 .addr(ADDR), .data(DATA), .we(WE) );
感谢大家的指导.
作者: n3oanderson (wake up ...)   2015-03-04 16:46:00
sed 's/\(.*\)\s\/\/.*$/\1/g'sed 's/\/\*.*\*\///g'
作者: bitlife (BIT一生)   2015-03-04 19:40:00
不清楚verilog,用c语言为例,移除注解不能只靠正规式,因为字串中有可能有 //或/*或*/,另外就是可能有巢状注解之类,如果真要用正规式,要先确定上面说的情况不会发生漏了一个状况,就是/* */当中有包含//,而*/之后又有字前面的巢状注解是指 /* /* */ */ 这种状况
作者: carylorrk (carylorrk)   2015-03-04 21:57:00
用 gcc -fpreprocessed -E? verilog 应该也可以XD
作者: johnjohnlin (嗯?)   2015-03-04 22:40:00
推楼上,两个注解应该一样 XD
楼主: jasonlee1001 (Jason)   2015-03-05 09:32:00
实作时碰上问题蛮多的.多行注解时中间行无法判断.还有同一行有两区块注解时也会误判把中间有用的误删.n3大大的那两条RE有办法删除部分,但会有漏网之鱼cary的方法也行得通,但副档名要改成.c,只是仍有漏网
作者: lc85301 (pomelocandy)   2015-03-05 11:56:00
真好奇为什么要把注解拿掉
作者: suyuan (硕源)   2015-03-05 13:32:00
我也很好奇为什么要把注解拿掉?
楼主: jasonlee1001 (Jason)   2015-03-05 14:42:00
给自己看的当然不需要这样,懂?coding过程中会加一大堆注解提醒自己 但设计完成之后你不得不开放给别人看的时候,有些想法你不一定希望看的人知道,所以放到公共的地方希望是没有注解的.
作者: lc85301 (pomelocandy)   2015-03-08 12:30:00
不懂,公开原始码就是公开自己的想法,留着注解也能更快让他们知道你想做什么,何必多此一举拿掉注解?提醒自己同样也可以提醒读者
作者: bibo9901 (function(){})()   2015-03-08 22:26:00
有人会在注解里写日记啊(认真)
作者: suyuan (硕源)   2015-03-10 00:34:00
那样有必要“全部”拿掉吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com