作者azureblaze (AzureBlaze)
看板C_and_CPP
標題Re: [情報] C++大師認證
時間Thu May 9 01:30:05 2013
剛剛完成PA6,以下心得
Code Generator應該是必要
尤其在不知道PA7會怎麼接下去的狀況
一開始主要的bug都出現在每個rule各個alternation的優先度上面
(本來是由上到下選澤地一個符合的alternation)
不過後來發現沒什麼優先度的問題,
把每個alternation都試過挑token數最多的就好了
Design notes說「大部分」都可以greedy
但是目前好像沒有碰到不能greedy的狀況
因為每個alternation都得試,所以用FIRST和FOLLOW
去砍child node也是必須做的事(除非耐心夠,寫的程式完美一次ok)
不過我只砍了FIRST,每個test case都還在1秒內
FOLLOW要自己從pa6.gram生成有點麻煩暫時懶得想
有空再試試( =沒空 )
標準6.8和8.2說的是當出現模糊的狀況時(兩邊的token一樣多),
永遠選擇declaration
不過我搞不太懂為什麼object-declaration > function-declaration就是了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.69.190
推 yoco315:= =|| 你的 parser generator 怎麼寫的這麼快 05/09 01:51
→ yoco315:我還在 pa4 作 function-like macro 的 semantic action 05/09 01:52
→ azureblaze:沒有快 只是無業遊民時間多XD 05/09 10:27
推 yoco315:偶也想要當無業遊民 xD 05/09 12:18
→ windows2k:太強了, 我還卡在PA4.. 05/09 12:25
→ windows2k:下班之後整個集中力就極速流失了 orz 05/09 12:27
推 LPH66:PA4 真的很卡...PA5 做起來都比 PA4 還順 ._. 05/09 21:36
→ azureblaze:PA4實做是還好,但是看懂到底要做什麼很難 05/09 22:09
→ yoco315:pa4 我想到了一個精妙絕輪的解法,可惜這邊空間太小我寫不 05/09 22:21
→ suhorng:然後三百年後會有人寫出來 05/09 22:24