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切面事務管理的包或具體的類,一...