Рубрики

ВОРОТА | GATE-CS-2003 | Вопрос 58

Рассмотрим схему перевода, показанную ниже

S → T R
R → + T {print ('+');} R | ε
T → num {print (num.val);} 

Здесь num — токен, представляющий целое число, а num.val — соответствующее целочисленное значение. Для входной строки '9 + 5 + 2' эта схема перевода выведет
(А) 9 + 5 + 2
(Б) 9 5 + 2 +
(С) 9 5 2 + +
(D) + + 9 5 2

Ответ: (Б)
Пояснение: Давайте создадим дерево разбора для 9 + 5 + 2 сверху вниз, слева от первого вывода.

Steps:
1) Exapnd S->TR
2) apply T->Num...
3) apply R -> +T...
4) appy T->Num...
5) apply R-> +T..
6) apply T-> Num..
7) apply R-> epsilon 

После печати через оператор печати в сформированном дереве разбора вы получите ответ 95 + 2 +
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2003 | Вопрос 58

0.00 (0%) 0 votes