RegEx или Antlr, какой из них должен быть выбор? - PullRequest
1 голос
/ 25 августа 2009

Мы использовали регулярные выражения для наших требований грамматики. Однако существует более 20 шаблонов, которые необходимо поддерживать, и поддержка RegEx стала очень трудной, когда шаблоны стали рекурсивными. Мы попытались перейти на ANTLR и рассмотрели следующие два критических момента, которые нам необходимы.

Производительность Производительность, кажется, вызывает беспокойство, когда некоторые выражения были перенесены. RegEx со скомпилированной сборкой примерно в 2 или 3 раза быстрее для некоторых выражений.

Управляемость ANTLR грамматика, кажется, намного проще в управлении и развитии. Размещение новых выражений / конструкций было намного проще, чем RegEx.

Кто-нибудь имел подобный опыт такой миграции. Должны ли мы смотреть на это или работать с RegEx?

1 Ответ

0 голосов
/ 25 августа 2009

производительность ANTLR в значительной степени зависит от используемого вами грамматического стиля - особенно от размещения и содержания предикатов. После этого грамматики рекурсивного спуска, генерируемые ANTLR, как правило, постепенно страдают от количества операторов, доступных в ваших выражениях¹, но есть доступные решения. Когда вы ознакомитесь с ANTLR, вы определенно найдете его более пригодным для сопровождения для «значительных задач», чем регулярные выражения. Тем не менее, запуск и запуск не самая простая задача сейчас. Какой язык / IDE вы используете?

¹ Говоря строго о производительности здесь. Парсеры рекурсивного спуска сияют, когда дело доходит до понимания сгенерированного кода.

...