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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 16:03   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Объясняю еще раз. Берешь файл и закидываешь его в СтрингЛист к примеру. Это массив строк. Далее идешь циклом от нуля до StringList.Count-1 и обрабатываешь строки.
Итак, ты взял конкретную строку (допустим поместил в х).
Дальше твой парсер оценивает первое слово и делает соответствующие выводы - выражение, условие и т.д.
Если первое слово if значит условие. Раз условие то переходишь на функцию оценки условия
Если выражение то решаешь его.
Если секция вар, то либо принимаешь дальше переменные, либо ждешь наступления новой секции.

Так ясней? Да и строки перед работой нужно подготовить - чтобы был 1 пробел между лексемами и т.д. Сравнение делай нечувствительным к регистру (для начала, ты же Паскаль делаешь).
ЗЫ. Описание массива переменных это отражение мысли из поста #2.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 29.06.2010, 16:08   #12
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Utkin, вот уже яснее
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 29.06.2010, 19:45   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

zumm, а может Вам готовый парсер взять?!
Или весь смысл задачи как раз и состоит в том, чтобы сделать свой?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.06.2010, 19:46   #14
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Цитата:
Или весь смысл задачи как раз и состоит в том, чтобы сделать свой?..
Вы совершенно правы
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 30.06.2010, 06:41   #15
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я бы в условиях отсутствия знаний почитал бы что-нибудь (но аккуратней, обычно там много заумных слов и мало дела) или взял бы да и выпотрошил какой-нибудь код. Например, реализацию какого-нибудь Бейсика...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.06.2010, 08:26   #16
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Тема довольно сложная, и туторов нету.
VintProg вне форума Ответить с цитированием
Старый 30.06.2010, 08:45   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
и туторов нету.
Как это - "нету" ?!!
Это же основы построения компиляторов.
Для начала можно почитать курс на Интуит - Лексический анализ
ну и, конечно, "классика жанра":
Альфред Ахо, Рави Сети, Джеффри Ульман, Моника Лам - Компиляторы. Принципы, технологии, инструменты
(есть в Сети в эл.виде, найдётся легко, например, 2-е издание от 2008 г. на рутрекере )

и гуглить по словам:
лексический анализ программы
построение компиляторов
построение простого интерпретатора


p.s. А вот с тем, что тема непростая - я, разумеется, соглашусь...

Последний раз редактировалось Serge_Bliznykov; 30.06.2010 в 08:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2010, 09:00   #18
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Это же основы построения компиляторов.
Для начала можно почитать курс на Интуит - Лексический анализ
ну и, конечно, "классика жанра":
Альфред Ахо, Рави Сети, Джеффри Ульман, Моника Лам - Компиляторы. Принципы, технологии, инструменты
(есть в Сети в эл.виде, найдётся легко, например, 2-е издание от 2008 г. на рутрекере )

и гуглить по словам:
лексический анализ программы
построение компиляторов
построение простого интерпретатора
Вот поэтому я его и предупреждал:
Цитата:
(но аккуратней, обычно там много заумных слов и мало дела)
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.06.2010, 09:29   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
(но аккуратней, обычно там много заумных слов и мало дела)
иногда без "заумных" слов трудно обойтись...

в ссылках гугла (указанных мной выше) есть примеры реализации простого интерпретатора языка. Например, построение простого интерпретатора (правда, там пример реализации на C и за основы интерпертируемого языка взят SMALL BASIC, но для понимания принципов, как это сделать и как это работает - вполне сгодится)!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2010, 09:34   #20
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
(правда, там пример реализации на C и за основы интерпертируемого языка взят SMALL BASIC, но для понимания принципов, как это сделать и как это работает - вполне сгодится)!
Это из книги Г. Шилдта Теория и практика С++ . Кстати, действительно хороший пример. Вообще рекомендую прочесть эту книгу, идеи заложенные там пригодятся и Паскалистам. Особенно хорошо там рассматривается разбор математических выражений.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли ускорить выполнение этого кода? Velross Помощь студентам 3 07.01.2010 19:37
Выполнение строки как кода в Delphi Asteroid Общие вопросы Delphi 11 21.09.2009 18:46
.htaccess запрет на выполнение кода wall66 PHP 3 11.08.2009 10:54
Выполнение кода из файла.. NSvirus Паскаль, Turbo Pascal, PascalABC.NET 25 14.06.2009 00:56
обновление в блоге - Быстрый парсер html кода на Delphi Pblog Обсуждение статей 0 09.08.2008 22:10