最近閑的蛋疼,遂把編輯器里面的詞法分析整整,發(fā)現(xiàn)這真是個(gè)累活啊,完全是重復(fù)性的勞動(dòng),
而且一不小心就出錯(cuò),一旦添加狀態(tài)的話,也得好好修改。遂萌生自動(dòng)化之的想法。
花了小半天重拾LEX的語法,用法,狀態(tài)標(biāo)記等等,寫了個(gè)小sample,確實(shí)不錯(cuò),擴(kuò)展性也強(qiáng),
幾分鐘就可以構(gòu)造出一個(gè)新的詞法分析出來,雖說效率比手寫的慢,不過一般的應(yīng)用足以
對付了,歡喜之。
正當(dāng)我打算做個(gè)wrapper的時(shí)候,這才發(fā)現(xiàn)LEX竟然不支持獲取當(dāng)前匹配的位置信息(匹配到的串在原串中所處的位置),
歐,賣疙瘩,不會(huì)吧。于是乎在yyinput里面設(shè)置個(gè)變量標(biāo)記一下,也不行,因?yàn)長EX會(huì)預(yù)讀。
額的神啊,不會(huì)吧。
LEX如此神通廣大居然無法獲取匹配位置, 各位看官,誰有好的Solution嗎?
posted on 2010-01-11 12:22
megax 閱讀(1775)
評(píng)論(14) 編輯 收藏 引用