Если задана строка, содержащая только 0, 1, 2 и скобки, выведите дерево грамматики строки.
А 2требует 2 аргумента - один слева и один справа
А 1требует один аргумент - влево или вправо
A 0не требует никаких аргументов и является базовым случаем
Пара скобок считается одним аргументом, а содержимое скобок вычисляется отдельно от остальной части строки. Возможны вложенные скобки
Входная строка всегда будет полным деревом без выпадающих символов. Строка также будет иметь только одно правильное решение. Обратите внимание, что функции являются коммутативными, и любое расположение аргументов для 2будет приемлемым. Вам не придется обрабатывать ввод, который не соответствует этим требованиям.
Формат выходной грамматики будет в форме function(arguments)рекурсивно
Контрольные примеры
0 --> 0
01 --> 1(0)
020 --> 2(0,0)
101 --> 1(1(0))
0120 --> 2(1(0),0)
0120210 --> 2(1(0),2(0,1(0)))
01210 --> 2(1(0),1(0))
(020)210 --> 2(2(0,0),1(0))
((020)20)1 --> 1(2(0,2(0,0)))
0120210также не может быть проанализировано, 2[4](2[2](1[1](0[0]), 0[3]), 1[5](0[6]))где числа в скобках указывают положение в строке.
101тоже неоднозначно.
10201действительным вход?