Multiple choice

A$\rightarrow$BCC $\rightarrow$ + B {print ('+'); }C|$\epsilon$ B$\rightarrow$ D* B {print ('*')i}|D D$\rightarrow$ (A)|id {print (id.value); } For an input '5 + 6*7' this translation scheme prints

  1. 5 + 6 *7

  2. 5 + *6 7

  3. 5 6 + 7*

  4. 5 6 7 *+

Reveal answer Fill a bubble to check yourself
D Correct answer
Explanation

Explanation                 = 5 + 6   7= id + id * id= D + D * D                                       print 5 6 7= D + D * B                                       print 5 6 7$\because B \rightarrow D * B, C \rightarrow \epsilon$=D + B C                 print 5 6 7* +                                   = B C                                    = A