Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Вниз

Есть идея - универсальный парсер   Найти похожие ветки 

 
Igorek   (2003-10-10 12:39) [0]

Как вы считаете есть ли смысл писать подобное? Может уже есть написано.

Детали:
Для работы парсер берет необходимую формальную грамматику в соотв. формате из файла. Потом перелопачивает исходник и на выходе дает представление в виде дерева обьектов - лексем.

Фичи:
- поддержка разных форматов представления грамматик через плагины; естественно будет некий универсальный формат - надо просто будет писать конвертаторы;
- соотв. неограниченное колличество грамматик для разных языков;
- куча событий для действий юзера в определенные моменты процесса разбора (например трансляция);

Оформить можно как компонент. Опиши грамматику и пользуйся на здоровье! Задачи парсинга возникают часто - вот и был бы универсальный инструмент. Нюанс правда еще в производительности. Код в котором зашыты возможные лексемы и прямо обработанны возможные ситуации будет конечно быстрее. В данном парсере такой код как бы развертывается в памяти в виде графа в ходе анализа грамматики.
И еще вопрос - как с помощью его же пропарсить грамматику? Ведь что бы ее пропарсить надо иметь ее формат (тоже в виде грамматики). Потом формат формата и т.д. Есть подозрение что в конце концов возможно выйти на некую элементарную грамматику, которую можно легко и просто зашить в сам код. ;-)

Что думаете?


 
Юрий Федоров   (2003-10-10 12:44) [1]

Уже есть готовое


 
Igorek   (2003-10-10 12:45) [2]

2 Юрий Федоров © (10.10.03 12:44) [1]

Блин, где?


 
N169   (2003-10-10 12:53) [3]

Идея GOLD Parser-а в чистом виде.
http://www.devincook.com/goldparser/


 
Radionov Alexey   (2003-10-10 12:55) [4]

На базе GNU что-то умное и красивое написано. Но, блин, забыл как звать :)


 
pasha_golub   (2003-10-10 12:57) [5]

XML :-)


 
Ihor Osov'yak   (2003-10-10 12:58) [6]

Писать смысла нет. Хотя бы потому, что есть xml. Стандарт де-факто.


 
Igor_thief   (2003-10-10 13:07) [7]

Хм...


 
Ketmar   (2003-10-10 13:17) [8]

есть, есть. и не один. я штук 5-6 встречал чисто члучайно, сёрфая. адресов не скажу, ибо не люблю универсальные инструменты. мне всегда было проще сделать своё, "заточеное" под конкретную задачу.


 
Igorek   (2003-10-10 13:22) [9]

Так что, на данном этапе все задачи парсинга свелись уже только к написанию граматики и юзания соотв. софта?
А компонент такой есть?


 
Ihor Osov'yak   (2003-10-10 13:31) [10]

2 [8] Ketmar (10.10.03 13:17)

Вообще-то сначала нужно было определить термин "смысл".. Есть подозрение, что в [6] и [8] они разные. И еще есть подозрение, что в [0] о значении этого понятия не задумывались :-)


 
Delirium   (2003-10-10 13:33) [11]

Я в UBPFD некоторое время назад код кинул - парсер именно универсальный, но так-как рекурсивный, то не особо быстрый на больших объёмах.


 
Igorek   (2003-10-10 13:40) [12]

Ну хорошо. Возьмем конкретную задачу. Пусть у нас есть стока определенного формата. Скажем Имя:Фамилия:Отчество.
Как мне пропарсить строку и получить значения полей, не написав ни строчки кода по анализу содержимого строки? Что использовать?


 
Romkin   (2003-10-10 13:41) [13]

А XML чем плохо? ТАм много всего :)))


 
Ketmar   (2003-10-10 13:41) [14]

>Ihor Osov"yak © (10.10.03 13:31) [10]
упс. "есть" в моём посте расшифровавается как "есть уже такие парзеры" %-))


 
Nikky   (2003-10-10 14:00) [15]

не имеет смысла, хотя бы потому что эти, как вы выражаетесь "плугины", должны будут быть сложности такого же порядка, что и сам, собственно, механизм. Нечего виртуализировать в данной задаче.


 
REA   (2003-10-10 14:05) [16]

А че парсить то? XML уже вроде изобрели как раз для этого.


 
nikkie   (2003-10-10 14:19) [17]

> [12] Igorek © (10.10.03 13:40)
regular expressions


 
Igorek   (2003-10-10 14:22) [18]


> nikkie © (10.10.03 14:19) [17]

А конкретнее?


 
nikkie   (2003-10-10 14:31) [19]

куда ж конкретнее? даже компонента есть :))

только формальные грамматики тут не причем. ты вообще знаешь, что это такое, или просто слово красивое понравилось?


 
Igorek   (2003-10-10 14:40) [20]


> nikkie © (10.10.03 14:31) [19]

Вот компоненту и назви. А о грамматиках я знаю. И не понаслышке.


 
nikkie   (2003-10-10 14:41) [21]

TRegExpr от Андрея Сорокина
http://anso.virtualave.net/


 
Igorek   (2003-10-10 14:46) [22]


> nikkie © (10.10.03 14:41) [21]

Спасибо. Разберемся.


 
Анонимщик   (2003-10-10 16:54) [23]

Хирня это все. Парсер всех парсеров - класс TParser в дельфи (модуль classes.pas)


 
han_malign   (2003-10-10 17:06) [24]

>Igorek ©
> необходимую формальную грамматику в соотв. формате из файла
- вот сначала познакомтесь, хотя бы, с термином "таблица предшествования", потом почитайте "Теорию трансляторов" - а уже потом выдвигайте "гениальные новаторские" идеи.

З.Ы. У нас на специальности, кто-то из студентов, каждый год делал такой "универсальный парсер", потому что в ручную курсовой по Теории Трансляторов ломало лепить.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.011 c
1-98621
The X
2003-10-15 18:29
2003.10.30
Лучший компонент определения системных параметров компьютера


14-98820
TY99
2003-10-12 11:19
2003.10.30
Поддержка DirectDraw...


14-98841
pasha_golub
2003-10-11 14:47
2003.10.30
Безопасность чата


1-98544
yaJohn
2003-10-20 14:46
2003.10.30
W2K + HKEY_LOCAL_MACHINE + PowerUser = грабли


4-98925
jonni
2003-08-25 16:09
2003.10.30
Подвинуть окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский