mirror of
https://github.com/php/doc-ru.git
synced 2026-03-25 16:22:18 +01:00
72 lines
5.2 KiB
XML
72 lines
5.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 68c2c871505aadf983f16113c5b077b335ce8d76 Maintainer: sergey Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<book xml:id="book.parle" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<?phpdoc extension-membership="pecl" ?>
|
||
<title>Разбор и лексирование</title>
|
||
<titleabbrev>Parle</titleabbrev>
|
||
|
||
<preface xml:id="intro.parle">
|
||
&reftitle.intro;
|
||
<para>
|
||
Модуль parle предоставляет средства лексического анализа и синтаксического анализа общего назначения.
|
||
Реализация основана на библиотеках <link xlink:href="http://www.benhanson.net/">Бена Хансона</link>
|
||
и требует для работы компилятор с поддержкой <link xlink:href="http://en.cppreference.com/w/cpp/compiler_support">C++14</link>.
|
||
Лексический анализатор основан на сопоставлении регулярных выражений, синтаксический анализатор - LALR (1).
|
||
Лексеры и парсеры генерируются на лету и могут использоваться сразу после их завершения.
|
||
Parle занимается синтаксическим анализом и лексированием, соответствующее представление и обработка структур данных является задачей разработчика.
|
||
Модуль пока не поддерживает сериализацию и генерацию кода.
|
||
</para>
|
||
<para>
|
||
Лексический анализ - это процесс разделения последовательности символов на список лексем.
|
||
Список лексем можно затем использовать для синтаксического анализа с точки зрения формальной грамматики.
|
||
Эти операции также известны как лексирование и синтаксический анализ. Эта документация не преследует цель предоставить исчерпывающую информацию
|
||
о лексировании и синтаксическом анализе. Хорошая информация по этому поводу доступна на многочисленных ресурсах в сети.
|
||
Включены несколько примеров использования, чтобы показать функциональность. Модуль полезен для программистов PHP,
|
||
желающих изучить или использовать синтаксический анализ и лексирование. Состояния и анализ грамматики не нужно реализовывать вручную,
|
||
эти сложные задачи решаются с помощью parle. Благодаря этому разработка может быть сосредоточена на решении актуальной проблемы.
|
||
</para>
|
||
<para>
|
||
Обычный вариант использования parle - это когда формат данных слишком сложен для обработки регулярным выражением, совпадающим с PCRE.
|
||
При этом широкое практическое применение. Будь то конкретный формат данных, модификация поведения существующих функций,
|
||
даже собственный язык программирования и т.д. Полезны вспомогательные методы, такие как <methodname>Parle\Lexer::dump</methodname>
|
||
для проверки сгенерированного состояния или <methodname>Parle\Parser::dump</methodname> для проверки сгенерированной грамматики.
|
||
Метод <methodname>Parle\Parser::trace</methodname> также можно использовать для отслеживания операции синтаксического анализа.
|
||
</para>
|
||
</preface>
|
||
|
||
&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;
|
||
|
||
</book><!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|