Представляем Chevrotain — лучший инструмент для написания парсеров на Javascript.
Я хотел бы начать свой первый пост на Codementor с того, что познакомлю всех вас с технологией, которая много раз экономила мое время.
Возможно, кто-то из вас, кто прошел университетский курс по компиляторам, знает, сколько усилий уходит на то, чтобы правильно разобрать весь синтаксис языка в абстрактное синтаксическое дерево, из которого вы можете сгенерировать желаемый результат или проанализировать содержимое заданного исходного кода. .
Это усилие становится еще выше, если анализ очень больших файлов является требованием наряду с производительностью. Если вы когда-нибудь пытались создать собственный парсер или даже с помощью определенных библиотек на C/C++, вы знаете, что это не очень приятный опыт.
Таким образом, когда мне впервые пришлось написать правильный синтаксический анализатор на моей работе, я попытался выяснить, какие технологии были доступны в 2018 году, и могу ли я сделать это с помощью node.js, моего любимого языка сценариев.
Первое, что я попробовал, было: PEG.js.
Хотя написать сам парсер с синтаксисом PEG.js было проще простого, результаты производительности оставляли желать лучшего, когда дело касалось производительности. Я реализовал инструмент, похожий на IDE, чтобы предоставить пользователю фрагменты, предложения, синтаксические ошибки и т. д. Производительность PEG.js для больших файлов просто не имела необходимой мощности.
Я был на грани того, чтобы рассмотреть вопрос о реализации парсера ручной сборки, когда я узнал о Шевротен.
Видите ли, Chevrotain — это не генератор синтаксических анализаторов, как PEG.js, а API синтаксического анализа. Хотя создание синтаксического анализатора немного сложнее и гораздо более многословно, производительность молниеносно высока, что может быть подтверждено их онлайн-тестом.
Таким образом, мы можем прийти к моему выводу. Если вам нужен мощный синтаксический анализатор и вы хотите разработать его на Javascript, лучше всего Шевротен.