Keyon
@Keyon
fullstack developer

Как в yacc описать WHILE?

Пишу компилятор (Домашняя работа) на lex & yacc. В задании указано что итератор у меня должен быть такого вида:

repeat
|expression|
until |condition|

В yacc описываю следующие правила:
repeat_statement: REPEAT line UNTIL condition { не могу понять - как тут описать цикл? }
;

REPEAT и UNTIL - это токены.
line - это набор правил:
line: /* empty */
| comments line
| assigned line
| print line
| repeat_statement line
;
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
В чём заключается ваш вопрос?
Если в "не могу понять - как тут описать цикл", то в этом месте вам нужно создать узел AST (или какое у вас внутреннее представление структуры программы), описывающий цикл, ссылающийся на тело цикла (line, $2) и условие окончания (condition, $4).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы