![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Ну тогда понятно.
В данном случае, как видно, следует составить набор правил грамматики для оператора for. Шаблон оператора известен. Очевидно, он будет основным элементом грамматики. В шаблон помимо неизменных членов (терминальных символов) входят и те, которые могут быть записаны по-разному: - переменная цикла, - нижний предел цикла, - верхний предел цикла, - блок операторов, выполняемых в цикле. Причем последний в данном конкретном случае состоит из единственного оператора присваивания. Т.е. первая процедура должна найти элементы цикла for и проверить терминальные символы этой конструкции, а затем вызвать из себя блоки проверки корректности указанных выше 4-х частей. Те, в свою очередь, также могут вызывать блоки проверки своих составляющих, например, при проверке оператора присваивания может вызывать функции для проверки отдельно правой и отдельно левой части. |
![]() |
![]() |
![]() |
#12 | |
Пользователь
Регистрация: 26.04.2010
Сообщений: 39
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 26.04.2010
Сообщений: 39
|
![]()
ну а вот и сам результат:
<инстр>::= <перем>:=<выр>|for<инстр>to<выр>do< инстр>; <поле компонента>::=<перем>.<перем>|<пере м>.<перем>.<перем> <выр>::= <терм>+<терм>|<терм>-<терм> <терм>::= <перем>|(<выр>) |
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 26.04.2010
Сообщений: 39
|
![]() |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Компиляторы | miscreant | Помощь студентам | 2 | 21.08.2010 06:37 |
Hello world и компиляторы | Selmania | C++ Builder | 4 | 02.03.2010 17:41 |
язык Си и компиляторы | alex(21) | C++ Builder | 7 | 12.11.2009 17:23 |
Компиляторы | SunKnight | Софт | 3 | 25.01.2008 17:03 |