Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Создание парсера... / 16 сообщений из 16, страница 1 из 1
03.08.2005, 12:14
    #33198758
Soldat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Помогите выделить функциональные блоки или структуру программы.
Цель: Программа-Парсер pas файлов.
Задача: Анализ всех встречающихся выражений и вынос строковых выражений содержащих русские буквы в Раздел Resourcestring.
Выражения должны собиратся в "жадном" режиме, т.е.
выражение вида
Код: plaintext
myVar:= 'Стандартное сообщение'#$D#$A'Сообщение вида xxx' + ' еще что-то' + IntToStr (myIVar);
Должна выделить весь кусок кроме IntToStr (myIVar), т.е. на выходе должно получится:
Код: plaintext
1.
2.
3.
Resourcestring
RessParam01:= 'Стандартное сообщение'#$D#$A'Сообщение вида xxx' + ' еще что-то';
...
myVar:=  RessParam01 + IntToStr (myIVar);
...
Рейтинг: 0 / 0
03.08.2005, 12:27
    #33198796
Paul Sacks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Вам надо что-то писать по типу ситаксического анализатора.
Мы такое когда-то писали на лабораторных по стекам...
...
Рейтинг: 0 / 0
03.08.2005, 12:30
    #33198808
Soldat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
А можно чуть по подробнее?
...
Рейтинг: 0 / 0
03.08.2005, 12:37
    #33198837
Paul Sacks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Это теория на многих листах. Поищите в интернете, уверен, имеются уже готовые решения.
...
Рейтинг: 0 / 0
03.08.2005, 12:43
    #33198856
Soldat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
:)
Я же не прошу пересказывать теорию...
Хотя может быть это было бы полезным
Я какраз и прошу дать мне "зацепки" ключевые слова и понятия для поиска необходимой информации в сети.
Извените за назойливость.
...
Рейтинг: 0 / 0
03.08.2005, 12:51
    #33198881
lou
lou
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Большие теоретические работы
Ахо А., Ульман Дж. Том 1. Теория синтаксического анализа, перевода и компиляции. Синтаксический анализ
Том 2. Теория синтаксического анализа, перевода и компиляции. Компиляция

На www.poiskknig.ru по ключевым словам "Ахо Ульман" выпадают ссылки на эти файлы

Успехов
...
Рейтинг: 0 / 0
03.08.2005, 13:11
    #33198950
Soldat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
...
Рейтинг: 0 / 0
03.08.2005, 16:46
    #33199827
MegaLamos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
еще про Lexx и Yacc можешь почитать (ну или про их клоны)
...
Рейтинг: 0 / 0
04.08.2005, 11:07
    #33201039
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Народ, вы что - озверели ?
Из-за такой задачки полноценный компилятор писать - это ж
ума лишиться нужно. Взять lex, его должно хватить. можно на Перле
или ПХП строковые выражения анализировать. Нам нужно :
1) выкинуть комменты
2) между ; и ; найти куски, где есть кавычки.
3) выбрать из такого куска наиболее длинные послед. вида
X + Y +...
4) сделать замену.
5) все !

Washington Irving
...
Рейтинг: 0 / 0
04.08.2005, 13:20
    #33201548
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
SoldatДолжна выделить весь кусок кроме IntToStr (myIVar),
А заодно написать мейл руководителю проекта, чтобы тот настучал по голове тому, кто засунул туда этот IntToStr вместо использования функции Format

Если хотите, возьмите http://softwarer.ru/Files/Colorer.rar . Потребуется только минимально дописать, чтобы он понимал "вкрапления" # и ^ символов.
...
Рейтинг: 0 / 0
04.08.2005, 18:45
    #33202570
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
видел статейку про синтаксические анализаторы на основе конечных автоматов. Вроде всё просто. На основании этой статьи написал свой синтаксический парсер sql-запросов.
_______________________________________________________
Господи, сколько ещё не сделано... А сколько ещё предстоит не сделать...!
...
Рейтинг: 0 / 0
04.08.2005, 19:17
    #33202639
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Лиман Артём
Читайте лучше классиков - в данном случае Книга дракона .
...
Рейтинг: 0 / 0
05.08.2005, 12:45
    #33203916
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
softwarer Лиман Артём
Читайте лучше классиков - в данном случае Книга дракона .

ну я ж компиляторы не пишу, да и автору топика думаю это не нужно..
...
Рейтинг: 0 / 0
05.08.2005, 16:31
    #33204665
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Лиман Артём
Нда. Просто нечего сказать.
...
Рейтинг: 0 / 0
05.08.2005, 16:48
    #33204715
rcryo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
Лиман Артёмнаписал свой синтаксический парсер sql-запросовнасколько хорошим получился парсер? разбирает ли запросы с union, вложенные подзапросы как поля и как таблицы?
...
Рейтинг: 0 / 0
05.08.2005, 17:03
    #33204769
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание парсера...
rcryo Лиман Артёмнаписал свой синтаксический парсер sql-запросовнасколько хорошим получился парсер? разбирает ли запросы с union, вложенные подзапросы как поля и как таблицы?

парсер мне нужен был простой, без полной поддержки 92.
умеет разбирать запросы типа
Код: plaintext
1.
2.
select a,b, c, 'bla bla', getdate(), func( d ) from table
where (f like '%zzz' and g < getdate()) or h =  1 
большего мне просто не нужно было. при желании конечно можно расширить.


softwarerНда. Просто нечего сказать.
не понял, я что, что то не так сказал?
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Создание парсера... / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]