Q. 18 Consider the following translation scheme.
S → ER R → *E{print(“*”);}R | ε E → F + E {print(“+”);} | F F → (S) | id {print(id.value);}
Here id is a token that represents an integer and id.value represents the corresponding integer value. For an input ‘2 * 3 + 4’, this translation scheme prints
(A) 2 * 3 + 4
(B) 2 * +3 4
(C) 2 3 * 4 +
(D) 2 3 4+*
Answer: (D)
Explanation: