Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 17:30   #71
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Так пойдет?
Ок, и тоже придётся учитывать строки. Уже 2 прохода.
Arigato вне форума Ответить с цитированием
Старый 09.09.2009, 17:35   #72
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Может сначала надо подумать, какую версию компилятора будем использовать?
Лично у меня такая мысль : Использовать стары, добрый TPX. При запуске РУСпрограммы она запускает TPX и например сворачивает его (если не прячет вообще). При нажатии на кнопку RUN в РУСпрограмме она передает текст в TPX и запускает в нем компиляцию. Если TPX нашел ошибку - покажем её на экране всего мгновение, которого хватит, что-бы РУСпрограмма успела отсканировать её, распознать текст и номер строки. После сканинга сворачиваем TPX (прячем) и тыкаем пользователя в нужную строку в редакторе РУСпрограммы.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.09.2009, 17:38   #73
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Кстати, мы рассматриваем самый простейший случай - программа типа begin end.
А если там массивы, у нас же нет скобок []?
Если их заменить на \..\ ( http://programmersforum.ru/showpost....2&postcount=44 ) опять же, простая замена не катит.
Arigato вне форума Ответить с цитированием
Старый 09.09.2009, 17:42   #74
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Вот список того, что есть на русском:
ёЁ 1! 2" 3№ 4; 5% 6: 7? 8* 9( 0) -_ =+
йЙ цЦ уУ кК еЕ нН гГ шШ oO зЗ хХ ъЪ \/
фФ ыЫ вВ аА пП рР оО лЛ дД жЖ эЭ
яЯ чЧ сС мМ иИ тТ ьЬ бБ юЮ .,

Выбор небольшой.
____________________
Мысля! А что если "подвесить" нужные скобки, апострофы и проч. на клавиши F1-F12?
____________________

Сообщений: 666. Мрак. о_О
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 09.09.2009 в 17:45.
Alex Cones вне форума Ответить с цитированием
Старый 10.09.2009, 08:27   #75
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Лично я делал таким образом:
1. Читал построчно (а не входящий поток символов, как это принято в трансляторах).
2. Из строки читал по словно (а не по токенам).

Это немного медленней, но в разы упрощает задачу.
Итак получаем строку, обрабатываем ее (ну выкидываем лишние пробелы, и наооборот вставляем где надо, приводим к нужному регистру и прочие подготовительные операции).
Далее читаем первые два-три слова. Исходя из них уже ясно что перед нами - оператор, выражение, заголовок подпрограммы и пр.
Далее уже переводим в соответствии с правилами.
Как видите рассматриваемые Вами проблемы не возникают в принципе.

Еще одна примочка, улучшающая восприятие . Можно сделать большее количество сообщений об ошибках. Чтобы к примеру на одну ошибку приходилось 5-6 разных вариантов сообщения. Например:
1. Переменная не объявлена
2. Перед использованием переменной ее необходимо объявить в секции Переменные
3. Переменная не идентифицировано
4. Имя данной переменной не зарегистрировано в секции Переменные

Ну все остальное в том же духе. Это должно придать больше интеллектуальности, дать ощущение что перед тобой не просто кусочки кремния
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 10.09.2009 в 14:06.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
крестики нолики aesoem Общие вопросы Delphi 11 12.06.2011 11:32
Крестики нолики на C++ Alar Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 15.03.2010 16:09
крестики-нолики {PatRioT} Паскаль, Turbo Pascal, PascalABC.NET 4 14.05.2009 13:24
Крестики-нолики mish@ Общие вопросы Delphi 6 07.05.2009 11:01
Крестики нолики Gorbunov Общие вопросы C/C++ 5 22.01.2009 16:04