Write a BNF description of the precedence and associativity rules defined for th
ID: 3766505 • Letter: W
Question
Write a BNF description of the precedence and associativity rules defined for the expressions
i) a * (b – 1) / c mod d
and
iii) a > b xor c or d <= 17 . Assume the only operands are the names a, b, c, d, and e. consedring the grammer
<expression> --> <expression> or <or_exp> | < expression > xor <or_exp> | <or_exp>
<or_exp> --> <or_exp> and <and_exp> | <and_exp>
< and_exp > --> <and_exp> = <expr> | <and_exp /= <expr> | <and_exp> < <expr> | <and_exp> <= <expr> | <and_exp> >= <expr> | <and_exp> > <expr> | <expr>
<expr> --> - <unary_expr> | <unary_expr>
<unary_expr> --> <unary_expr> + <term> | <unary_expr> - <term> | <unary_expr> & <term> | <unary_expr> mod < term> | <term>
< term > --> < term > * < factor > | < term > / < factor > | not < factor > | < factor >
< factor > --> ( < expr > ) | <operand>
<operand> --> a | b | c | d | e
Explanation / Answer
a*(b-1)/c mod d -->((a*(b-1)1)2/c)3mod d)4
a>b xor c or d<=17 -->(((a>b)1 xor c) 3 or(d<=17)2)4
Precedence: Highest *, /, not
+, -, &, mod
- (unary)
=, /=, <, <=, >=, >
and
Lowest or, xor
Associativity: Left to right
<expr> <expr> or <e1> | <expr> xor <e1> | <e1>
<e1> <e1> and <e2> | <e2>
<e2> <e2> = <e3> | <e2> /= <e3> | <e2> < <e3>
| <e2> <= <e3> | <e2> > <e3> | <e2> >= <e3> | <e3>
<e3> <e4>
<e4> <e4> + <e5> | <e4> – <e5> | <e4> & <e5> | <e4> mod <e5> | <e5>
<e5> <e5> * <e6> | <e5> / <e6> | not <e5> | <e6>
<e6> a | b | c | d | e | const | ( <expr> )
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.