網上很多例子,都是yacc和lex結合的。而我想找乙個單純使用 lex的例子。而且可以從我的主程式來呼叫它。
上程式:
第一步,編寫 flex 檔案:example.flex
從網上找到的,其功能是對行數和字元數計數。
1這裡,在flex檔案中,我沒有宣告main方法,即使宣告了,也會生成在 flex example.flex 後得到的 lex.yy.c 中。[root@cop01 tst]# cat example.flex2/*
name: example.flex
*/3 %option noyywrap
4 %7 %%
89 \n ++num_lines; ++num_chars;
10 . ++num_chars;
1112 %%
1314
int counter(char *stream,int *nlines,int *nchars)
1523 [root@cop01 tst]#
而我想要從我自己的程式裡,來呼叫,所以命名了這個counter函式。
要特別注意上面的 yy_scan_string函式呼叫,如果沒有對它的呼叫,yylex會從標準輸入來讀資訊流的。
第二步,編寫我的主程式:
1第三步,編寫標頭檔案:[root@cop01 tst]# cat test.c
2 #include 3 #include "
test.h"4
5int
main()
617 [root@cop01 tst]#
1最後,進行編譯和執行:[root@cop01 tst]# cat test.h
2int counter(char *stream,int *nlines,int *nchars);
3 [root@cop01 tst]#
1 [root@cop01 tst]# gcc -g -wall -c lex.yy.c結束!2 lex.yy.c:974
: warning: 『yyunput』 defined but not used
3 [root@cop01 tst]# gcc -g -wall -c test.c
4 [root@cop01 tst]# gcc -g -wall -o test test.o lex.yy.o
5 [root@cop01 tst]# ./test
6 lines counted: 2
7 chars counted: 15
8 [root@cop01 tst]#
自己寫了乙個巨NB的程式
抱歉,確實想吸引眼球 不過我想把inside sql storage engine和.net結合起來的,我應該能排世界前10名吧?如果哪位老大發現另有高人,請及時告訴我,謝謝!粘圖先,因為這是我在ip creation的過程中隨手搞的東西,花了兩天 還沒有完,欠缺幾點 1 rid的獲取。2 gdi ...
oracle 中使用 rownum 的乙個誤區
一 首先看乙個簡單的測試 1 建立乙個簡單的 test 表,裡面插入 1 9 條資料 2 按照 status 字段進行排序,得到的結果 3 使用 rownum 取前 5 條結果 二 測試中的兩個問題 1 上面第二步中,select 出來的結果,第 5 條記錄的 userid 不是 5,而是 9 原因...
Android乙個程式使用另乙個程式的資源
應用場景 程式a的乙個imageview使用程式b的資源。前提 知道程式b的包名。關鍵 如下 是可以呼叫其他程式的 context.context ignore security 是資源 兩個一起寫都可以 context othercontext getcontext createpackageco...