Re: [請益] 有 Compiler 達人嗎? Orz
※ 引述《itchy (Lucky we love you.)》之銘言:
: : → MOONRAKER:阿又不是一定會加在這種沒妨礙的地方
: : → MOONRAKER:有的地方會有影響,別的地方則否
: : → MOONRAKER:各有不同,你應該分項討論,這就是重點
: 感謝回應~
: 不過還是不太瞭耶 囧
: ε加在哪裡不都一樣嗎?
: e.g.
: E' --> E
: E --> E + T
: T --> T * F | ε
: F --> (E) | id
: 或
: E' --> E
: E --> E + T
: T --> T * F
: F --> (E) | id | ε
: 是我漏掉什麼地方嗎? @@"
以上你舉的第一個例子是沒什麼問題,但是第二個會發生錯誤。
為了讓你自己體會,我舉一個比較土的例子好了
以下的文法稱為"水果店"
<水果籃> → <水果> | <水果> + <水果籃>
<水果> → 葡萄 | 香蕉 | 西瓜 | 芭樂
你可以看得出來 < > 括住的是 nonterminals, 而沒有 < > 的就是 terminals.
然後我們考慮以下的"水果店*"文法:
<水果籃> → <水果> | <水果> + <水果籃>
<水果> → 葡萄 | 香蕉 | 西瓜 | 芭樂 | ε
然後現在我有一堆水果
芭樂 西瓜 葡萄 西瓜 香蕉
你把這堆水果用"水果店"和"水果店*" parse 一下,看看中間過程會有什麼差別。
--
BATCH 1 (4/20) - 如何隱身 - SPAM - 英國殺人笑話 - http://tinyurl.com/65vvbx
BATCH 2 (5/10) - 當眾脫褲 - 主教 - 傻蛋奧運會 - http://tinyurl.com/68grk7
BATCH 3 (6/14) - 買張床 - 切達大俠 - 伐木人之歌 - http://tinyurl.com/3zpyx5
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
■ 蒙帝派松正體中文計畫 ■ Spam-a-lot and enjoy the pythonesque delight!
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.199.251
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):