1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/reference/parle/book.xml
Sergey Panteleev 300ffa98fb Исправление форматирования (#362)
[skip-spellcheck]
[skip-lint]
2021-10-21 09:47:52 +03:00

72 lines
5.2 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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
-->