![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
Добрый вечер! Задали писать многопроходной транслятор. Я реализовала модуль ввода/выводы, обработку ошибки и сканнер(лексически анализатор).
В результате работа сканнера у меня создается 2 таблицы 1. таблица лексем программы Код:
Код:
Не могли бы вы описать как же его реализовать?
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]() Код:
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
это один из последних вариантов попробовать его. Но вот какой вопрос: встречаю лексему while допустим условие я каким нибудь образом обработаю, но вот как быть с тем, что этот оператор заканчивается wend? т.е. обработала условие и поидее нужно еще раз запускать sin_analiz но если wend нет то ошибка должна выйти
по идее можно реализовать флагами, но как сделать поумному?
Единственное, что ограничивает полет мысли программиста-компилятор
Последний раз редактировалось artemavd; 17.12.2010 в 07:43. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я делаю так.
Ищу wend после while. но если встречаю еще while увеличиваю счетчик вложенности, если встречаю wend счетчик уменьшаю. Если счетчик равен нулю и встретился wend - считай цикл верен Если счетчик ушел в минуса или плюсы - ошибка, и так до конца кода.
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]() Код:
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]() Код:
Единственное, что ограничивает полет мысли программиста-компилятор
Последний раз редактировалось Stilet; 03.12.2010 в 09:33. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
вроде бы исправила, но хотела бы чтобы вы посмотрели код, может можно сделать, то что делаю более правильно
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
В следующем номере должна выйти моя статья где я описал свой парсер кода. Не знаю как ты но я лично бы переосмыслил стратегию... ибо твой пример, не знаю на что он рассчитан, но он по-моему чертовски сложен.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
находила в книге Свердлова ЯП и методы трансляции еще одну стратегию разбора, пробовала, но почему-то остановилась на этой. Может будет интересно или пригодится выкладываю то что пока наработала
продолжаю мучать с транслятором, окончательно запуталась и прошу помощи необходимо реализовать синтаксический анализатор, у меня он почти сделан, не работают операторы while и if, не работает вложение в циклы и еще ряд глюков. Прикрепляю полностью свой транслятор. Синтаксический анализатор в модуле kernel_2. Модуль kernel моя попытка переписать заново. Как раз этим и начала заниматься. Хотелось бы чтобы кто-нибудь помог
Единственное, что ограничивает полет мысли программиста-компилятор
Последний раз редактировалось artemavd; 17.12.2010 в 07:41. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Анализатор! | 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 |