gpt4 book ai didi

bnf - 将 BNF 转换为 EBNF - 没有递归的括号?

转载 作者:行者123 更新时间:2023-12-04 06:14:29 25 4
gpt4 key购买 nike

我需要将以下语法转换为 EBNF:

<assign> -> <id> = <expr>
<id> -> A|B|C
<expr> -> <expr> + <expr>
|<expr> * <expr>
|<expr> * <expr>
|( <expr> )
|<id>

我目前取得的进展如下:
<assign> -> <id> = <expr>
<id> = (A | B | C)
<expr> -> <id> {(+ | * ) <expr>} | ‘(‘ <expr> ‘)’

如果使用EBNF,最好消除所有递归吗?甚至有没有办法只使用 <id> 来完成它在 <expr> ?

最佳答案

这个怎么样:

<assign> -> <id> = <expr>
<expr> -> <mul> {+ <mul>}
<mul> -> <term> {* <term>}
<term> -> ( <expr> ) | <id>
<id> -> A | B | C

没有左递归,和 *优先于 + ,但不超过 ( ... ) .

关于bnf - 将 BNF 转换为 EBNF - 没有递归的括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com