как минимум 2 возможные структуры дерева для выражений, т.к. синтаксис является двусмысленны. Залип на выражении IF a THEN IF b THEN A ELSE B. Не то, чтобы 2 структуры не получается вывести, но даже одной. Если я начинаю идти от conditionalStatement, то получается, что IF a THEN IF b THEN A - это ifStatement. Дальше должно получаться, что IF b THEN A - это unconditionalStatement, но как-то не похоже это ни на basicStatement, ни на forStatement, ни на compoundStatement. Все подобное происходит, если мы начинаем выводить выражение, начиная с BooleanExpression или arithmeticExpression.
Я чего-то не понимаю, или тут где-то в книге ошибка?
Есть два выражения IF ... THEN ... ELSE ... IF ... THEN ... И надо написать два дерева - когда у первого приоритет больше и когда у второго
Возможно if-без-else просто забыли
Вроде как написан if-без-else как ifStatement. Просто, у меня подстановки не получаются. Что IF b THEN A ELSE B, что IF b THEN A не подходят под unconditionalStatement
При чём здесь unconditionalStatement?
Не знаю, может я что-то не так делаю. Логика следующая была: я ищу куски выражений в описании синтаксиса для выражения IF a THEN IF b THEN A ELSE B. IF и THEN есть в ifStatement, ELSE в conditionalStatement. Все 3 части есть в BooleanExpression и arithmeticExpression Соответственно, я могу выбрать, что будет корнем дерева в данном случае, и через замены попытаться выстроить дерево. Ок, беру сначала conditionalStatement как корень. Получается, что IF a THEN IF b THEN A - это ifStatement, а B - statement. Смотрю, что будет с этим ifStatement. У него выходит, что a - это BooleanExpression, а IF b THEN A - unconditionalStatement. Это первый вариант, как я до него дошел. Если брать ifStatement как корень. a - BooleanExpression, IF b THEN A ELSE B - unconditionalStatement. Опять я дошел до него. Что в первом случае, что во втором, выражение под unconditionalStatement не подходит, и что делать я не знаю. Я что-то не так тут сделал и чего-то недопонимаю?
Там два варианта 1) IF a THEN (IF b THEN A ELSE B) 2) IF a THEN (IF b THEN A) ELSE B
По идее да, но через синтаксические уравнения я это вывести не могу.
А раз не могу выразить, то и не могу ответить на поставленную задачу: "Предложите альтернативный однозначный синтаксис".
IF a THEN b ELSE c END
Обсуждают сегодня