Здравствуйте, nzeemin, Вы писали:
N>Здравствуйте, Alexander Babaev, Вы писали:
N>LEX принимает на входе файл с описанием регулярных выражений. На выходе отдает код для разбора этих выражений конечным автоматом.
AB>>Возможен другой вариант, который и подводит непосредственно к автоматному методу работы. Те, кто более глубоко интересовался регулярными выражениями, скажут, что автоматы и регэкспы – это одно и то же. Да, любое регулярное выражение – это всего лишь короткая строковая запись автомата. Но обсуждение такого рода различий выходит далеко за рамки статьи.
N>Судя по этому абзацу, вы понимаете соотношение между автоматами и регэкспами. А стандартный, работающий уже десятилетиями инструмент — почему-то не используете. Почему?
Потому что я сам библиотекой делаю несколько иное. Я беру некоторые стандартные правила и "почти так же, как и в регулярном выражении" парсю строку. В регулярных выражениях мне очень не нравится сложность, возрастающая при увеличение регэкспа многократно.
Моя задача — не создать автомат или какую-то иную запись автомата. Я хотел этой библиотекой создать инструмент работы со строками. Такой, который, обладая большой скорость, не уступал бы регулярным выражениям в гибкости. А по настройке и простоте превосходил бы.
Сейчас появилась какая-то "китайская" утилита, которая позволяет создать регэксп при помощи текстового описания. Вот, это уже ближе к тому, что сделал я. Но у jFilter'а есть и более интересные достоинства вроде отсутствия необходимости перекомпилирования регулярного выражения при его изменении...