作者MOONRAKER (㊣乌笨秃,又笨又秃)
看板Programming
标题Re: [请益] 有 Compiler 达人吗? Orz
时间Fri Jun 27 23:14:39 2008
※ 引述《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