青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

loop_in_codes

低調做技術__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

簡要實現正則表達式匹配字符串

之所以說是“簡要實現”一方面是因為算法不算高深,算法的實現也不精致,甚至連我對其的理解也不夠本質。

我只不過不想在工作若干年后還是一個只會打字的程序員。學點什么東西,真正精通點什么東西才對得起喜歡

技術的自己。

 

附件中的代碼粗略實現了《編譯原理》龍書中的幾個算法。包括解析正則表達式,建立NFA,然后用NFA去匹

配目標字符串;或者從NFA建立DFA,然后匹配。解析正則表達式我用了比較繁瑣的方法,有詞法和語法分析

過程。詞法分析階段將字符和一些操作符整理出來,語法分析階段在建立語法樹的過程中對應地建立NFA。

當然,因為語法樹在這里并沒有用處,所以并沒有真正地建立。

 

從正則表達式到NFA比較簡單,很多編譯原理書里都提到過,如:s|t表達式對應于下面的NFA:

1

代碼中用如下的結構描述狀態和狀態機中的轉換:

#define E_TOK (0)

/* transition */
struct tran
{
    char c;
    struct state *dest;
    struct tran *next;
};

struct state
{
    /* a list of transitions */
    struct tran *trans;
    /* inc when be linked */
    int ref;
};

即,每一個狀態都有一個轉換列表,每個轉換都有一個目標狀態(即該轉換指向的狀態)以及轉換字符。

貌似通過以上方法建立出來的狀態機每個狀態最多只會有2個轉換?

 

建立好NFA后,由NFA匹配目標字符串使用了一種構造子集法(《編譯原理》3.7.2節):

2

這個算法里針對NFA的幾個操作,如e-closure、move等在由NFA轉換DFA時也被用到,因此代碼里單獨

做了封裝(state_oper.c)。這個算法本質上貌似就是一次步進(step)多個狀態。

 

至于由NFA轉DFA,則是相對簡單的子集構造法:

3

在我以前編譯原理課考試的前一天晚上(你懂的)我就對這些算法頗為疑惑。在以后看各種編譯

原理教材時,我始終不懂NFA是怎么轉到DFA的。就算懂了操作步驟(我大學同學曾告訴我這些步驟,雖然

不知道為什么要那樣做),一段時間后依然搞忘。很喜歡《編譯原理》龍書里對這個算法最本質的說明:

 

4

 

源代碼我是用GCC手工編譯的,連makefile也沒有。三個test_XXX.c文件分別測試幾個模塊。test_match.c

基本依賴除掉test外所有c文件,全部鏈接在一塊即可。當然,就經驗而言我知道是沒幾個人會去折騰我的這些

代碼的。這些在china的領導看來對工作有個鳥用的代碼讀起來我自己也覺得費力,何況,我還不倫不類地用了

不知道算哪個標準的c寫了這些。

 

你不是真想下載。對于這種代碼,有BUG是必然的,你也不用在此文若干個月后問我多少行是什么意思,因為

那個時候我也忘了:D。

posted on 2010-02-20 14:53 Kevin Lynx 閱讀(5871) 評論(4)  編輯 收藏 引用 所屬分類: 編譯原理

評論

# re: 簡要實現正則表達式匹配字符串 2010-02-20 19:25 feizai

還可繼續拓展
1、DFA最小化
2、DFA嵌入action,仿Ragel
3、CFG的GA自動機
4、LR(0)->LR(1)->LALR(1)分析器
5、拓展語義action的潛入地方,
6、完全自己的lex和yacc  回復  更多評論   

# re: 簡要實現正則表達式匹配字符串[未登錄] 2010-02-20 19:34 kevin lynx

@feizai
是啊。  回復  更多評論   

# re: 簡要實現正則表達式匹配字符串 2010-02-21 02:19 aaa

http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-156.pdf  回復  更多評論   

# re: 簡要實現正則表達式匹配字符串 2010-02-24 21:19 陳梓瀚(vczh)

