Recursive Descent precedence parsing missing prefix expression
问题 I'm building a simple language parser, and having an issue with lower precedence prefix expressions. Here's an example grammar: E = E5 E5 = E4 'OR' E4 | E4 E4 = E3 'AND' E3 | E3 E3 = 'NOT' E3 | E2 E2 = E1 '==' E1 | E1 E1 = '(' E ')' | 'true' | 'false' However, this grammar doesn't work correctly for the NOT , if it's used as the RHS of a higher precedence infix operator, i.e.: true == NOT false This is due to the == operator requiring E1 on the RHS, which cannot be a NOT operation. I'm unsure