International PHP Conference Berlin 2025

Введение

Внимание

Модуль добавили как ЭКСПЕРИМЕНТАЛЬНЫЙ. Поведение модуля, названия функций и документацию к модулю изменяют в новых выпусках PHP без уведомления. Модулем пользуются на свой страх и риск.

Модуль Parle предоставляет средства лексического и синтаксического анализа общего назначения. Модуль реализовали на основе библиотек » Бена Хансона, а для его работы требуется компилятор с поддержкой » C++14. Лексический анализатор основан на сопоставлении регулярных выражений, синтаксический анализатор — на алгоритме LALR(1). Лексеры и парсеры генерируются на лету и готовы к работе сразу после завершения генерации. Parle занимается синтаксическим анализом и лексированием, соответствующее представление и обработка структур данных — задача разработчика. Модуль пока не поддерживает сериализацию и генерацию кода.

Лексический анализ — разбиение последовательности символов на список лексем. На основе списка лексем затем строится синтаксический анализ, который определяет соответствие синтаксиса формальной грамматике. Эти операции знают как лексирование и синтаксический анализ. Эта документация не ставит перед собой цель предоставить исчерпывающую информацию о лексировании и синтаксическом анализе. Полезная информация по синтаксическому и лексическому анализу доступна на сетевых ресурсах. Документация включает несколько примеров, чтобы показать, как работает модуль. Модуль полезен для PHP-программистов, которые изучают или планируют заниматься синтаксическим анализом и лексированием. Конечные автоматы и разбор грамматики не потребуется выполнять вручную, эти сложные задачи берёт на себя модуль Parle. Поэтому разработке проще сосредоточиться на решении практических вопросов.

Модулем Parle часто пользуются, когда формат данных слишком сложен для обработки сопоставлением с регулярными выражениями средствами модуля PCRE. Практическое применение модуля при этом шире. Модуль помогает анализировать конкретный формат данных, модифицировать поведение текущих функций, даже разрабатывать свой язык программирования и в решении вопросов за пределами этих. Пользу приносят и вспомогательные методы наподобие Parle\Lexer::dump(), который проверяет сгенерированный конечный автомат, или метод Parle\Parser::dump(), который проверяет сгенерированную грамматику. Метод Parle\Parser::trace() тоже помогает, когда требуется отследить операцию синтаксического анализа.

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top