将EBNF转换为BNF

Viv*_*ath 8 language-agnostic computer-science recursive-descent bnf ebnf

我的计算机语言课已经过了几年,所以我忘记了BNF和EBNF的细节,而且我旁边没有教科书.具体来说,我忘记了如何将EBNF转换为BNF.

从我记忆中的一点点,我知道其中一个要点就是转换{ term }<term> | <many-terms>.但我不记得其他规则.我试着在网上看一下,但是我只能找到关于家庭作业问题的链接,或者关于用花括号转换术语的小评论.我找不到定义翻译的详尽规则列表.

500*_*ror 20

请参阅以下链接,其中包含每个需要转换的生产的说明:

http://lampwww.epfl.ch/teaching/archive/compilation-ssc/2000/part4/parsing/node3.html

对于构建解析器(尤其是自下而上),BNF语法通常比EBNF更好.但是将EBNF语法转换为BNF很容易: