Parsing 重写没有左递归且显示右优先级的语法的形式算法
是否有任何形式算法或步骤重写没有左递归且显示右优先级的语法。例如,中描述的用于消除左递归的简单算法 例如,给定以下算法:Parsing 重写没有左递归且显示右优先级的语法的形式算法,parsing,compiler-construction,ll,Parsing,Compiler Construction,Ll,是否有任何形式算法或步骤重写没有左递归且显示右优先级的语法。例如,中描述的用于消除左递归的简单算法 例如,给定以下算法: 1 <goal> ::= <expr>$ 2 <expr> ::= <expr><op><expr> 3 | num 4 | id 5 <op> ::= + 6 |- 7 |* 8 |/
1 <goal> ::= <expr>$
2 <expr> ::= <expr><op><expr>
3 | num
4 | id
5 <op> ::= +
6 |-
7 |*
8 |/
1::=$
2 ::=
3 | num
4 | id
5 ::= +
6 |-
7 |*
8 |/
所需输出应为:
1. <expr> ::= <term><expr'>
2. <expr'> ::= +<term><expr'>
3. | epsilon
4. | -<term><expr'>
5. <term> ::= <factor><term'>
6. <term'> ::= *<factor><term'>
7. | epsilon
8. | /<factor><term'>
1.:=:=+
5. ::= ::= *
这个假设的算法如何从您的输入中知道所需的运算符优先级是什么?哦。我忘了说。我们应该先定义一些优先级