Разбор и лексирование Parle &reftitle.intro; Модуль parle предоставляет средства лексического анализа и синтаксического анализа общего назначения. Реализация основана на библиотеках Бена Хансона и требует для работы компилятор с поддержкой C++14. Лексический анализатор основан на сопоставлении регулярных выражений, синтаксический анализатор - LALR (1). Лексеры и парсеры генерируются на лету и могут использоваться сразу после их завершения. Parle занимается синтаксическим анализом и лексированием, соответствующее представление и обработка структур данных является задачей разработчика. Модуль пока не поддерживает сериализацию и генерацию кода. Лексический анализ - это процесс разделения последовательности символов на список лексем. Список лексем можно затем использовать для синтаксического анализа с точки зрения формальной грамматики. Эти операции также известны как лексирование и синтаксический анализ. Эта документация не преследует цель предоставить исчерпывающую информацию о лексировании и синтаксическом анализе. Хорошая информация по этому поводу доступна на многочисленных ресурсах в сети. Включены несколько примеров использования, чтобы показать функциональность. Модуль полезен для программистов PHP, желающих изучить или использовать синтаксический анализ и лексирование. Состояния и анализ грамматики не нужно реализовывать вручную, эти сложные задачи решаются с помощью parle. Благодаря этому разработка может быть сосредоточена на решении актуальной проблемы. Обычный вариант использования parle - это когда формат данных слишком сложен для обработки регулярным выражением, совпадающим с PCRE. При этом широкое практическое применение. Будь то конкретный формат данных, модификация поведения существующих функций, даже собственный язык программирования и т.д. Полезны вспомогательные методы, такие как Parle\Lexer::dump для проверки сгенерированного состояния или Parle\Parser::dump для проверки сгенерированной грамматики. Метод Parle\Parser::trace также можно использовать для отслеживания операции синтаксического анализа. &reference.parle.setup; &reference.parle.constants; &reference.parle.pattern.matching; &reference.parle.examples; &reference.parle.parle.lexer; &reference.parle.parle.rlexer; &reference.parle.parle.parser; &reference.parle.parle.rparser; &reference.parle.parle.stack; &reference.parle.parle.token; &reference.parle.parle.errorinfo; &reference.parle.parle.lexerexception; &reference.parle.parle.parserexception;