{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/en/Patterns/converters/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"a1378461-1d93-5f3f-aba0-31f9916dd7f3","excerpt":"Converters?> Converters — scripts that are used to interpret the values ​​of the text in each token. Converters allow you to convert data tokens placed in…","html":"<h1>Converters</h1>\n<hr>\n<p class='warn'>Converters — scripts that are used to interpret the values ​​of the text in each token.</p>\n<p>Converters allow you to convert data tokens placed in <code class=\"language-text\">$parseTree</code>.</p>\n</br>\n<h3>Declaration</h3>\n<p>Converter declaration:</p>\n<ul>\n<li>when declaring a pattern;</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">patterns:</span>\n  $four = four|| converter = function() {return 4}</code></pre></div>\n</br>\n<ul>\n<li>under <code class=\"language-text\">init</code> tags;</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token function-variable function\">init</span><span class=\"token operator\">:</span>\n    <span class=\"token keyword\">function</span> <span class=\"token function\">amountConverter</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">pt</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">var</span> ret <span class=\"token operator\">=</span> pt<span class=\"token punctuation\">.</span>Number<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">return</span> ret\n    <span class=\"token punctuation\">}</span></code></pre></div>\n</br>\n<ul>\n<li>in the <code class=\"language-text\">.js</code>-library file, for example <code class=\"language-text\">converters.js</code>.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\">    <span class=\"token keyword\">function</span> <span class=\"token function\">amountConverter</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">pt</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">var</span> ret <span class=\"token operator\">=</span> pt<span class=\"token punctuation\">.</span>Number<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">return</span> ret\n    <span class=\"token punctuation\">}</span></code></pre></div>\n<p>Functions of the converters get <code class=\"language-text\">$parseTree</code> as the first argument.</p>\n<p>You can use inside a converter the variable refering to <code class=\"language-text\">$parseTree</code>. To do this, set its name as the first argument of the function; the second argument is the context.</p>\n</br>\n<h3>Usage</h3>\n<p>Using converters:</p>\n<ul>\n<li>Get value ​​from the text.</li>\n</ul>\n<p>Script:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$Digit = $regexp&lt;\\d+> || converter = numberConverterDigit</code></pre></div>\n<p><code class=\"language-text\">.js</code>-file:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">function</span> <span class=\"token function\">numberConverterDigit</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">parseTree</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">return</span> <span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span>parseTree<span class=\"token punctuation\">.</span>text<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span></code></pre></div>\n</br>\n<ul>\n<li>Convert value from mapping.</li>\n</ul>\n<p>Script:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$Numeral = (one:1|...) || converter = valueToNumberConverter</code></pre></div>\n<p><code class=\"language-text\">.js</code>-file:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">function</span> <span class=\"token function\">valueToNumberConverter</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">parseTree</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">return</span> <span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span>parseTree<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span></code></pre></div>\n</br>\n<ul>\n<li>Get value from nested tokens.</li>\n</ul>\n<p>Script:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$Numeral = (one:1|...)\n$Minutes = $Numeral || converter = minutesConverter</code></pre></div>\n<p><code class=\"language-text\">.js</code>-file:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">function</span> <span class=\"token function\">minutesConverter</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">parseTree</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n         <span class=\"token keyword\">return</span> <span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span>parseTree<span class=\"token punctuation\">.</span>Numeral<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span></code></pre></div>\n</br>\n<ul>\n<li>Get value ​​from dictionaries.</li>\n</ul>\n<p>Script:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$City = $entity&lt;Cities> || converter = сityConverter</code></pre></div>\n<p><code class=\"language-text\">.js</code>-file:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">function</span> <span class=\"token function\">сityConverter</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">parseTree</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">var</span> id <span class=\"token operator\">=</span> parseTree<span class=\"token punctuation\">.</span>City<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">return</span> Cities<span class=\"token punctuation\">[</span>id<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span></code></pre></div>\n<p class='tip'>The <code class=\"language-text\">$entity</code> rule stores as a <code class=\"language-text\">value</code> only the entity identifier. The list of associated values ​​is contained in the dictionary.</p>","frontmatter":{"title":"","description":null},"headings":[{"value":"Converters"}]}},"pageContext":{"slug":"/docs/en/Patterns/converters/","previous":{"fields":{"slug":"/docs/en/Patterns/named_entity/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/en/Patterns/base_patterns/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}