re2c使用小結(1)

2021-06-23 09:55:49 字數 865 閱讀 4145

re2c是乙個根據正規表示式子,生成對應c**的程式,類似於lex。

使用的時候,他的功能比python的正規表示式功能要弱一點,一次只能解析乙個定義的符號,而且對於解析  .* 這樣的表示式會產生越界錯誤。

使用時要非常小心。初步總結如下。

#include #include /*

* 定義符號

*/enum;

/* * 掃瞄

* 使用re2c:yyfill:enable = 0; 關閉越界檢查功能,**可以精簡

*/int scan(char *buf, int *length) else

[0-9a-fa-f]+

[.]

[^]

*/ }

}static char buf = "dvb:";

int yylex()

return 0;

}int main (int argc,char ** argv)

re2c -is dvb.re > dvb.out.c

或者re2c -i dvb.re > dvb.out.c

加上-s 系統會generate nested ifs for some switches.

執行結果

token:0,len:6,str:dvb://

token:1,len:3,str:888

token:2,len:1,str:.

token:1,len:2,str:12

token:2,len:1,str:.

token:1,len:3,str:12a

re2c使用小結(3)

之前兩篇學習文章,雖然可以滿足一些要求,但是對於十分複雜的正規表示式還是無能為力。比如現實當中某,url的格式定義如下 dvb 如何正確解析這樣的url,用上面兩種方法顯然不行。我這裡想到一種方法,二遍搜素。第一遍匹配正則,第二遍再做分解字串。這裡要用到goto語句。include include ...

Latex使用小結(1)

最近在用latex寫 排版格式,之前一直用word,大多數情況下用word處理常見格式的文件還是很方便的,但是當進行學術 寫作,依照 的指定格式並且加入規範的公式 圖表 參考文獻等的時候,latex要更加精準一些。初次使用,難免會遇到一些問題,在用latex完成一篇 的格式修改後,把遇到的一些小問題...

Spring使用小結2

之前做過不少spring想過知識點內容的摘錄,spring框架的特點 模組組成 優缺點 spring相關的bean管理想過知識點及依賴注入方式 今天說下近端時間中專案中遇到的相關印象比較深的知識點 1.spring事務管理 要在對應spring配置檔案中配置要應用aop切面事務管理的包或具體的類,一...