![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
они заданы спецификацией языка, я их делала, но нормально они не работали, поэтому убрала и стала разбираться с for
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Как-то писал свой интерпретатор - для вложенных структур я использовал рекурсию (можно еще стек), но рекурсия желательней - она предполагает альтернативные ветви, что удобно, например для условий. Вы где-нибудь помните точки выходжа из цикла?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#13 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
использую рекрсия
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
А места выхода из циклов и условий?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#15 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
передала немного теперь for заработал
посмотрите вложение for работает только если он один, как правильно в моем варианте прикрутить вложения. Точнее проверку на правильное количество закрывающих цикл слов next? почти дописала, но в нем есть ошибки и не реализована возможность проверки ситуаций типа: Код:
Единственное, что ограничивает полет мысли программиста-компилятор
Последний раз редактировалось artemavd; 17.12.2010 в 07:40. |
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
У тебя же нет лимита на процесс трансляции? Создай отдельный проход - пробегись по проге и посчитай количество форов и некцтов. Можно чуть быстрей. Ты же в токены переводишь? Сразу заведи счетчик и как только распознала соответствующий токен фора - увеличивай счетчик, некцт - уменьшай. Первая несрастушка у тебя возникнет когда счетчик будет отрицательный - то есть когда поставлен лишний некцт. Далее после распознавания всей проги нужно еще раз посмотреть на счетчик - если он больше нуля, значит остались незакрытые фор...
Ну я по-крайней мере так делал. Аналогично считаются блоки begin-end. Судя по проекту это полная BDS, далеко не Паскаль ![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 17.12.2010 в 07:31. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Анализатор! | gallion | Помощь студентам | 2 | 19.05.2010 09:32 |
Анализатор текста | Xeon332 | Помощь студентам | 1 | 14.03.2010 17:24 |
Лексический анализатор С++ | EniOk | Помощь студентам | 1 | 06.12.2009 15:43 |
морфологический анализатор | Lavisa | Помощь студентам | 0 | 19.10.2009 23:11 |
Анализатор формул | KJIOyH | Помощь студентам | 1 | 05.11.2007 18:18 |