对于 LL(1) 解析,我们如何使这个表达式语法明确?
语法与大多数 C 语言中使用的表达式非常相似。
注意: <> 中的字符串是非终结符,而大写中的字符串是终结符。
<expression> --> <arithmeticExpr> | <booleanExpr>
<arithmeticExpr> --> <arithmeticExpr> <op1> <term> | <term>
<term> --> <term> <op2> <factor>
<term> --> <factor>
<factor> --> BO <arithmeticExpr> BC
<factor> --> <var>
<op1> --> PLUS | MINUS
<op2> --> MUL | DIV
<booleanExpr> --> <booleanExpr> <logicalOp> <booleanExpr>
<booleanExpr> --> <arithmeticExpr> <relationalOp> <arithmeticExpr>
<booleanExpr> --> BO <booleanExpr> BC
<logicalOp> --> AND | OR
<relationalOp> --> LT | LE | GT | GE | EQ | NE
<var> --> ID <whichId> | NUM | RNUM
<whichId> --> SQBO ID SQBC | ε
PS:我在处理的 Stackoverflow 上找不到任何问题Boolean Expressions.