作者jasonlee1001 (Jason)
站内Linux
标题[问题] 移除 Verilog comments.
时间Wed Mar 4 15:11:51 2015
请问有没有人能写个 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) );
感谢大家的指导.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.204.87.187
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1425453114.A.785.html
1F:→ n3oanderson: sed 's/\(.*\)\s\/\/.*$/\1/g' 03/04 16:46
2F:→ n3oanderson: sed 's/\/\*.*\*\///g' 03/04 16:48
3F:→ bitlife: 不清楚verilog,用c语言为例,移除注解不能只靠正规式,因为 03/04 19:40
4F:→ bitlife: 字串中有可能有 //或/*或*/,另外就是可能有巢状注解之类, 03/04 19:40
5F:→ bitlife: 如果真要用正规式,要先确定上面说的情况不会发生 03/04 19:41
6F:→ bitlife: 漏了一个状况,就是/* */当中有包含//,而*/之後又有字 03/04 19:42
7F:→ bitlife: 前面的巢状注解是指 /* /* */ */ 这种状况 03/04 19:43
8F:→ carylorrk: 用 gcc -fpreprocessed -E? verilog 应该也可以XD 03/04 21:57
9F:推 johnjohnlin: 推楼上,两个注解应该一样 XD 03/04 22:40
10F:→ jasonlee1001: 实作时碰上问题蛮多的.多行注解时中间行无法判断.还 03/05 09:32
11F:→ jasonlee1001: 有同一行有两区块注解时也会误判把中间有用的误删. 03/05 09:33
12F:→ jasonlee1001: n3大大的那两条RE有办法删除部分,但会有漏网之鱼 03/05 09:39
13F:→ jasonlee1001: cary的方法也行得通,但副档名要改成.c,只是仍有漏网 03/05 09:52
14F:→ lc85301: 真好奇为什麽要把注解拿掉 03/05 11:56
15F:推 suyuan: 我也很好奇为什麽要把注解拿掉? 03/05 13:32
16F:→ jasonlee1001: 给自己看的当然不需要这样,懂? 03/05 14:42
17F:→ jasonlee1001: coding过程中会加一大堆注解提醒自己 但设计完成之 03/05 14:47
18F:→ jasonlee1001: 後你不得不开放给别人看的时候,有些想法你不一定希 03/05 14:48
19F:→ jasonlee1001: 望看的人知道,所以放到公共的地方希望是没有注解的. 03/05 14:49
20F:推 lc85301: 不懂,公开原始码就是公开自己的想法,留着注解也能更快 03/08 12:30
21F:→ lc85301: 让他们知道你想做什麽,何必多此一举拿掉注解? 03/08 12:30
22F:→ lc85301: 提醒自己同样也可以提醒读者 03/08 12:31
23F:→ bibo9901: 有人会在注解里写日记啊(认真) 03/08 22:26
24F:推 suyuan: 那样有必要「全部」拿掉吗? 03/10 00:34