我正在尝试在我的语法中添加两件事:
一元减号,即“-”,和
括号
这是到目前为止我的语法:
<comp> ::= <expr> | <comp> <op0> <expr>
<expr> ::= <term> | <expr> <op1> <term>
<term> ::= <darg> | <term> <op2> <darg>
<darg> ::= <digit> | <darg> <digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<op0> ::= > | < | =< | => | =
<op1> ::= + | -
<op2> ::= * | /
我已经尝试了一切,但无法解决这个问题。如何使一元减号处于最高优先级,然后是括号,然后是所描述的其余运算符?
最佳答案
更改<term>
使用<fred>
而不是<darg>
并定义
<fred> ::= -<fred> | (<comp>) | <darg>
关于parsing - 如何在简单语法中添加括号作为最高优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554752/