Существуют ли библиотеки Parsing Expression Grammar (PEG) для Javascript или PHP?

Я обнаружил, что меня притягивает формализм грамматики выражения синтаксического анализа для описания языков, специфичных для предметной области, но до сих пор код реализации, который я обнаружил, был написан на таких языках, как Java и Haskell, которые не являются дружественными для веб-сервера в среде общего хостинга, которую моя организация должен жить с.

Кто-нибудь знает какие-либо библиотеки PEG или генераторы ParRat Parser для Javascript или PHP? Конечно, генераторы кода на любых языках, которые могут создавать исходный код Javascript или PHP, справятся с этой задачей.

7 ответов

Недавно я написал PEG.js, генератор синтаксических анализаторов на основе PEG для JavaScript. Его можно использовать из командной строки или попробовать в браузере.

На самом деле есть один для Javascript: OMeta. http://www.tinlizzie.org/ometa/

Я также реализовал версию этого в Python: http://github.com/python-parsley/parsley

php PEG https://github.com/maetl/php-peg

Этот пост действительно старый, но я нашел его через Google, и на него следовало ответить

Language.js:

Language.js - это новый экспериментальный синтаксический анализатор с открытым исходным кодом, основанный на PEG (Parsing Expression Grammar), со специальным добавлением оператора "непослушного ИЛИ" для обработки ошибок уникальным новым способом. Он использует запоминание для достижения линейной скорости разбора времени

Также есть Kouprey для JavaScript, который очень прост в использовании PEG-генератор / библиотека.

Посмотрите на https://github.com/leblancmeneses/NPEG можно легко преобразовать в php. Дерево разбора создано с помощью анонимных функций.

Вы смотрели на ANTLR? Он создает код лексера и синтаксического анализатора, обрабатывает абстрактные синтаксические деревья, позволяет вставлять грамматику кода для вставки в код лексера / синтаксического анализатора и доступен для различных языков!

Другие вопросы по тегам