Re: [問題] 有沒有人用過Yacc
※ 引述《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
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章