廣告:http://www.shnenglu.com/vczh/archive/2008/05/22/50763.html  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久看片| 欧美一区视频| 欧美日韩免费视频| 日韩亚洲在线| 一区二区av在线| 国产精品久久久久天堂| 亚洲在线视频观看| 午夜视频一区二区| 极品少妇一区二区三区| 亚洲第一天堂av| 欧美日韩亚洲一区在线观看| 在线亚洲自拍| 欧美怡红院视频| 亚洲激情黄色| 亚洲视频一区| 激情五月***国产精品| 亚洲国产高清高潮精品美女| 欧美日韩另类国产亚洲欧美一级| 亚洲一二三四久久| 欧美一区二区三区视频在线 | 99国产精品久久久久久久久久| 欧美伦理视频网站| 亚洲综合成人在线| 久久精品三级| 一本色道久久综合亚洲精品不卡 | 午夜宅男欧美| 亚洲电影免费观看高清完整版在线观看 | 在线不卡中文字幕播放| 亚洲国产高清在线| 国产女精品视频网站免费| 狂野欧美一区| 国产精品99一区| 老妇喷水一区二区三区| 欧美日韩欧美一区二区| 久久亚洲美女| 国产精品xnxxcom| 亚洲大片在线观看| 国产精品视频第一区| 欧美激情二区三区| 国产视频精品va久久久久久| 亚洲人成人一区二区三区| 国产免费亚洲高清| 日韩午夜三级在线| 亚洲国产精品高清久久久| 亚洲综合成人婷婷小说| 亚洲精品久久久久久下一站 | 欧美成人一区二区三区片免费| 亚洲综合导航| 欧美日韩国产专区| 欧美黄网免费在线观看| 激情五月婷婷综合| 亚洲欧美在线观看| 香蕉免费一区二区三区在线观看| 欧美激情国产日韩精品一区18| 麻豆久久婷婷| 精品成人在线| 久久高清免费观看| 久久精品亚洲| 国产日韩三区| 午夜视频在线观看一区| 欧美一级视频一区二区| 欧美午夜精品一区二区三区| 亚洲日本中文字幕免费在线不卡| 亚洲国产精品精华液网站| 久久久欧美一区二区| 久久久久高清| 伊人久久综合97精品| 久久精品2019中文字幕| 久久天天躁狠狠躁夜夜av| 黄色欧美成人| 久久午夜羞羞影院免费观看| 免费亚洲电影| 亚洲日本中文字幕区| 欧美激情影音先锋| 亚洲免费av片| 午夜欧美不卡精品aaaaa| 国产精品一区在线播放| 亚洲欧洲av一区二区| 久久精品官网| 亚洲国产精品99久久久久久久久| 久久日韩精品| 最新日韩中文字幕| 亚洲在线免费视频| 国产日产欧美一区| 毛片一区二区| 99视频一区二区| 欧美尤物巨大精品爽| 精品二区视频| 欧美激情精品久久久久久久变态| aⅴ色国产欧美| 久久精品欧美日韩| 亚洲精品国精品久久99热| 欧美日韩国产高清| 午夜国产精品视频| 亚洲成人在线网站| 亚洲欧美日韩在线综合| 精品不卡视频| 欧美日韩在线一区二区三区| 欧美一区国产一区| 亚洲国产老妈| 久久国产精品亚洲77777| 亚洲国产精品第一区二区| 欧美日韩国产在线看| 欧美在线视屏| 亚洲另类在线视频| 久久综合狠狠综合久久综青草 | 国产精品乱码| 免费在线亚洲| 午夜在线不卡| av不卡在线看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品五区| 欧美激情在线| 久久久久久久激情视频| 一区二区欧美国产| 欧美成人午夜| 久久精品国产77777蜜臀 | 国产亚洲精品一区二区| 农夫在线精品视频免费观看| 亚洲自拍电影| 99国产精品视频免费观看一公开| 老司机精品视频一区二区三区| 亚洲欧美另类国产| 一本色道久久88亚洲综合88| 一区二区三区在线观看欧美 | 久久影视三级福利片| 亚洲尤物在线| 一区二区国产日产| 亚洲狠狠丁香婷婷综合久久久| 久久久久久久久久久久久久一区 | 亚洲一级在线| 夜久久久久久| 亚洲精品一区二区三区不| 激情欧美日韩| 永久免费视频成人| 黄色国产精品| 1769国产精品| 在线观看国产精品网站| 狠狠综合久久| 一区二区在线免费观看| 国产一区二区三区久久| 国产偷久久久精品专区| 国产欧美精品国产国产专区| 国产精品美女黄网| 国产精品日韩在线播放| 国产精品国产三级国产普通话99| 欧美日韩国产小视频在线观看| 欧美激情综合五月色丁香小说| 嫩模写真一区二区三区三州| 久久人人超碰| 欧美激情视频一区二区三区不卡| 欧美成人精品在线| 欧美国产成人精品| 欧美激情一区二区三区高清视频| 欧美精品一区二区久久婷婷| 欧美国产视频在线| 欧美日韩在线一区二区三区| 欧美三区美女| 国产欧美一区二区精品秋霞影院| 国产精品一页| 精品91在线| 99精品欧美一区二区三区综合在线 | 欧美日韩亚洲一区二区三区在线观看 | 欧美激情二区三区| 欧美视频一区二区三区在线观看| 国产精品成人午夜| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产精品成人综合色在线婷婷| 亚洲国产精品ⅴa在线观看 | 欧美高清在线精品一区| 亚洲福利一区| 亚洲午夜av电影| 久久久久久午夜| 欧美日韩国产另类不卡| 国产人妖伪娘一区91| 亚洲国产日日夜夜| 亚洲欧美日韩精品| 欧美成人激情视频免费观看| 日韩网站在线看片你懂的| 性做久久久久久| 欧美激情一区在线观看| 国产女精品视频网站免费| 亚洲国产三级网| 亚洲欧美日韩国产一区二区三区 | 久久久www成人免费毛片麻豆| 欧美成人综合| 亚洲一区视频| 欧美成人免费播放| 国产亚洲成av人片在线观看桃| 亚洲国产日韩欧美一区二区三区| 亚洲午夜视频在线观看| 你懂的视频一区二区| 亚洲一区二区精品在线观看| 免费成人小视频| 国产一区二区av| 亚洲欧美国产一区二区三区| 欧美激情视频免费观看| 午夜精品久久久久影视| 欧美日韩国产电影| 亚洲国产aⅴ天堂久久|