作者yoco315 (眠月)
看板C_and_CPP
標題Re: [情報] C++大師認證
時間Mon Mar 4 20:42:39 2013
※ 引述《bs10 (b.s.1.0)》之銘言:
: 謝謝 yoco315 很熱心的建議,原文恕刪
: 我想問一下 implementation 的方式
: : → yoco315:我用 recur-dec parse,然後有 keep token,不然好難 @@ 03/02 14:48
: 看了你的推文,我也想試著用 recursive descent 方式來實現
: 可是做 lexer,用 recursive descent 是不是太 powerful 了
沒錯,其實用簡單的 regex 就可以完成,
不用到 recursive descent 這樣的方法。
但因為他沒有 regex 可以用,我那時想到兩條路,
一是自己打一個 regex,二是自己打一個 parser framework,
考慮到以後還要作 parser,所以選第二個方法,反正以後程式碼可復用。
但沒有 regex 可以用還真的蠻傷的 :( 有點小生氣
不過話說回來,既然這個 cppgm 的其中一部分是要實作 STL
所以遲早也要實作 regex,也許實作 regex 這條路才是正途 XD
: 如果有一個 string 長 10000 個字元,recursive descent 會有 10000 層 call
: 不曉得這有沒有關係?
: 現在電腦記憶體夠多,或許不用太擔心這個
: 還是說我誤會你的意思了:)
: 多想了一下,應該是可以稍微簡化,不必每讀一個字元都 call 一層
: 也許 yoco 版友已經這麼做了
沒有,我沒有這麼作 XD 我有 aware 到這個問題,但我沒去改,
因為我猜我的程式碼在 compiler 有開最佳化的狀況下,
這些動作會被 inline,unroll 成一連串的 if else,不需要真的 function call。
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 182.235.89.169
→ tinlans:搞不好他怕你用 regex 實作 regex 才故意不提供 03/04 22:02
→ yoco315:他會 review XD 這種偷吃步應該一下就被抓包了 03/04 23:30