[問題] 移除 Verilog comments.

看板Linux作者 (Jason)時間9年前 (2015/03/04 15:11), 編輯推噓4(4020)
留言24則, 8人參與, 最新討論串1/1
請問有沒有人能寫個 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://www.ptt.cc/bbs/Linux/M.1425453114.A.785.html

03/04 16:46, , 1F
sed 's/\(.*\)\s\/\/.*$/\1/g'
03/04 16:46, 1F

03/04 16:48, , 2F
sed 's/\/\*.*\*\///g'
03/04 16:48, 2F

03/04 19:40, , 3F
不清楚verilog,用c語言為例,移除註解不能只靠正規式,因為
03/04 19:40, 3F

03/04 19:40, , 4F
字串中有可能有 //或/*或*/,另外就是可能有巢狀註解之類,
03/04 19:40, 4F

03/04 19:41, , 5F
如果真要用正規式,要先確定上面說的情況不會發生
03/04 19:41, 5F

03/04 19:42, , 6F
漏了一個狀況,就是/* */當中有包含//,而*/之後又有字
03/04 19:42, 6F

03/04 19:43, , 7F
前面的巢狀註解是指 /* /* */ */ 這種狀況
03/04 19:43, 7F

03/04 21:57, , 8F
用 gcc -fpreprocessed -E? verilog 應該也可以XD
03/04 21:57, 8F

03/04 22:40, , 9F
推樓上,兩個註解應該一樣 XD
03/04 22:40, 9F

03/05 09:32, , 10F
實作時碰上問題蠻多的.多行註解時中間行無法判斷.還
03/05 09:32, 10F

03/05 09:33, , 11F
有同一行有兩區塊註解時也會誤判把中間有用的誤刪.
03/05 09:33, 11F

03/05 09:39, , 12F
n3大大的那兩條RE有辦法刪除部分,但會有漏網之魚
03/05 09:39, 12F

03/05 09:52, , 13F
cary的方法也行得通,但副檔名要改成.c,只是仍有漏網
03/05 09:52, 13F

03/05 11:56, , 14F
真好奇為什麼要把註解拿掉
03/05 11:56, 14F

03/05 13:32, , 15F
我也很好奇為什麼要把註解拿掉?
03/05 13:32, 15F

03/05 14:42, , 16F
給自己看的當然不需要這樣,懂?
03/05 14:42, 16F

03/05 14:47, , 17F
coding過程中會加一大堆註解提醒自己 但設計完成之
03/05 14:47, 17F

03/05 14:48, , 18F
後你不得不開放給別人看的時候,有些想法你不一定希
03/05 14:48, 18F

03/05 14:49, , 19F
望看的人知道,所以放到公共的地方希望是沒有註解的.
03/05 14:49, 19F

03/08 12:30, , 20F
不懂,公開原始碼就是公開自己的想法,留著註解也能更快
03/08 12:30, 20F

03/08 12:30, , 21F
讓他們知道你想做什麼,何必多此一舉拿掉註解?
03/08 12:30, 21F

03/08 12:31, , 22F
提醒自己同樣也可以提醒讀者
03/08 12:31, 22F

03/08 22:26, , 23F
有人會在註解裡寫日記啊(認真)
03/08 22:26, 23F

03/10 00:34, , 24F
那樣有必要「全部」拿掉嗎?
03/10 00:34, 24F
文章代碼(AID): #1Kzh0wU5 (Linux)