Как стать автором
Обновить

Комментарии 10

Спасибо за пример

Для обработки правил, написанных на кастомном DSL, лучшая библиотека – ANTLR4.

Сильное заявление. Хотелось бы и аргументы узнать.

Кстати, да. Для такого DSL, как тут описан, вполне возможно что-то типа Parsec было бы сильно проще. Реализаций уже дофига на любой вкус. А ANTLR именно что из пушки по воробьям.

Из статьи:

Будем двигаться постепенно, в этот раз рассмотрим простейший случай. На нём мы разберём саму идею этого парсера, сделаем минимальную реализацию.

Это ведь туториал, в планах есть продолжение статьи с тем что мы сделали для себя

для нас оказалась лучшей:

  • одна из самых популярных (>11K звезд на гитхабе)

  • живая (последние обновления <недели назад)

  • делит грамматику и код, что очень удобно, т.к. мы можем по одной грамматике сгенерить парсеры под разные ЯП - для нас важно

Ну, так для размышления — предок ANTLR появился году этак в 1990, а ANTLR4 — девять лет назад. А первая статья на Хабре про него была кажется году этак в 2012 (не удивительно, потому что уже ANTLR3 был более чем рабочим и широко применялся). Вообще всегда странно, когда пишут сотый туториал по давно пережеванной теме, по которой вышло несколько книг как минимум, и при этом во вводном тесте пока что нет ни слова, чем же этот продукт оказался лучше других (и тут напрашивается указание на другие продукты, с которыми сравнивали), и что нового будет в этом туториале.

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

>последние обновления <недели назад
Последние три релиза — багфиксы, что как-бы намекает скорее на на активное развитие, а на наличие багов :) Во всяком случае, я бы еще смотрел на набор issues, как долго они исправляются, какова их серьезность и влияние на меня.

Вот да, если вам нужно парсеры на разных языках — то вариант а-ля parsec очевидно отпадает, потому что там код==грамматика.

Тимур, спасибо большое за статью! Сэкономил массу времени, благодаря ей.

Рад, что мой труд остался не бесполезен

Зарегистрируйтесь на Хабре, чтобы оставить комментарий