Re: [情報] C++大師認證

看板C_and_CPP作者 (眠月)時間12年前 (2013/02/26 14:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/29 (看更多)
換我來問問題了 XD 正在 parse pp-number,但是文法上有點小問題 根據他給的文法,pp-number 的定義是: pp-number: digit '.' digit pp-number digit pp-number identifer-nondigit pp-number 'e' sign pp-number 'E' sign pp-number '.' 我直觀的看後面五個, 看起來就是 pp-number 後面可以無限制的接這五種東西一直長下去, 所以是不是等價於這個 regex ([0-9.] | [eE][+-] | identifier-nondigit)* 然後前面的開頭可以是 digit'.' digit 前面那兩個可以寫成 \.?[0-9] 整個就是 \.?[0-9]([0-9.] | [eE][+-] | identifier-nondigit)* 好,我的問題來了, 根據他範例給的一個 1.0e2 這東西完全無法被他給的規則 parse 阿! 我本來懷疑是他寫錯,然後去查規格,發現他這邊寫的跟規格一模一樣, 但是規格書下面還有註解: Preprocessing number tokens lexically include all integral literal tokens (2.14.2) and all floating literal tokens (2.14.4). 然後我就去查 literal token 跟 floating literal token 的文法 發現跟 pp-number 完全是兩回事嘛 XD 好奇怪,怎麼辦,那我這邊到底要怎麼 parse? 照標準寫的 pp-number 肯定不對阿 @@ -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.235.89.169
文章代碼(AID): #1HBCUQbT (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
情報
1
10
完整討論串 (本文為第 7 之 29 篇):
情報
4
12
情報
5
18
情報
11
21
情報
3
9
情報
11
27
情報
0
1
情報
6
19
情報
7
24
情報
2
2
文章代碼(AID): #1HBCUQbT (C_and_CPP)