Re: [情報] C++大師認證
※ 引述《yoco315 (眠月)》之銘言:
: 「除了作業三以外,其他的要怎麼寫才會漂亮 XD」
: pa3:
想請問一下, pa4 pa5 (or pa6) 會用到 pa3 建出來的樹嗎 @@?
如果這棵樹以後用不到 我很想直接邊 parse 邊算...
請問這會讓以後的作業不好寫嗎?
: 讀入一行,把一行轉成 vector<token>
: 寫一個 recur-descent parser,parse_ctrlexpr(vector<token>)
: 傳回值是 shared_ptr<ctrlexpr_node>
: ctrlexpr_node 有個 virtual ctrlexpr_value evaluate() = 0;
: 每個繼承者實作自己的 evaluate(),最後印出 root value 就好了。
: 後面還沒寫,我也想知道 = =||
頁末防雷
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.46.41
推
05/25 20:22, , 1F
05/25 20:22, 1F
→
05/25 20:22, , 2F
05/25 20:22, 2F
推
05/25 20:26, , 3F
05/25 20:26, 3F
→
05/25 20:29, , 4F
05/25 20:29, 4F
→
05/25 20:29, , 5F
05/25 20:29, 5F
推
05/26 00:13, , 6F
05/26 00:13, 6F
推
05/26 00:51, , 7F
05/26 00:51, 7F
推
05/26 01:42, , 8F
05/26 01:42, 8F
→
05/26 01:43, , 9F
05/26 01:43, 9F
→
05/26 01:43, , 10F
05/26 01:43, 10F
推
05/26 02:38, , 11F
05/26 02:38, 11F
推
05/26 03:57, , 12F
05/26 03:57, 12F
感謝大家 終於順利的寫完了 (希望 7/7 前能完成 PA4, PA5 阿!)
後來發現論壇上也有人問這個問題XD 果然應該多用不同的關鍵字搜搜看
話說 LPH 大說的傳統方法該不會是那個轉後序然後求值的演算法吧XD
補充一下 最後我沒有建樹 而是直接邊 parse 邊算值
(想到建樹要寫那麼多 struct (跟, 為了方便, constructor) 就有點懶 orz)
當然這有些缺點 例如有些會 error 的 sub-expression 因為 short circuit 不會被
evaluate, 但是 type 仍然不能忽略(一個是 statics, 一個是 dynamics), 所以除了要
紀錄 type, 還要紀錄是不是 "error", NaN 之類.
最後我留下的介面是
Maybe<ControllingExpressionValue> controlling_expression(vector<Token> tokens);
這個 Maybe 跟 Boost.option 是一樣的東西 只不過 Haskell 裡面叫 Maybe
至於寫 Maybe 遇到不熟的問題被雷到又是另一件事了QQ
※ 編輯: suhorng 來自: 118.166.50.221 (05/27 23:25)
推
05/28 03:06, , 13F
05/28 03:06, 13F
→
05/28 14:02, , 14F
05/28 14:02, 14F
→
05/28 14:02, , 15F
05/28 14:02, 15F
推
05/28 14:06, , 16F
05/28 14:06, 16F
→
05/28 19:45, , 17F
05/28 19:45, 17F
推
05/28 21:52, , 18F
05/28 21:52, 18F
推
05/30 20:18, , 19F
05/30 20:18, 19F
→
05/30 20:19, , 20F
05/30 20:19, 20F
→
05/30 20:19, , 21F
05/30 20:19, 21F
討論串 (同標題文章)
本文引述了以下文章的的內容:
情報
2
2
完整討論串 (本文為第 27 之 29 篇):
情報
4
12
情報
5
18
情報
11
21
情報
3
9
情報
11
27
情報
0
1
情報
6
19
情報
7
24
情報
2
2
情報
3
5