Comments 21
Похвальное начинание, но для того чтобы претендовать на практическую полезность, даже без покрытия тестами, нужно произвести и опубликовать сравнение по производительности с другими парсерами/конвертерами
+6
Интересней было бы увидеть аналогичный парсер для Markdown (с использованием FSM). Особенно в свете недавней инициативы по разработке общепринятой спецификации Markdown habrahabr.ru/post/235611/
Но как мне кажется, в случае с markdown без регулярок не обойтись, например для нахождения доп. параметров, так как не представляю какой будет размер матрицы для FSM чтобы учесть всё.
Но как мне кажется, в случае с markdown без регулярок не обойтись, например для нахождения доп. параметров, так как не представляю какой будет размер матрицы для FSM чтобы учесть всё.
+2
Для markdown Carsten из нашей команды недавно написал быстрый гибридный парсер: github.com/cebe/markdown
0
Пару лет назад обсуждалось на реддите. Может быть вам будет интересно. Там же реализация парсера на конечных автоматах, правда на си и за счет кодогенерации.
0
Хотелось бы увидеть бенчмарки с регулярками на тестовых данных с большим вложением тегов.
+4
Используйте константы. Через месяц вы уже и сами не вспомните что за магия чисел происходит
+10
Мне больше нравится либа XBBCode от наших узбекистанских друзей. Правда, по-моему сам изначальный разработчик то ли подзабил свой проект, то ли он на гитхабе под другим ником теперь… В общем самая развитая ветка на гитхабе вот эта: github.com/Gemorroj/xBBCode
Сам его слегка правил и улучшал (как ни странно мои правки тоже вошли в его код).
PS: эти парсеры удивительно похожи… Хм.
Сам его слегка правил и улучшал (как ни странно мои правки тоже вошли в его код).
PS: эти парсеры удивительно похожи… Хм.
+1
Я, конечно, не PHP-программист, но мне показалось что это и есть xBB.
0
Но нет, код совершенно другой.
0
Есть некие схожие признаки, но да, код другой. Представленный в статье однозначно не xBB
+1
Парсер на регулярках:
— Может некорректно обрабатывать BBCode;
Регулярка — это тот же конечный автомат, только описанный в компактной форме. Он может работать некорректно только в том случае, если вы написали некорректное регулярное выражение, и — при всем уважении — найти ошибку в нем куда легче, чем в матрице из 200 чисел.
Кстати говоря, как вы решаете проблему с некорректным вводом, типа такого:
[b]Test[/i]
+11
Зашел в комментарии, чтобы написать что-то подобное.
Действительно, автор, Вам стоило бы обратить внимание на то, что конечные автоматы и регулярные выражения имеют одинаковую мощность языков (может быть термин уже неправильно называю, но смысл понятен должен быть). Поэтому создавать автомат с помощью жестко закодированной таблицы в наше время как бы не слишком разумно.
Действительно, автор, Вам стоило бы обратить внимание на то, что конечные автоматы и регулярные выражения имеют одинаковую мощность языков (может быть термин уже неправильно называю, но смысл понятен должен быть). Поэтому создавать автомат с помощью жестко закодированной таблицы в наше время как бы не слишком разумно.
0
На всякий случай оставлю ссылку на PECL: pecl.php.net/package/bbcode
0
Хорошая работа, но мне больше нравятся peg парсеры чем LL(предсказывающие анализаторы). Код выглядит очень лаконично и без магических цифр.
0
Sign up to leave a comment.
Парсер BBCode без регулярных выражений