{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/JS_API/variables/parseTree/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"ae09b701-ec6a-570c-9b7b-77d6d039b3e9","excerpt":"$parseTree Представляет результат разбора входной фразы, в соответствии с именованными паттернами, и результаты работы конверторов значений.  имеет древовидную…","html":"<h1>$parseTree</h1>\n<hr>\n<p>Представляет результат разбора входной фразы, в соответствии с именованными паттернами, и результаты работы конверторов значений.</p>\n<p><code class=\"language-text\">$parseTree</code> имеет древовидную структуру, где на каждом уровне представлены данные, относящиеся к определенному токену, начиная с корневого.</p>\n<p>Формат одного уровня <code class=\"language-text\">$parseTree</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">$parseTree: {\n  tag:\n  pattern:\n  text:\n  words:\n  value:\n  TokenByName: &lt;$parseTree> // вложенные токены  \n        ...\n    }</code></pre></div>\n<p>Где:</p>\n<ul>\n<li><code class=\"language-text\">tag</code> —  имя, под которым токен фигурирует в <code class=\"language-text\">$parseTree</code>;</li>\n<li><code class=\"language-text\">pattern</code> — имя именованного паттерна, в который попал текст;</li>\n<li><code class=\"language-text\">text</code> —  текст в виде <code class=\"language-text\">string</code>;</li>\n<li><code class=\"language-text\">words</code> — токены;</li>\n<li><code class=\"language-text\">value</code> — элемент является активным при использовании маппинга, конвертеров или именованных сущностей.</li>\n<li><code class=\"language-text\">TokenByName</code> — именованный паттерн.</li>\n</ul>\n</br>\n<h4>Примеры использования</h4>\n<ul>\n<li>Определим дерево разбора для фразы <code class=\"language-text\">Какая погода в Петербурге?</code>.</li>\n</ul>\n<p>Именнованные паттерны для разбора фразы:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$Question = (какой|какая)\n$Weather = (погода|прогноз)\n$City = (~Петербург|~Москва)\n<span class=\"token storageType\">q:</span> * [$Question] * $Weather * $City *</code></pre></div>\n<p>Для фразы будет построено следующее дерево разбора:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">    $parseTree : {\n        \"tag\": \"root\",\n        \"pattern\": \"root\",\n        \"text\": \"Какая погода в Петербурге\",\n        \"words\": [\n            \"какая\",\n            \"погода\",\n            \"в\",\n            \"Петербурге\"\n        ],\n        \"Question\": [\n            {\n                \"tag\": \"Question\",\n                \"pattern\": \"Question\",\n                \"text\": \"Какая\",\n                \"words\": [\n                    \"какая\"\n                ]\n            }\n        ],\n        \"Weather\": [\n            {\n                \"tag\": \"Weather\",\n                \"pattern\": \"Weather\",\n                \"text\": \"погода\",\n                \"words\": [\n                    \"погода\"\n                ]\n            }\n        ],\n        \"City\": [\n            {\n                \"tag\": \"City\",\n                \"pattern\": \"City\",\n                \"text\": \"Питере\",\n                \"words\": [\n                    \"Петербурге\"\n                ]\n            }\n        ]\n        \"_Question\": \"Какая\",\n        \"_Weather\":\"погода\",\n        \"_City\":\"Петербурге\"\n    }</code></pre></div>\n</br>\n<ul>\n<li>Определим дерево разбора для фразы <code class=\"language-text\">два плюс два</code>.</li>\n</ul>\n<p>Фраза будет разбита на фрагменты, в соответствии с использованными именованными паттернами. Структура рекурсивная и фрагменты могут быть вложенными на любую глубину, как в следующем примере:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$Digit = $regexp&lt;\\d+>\n$Numeral = (один:1|два:2)\n$Number = ($Digit|$Numeral)\n$Operation = (плюс:+|минус:-)\n<span class=\"token storageType\">q:</span> * $Number::Number1 $Operation $Number::Number2 *</code></pre></div>\n<p>Для фразы будет построено следующее дерево разбора:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">    $parseTree: {\n        \"tag\": \"root\",\n        \"pattern\": \"root\",\n        \"text\": \"два плюс два\",\n        \"words\": [\n            \"два\",\n            \"плюс\",\n            \"два\"\n        ],\n        \"Number1\": [\n            {\n                \"tag\": \"Number1\",\n                \"pattern\": \"Number\",\n                \"text\": \"два\",\n                \"words\": [\n                    \"два\"\n                ],\n                \"Numeral\": [\n                    {\n                        \"tag\": \"Numeral\",\n                        \"pattern\": \"Numeral\",\n                        \"text\": \"два\",\n                        \"words\": [\n                            \"два\"\n                        ],\n                        \"value\": \"2\"\n                    }\n                ]\n            }\n        ],\n        \"Operation\": [\n            {\n                \"tag\": \"Operation\",\n                \"pattern\": \"Operation\",\n                \"text\": \"плюс\",\n                \"words\": [\n                    \"плюс\"\n                ],\n                \"value\": \"+\"\n            }\n        ],\n        \"Number2\": [\n            {\n                \"tag\": \"Number2\",\n                \"pattern\": \"Number\",\n                \"text\": \"два\",\n                \"words\": [\n                    \"два\"\n                ],\n                \"Numeral\": [\n                    {\n                        \"tag\": \"Numeral\",\n                        \"pattern\": \"Numeral\",\n                        \"text\": \"два\",\n                        \"words\": [\n                            \"два\"\n                        ],\n                        \"value\": \"2\"\n                    }\n                ]\n            }\n        ],\n        \"_Number1\": \"2\",\n        \"_Operation\": \"+\",\n        \"_Number2\": \"2\"\n    }</code></pre></div>\n<p class='warn'><a href=/1.10.3/docs/ru/Patterns/about_patterns  >Подробнее о работе с паттернами</a></p>","frontmatter":{"title":"","description":null},"headings":[{"value":"$parseTree"}]}},"pageContext":{"slug":"/docs/ru/JS_API/variables/parseTree/","previous":{"fields":{"slug":"/docs/ru/JS_API/variables/request/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/JS_API/variables/injector/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}