[問題] 移除 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