看板 Linux 關於我們 聯絡資訊
請問有沒有人能寫個 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
n3oanderson: sed 's/\(.*\)\s\/\/.*$/\1/g' 03/04 16:46
n3oanderson: sed 's/\/\*.*\*\///g' 03/04 16:48
bitlife: 不清楚verilog,用c語言為例,移除註解不能只靠正規式,因為 03/04 19:40
bitlife: 字串中有可能有 //或/*或*/,另外就是可能有巢狀註解之類, 03/04 19:40
bitlife: 如果真要用正規式,要先確定上面說的情況不會發生 03/04 19:41
bitlife: 漏了一個狀況,就是/* */當中有包含//,而*/之後又有字 03/04 19:42
bitlife: 前面的巢狀註解是指 /* /* */ */ 這種狀況 03/04 19:43
carylorrk: 用 gcc -fpreprocessed -E? verilog 應該也可以XD 03/04 21:57
johnjohnlin: 推樓上,兩個註解應該一樣 XD 03/04 22:40
jasonlee1001: 實作時碰上問題蠻多的.多行註解時中間行無法判斷.還 03/05 09:32
jasonlee1001: 有同一行有兩區塊註解時也會誤判把中間有用的誤刪. 03/05 09:33
jasonlee1001: n3大大的那兩條RE有辦法刪除部分,但會有漏網之魚 03/05 09:39
jasonlee1001: cary的方法也行得通,但副檔名要改成.c,只是仍有漏網 03/05 09:52
lc85301: 真好奇為什麼要把註解拿掉 03/05 11:56
suyuan: 我也很好奇為什麼要把註解拿掉? 03/05 13:32
jasonlee1001: 給自己看的當然不需要這樣,懂? 03/05 14:42
jasonlee1001: coding過程中會加一大堆註解提醒自己 但設計完成之 03/05 14:47
jasonlee1001: 後你不得不開放給別人看的時候,有些想法你不一定希 03/05 14:48
jasonlee1001: 望看的人知道,所以放到公共的地方希望是沒有註解的. 03/05 14:49
lc85301: 不懂,公開原始碼就是公開自己的想法,留著註解也能更快 03/08 12:30
lc85301: 讓他們知道你想做什麼,何必多此一舉拿掉註解? 03/08 12:30
lc85301: 提醒自己同樣也可以提醒讀者 03/08 12:31
bibo9901: 有人會在註解裡寫日記啊(認真) 03/08 22:26
suyuan: 那樣有必要「全部」拿掉嗎? 03/10 00:34