Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Применим первое предложение несколько раз
E(2+3*(4-5)+6-7) -> T(2) + E(3*(4-5)+6-7) -> T(2) + T(3*(4-5)) + E(6-7) -> T(2) + T(3*(4-5)) + T(6) - T(7)
Что мешает применить первое правило ещё раз и получить?
T(2) + T(3*(4) - T(5)) + T(6) - T(7)
Для тех, кто первый раз сталкивается с разбором, это будет совсем неочевидно.
T('2') + E('3*(4-5)+6-7') ->
[E -> T - E]
T('2') + T('3*(4') - T('5)+6-7')
Формально правило применено верно.
ПС На каком основании вторую строку разбили по плюсу, а не минусу?
Еще раз про разбор выражений методом рекурсивного спуска