The grammar
stmt → if expr then stmt else stmt | if expr then stmt
suffers from:
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: A. Ambiguity
Explanation
This is the dangling-else grammar: 'if E then if E then S else S' has two parse trees, so the grammar is ambiguous (it also needs left factoring for LL parsing).More Theory of Computation and Compilers questions
- The language of the following PDA would be: δ(q0, a, z0) = (q0, aaaz0) δ(q0, a, a) = (q0, aaaa) δ(q0, b, a) = (q1, λ) δ(q1, b, a) = (q1, λ)…
- For the given two machines over {a, b}, which of the following is correct? Machine 1: states A (start), B (final); A –a→ A, A –a→ B, B –b→…
- The number of tokens in the line ' for i in range (begin; end ; step) : ' is:
- In the pumping lemma for context-free languages, for a string uvwxy, what is the minimum length of vx together?
- Which of the following is an ε-free grammar?
- While processing a string, an LR parser reads the input