Re: [問題] 有沒有人用過Yacc

看板Programming作者 (Victor)時間18年前 (2007/02/02 18:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言: : ※ 引述《StubbornLin.bbs@ptt.cc (Victor)》之銘言: : 前者效率較好, : 後者效率較差, : lex/yacc 是屬於前者, : spirit 則兩者皆非, : 因為它本身就是合法的 C++ code, : 並不需要經過制式方法轉換, : 一些 overhead 也得以避免, : 這是它勝過 lex/yacc 的原因之一。 : > 以上,謝謝 我原本還在想= =" 可以用template和一堆有的沒有的機制 搞出一套編譯時期完成的parser 不用程式碼產生器那種怪怪的方式完成 更優雅、更有效地解決問題 才想說可以這樣做= =" 沒想到boost全包了 囧rz http://curl.haxx.se/rfc/rfc2396.txt 原本要花大約一天的時間去K規格寫出一個URI Parser 拿去花一天編譯和K boost的Docmuent果然值得 XDDDD 現在正規表示法可以用了 感覺超有快感的 XDDD boost好了 URI Parser也在一瞬間完成了 using namespace boost; using namespace std; regex expression("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?",regbase::normal|regbase::icase); string s="http://www.google.com.tw/search?q=stl+deque&ie=utf-8&oe=utf-8&rls=org.mozilla:zh-TW:official&client=firefox#abc"; deque<string> result; regex_split(std::back_inserter(result),s,expression); copy(result.begin(), result.end(), ostream_iterator<string>(cout,"\n")); 正規表示法萬歲 XDD 在沒有正規表示法可以用之前= =" 遇到處理文字的都會害怕 想到要跟一堆迴圈 char和其中生出來的bug奮戰 就全身無力,有了正規表示法可以省不少時間 XD -- VICTOR工作室 | PTT遊戲設計版隆重開幕! | 不管是新手老手,程式美工音樂企劃.... URL : http://www.kinmen.info/vic/ | 都歡迎來遊戲設計版參與討論 XD | 戰略高手> C/C++ | GameTopics> Visual Basic 6.0 | GameDesign -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.65.41
文章代碼(AID): #15mml0Q8 (Programming)
文章代碼(AID): #15mml0Q8 (Programming)