Multiple choice

Consider the translation scheme shown below. S $\rightarrow$T R R $\rightarrow$ + T {print('+');} R|$\epsilon$ T $\rightarrow$ num {print (num.val);} Here num is a token that represents an integer and num.val represents the corresponding integer value. For an input string '9 + 5 + 2', this translation scheme will print

  1. 9 + 5 + 2

  2. 9 5 + 2 +

  3. 9 5 2 + +

    • + 9 5 2
Reveal answer Fill a bubble to check yourself
D Correct answer
Explanation

$ S \rightarrow TR \\ R \rightarrow +\ T \{ print('+');\}R | \epsilon \\ T \rightarrow num\ \{print(num.val);\}) \\ Given\ string\ 9\ + 5\ + 2 \\ S \rightarrow TR \\ $

T + TR {print(+);} T + T + T {print(+);} 9 + T + T {print(9);} 9 + 5 + T {print(5);} 9 + 5 + 2 {print(2);}

So ++952 is printed