[Haskell] Парсинг тэгов
От: Odissey_  
Дата: 03.12.07 17:54
Оценка:
Здравствуйте.
Пытаясь написать функциональный парсер (тему изучал по "Higher-Order Functions for Parsing∗" Graham Hutton), наткнулся вот на какую проблему:

Разбираемый текст состоит из обычного текста и текста обрамленного тэгами. Начльный и конечный тэг обычно имеют одинаковое "начертание" и тэги могут быть сколь угодно вложенными (но при этом вложенные тэги отличаются).
То есть, на примере, если мы имеем тэги "aa" и "bb", то корректным текстом считается — "taattbbttbbtttaat" и разбиратся как то так — [(Text "t"), (aa [(Text "tt"),(bb [(Text "tt")], (Text "ttt")]), (Text "t")]

data TagNode = Text* | Tag Text* TagNode Text* Tag

Подскажите пожалуйста, как (хотя бы общие принципы) лучше и проще реализовать парсинг пободного текста, с учетом того, что количество тэгов может быть расширено. Можно просто дать ссылки на простую реализацию подобного парсера (смотрел код hxml-0.2 но код довольно сложен для меня).

Прошу прощения, если вопрос показался довольно простым, — Haskell начал изучать сравнительно недавно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.