Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.025 c
3-98446
Марат
2003-10-10 14:53
2003.10.30
SQL result


3-98472
rosl
2003-10-09 06:24
2003.10.30
поиск с помощью sql


3-98470
Dim!S
2003-10-10 08:06
2003.10.30
Колонка в DBGrid


1-98685
Term
2003-10-21 12:04
2003.10.30
Как определить имя компьютера?


1-98625
Tolik
2003-10-17 14:59
2003.10.30
Модальное окно