{"id":304044,"date":"2020-05-22T03:00:20","date_gmt":"2020-05-22T03:00:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=304044"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=304044","title":{"rendered":"Tree \u2014 \u0435\u0434\u0438\u043d\u044b\u0439 AST \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435\u043c\u0438"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/503240\/\">\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u0430\u0440\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0438 \u044f\u2026 \u0440\u0430\u0441\u0441\u0435\u043a\u0430\u044e \u043d\u0430 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0430\u0445\u2026 \u043f\u043e \u0431\u0435\u0437\u0434\u043e\u0440\u043e\u0436\u044c\u044e\u2026 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430\u2026 \u0432 \u0433\u043e\u0440\u0443\u2026 \u043d\u0430 \u043b\u044b\u0436\u0430\u0445. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0432\u0430\u0441 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u043c\u043d\u043e\u0439 \u0432\u0434\u043e\u043b\u044c \u0438 \u043f\u043e\u043f\u0435\u0440\u0451\u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<p>  <\/p>\n<p>\u042f \u0443\u0436\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/248147\/\">\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e \u043d\u0451\u043c<\/a> 5 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0436\u0430\u0440\u043a\u0438\u043c \u0434\u0435\u0431\u0430\u0442\u0430\u043c, \u043f\u043e\u0432\u043b\u0451\u043a\u0448\u0438\u043c \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0441 \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u043b\u0438\u0441\u0442\u0430 \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\u0421\u043f\u0438\u043a\u0435\u0440 \\\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u0430\u0440\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u041c\u0435\u0441\u0442\u043e \\PiterJS #47 \u0412\u0440\u0435\u043c\u044f 2020-05-20<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 <a href=\"https:\/\/medium.com\/piterjs\/%D0%B0%D0%BD%D0%BE%D0%BD%D1%81-piterjs-47-cf7cb666834a\" rel=\"nofollow\">PiterJS#47<\/a>. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"https:\/\/github.com\/nin-jin\/slides\/blob\/master\/tree\/readme.md\" rel=\"nofollow\">\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0451 \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u043b\u0438\u0431\u043e <a href=\"https:\/\/nin-jin.github.io\/slides\/tree\/\" rel=\"nofollow\">\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0439<\/a>, \u043b\u0438\u0431\u043e <a href=\"https:\/\/youtu.be\/pev6g_oysUs?t=5518\" rel=\"nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e<\/a>.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h1 id=\"plan\">\u041f\u043b\u0430\u043d<\/h1>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445 <\/li>\n<li>\u0421 \u043d\u0443\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u0435\u0437 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 <\/li>\n<li>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 <\/li>\n<\/ul>\n<p>  <\/p>\n<h1 id=\"formaty\">\u0424\u043e\u0440\u043c\u0430\u0442\u044b<\/h1>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c 5 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><strong>\u0424\u043e\u0440\u043c\u0430\u0442<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>XML<\/td>\n<\/tr>\n<tr>\n<td>JSON<\/td>\n<\/tr>\n<tr>\n<td>YAML<\/td>\n<\/tr>\n<tr>\n<td>TOML<\/td>\n<\/tr>\n<tr>\n<td>Tree<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041f\u0440\u043e \u043f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043b\u0443\u0445\u043e\u0439. \u0410 \u0432\u043e\u0442 \u0434\u0432\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u2014 \u0442\u0451\u043c\u043d\u044b\u0435 \u043b\u043e\u0448\u0430\u0434\u043a\u0438. \u041d\u0443 \u043d\u0438\u0447\u0435\u0433\u043e, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u043b\u044c\u044e \u043d\u0430 \u043d\u0438\u0445 \u0441\u0432\u0435\u0442.<\/p>\n<p>  <\/p>\n<h2 id=\"primer-xml\">\u041f\u0440\u0438\u043c\u0435\u0440 XML<\/h2>\n<p>  <\/p>\n<p>XML \u2014 \u043d\u0435\u043a\u043e\u0433\u0434\u0430 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c &quot;\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442&quot;. \u041d\u043e \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u0441\u044e \u0441\u0432\u043e\u044e \u043c\u043e\u0449\u044c, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u0438\u0437\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0451, \u0442\u0430\u043a \u043a\u0430\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;!DOCTYPE svg     PUBLIC &quot;-\/\/W3C\/\/DTD SVG 1.1\/\/EN&quot;     &quot;http:\/\/www.w3.org\/Graphics\/SVG\/1.1\/DTD\/svg11.dtd&quot; &gt; &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt; &lt;svg version=&quot;1.1&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;     &lt;circle r=&quot;30&quot; cx=&quot;50&quot; cy=&quot;50&quot; fill=&quot;orange&quot; \/&gt; &lt;\/svg&gt;<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"primer-json\">\u041f\u0440\u0438\u043c\u0435\u0440 JSON<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u043c\u0435\u043d\u0443 XML \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0434\u0435\u0440\u0437\u043a\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 JSON.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">{     &quot;name&quot;: &quot;example&quot;,     &quot;version&quot;: &quot;1.0.0&quot;,     &quot;description&quot;: &quot;example package&quot;,     &quot;main&quot;: &quot;index.js&quot;,     &quot;repository&quot;: &quot;https:\/\/example.org&quot;,     &quot;author&quot;: &quot;anonymous&quot;,     &quot;license&quot;: &quot;MIT&quot; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0432\u043e\u0442 \u043e\u043d, \u0438\u0434\u0435\u0430\u043b, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438\u0437\u0432\u0438\u043d\u0438\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u044f \u0431\u0443\u0434\u0443 \u0432\u0430\u0441 \u0440\u0430\u0441\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<h2 id=\"primer-yaml\">\u041f\u0440\u0438\u043c\u0435\u0440 YAML<\/h2>\n<p>  <\/p>\n<p>\u041a\u0442\u043e-\u0442\u043e \u0443\u0436\u0435 \u043f\u0440\u043e\u0440\u043e\u0447\u0438\u0442 YAML \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 JSON.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">Date: 2001-11-23 15:03:17 -5 User: ed Fatal:   Unknown variable &quot;bar&quot; Where:   file: TopClass.py   line: 23   code: |     x = MoreObject(&quot;345\\n&quot;)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u043e\u043d \u0443\u0436\u0435 \u043e\u0431\u0440\u0451\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"primer-toml\">\u041f\u0440\u0438\u043c\u0435\u0440 TOML<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u043e TOML \u0436\u0435 \u043c\u0430\u043b\u043e \u043a\u0442\u043e \u0441\u043b\u044b\u0448\u0430\u043b. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u044f\u0441\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u043e \u043d\u0451\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u044e.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">[servers]  [servers.alpha] ip = &quot;10.0.0.1&quot; dc = &quot;eqdc10&quot;  [servers.beta] ip = &quot;10.0.0.2&quot; dc = &quot;eqdc10&quot;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 INI-\u043a\u043e\u043d\u0444\u0438\u0433, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043a\u0443\u0441\u0430\u043b JSON. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u043e\u043d \u0432\u043e\u0431\u0440\u0430\u043b \u0432 \u0441\u0435\u0431\u044f \u0445\u0443\u0434\u0448\u0435\u0435 \u0438\u0437 \u043e\u0431\u043e\u0438\u0445 \u043c\u0438\u0440\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"primer-tree\">\u041f\u0440\u0438\u043c\u0435\u0440 Tree<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Tree, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">spoiler<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"modeli-dannyh\">\u041c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/h1>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0432\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u0430.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u0431\u0443\u0431\u043d\u0430? <\/li>\n<li>\u041a\u0430\u043a \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0432 \u043c\u043e\u0434\u0435\u043b\u044c? <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0438 \u043e\u0434\u0438\u043d \u0444\u043e\u0440\u043c\u0430\u0442 \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0441\u0451 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"model-xml\">\u041c\u043e\u0434\u0435\u043b\u044c XML<\/h2>\n<p>  <\/p>\n<p>XML \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u043e\u0434\u0438\u043d \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432.<\/p>\n<p>  <\/p>\n<ul>\n<li>NodeList<\/li>\n<li>Element Node (<code>&lt;br\/&gt;<\/code>)<\/li>\n<li>Attribute Node (<code>tabindex=&quot;1&quot;<\/code>)<\/li>\n<li>Text Node (<code>Hello, World!<\/code>)<\/li>\n<li>CDATA Node (<code>&lt;![CDATA[ ... ]]&gt;<\/code>)<\/li>\n<li>Processing Instruction Node (<code>&lt;? ... ?&gt;<\/code>)<\/li>\n<li>Comment Node (<code>&lt;!-- ... --&gt;<\/code>)<\/li>\n<li>Document Node<\/li>\n<li>Document Type Node (<code>&lt;!DOCTYPE html&gt;<\/code>)<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"nedostatki-modeli-xml\">\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 XML<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0433\u0438\u0431\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0437\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d. \u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0430\u0442 XML \u0438 \u0442\u0430\u043a \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u044f\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u043e\u0433\u043e: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0438 \u0442\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"html\">&lt;panel&gt;     &lt;head&gt;\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?&lt;\/head&gt;     &lt;body&gt;         &lt;button&gt;\u0414\u0430&lt;\/button&gt;         &lt;button&gt;\u041d\u0435\u0442&lt;\/button&gt;     &lt;\/body&gt; &lt;\/panel&gt;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0443\u0442 <code>panel<\/code> \u2014 \u044d\u0442\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0430 <code>body<\/code> \u2014 \u0443\u0436\u0435 \u043d\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440. \u0415\u043c\u0443 \u0431\u044b \u043c\u0435\u0441\u0442\u043e \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u0445, \u0434\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0448\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435.<\/p>\n<p>  <\/p>\n<h3 id=\"rasshiryaemost-modeli-xml\">\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 XML<\/h3>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e XML \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u0432\u043f\u0435\u0440\u0435\u043c\u0435\u0448\u043a\u0443 \u0438\u0434\u0442\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u043d\u0435 \u043b\u043e\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044e \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430. <\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;xsl:stylesheet     version=&quot;1.0&quot;     xmlns=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot;     xmlns:xsl=&quot;http:\/\/www.w3.org\/1999\/XSL\/Transform&quot;&gt;      &lt;xsl:template match=&quot;\/&quot;&gt;         &lt;html&gt;             &lt;head&gt;                 &lt;link rel=&quot;stylesheet&quot; href=&quot;web.css&quot; \/&gt;             &lt;\/head&gt;             &lt;body&gt;                 &lt;xsl:apply-templates select=&quot;*&quot; \/&gt;             &lt;\/body&gt;         &lt;\/html&gt;     &lt;\/xsl:template&gt;  &lt;\/xsl:stylesheet&gt;<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u2014 \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0432 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u043b\u043e\u0434\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445.<\/p>\n<p>  <\/p>\n<h2 id=\"model-json\">\u041c\u043e\u0434\u0435\u043b\u044c JSON<\/h2>\n<p>  <\/p>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c JSON \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0451 \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439. \u041f\u043b\u044e\u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043b\u0438\u0441\u0442\u044c\u0435\u0432 \u0434\u0435\u0440\u0435\u0432\u0430.<\/p>\n<p>  <\/p>\n<ul>\n<li>Null<\/li>\n<li>Boolean<\/li>\n<li>Number<\/li>\n<li>String<\/li>\n<li>Array<\/li>\n<li>Dictionary<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"nedostatki-modeli-json\">\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 JSON<\/h3>\n<p>  <\/p>\n<p>\u041d\u0430\u0438\u0432\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 \u0445\u0432\u0430\u0442\u0438\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c. \u041a\u043b\u044e\u0447\u0438 \u0432 \u043d\u0451\u043c \u043d\u0435 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u044b, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u043c \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">{     &quot;foo&quot;: 777,     &quot;bar&quot;: 666 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438?<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">[     [ &quot;foo&quot; , 777 ],     [ &quot;bar&quot; , 666 ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0438 \u043d\u0430\u043b\u0435\u043f\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u0410 \u0432\u0435\u0434\u044c \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e-\u043b\u0438\u0448\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0438\u043f \u0441\u043b\u043e\u0432\u0430\u0440\u044f.<\/p>\n<p>  <\/p>\n<h3 id=\"nerasshiryaemost-modeli-json\">\u041d\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 JSON<\/h3>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u0441\u0430\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043c\u043e\u0434\u0435\u043b\u0438 JSON \u0432 \u0435\u0451 \u043d\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u0438, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u0443\u0447\u0443 \u0445\u0438\u0442\u0440\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0432\u0441\u0451 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a MongoDB, \u0430\u0432\u0442\u043e\u0440\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e JSON \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0440\u043e\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">{     &quot;$or&quot;: [         {             &quot;sex&quot;: &quot;female&quot;,             &quot;age&quot;: { &quot;$gt&quot;: 16 },         },         {             &quot;hobby&quot;: {                 &quot;$regex&quot;: &quot;\\\\b(?:java|type)script\\\\b&quot;             }         }     ] }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0430\u0440\u043d\u044b\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 OR \u0438 AND \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. \u041f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u043a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0432\u0435\u0434\u044c \u043d\u0443\u0436\u043d\u044b \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u044b &quot;\u0431\u043e\u043b\u044c\u0448\u0435&quot;, &quot;\u043c\u0435\u043d\u044c\u0448\u0435&quot; \u0438 \u0434\u0430\u0436\u0435 &quot;\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e&quot;. \u0418, \u043a\u0441\u0442\u0430\u0442\u0438, \u0441\u0430\u043c\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c\u044b \u0432 JSON \u0438\u043d\u0430\u0447\u0435 \u043a\u0430\u043a \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c &quot;$regexp&quot;, \u0442\u043e \u044d\u0442\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0430 \u0438 \u043f\u0440\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<p>  <\/p>\n<h2 id=\"model-yaml\">\u041c\u043e\u0434\u0435\u043b\u044c YAML<\/h2>\n<p>  <\/p>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c YAML \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 JSON. \u0420\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a.<\/p>\n<p>  <\/p>\n<ul>\n<li>!!null<\/li>\n<li>!!bool<\/li>\n<li>!!int<\/li>\n<li>!!float<\/li>\n<li>!!str<\/li>\n<li>!!timestamp<\/li>\n<li>!!seq<\/li>\n<li>!!map<\/li>\n<li>Anchor &amp; Alias<\/li>\n<li>Document<\/li>\n<li><strong>TypeTags<\/strong><\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"rasshiryaemost-modeli-yaml\">\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 YAML<\/h3>\n<p>  <\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e YAML \u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u0445 \u0442\u0438\u043f\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443 \u043a\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">--- !!omap - foo: 777 - bar: 666<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0430\u0440\u0441\u0435\u0440\u0443 &quot;\u0432\u043e\u0437\u044c\u043c\u0438 \u044d\u0442\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435&quot; \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0439 \u0435\u0433\u043e \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 OrderedMap (\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c).<\/p>\n<p>  <\/p>\n<h2 id=\"model-toml\">\u041c\u043e\u0434\u0435\u043b\u044c TOML<\/h2>\n<p>  <\/p>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c TOML \u043a\u0430\u043a \u0443 JSON, \u043d\u043e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0437\u0435\u043c\u043b\u0451\u043d\u043d\u0430\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0443\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0446\u0435\u043b\u044b\u0435 \u0438 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <\/p>\n<ul>\n<li>Boolean<\/li>\n<li>Integer<\/li>\n<li>Float<\/li>\n<li>String<\/li>\n<li>DateTime<\/li>\n<li>Array<\/li>\n<li>Dictionary<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0436\u0435 \u0442\u0443\u0442 \u0432\u0441\u0451 \u0442\u0430\u043a \u0436\u0435 \u043f\u043b\u043e\u0445\u043e, \u043a\u0430\u043a \u0438 \u0432 JSON.<\/p>\n<p>  <\/p>\n<h2 id=\"model-tree\">\u041c\u043e\u0434\u0435\u043b\u044c Tree<\/h2>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u043e\u0439 \u0431\u044b \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043c\u044b \u043d\u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438, \u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u0434 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438. \u0410 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e, \u043a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0443\u0437\u043b\u043e\u0432 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0442\u043a\u0443 \u043b\u043e\u0433\u0438\u043a\u0438. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432 \u0443\u0437\u043b\u043e\u0432.<\/p>\n<p>  <\/p>\n<ul>\n<li>Struct Node<\/li>\n<li>Data Node<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0441\u043b\u0443\u0436\u0430\u0442 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438, \u0430 \u0443\u0437\u043b\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u044b\u0440\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041b\u044e\u0431\u043e\u0439 \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u044e\u0431\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0437\u043b\u043e\u0432, \u0447\u0435\u043c \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430\u044f \u0432 \u0438\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<h2 id=\"rasshiryaemost-modeli\">\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438<\/h2>\n<p>  <\/p>\n<p>\u0418\u0442\u043e\u0433\u043e, \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u0438 \u0432\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e. \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043b\u0438\u0431\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u044b\u0435, \u043d\u043e \u043d\u0435\u0438\u043c\u043e\u0432\u0435\u0440\u043d\u043e \u043f\u0435\u0440\u0435\u0443\u0441\u043b\u043e\u0436\u043d\u0451\u043d\u043d\u044b\u0435, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435, \u043d\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u044b\u0435.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u0427\u0438\u0441\u043b\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432<\/td>\n<td>90<\/td>\n<td>30<\/td>\n<td>210<\/td>\n<td>90<\/td>\n<td><strong>10<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 YAML. \u0415\u0433\u043e \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u0432\u0435 \u0441\u043e\u0442\u043d\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432. \u041e\u043d \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u0435\u043d, \u0447\u0442\u043e \u0432\u044b \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u043b\u043d\u043e\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0433\u043e \u043f\u0430\u0440\u0441\u0435\u0440\u0430. \u0414\u0430 \u0447\u0442\u043e \u0443\u0436 \u0442\u0430\u043c, \u0434\u0430\u0436\u0435 \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 JSON <a href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/314014\/\">\u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0451 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c<\/a>, \u0430 \u0432\u0435\u0434\u044c \u0442\u0430\u043c \u0432\u0441\u0435\u0433\u043e \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b 30 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0448\u0435\u0439 \u0446\u0435\u043b\u044c\u044e \u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e, \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u0447\u0442\u0435\u043d\u0438\u0439, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430.<\/p>\n<p>  <\/p>\n<h1 id=\"udobochitaemost\">\u0423\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c<\/h1>\n<p>  <\/p>\n<p>\u041d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0432\u0430\u0436\u043d\u0430 \u043f\u0440\u0438 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c: \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438, \u043f\u0440\u0438 \u0440\u0435\u0432\u044c\u044e \u043a\u043e\u0434\u0430, \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432, \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435, \u043f\u0440\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0435\u0451 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0441 \u044d\u0442\u0438\u043c \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0423\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h2 id=\"udobochitaemost-xml\">\u0423\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c XML<\/h2>\n<p>  <\/p>\n<p>XML \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u0435\u043a\u0441\u0442\u0430, \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043a\u0440\u0430\u043f\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u0433\u0438 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u041f\u043e\u043a\u0430 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0435 \u043c\u043d\u043e\u0433\u043e, \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u0447\u0435\u043c \u0435\u0451 \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u0447\u0442\u043e \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">\u041f\u0440\u0438\u0432\u0435\u0442, \u0410\u043b\u0438\u0441\u0430! \u041a\u0430\u043a \u0434\u0435\u043b\u0430? \u041d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0442\u044b \u043f\u0440\u0438\u043d\u0435\u0441\u0442\u0438 \u043c\u043d\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043a\u043e\u0444\u0435?  &lt;message&gt;     &lt;greeting&gt;         \u041f\u0440\u0438\u0432\u0435\u0442, &lt;a href=&quot;http:\/\/example.org\/user\/alice&quot;&gt;\u0410\u043b\u0438\u0441\u0430&lt;\/a&gt;!     &lt;\/greeting&gt;     &lt;body&gt;         &lt;s&gt;\u041a\u0430\u043a \u0434\u0435\u043b\u0430?&lt;\/s&gt;&lt;br\/&gt;         \u041d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0442\u044b \u043f\u0440\u0438\u043d\u0435\u0441\u0442\u0438 \u043c\u043d\u0435         &lt;time datetime=&quot;1979-10-14T12:00:00.001-04:00&quot;&gt;\u0441\u0435\u0439\u0447\u0430\u0441&lt;\/time&gt;         \u043a\u043e\u0444\u0435?     &lt;\/body&gt; &lt;\/message&gt;<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"udobochitaemost-json\">\u0423\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c JSON<\/h2>\n<p>  <\/p>\n<p>XML \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442, \u0430 \u0432\u043e\u0442 JSON, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044d\u0442\u0438\u043c \u043f\u043e\u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442. \u0424\u043e\u0440\u043c\u0430\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0438\u0434\u0443\u0442 \u043e\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u0436\u0435 \u0432\u043a\u0440\u0430\u043f\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">{ &quot;greetings&quot;: &quot;\u041f\u0440\u0438\u0432\u0435\u0442, \u0410\u043b\u0438\u0441\u0430!\\n\u041a\u0430\u043a \u0434\u0435\u043b\u0430?\\n\u041d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0442\u044b \u043f\u0440\u0438\u043d\u0435\u0441\u0442\u0438 \u043c\u043d\u0435 \u043a\u043e\u0444\u0435?\\n&quot; }<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"strogost\">\u0421\u0442\u0440\u043e\u0433\u043e\u0441\u0442\u044c<\/h1>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041d\u043e YAML \u0442\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0438\u043b\u0441\u044f.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u041e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h2 id=\"nestrogost-yaml\">\u041d\u0435\u0441\u0442\u0440\u043e\u0433\u043e\u0441\u0442\u044c YAML<\/h2>\n<p>  <\/p>\n<pre><code class=\"plaintext\">a: true # boolean b: tru  # string c: (-:  # error d: :-)  # string<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043a\u043e\u043b\u043e\u0432 \u0432 YAML \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e.<\/p>\n<p>  <\/p>\n<h1 id=\"ekranirovanie\">\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>\u0411\u043b\u0438\u0437\u043a\u0430\u044f \u043a \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u0442\u0435\u043c\u0430 \u2014 \u044d\u0442\u043e \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u043d\u043e\u0433\u043e \u0432 \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u043c\u0435\u0440\u0435 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044e \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438. \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u0438\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0432\u0438\u0434\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041d\u0443\u0436\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0445 <\/li>\n<li>\u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c \u0432 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 <\/li>\n<li>\u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"ekranirovanie-v-xml\">\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 XML<\/h2>\n<p>  <\/p>\n<p>XML \u2014 \u0447\u0443\u0434\u0435\u0441\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043d\u0430\u0434\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">foo &gt; 0 &amp;&amp; foo &lt; 10<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u043e \u0442\u0443\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">`foo &amp;gt; 0 &amp;amp;&amp;amp; foo &amp;lt; 10`<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"ekranirovanie-v-json\">\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 JSON<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u0445\u043e\u0436\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0435\u0441\u0442\u044c \u0438 \u0432 JSON, \u0445\u043e\u0442\u044c \u0438 \u0432 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043c\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 VSCode, \u0442\u043e \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438 \u0442\u0430\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 JSON \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043a\u0443\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\/&quot;[\\s\\S]*&quot;\/<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 \u0438 \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u043d\u0435 \u0441\u0430\u043c\u044b\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0435 \u0448\u0442\u0443\u043a\u0438, \u0430 \u0437\u0430\u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u0442\u043e\u0433\u043e \u0445\u0443\u0436\u0435. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043d\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0430 \u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u043b\u0435\u0433\u043a\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">&quot;\\&quot;[\\\\s\\\\S]*\\&quot;&quot;<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"ekranirovanie-v-yaml\">\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 YAML<\/h2>\n<p>  <\/p>\n<p>\u0412 YAML \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0446\u0435\u043b\u043e\u043c \u0440\u0435\u0448\u0438\u043b\u0438, \u043d\u043e \u043a\u0430\u043a\u043e\u0439 \u0446\u0435\u043d\u043e\u0439.<\/p>\n<p>  <\/p>\n<ul>\n<li>5 \u0442\u0438\u043f\u043e\u0432 \u0441\u0442\u0440\u043e\u043a <\/li>\n<li>4 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0418 \u0432\u0441\u0451 \u044d\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 YAML \u0444\u0430\u0439\u043b. <\/p>\n<p>  <\/p>\n<h2 id=\"ekranirovanie-v-tree\">\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Tree<\/h2>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\u041d\u0435\u0442 <\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0435 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0430\u0441 \u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0412\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438, \u0447\u0442\u043e \u044f \u0441\u043e\u0448\u0451\u043b \u0441 \u0443\u043c\u0430, \u043d\u043e \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  <\/p>\n<h1 id=\"minifikaciya\">\u041c\u0438\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/h1>\n<p>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u0438\u0445 \u0438 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0438 \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0427\u0438\u0442\u0430\u0435\u043c\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043d\u043e\u0433\u043e \u0432\u0435\u0441\u0438\u0442 <\/li>\n<li>\u041a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043b\u043e\u0445\u043e \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f <\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"minifikaciya-xml\">\u041c\u0438\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f XML<\/h2>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;users&gt;     &lt;user&gt;         &lt;name&gt;Alice&lt;\/name&gt;         &lt;age&gt;20&lt;\/age&gt;     &lt;\/user&gt; &lt;\/users&gt;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u0438\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c XML, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435, \u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;!-- 13% less --&gt; &lt;users&gt;&lt;user&gt;&lt;name&gt;Alice&lt;\/name&gt;&lt;age&gt;20&lt;\/age&gt;&lt;\/user&gt;&lt;\/users&gt;<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"minifikaciya-json\">\u041c\u0438\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f JSON<\/h2>\n<p>  <\/p>\n<pre><code class=\"json\">{     &quot;users&quot;: [         {             &quot;name&quot;: &quot;Alice&quot;,             &quot;age&quot;: 20         }     ] }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421 JSON \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u0438 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u0434\u0430\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u2014 \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0433\u043e\u0432 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0432\u0435\u0440\u0435\u043d\u0438\u0446\u0443 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0438 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u0447\u0435\u043a.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">\/\/ 30% less {&quot;users&quot;:[{&quot;name&quot;:&quot;Alice&quot;,&quot;age&quot;:20}]}<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"minifikaciya-tree\">\u041c\u0438\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f Tree<\/h2>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\u041d\u0435\u0442 <\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u0448 \u043f\u0443\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043d\u044b\u0439 \u2014 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u043c, \u0438 \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c.<\/p>\n<p>  <\/p>\n<h2 id=\"statistika-po-minifikacii\">\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u043c\u0438\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/h2>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0427\u0438\u0442\u0430\u0435\u043c\u044b\u0439<\/td>\n<td>195%<\/td>\n<td>140%<\/td>\n<td>125%<\/td>\n<td>110%<\/td>\n<td><strong>100%<\/strong><\/td>\n<\/tr>\n<tr>\n<td>\u041c\u0438\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439<\/td>\n<td>170%<\/td>\n<td><strong>101%<\/strong><\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0421\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/github.com\/nin-jin\/tree.d\/tree\/master\/formats\" rel=\"nofollow\">\u0444\u0430\u0439\u043b\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u043c \u0432\u0438\u0434\u0435 \u0432\u0435\u0441\u0438\u0442 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0438\u0445 \u043c\u0438\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0412\u0435\u0441\u044c \u0441\u0435\u043a\u0440\u0435\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u043b\u0430\u0441\u044c \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u0434\u0443\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u044a\u0451\u043c.<\/p>\n<p>  <\/p>\n<h1 id=\"svyaschennye-voyny\">\u0421\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0439\u043d\u044b<\/h1>\n<p>  <\/p>\n<p>\u0427\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u2014 \u044d\u0442\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0441\u043f\u043e\u0440\u044b \u043e, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043c\u0435\u043b\u043e\u0447\u0430\u0445.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0422\u0430\u0431\u044b \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u044b? <\/li>\n<li>2 \u0438\u043b\u0438 4 \u043f\u0440\u043e\u0431\u0435\u043b\u0430? <\/li>\n<li>\u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043a\u0430\u0440\u0435\u0442\u043a\u0438 \u043d\u0443\u0436\u0435\u043d? <\/li>\n<li>\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0435\u043c? <\/li>\n<li>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043b\u0438\u043d\u0442\u0435\u0440\u0430\/\u0444\u043e\u0440\u043c\u0430\u0442\u0435\u0440\u0430? <\/li>\n<li>\u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438\/\u043a\u043e\u043c\u0438\u0442\u0435\/\u043f\u0443\u0448\u0435? <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u0438 \u0441\u043f\u043e\u0440\u044b \u043e\u0442\u043d\u0438\u043c\u0430\u044e\u0442 \u0432\u0440\u0435\u043c\u044f \u0438 \u044d\u043c\u043e\u0446\u0438\u0438, \u043d\u043e \u043e\u043d\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b. \u041b\u0443\u0447\u0448\u0435, \u0435\u0441\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0435\u0434\u0438\u043d\u044b\u0435, \u0447\u0451\u0442\u043a\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043b\u044e\u0431\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0448 \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u0436\u0451\u0441\u0442\u043a\u0438\u043c, \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0432\u043e\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>  <\/p>\n<h1 id=\"skorost-obrabotki\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/h1>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430, \u0436\u0451\u0441\u0442\u043a\u043e\u0441\u0442\u044c \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u0430\u0451\u0442 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 JSON, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u0443 \u0438 \u043f\u0435\u0440\u0435\u0434 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u043a\u043e\u0441\u0443\u044e \u0447\u0435\u0440\u0442\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u044b \u0434\u0430\u0436\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0443\u0437\u043d\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430\u043c \u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430. \u0410 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">serialization:    foo\\bar    =&gt;  &quot;foo\\\\bar&quot;  parsing:         &quot;foo\\\\bar&quot;  =&gt;   foo\\bar<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0436\u0435 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0440\u0430\u0442\u044c \u043a\u0443\u0441\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0442\u043e\u043a \u043f\u0440\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e. \u0418 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043f\u0440\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u0443\u0441\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  <\/p>\n<h1 id=\"koordinaty-oshibki\">\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0448\u0438\u0431\u043a\u0438<\/h1>\n<p>  <\/p>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0447\u0430\u0441\u0442\u043e \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0445 \u0438\u0437 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0443\u0437\u043b\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 JSON, \u043d\u0430\u0447\u0430\u043b\u0438 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443, \u0438 \u0433\u0434\u0435-\u0442\u043e \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0435 \u0432\u0434\u0440\u0443\u0433 \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 \u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u0444\u0430\u0439\u043b\u0435. \u0412 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443, \u043d\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043a\u0430\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0444\u0430\u0439\u043b\u0430 \u043e\u043d\u0430 \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0430. \u0412\u0441\u0451 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435 \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f. \u0418 \u044d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0410\u0434\u0440\u0435\u0441<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u041f\u043e\u0437\u0438\u0446\u0438\u044f<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0412 XML-\u0443\u0437\u043b\u0430\u0445 \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0435\u043d, \u043d\u043e \u0433\u0434\u0435 \u043e\u043d \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0435 \u2014 \u0438\u0449\u0438\u0442\u0435 \u0433\u043b\u0430\u0437\u0430\u043c\u0438. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u044e\u0442 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043d\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u0438, \u0430 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435 \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0414\u0435\u0440\u0435\u0432\u043e. \u041d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0438\u043c \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0434\u0430 \u0435\u0449\u0451 \u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u043e.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0436, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u044d\u0442\u0430 \u0432\u0430\u0436\u043d\u0430\u044f, \u0438 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0435\u0451 \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c. \u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c. \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443\u0437\u043b\u043e\u0432 \u043d\u0430\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e\u0431 AST \u0438 \u0441\u043e\u0440\u0441\u043c\u0430\u043f\u0430\u0445.<\/p>\n<p>  <\/p>\n<h1 id=\"potochnaya-obrabotka\">\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/h1>\n<p>  <\/p>\n<p>\u0411\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e, \u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u043c\u0430\u043b\u043e, \u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e. \u0410 \u0431\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043a\u043e\u043d\u0447\u0430\u044e\u0442\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f. \u0412 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043f\u0430\u0441\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041e\u043d\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442, \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u0431\u044b\u043b \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0439 \u043a\u043e\u0440\u0435\u043d\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0438\u043d\u0430\u0447\u0435 \u2014 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 \u043b\u043e\u0433\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u0435\u0433\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u044b\u0445.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043a \u043d\u0438\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u0447\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f XML \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 SAX \u043f\u0430\u0440\u0441\u0435\u0440\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0432\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u0442\u0435\u0433\u043e\u0432: \u043e\u0442\u043a\u0440\u044b\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0435\u0433, \u043f\u0440\u0438\u0448\u043b\u0430 \u0441\u0442\u0440\u043e\u043a\u0430, \u0437\u0430\u043a\u0440\u044b\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0435\u0433. \u0410 \u0434\u043b\u044f JSON \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u0430\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON_streaming\" rel=\"nofollow\">\u0432\u044f\u0437\u0430\u043d\u043a\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/a>. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0443\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0442\u044c \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043b\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u0447\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443, \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0435\u0446. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0434\u0438\u043d \u0438, \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043d\u0430\u0440\u0435\u0437\u0430\u0442\u044c \u043d\u0430 \u0447\u0430\u0441\u0442\u0438. \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c, \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438. \u0418 \u0432\u0441\u0451 \u044d\u0442\u043e \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<h1 id=\"format-tree\">\u0424\u043e\u0440\u043c\u0430\u0442 Tree<\/h1>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0436, \u0440\u0435\u0437\u044e\u043c\u0438\u0440\u0443\u044f \u0440\u0430\u043d\u0435\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u0432\u0441\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 <\/li>\n<li>\u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <\/li>\n<li>\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0432\u043e\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 <\/li>\n<li>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u043c\u0438\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 <\/li>\n<li>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 <\/li>\n<li>\u0413\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c <\/li>\n<li>\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 <\/li>\n<li>\u0422\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0443\u0437\u043b\u043e\u0432 <\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"prosto-tree-uzel\">\u041f\u0440\u043e\u0441\u0442\u043e tree-\u0443\u0437\u0435\u043b<\/h2>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0437\u0435\u043b \u0441 \u0438\u043c\u0435\u043d\u0435\u043c &quot;house&quot;. \u041a\u0430\u043a\u043e\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d? <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">house<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u044d\u0442\u043e \u0438\u043c\u044f \u0438 \u0432\u0441\u0451.<\/p>\n<p>  <\/p>\n<h2 id=\"spisok-tree-uzlov\">\u0421\u043f\u0438\u0441\u043e\u043a tree-\u0443\u0437\u043b\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043d\u0435 \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b, \u0430 \u0446\u0435\u043b\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a?<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">house roof wall door window floor<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0438\u0445 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445.<\/p>\n<p>  <\/p>\n<h2 id=\"vlozhenie-tree-uzlov\">\u0412\u043b\u043e\u0436\u0435\u043d\u0438\u0435 tree-\u0443\u0437\u043b\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u041d\u043e \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0437\u043b\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e?<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">house     roof     wall     door     window     floor<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0441 \u0442\u0430\u0431\u043e\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u0430. \u0417\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c Python \u0442\u0443\u0442 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0441\u0442\u0438\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u0430 \u043d\u0435 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"glubokaya-tree-ierarhiya\">\u0413\u043b\u0443\u0431\u043e\u043a\u0430\u044f tree-\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f\u044b \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043b\u044e\u0431\u043e\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">house     roof     wall         door         window             glass     floor<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"odin-doma\">\u041e\u0434\u0438\u043d \u0434\u043e\u043c\u0430<\/h2>\n<p>  <\/p>\n<p>\u0427\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0433\u0434\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0438\u0437-\u0437\u0430 \u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0442\u0441\u0442\u0443\u043f\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 \u043d\u0435\u0433\u043e \u0443\u0437\u043b\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0441\u0442\u043e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">street     house         wall             door             window<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0443\u0437\u043b\u044b \u0432 \u043e\u0434\u043d\u0443 \u043b\u0438\u043d\u0438\u044e, \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044f \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">street house wall     window     door<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0437\u043b\u044b \u0436\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u0442\u0441\u0442\u0443\u043f\u043e\u043c \u0443\u0436\u0435 \u0432\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0443\u0437\u0435\u043b \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043b\u0438\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"syrye-dannye\">\u0421\u044b\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0436\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043a\u0430\u043a-\u0442\u043e \u043f\u043e \u043e\u0441\u043e\u0431\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0438\u0445 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u0441\u043e\u0439 \u0447\u0435\u0440\u0442\u044b \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\\\u041b\u044e\u0431\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \\(^_^)\/<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043e\u0441\u0430\u044f \u0447\u0435\u0440\u0442\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0434\u043b\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 \u0441 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041e\u043d\u0430 \u043a\u0430\u043a \u0431\u044b \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0432\u0435\u0441\u044c \u0442\u0435\u043a\u0441\u0442 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438. \u041d\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b\u0442\u044c \u0442\u043e\u0447\u043d\u044b\u043c\u0438, \u0442\u043e \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0435 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0430 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043e\u0441\u0430\u044f \u0447\u0435\u0440\u0442\u0430 \u2014 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f, \u0430 \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u2014 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0430\u044f.<\/p>\n<p>  <\/p>\n<h2 id=\"mnogostrochnye-dannye\">\u041c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/h2>\n<p>  <\/p>\n<p>\u041d\u043e \u043a\u0430\u043a \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0451 \u0436\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438? \u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e: \u0431\u0435\u0440\u0451\u043c \u0443\u0437\u0435\u043b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\\     \\\u0422\u0443\u0442 \u200d     \\    \u043c\u043d\u043e\u0433\u043e \u200d     \\         \u043a\u043e\u0442\u0438\u043a\u043e\u0432 \u200d<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0441\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438. <\/p>\n<p>  <\/p>\n<h2 id=\"raznye-tipy-uzlov\">\u0420\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0443\u0437\u043b\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043e\u0431\u0430 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u043e\u0432 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043f\u0435\u0440\u0435\u043c\u0435\u0448\u043a\u0443 \u0432 \u043b\u044e\u0431\u044b\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">user     name \\Jin     age \\35     hobby         \\kendo          \\dance          \\role play              default<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432\u0441\u0451 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435\u0433\u043e 2 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u043e\u0432 \u0438 4 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u0430.<\/p>\n<p>  <\/p>\n<h1 id=\"yazyki-osnovannye-na-formatah\">\u042f\u0437\u044b\u043a\u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445<\/h1>\n<p>  <\/p>\n<p>\u041f\u043e\u043a\u0430 \u0447\u0442\u043e \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043b\u0438\u0448\u044c \u043f\u0440\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u0443\u0436\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u044f\u0437\u044b\u043a\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0443 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u043c \u0443\u0437\u043b\u0430\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0430. <\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0424\u043e\u0440\u043c\u0430\u0442<\/th>\n<th><strong>\u042f\u0437\u044b\u043a\u0438<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>XML<\/td>\n<td>XHTML, SVG, XSLT, &#8230;<\/td>\n<\/tr>\n<tr>\n<td>JSON<\/td>\n<td>JSON Schema, json:api, &#8230;<\/td>\n<\/tr>\n<tr>\n<td>YAML<\/td>\n<td><a href=\"http:\/\/yaml.org\/type\" rel=\"nofollow\">yaml.org\/type<\/a><\/td>\n<\/tr>\n<tr>\n<td>TOML<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<tr>\n<td>Tree<\/td>\n<td><a href=\"https:\/\/github.com\/nin-jin\/tree.d\/wiki\/tree-based-languages\" rel=\"nofollow\">xml.tree, json.tree, view.tree, &#8230;<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041b\u044e\u0431\u043e\u0439 \u044f\u0437\u044b\u043a \u2014 \u044d\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0443\u0437\u043b\u043e\u0432, \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435.<\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0442\u0430\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 tree.<\/p>\n<p>  <\/p>\n<h2 id=\"yazyk-grammartree\">\u042f\u0437\u044b\u043a grammar.tree<\/h2>\n<p>  <\/p>\n<p>\u042f\u0437\u044b\u043a <a href=\"https:\/\/github.com\/nin-jin\/tree.d\/wiki\/grammar.tree\" rel=\"nofollow\">grammar.tree<\/a> \u2014 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u043e\u043b\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0443 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 tree.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">tree .is .optional .list_of line  line .is .sequence     .optional indent     .optional nodes     new_line  nodes .is .sequence     .optional .list_of struct     .optional data     .with_delimiter space  struct .is .list_of .byte     .except special<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">data .is .sequence     data_prefix     .optional .list_of .byte         .except new_line  special .is .any_of     new_line     data_prefix     indent     space  new_line .is .byte \\0A indent .is .list_of .byte \\09 data_prefix .is .byte \\5C space .is .list_of .byte \\20<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 \u0447\u0430\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u0441\u0435\u0440 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u044f \u0434\u0430\u0436\u0435 \u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0427\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e: tree \u2014 \u044d\u0442\u043e \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u043d\u0438\u0439, \u0430 \u043b\u0438\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u0442\u0443\u043f\u0430, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0443\u0437\u043b\u043e\u0432 \u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438. \u041d\u0443 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>  <\/p>\n<h2 id=\"yazyk-grammartree-vs-ebnf\">\u042f\u0437\u044b\u043a grammar.tree vs EBNF<\/h2>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f grammar.tree \u0441 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Extended_Backus%E2%80%93Naur_form\" rel=\"nofollow\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0424\u043e\u0440\u043c\u043e\u0439 \u0411\u044d\u043a\u0443\u0441\u0430 \u041d\u0430\u0443\u0440\u0430<\/a> \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u0435\u043d, \u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0435\u043d \u0438 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u0435\u043d, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u0435\u043d, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438, \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0451 \u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0442\u0443\u043f\u0430\u044e\u0442, \u0430 \u0435\u0433\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435 \u043f\u0440\u0438 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">tree .is .optional .list_of line  line .is .sequence     .optional indent     .optional nodes     new_line  nodes .is .sequence     .optional .list_of struct     .optional data     .with_delimiter space<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">tree = { line };  line = [ indent ],     [ nodes ],     new_line;  nodes = data |     struct,     { space , struct },     [ space , data ];<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"yazyk-xmltree-vs-xml\">\u042f\u0437\u044b\u043a xml.tree vs XML<\/h2>\n<p>  <\/p>\n<p>\u042f\u0437\u044b\u043a <a href=\"https:\/\/github.com\/nin-jin\/tree.d\/wiki\/xml.tree\" rel=\"nofollow\">xml.tree<\/a> \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 XML \u0432 tree \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u0418\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0438\u0434\u0430 XML. \u0418 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043b\u044e\u0431\u043e\u0439 XML \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0432 xml.tree.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">! doctype html html     meta @ charset \\utf-8     link         @ href \\web.css         @ rel \\stylesheet     script @ src \\web.js     body         h1 \\Procter &amp; Gamble<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;!doctype html&gt; &lt;html&gt;      &lt;meta charset=&quot;utf-8&quot; \/&gt;     &lt;link href=&quot;web.css&quot; rel=&quot;stylesheet&quot; \/&gt;     &lt;script src=&quot;web.js&quot;&gt;&lt;\/script&gt;      &lt;body&gt;         &lt;h1&gt;Procter &amp;amp; Gamble&lt;\/div&gt;     &lt;\/body&gt;  &lt;\/html&gt;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0411\u044b\u043b\u043e \u0431\u044b \u043a\u043b\u0430\u0441\u0441\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0432 IDE, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044f \u043b\u044e\u0431\u043e\u0439 XML \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e xml.tree \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u0441\u0451 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 XML. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043b\u043e\u043c\u0430\u0442\u044c \u0433\u043b\u0430\u0437\u0430 \u043e\u0431 \u0430\u043c\u043f\u0435\u0440\u0441\u0430\u043d\u0434\u044b \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 XML \u0442\u0430\u043a \u0436\u0435 \u043b\u0435\u0433\u043a\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e, \u043a\u0430\u043a \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 markdown.<\/p>\n<p>  <\/p>\n<h2 id=\"yazyk-jsontree-vs-json\">\u042f\u0437\u044b\u043a json.tree vs JSON<\/h2>\n<p>  <\/p>\n<p>\u0410 <a href=\"https:\/\/github.com\/nin-jin\/tree.d\/wiki\/json.tree\" rel=\"nofollow\">json.tree<\/a> \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 json.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">* user *     name \\Jin     age 35     hobby \/         \\kendo          \\dance      home \\C:\\users\\jin\\<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"json\">{     &quot;user&quot;: {         &quot;name&quot;: &quot;Jin&quot;,         &quot;age&quot;: 35,         &quot;hobby&quot;: [             &quot;kendo &quot;,             &quot;dance &quot;,         ],         &quot;home&quot;: &quot;C:\\\\users\\\\jin\\\\&quot;     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u044c 2 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u2014 \u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439 \u0438 \u043a\u043e\u0441\u0430\u044f \u0447\u0435\u0440\u0442\u0430 \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"rasshireniya-jsontree\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f json.tree<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u043b\u0435\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 \u043a\u0430\u043a XML \u0438 Tree \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0445 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438 json, \u0438 tree \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438. \u041d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b. \u041a\u0430\u043a \u0436\u0435 \u0431\u044b\u0442\u044c?<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">*     # \\If disabled will be used platform specific delimiters     # \\CRLN on windows and LN on others     unix_delimiters true<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 tree \u043c\u044b \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0438 \u044f\u0437\u044b\u043a \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0443\u0437\u043b\u0430 \u0434\u043b\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">{     &quot;unix_delimiters#1&quot;: &quot;If disabled will be used platform specific delimiters&quot;,     &quot;unix_delimiters#2&quot;: &quot;CRLN on windows and LN on others&quot;,     &quot;unix_delimiters&quot;: true, }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 JSON \u0436\u0435 \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0441\u0442\u044b\u043b\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"yazyk-viewtree-vs-typescript\">\u042f\u0437\u044b\u043a view.tree vs TypeScript<\/h2>\n<p>  <\/p>\n<p>\u042f\u0437\u044b\u043a <a href=\"https:\/\/github.com\/eigenmethod\/mol\/tree\/master\/view#viewtree\" rel=\"nofollow\">view.tree<\/a> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 <a href=\"https:\/\/github.com\/nin-jin\/HabHub\/issues\/23\" rel=\"nofollow\">\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u043c \u043c\u043d\u043e\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 $mol<\/a>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">$my_details $mol_view     sub \/         &lt;= Pager $mol_paginator             value?val &lt;=&gt; page?val 0<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043b\u0430\u0434\u0435\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c \u0438 \u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u041c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 view.tree \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u044f\u0437\u044b\u043a json.tree \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439, \u0447\u0438\u0441\u0435\u043b \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 JSON \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0418\u0437 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0438 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0441\u0438\u0441\u0442\u044b\u0439 TypeScript \u043a\u043b\u0430\u0441\u0441. \u041f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0440\u0443\u043a\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u043c\u0443\u0442\u043e\u0440\u043d\u043e \u0438 \u0431\u0435\u0437 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">class $my_details extends $mol_view {      sub() { return [ this.Pager() ] }      @ $mol_mem Pager() {         const Pager = new $mol_paginator         Pager.value = val =&gt; this.page( val )         return Pager     }      @ $mol_mem page( val = 0 ) {         return val     }  }<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"api\">API<\/h1>\n<p>  <\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 API \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0424\u043e\u0440\u043c\u0430\u0442<\/th>\n<th>\u042f\u0437\u044b\u043a\u0438<\/th>\n<th><strong>API<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>XML<\/td>\n<td>XHTML, SVG, XSLT, &#8230;<\/td>\n<td>DOM, SAX, AST<\/td>\n<\/tr>\n<tr>\n<td>JSON<\/td>\n<td>JSON Schema, json:api, &#8230;<\/td>\n<td>Native, AST<\/td>\n<\/tr>\n<tr>\n<td>YAML<\/td>\n<td>yaml.org\/type<\/td>\n<td>Native, AST<\/td>\n<\/tr>\n<tr>\n<td>TOML<\/td>\n<td>&#8212;<\/td>\n<td>Native, AST<\/td>\n<\/tr>\n<tr>\n<td>Tree<\/td>\n<td>xml.tree, json.tree, &#8230;<\/td>\n<td>AST<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0414\u043b\u044f XML, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0433\u0438\u0431\u043a\u0438\u0439 DOM, \u0430 \u0435\u0441\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 SAX. \u0424\u043e\u0440\u043c\u0430\u0442\u044b, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u0435\u043c\u0443 \u043d\u0430 \u0441\u043c\u0435\u043d\u0443, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u0438, \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0438 \u0442\u0434. \u041f\u0440\u0430\u0432\u0434\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 JSON \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0433\u0434\u0435 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. \u041d\u0443 \u0438 \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0414\u0435\u0440\u0435\u0432\u0430. \u041f\u0440\u0430\u0432\u0434\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e\u0435. \u041c\u044b \u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u043c \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u043c, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043d\u0435 \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u0437\u043e\u043e\u043f\u0430\u0440\u043a \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 API.<\/p>\n<p>  <\/p>\n<h2 id=\"json-ast\">JSON AST<\/h2>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 JSON \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u0441\u0443\u043d\u0435\u043c \u0435\u0433\u043e \u0432 <a href=\"https:\/\/astexplorer.net\/\" rel=\"nofollow\">ASTExplorer<\/a>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">{   &quot;user&quot;: {} }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">{     &quot;type&quot; : &quot;Object&quot;,     &quot;children&quot; : [         {             &quot;type&quot; : &quot;Property&quot;,             &quot;key&quot; : {                 &quot;type&quot;: &quot;Identifier&quot;,                 &quot;value&quot;: &quot;user&quot;             }             &quot;value&quot;: {                 &quot;type&quot;: &quot;Object&quot;,                 &quot;children&quot;: []             }         }     ] }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, AST \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c. JSON \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f AST. \u0411\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>  <\/p>\n<h2 id=\"ast-tree\">AST Tree<\/h2>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 tree \u0444\u0430\u0439\u043b.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">user     name \\Jin     age 35     hobby         \\kendo          \\dance          \\role play <\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0435\u0433\u043e AST.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">user     name \\Jin     age 35     hobby         \\kendo          \\dance          \\role play <\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a, \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u042d\u0442\u043e \u0436\u0435 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0434. \u0410, \u043d\u0435\u0442, \u0432\u0441\u0451 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, tree \u2014 \u0441\u0430\u043c \u0441\u0435\u0431\u0435 AST.<\/p>\n<p>  <\/p>\n<h2 id=\"svoystva-uzla-tree\">\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0443\u0437\u043b\u0430 Tree<\/h2>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 TypeScript \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">interface $mol_tree2 {     type: string     value: string     kids: $mol_tree2[]     span: $mol_span }<\/code><\/pre>\n<p>  <\/p>\n<p>Span \u2014 \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0438\u044e \u0431\u0430\u0439\u0442 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">interface $mol_span {     uri: string     row: number     col: number     length: number }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"proizvodnye-tree-uzly\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 Tree \u0443\u0437\u043b\u044b<\/h2>\n<p>  <\/p>\n<p>\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0443\u0437\u043b\u043e\u0432, \u043d\u0430 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435. \u042d\u0442\u0438 \u0444\u0430\u0431\u0440\u0438\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043d\u043e\u0432\u044b\u0435 \u0443\u0437\u043b\u044b, \u043f\u0440\u043e\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432 \u043d\u0438\u0445 span \u043e\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e\u043d\u044f\u0442\u044c \u0441 \u0447\u0435\u0433\u043e \u0432\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">interface $mol_tree2 {     struct : ( type , kids )=&gt; $mol_tree2     data : ( value , kids )=&gt; $mol_tree2     list : ( kids )=&gt; $mol_tree2     clone : ( kids )=&gt; $mol_tree2 }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"soobscheniya-ob-oshibkah-v-tree\">\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0432 Tree<\/h2>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043a\u043e\u043d\u0444\u0438\u0433, \u043d\u0430\u0439\u0434\u0451\u043c \u0432 \u043d\u0451\u043c \u043f\u0430\u0440\u043e\u043b\u044c \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442 \u2014 \u043a\u0438\u043d\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043a\u0430\u043a\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043a\u0430\u043a\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">const config_path = '.\/config.tree' const config_text = fs.readFileSync( config_path ) const config = $mol_tree2.fromString( config_text , config_path ) \/\/  server auth \/\/      login \\root \/\/      password \\qwerty  const password = config.select( 'server' , 'auth' , 'password' , '' )  if( !auth( password.text() ) ) {     \/\/ AuthError: Wrong password     \/\/ \\default     \/\/ .\/config.tree#5:3-11     throw password.error( 'Wrong password' , AuthError ) }<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"obrabotka-tree\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 Tree<\/h1>\n<p>  <\/p>\n<p>\u0418\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e &quot;auth&quot; \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 &quot;credentials&quot;. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\/\/  server credentials \/\/      login \\root \/\/      password \\qwerty const new_config = config.list(     input.hack({          'auth' : ( tree , context )=&gt; [             tree.struct( 'credentials' , tree.hack( context ) ),         ] ,          '' : ( tree , context )=&gt; [             tree.clone( tree.hack( context ) ),         ] ,      }) ) fs.writeFileSync( config_path , new_config )<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u044f\u0437\u044b\u043a\u0438, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 tree \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0431\u0435\u0437 \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0443 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 AST.<\/p>\n<p>  <\/p>\n<h1 id=\"podderzhka-redaktorami\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u043c\u0438<\/h1>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/nin-jin\/vscode-language-tree\" rel=\"nofollow\">VSCode<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nin-jin\/atom-language-tree\" rel=\"nofollow\">Atom<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/yurybikuzin\/Smol-sublime\" rel=\"nofollow\">Sublime<\/a><\/li>\n<li><a href=\"http:\/\/www.uvviewsoft.com\/synwrite\/\" rel=\"nofollow\">SynWrite<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0435\u0449\u0451 \u043d\u0435\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u0442\u043e \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430. <\/p>\n<p>  <\/p>\n<h1 id=\"podderzhka-yazykami\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u044f\u0437\u044b\u043a\u0430\u043c\u0438<\/h1>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/eigenmethod\/mol\/tree\/master\/tree2\" rel=\"nofollow\">TypeScript<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nin-jin\/tree.d\" rel=\"nofollow\">D<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u044e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 \u0441\u0432\u043e\u0451\u043c \u043b\u044e\u0431\u0438\u043c\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0439.<\/p>\n<p>  <\/p>\n<h1 id=\"itogi\">\u0418\u0442\u043e\u0433\u0438<\/h1>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>XML<\/th>\n<th>JSON<\/th>\n<th>YAML<\/th>\n<th>TOML<\/th>\n<th>Tree<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0420\u0430\u0437\u043c\u0435\u0440<\/td>\n<td>195%<\/td>\n<td>140%<\/td>\n<td>125%<\/td>\n<td>110%<\/td>\n<td><strong>100%<\/strong><\/td>\n<\/tr>\n<tr>\n<td>\u0427\u0438\u0441\u043b\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432<\/td>\n<td>90<\/td>\n<td>30<\/td>\n<td>210<\/td>\n<td>90<\/td>\n<td><strong>10<\/strong><\/td>\n<\/tr>\n<tr>\n<td>\u041e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u0423\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u0422\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0443\u0437\u043b\u043e\u0432<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>+<\/td>\n<\/tr>\n<tr>\n<td>\u0428\u0438\u0440\u043e\u043a\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0441\u0442\u044c<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>+<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h1 id=\"idei\">\u0418\u0434\u0435\u0438<\/h1>\n<p>  <\/p>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0444\u0430\u043d\u0442\u0430\u0437\u0438\u0440\u0443\u0435\u043c, \u0447\u0435\u0433\u043e \u0435\u0449\u0451 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f tree \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0417\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0421\u0423\u0411\u0414<\/li>\n<li>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/li>\n<li>\u041e\u0431\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442<\/li>\n<li>LISP-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u044f\u0437\u044b\u043a<\/li>\n<li>\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 AST<\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"sqltree---zaprosy-k-subd\">sql.tree \u2014 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0421\u0423\u0411\u0414<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u043c\u043d\u0438\u0442\u0435 \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a MongoDB? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 SQL:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">select     from $users     fetch         @name         @phone         @photo *             @uri             @width             @height     where or         and             @sex = female             @age &gt; 16         @hobby ~ \\\\b(?:java|type)script\\b<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u2014 \u043f\u043b\u0451\u0432\u043e\u0435 \u0434\u0435\u043b\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 <a href=\"https:\/\/github.com\/mozilla\/moz-sql-parser\/blob\/dev\/moz_sql_parser\/sql_parser.py\" rel=\"nofollow\">\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e SQL<\/a>. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430 \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u0432 &quot;\u0440\u0430\u0432\u043d\u043e&quot;, &quot;\u0431\u043e\u043b\u044c\u0448\u0435&quot; \u0438 \u0434\u0430\u0436\u0435 &quot;\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0435&quot;. \u041a\u0441\u0442\u0430\u0442\u0438, \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0443 \u0432\u0435\u0434\u044c \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 tree, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0451 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">select     from $users     fetch *     where @hobby ~          word-edge         or             \\java             \\type         \\script         word-edge<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"domaintree---opisanie-domena\">domain.tree \u2014 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430<\/h2>\n<p>  <\/p>\n<p>\u0420\u0430\u0437 \u0443\u0436 \u043c\u044b \u0437\u0430\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">hyoo_api_person     descr \\\u0416\u0438\u0432\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u0430     inherit hyoo_api_entity     field         id             descr \\\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440             example \\person=jin             key unique             type text             edit author         avatar             descr \\\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0430\u0432\u0430\u0442\u0430\u0440\u044b             type list hyoo_api_image             edit author         mail             descr \\\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u0439\u043b\u044b             type set hyoo_api_mail<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0437 \u0442\u0430\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 API, \u043f\u0440\u0430\u0432\u0438\u043b\u0430 ACL, \u0441\u0445\u0435\u043c\u0430 \u0421\u0423\u0411\u0414 \u0438 \u0430\u0434\u043c\u0438\u043d\u043a\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u043e\u043c.<\/p>\n<p>  <\/p>\n<h2 id=\"logi\">\u041b\u043e\u0433\u0438<\/h2>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043b\u043e\u0433\u0438 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u041f\u043e\u043a\u0430 \u043e\u043d\u0438 \u0432\u043b\u0435\u0437\u0430\u044e\u0442 \u043f\u043e \u0448\u0438\u0440\u0438\u043d\u0435 \u0432 \u0432\u0430\u0448 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u2014 \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0434\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f. \u041a\u0443\u0434\u0430 \u0447\u0430\u0449\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u0451 \u0436\u0435 \u043d\u0435 \u0432\u043b\u0435\u0437\u0430\u044e\u0442 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044f \u043f\u043e\u0442\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u043c\u0435\u0441\u0438\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u0434\u0430 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u2014 \u0431\u043e\u043b\u044c \u0438 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dk\/ix\/rf\/dkixrfhqx6rbmtqrhocbwws-hz0.png\"><\/p>\n<p>  <\/p>\n<h2 id=\"accesslogtree---strukturirovannye-logi\">access.log.tree \u2014 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u0433\u0438<\/h2>\n<p>  <\/p>\n<p>\u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438 \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u043c \u043a\u0430\u043a \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438, \u0442\u0430\u043a \u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c?<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">193.34.12.132 - - [2011-10-20T12:46:08+04:00] GET \/nin-jin\/slides\/edit\/master\/t ree\/readme.md HTTP\/1.1 200 4435 193.34.12.132 - - [2011-10-20T12:46:09+04:00] GET \/nin-jin\/slides\/edit\/master\/t ree\/readme.html HTTP\/1.1 404 4435  access     ip \\193.34.12.132     time \\2011-10-20T12:46:08+04:00     method \\GET     uri \\\/nin-jin\/slides\/edit\/master\/tree\/readme.md     protocol \\HTTP\/1.1     response \\200     size \\4435<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"tree-tools---cli-utility-obrabotki-derevev\">tree-tools \u2014 CLI \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432<\/h2>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043b\u043e\u0433\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u043c \u043b\u043e\u0433, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u043b\u0435\u0439, \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043b\u0438\u0448\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043b\u044f \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u043e\u0439.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">&gt; cat access.log.tree | pick ip time method uri | table  \\193.34.12.132  2011-10-20T12:46:08+04:00   GET \/index.html \\193.34.12.132  2011-10-20T12:46:10+04:00   GET \/index.css \\193.34.12.132  2011-10-20T12:46:20+04:00   GET \/index.js  &gt; cat access.log.tree | filter time &gt;= 2019-09 | pick ip uri | table  \\193.34.12.132  \/index.html \\193.34.12.132  \/index.css \\193.34.12.132  \/index.js<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/hyoo-ru\/mill\/\" rel=\"nofollow\">\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0442\u0430\u043a\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0438\u043d\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043b\u043e\u0433\u043e\u0432 \u0434\u0435\u0432-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0411\u0443\u0434\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u043d\u043e, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0432\u043e\u0437\u044c\u043c\u0451\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f. \u0410 \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u0442\u043e\u0433\u0434\u0430 \u0438 \u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e\u0444\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u043d\u0435 \u043a\u0430\u043a \u043f\u043e\u043f\u0430\u043b\u043e, \u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e. <\/p>\n<p>  <\/p>\n<h2 id=\"tree-kak-protokol-obscheniya\">tree \u043a\u0430\u043a \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 tree, \u0430 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0438\u0434\u0435\u044e, \u0447\u0442\u043e \u0432\u044b\u0432\u043e\u0434 \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u0423 \u043c\u043d\u043e\u0433\u0438\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0435\u0441\u0442\u044c \u0444\u043b\u0430\u0433\u0438 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 JSON \u0438\u043b\u0438 XML, \u043d\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u043d\u0430\u043f\u0440\u044f\u0436\u043d\u043e \u2014 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0430\u0447\u0443 \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0438 \u043a\u0430\u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u0441\u0442\u0443\u043f\u0438\u0442\u044c\u0441\u044f. \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435 \u043c\u0438\u0440, \u0433\u0434\u0435 \u0432\u044b\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u0442\u0443\u0442 \u0436\u0435 \u043a\u0430\u043a-\u0442\u043e \u0435\u0451 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0435 \u043a\u043e\u0432\u044b\u0440\u044f\u044f \u043c\u0430\u043d\u044b \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043d\u0443\u0436\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">&gt; git log  commit     message \\$mol_style: TS@3.9 compatibility     sha \\b1a8f07c839604d0d34430a186246f0c1f71e628     date \\2020-05-15T23:24:32+0300     author \\nin-jin &lt;sairi-na-tenshi@ya.ru&gt; commit     message \\$mol_regexp: concurent parse ability     sha \\be1abfa50542728dd5c156517ea31f469e7fb4d4     date \\2020-05-15T23:03:30+0300     author \\nin-jin &lt;nin-jin@ya.ru&gt;  &gt; git log | pick date message | table  \\2020-05-15T23:24:32+0300   $mol_style: TS@3.9 compatibility \\2020-05-15T23:03:30+0300   $mol_regexp: concurent parse ability<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"wat\">WAT<\/h2>\n<p>  <\/p>\n<p>WebAssembly \u2014 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440, \u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u043c\u0430\u0448\u0438\u043d\u0435 \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u043e\u0440\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043b\u0438\u0441\u043f\u043e\u0432\u044b\u0445 s-expressions.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">(func $fact (param $x i64) (result i64)     (if $x (result i64)        (i64.eqz         (local.get $x))        (then         (i64.const 1))       (else         (i64.mul           (local.get $x)           (call $fact                   (i64.sub               (local.get $x)               (i64.const 1)))))))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0439. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043a\u043e\u0434 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0438 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0435\u0432\u0442\u0443\u043b\u0437\u0430\u0445.<\/p>\n<p>  <\/p>\n<h2 id=\"wasmtree---assembler-bez-mishury\">wasm.tree \u2014 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0431\u0435\u0437 \u043c\u0438\u0448\u0443\u0440\u044b<\/h2>\n<p>  <\/p>\n<p>\u042f \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u043d\u0430\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0432 \u0431\u0430\u0439\u0442 \u043a\u043e\u0434\u044b \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0433\u043e wasm.tree \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">func     name $fact     param $x i64     result i64     body switch         test i64.eqz local.get $x         then i64.const 1         else i64.mul             local.get $x             call $fact i64.sub                 local.get $x                 64.const 1<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 <a href=\"https:\/\/github.com\/nin-jin\/tree.d\/wiki\/bin.tree\" rel=\"nofollow\">bin.tree<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043f\u0435\u0440\u0435\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">00 61 73 6d 01 00 00 00 . . .<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u043e\u0435 \u2014 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043f\u0440\u043e\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 WAT2.0. \u041a\u043e\u043c\u0443 \u043d\u0435 \u0431\u0435\u0437\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0430 \u0441\u0443\u0434\u044c\u0431\u0430 WebAssembly \u2014 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435.<\/p>\n<p>  <\/p>\n<h2 id=\"jacktree---lisp-bez-skobochek\">jack.tree \u2014 LISP \u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u0447\u0435\u043a<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u0441\u044b\u0440\u043e\u043c \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0438\u0434\u0451\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u0430-\u044f\u0437\u044b\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u044f\u0437\u044b\u043a \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u044f\u0437\u044b\u043a\u0430. \u042f\u0434\u0440\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u043c, \u0430 \u0432\u0441\u0435 \u0438\u0434\u0438\u043e\u043c\u044b \u0432 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044d\u0442\u043e\u043c \u0436\u0435 \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">jack     import wasm     tree func $fact         &gt; $x #8         &lt; #8 switch             test is-zero $x             then #8 1             else mul                 $x                 $fact sub                     $x                     #8 1<\/code><\/pre>\n<p>  <\/p>\n<p>\u0413\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 AST \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f wasm-\u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a. \u0417\u0432\u0443\u0447\u0438\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0443\u0433\u0430\u044e\u0449\u0435, \u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e tree \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432, \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0440\u0443\u0434\u0430. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043a\u0443\u0446\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/github.com\/eigenmethod\/mol\/tree\/master\/jack\" rel=\"nofollow\">$mol_jack<\/a><\/p>\n<p>  <\/p>\n<h1 id=\"uprazdnyaya-llvm\">\u0423\u043f\u0440\u0430\u0437\u0434\u043d\u044f\u044f LLVM<\/h1>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u0435\u0449\u0451 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 wasm \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u044b, \u0430 \u043f\u0440\u044f\u043c\u043e \u0442\u0430\u043a\u0438 \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u044b \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440 \u0432 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">compile pipelines:                  jack.tree =&gt; wasm.tree =============&gt; bin.tree                 jack.tree =&gt; wasm.tree =&gt; arm.tree =&gt; bin.tree any-dsl.tree =&gt; jack.tree =&gt; wasm.tree =&gt; arm.tree =&gt; bin.tree<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">optimization midlewares:  jack.tree =&gt; jack.tree wasm.tree =&gt; wasm.tree arm.tree =&gt; arm.tree<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u043c\u044b \u043d\u0435 \u0442\u0435\u0440\u044f\u0435\u043c \u0441\u0432\u044f\u0437\u044c \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0410 \u043b\u044e\u0431\u043e\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 AST \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0434\u0430\u043c\u043f\u0438\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442 \u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 tree \u0444\u043e\u0440\u043c\u0430\u0442\u0430.<\/p>\n<p>  <\/p>\n<p>\u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043a\u0440\u0443\u0442\u0430\u044f \u0448\u0442\u0443\u043a\u0430 \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 LLVM.<\/p>\n<p>  <\/p>\n<h2 id=\"edinyy-ast-chtoby-pravit-vsemi\">\u0415\u0434\u0438\u043d\u044b\u0439 AST \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435\u043c\u0438<\/h2>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u043c\u044b\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430. Tree \u2014 \u044d\u0442\u043e \u043f\u0440\u044f\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0435\u0433\u043e AST. \u0412\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043a\u0430\u043a\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u043f\u0443\u0441\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 TypeScript \u043a\u043e\u0434 \u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0434\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0431\u0430\u043d\u0434\u043b\u0430 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043d\u0430 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">code =(P)=&gt; loader =(P)=&gt; compiler =(SP)=&gt; bundler =(SP)=&gt; terser =(S)=&gt; bundle  P - Parse S - Serialize<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0430\u0440\u0441\u0438\u0442 \u0432\u0430\u0448\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0432 \u0441\u0432\u043e\u0451 AST, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442, \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0434\u0430\u043b\u0435\u0435. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f \u043e \u0435\u0434\u0438\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 AST, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0443\u0442\u0438\u043b\u0438\u0442 \u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">code =(P)=&gt; loader =====&gt; compiler ======&gt; bundler ======&gt; terser =(S)=&gt; bundle<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0447\u0430\u0441\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445 (\u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u0430), \u0444\u043e\u0440\u043c\u0430\u0442 tree \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c AST \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e, \u0437\u0430 \u0441\u0447\u0451\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<p>  <\/p>\n<h1 id=\"kuda-poyti-kuda-podatsya\">\u041a\u0443\u0434\u0430 \u043f\u043e\u0439\u0442\u0438, \u043a\u0443\u0434\u0430 \u043f\u043e\u0434\u0430\u0442\u044c\u0441\u044f<\/h1>\n<p>  <\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0440\u0430\u0437\u0438\u0442\u044c \u0432\u0430\u0441 \u0438\u0434\u0435\u044f\u043c\u0438 \u043e \u0441\u0432\u0435\u0442\u043b\u043e\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u043d\u0430\u0434\u043e \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041e\u0434\u0438\u043d \u044f, \u0431\u043e\u044e\u0441\u044c, \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0435 \u0432\u044b\u0442\u044f\u043d\u0443. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0438\u0448\u0438\u0442\u0435, \u0437\u043e\u0432\u0438\u0442\u0435 \u0438 \u043d\u0435 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0439\u0442\u0435.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u042d\u0442\u0438 \u0441\u043b\u0430\u0439\u0434\u044b: <a href=\"https:\/\/github.com\/nin-jin\/slides\/tree\/master\/tree\" rel=\"nofollow\">nin-jin\/slides\/tree<\/a><\/li>\n<li>\u0412\u0441\u0451 \u043e Tree: <a href=\"https:\/\/github.com\/nin-jin\/tree.d\" rel=\"nofollow\">nin-jin\/tree.d<\/a><\/li>\n<li>\u0427\u0430\u0442 \u043e \u044f\u0437\u044b\u043a\u0430\u0445: <a href=\"https:\/\/teleg.run\/lang_idioms\" rel=\"nofollow\">lang_idioms<\/a><\/li>\n<li>\u0421\u0432\u044f\u0437\u044c \u0441\u043e \u043c\u043d\u043e\u0439: <a href=\"https:\/\/teleg.run\/nin_jin\" rel=\"nofollow\">lang_idioms<\/a><\/li>\n<\/ul>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/503240\/\"> https:\/\/habr.com\/ru\/post\/503240\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/503240\/\">\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u0430\u0440\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0438 \u044f\u2026 \u0440\u0430\u0441\u0441\u0435\u043a\u0430\u044e \u043d\u0430 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0430\u0445\u2026 \u043f\u043e \u0431\u0435\u0437\u0434\u043e\u0440\u043e\u0436\u044c\u044e\u2026 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430\u2026 \u0432 \u0433\u043e\u0440\u0443\u2026 \u043d\u0430 \u043b\u044b\u0436\u0430\u0445. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0432\u0430\u0441 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u043c\u043d\u043e\u0439 \u0432\u0434\u043e\u043b\u044c \u0438 \u043f\u043e\u043f\u0435\u0440\u0451\u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<p>  <\/p>\n<p>\u042f \u0443\u0436\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/248147\/\">\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e \u043d\u0451\u043c<\/a> 5 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0436\u0430\u0440\u043a\u0438\u043c \u0434\u0435\u0431\u0430\u0442\u0430\u043c, \u043f\u043e\u0432\u043b\u0451\u043a\u0448\u0438\u043c \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0441 \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u043b\u0438\u0441\u0442\u0430 \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\u0421\u043f\u0438\u043a\u0435\u0440 \\\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u0430\u0440\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u041c\u0435\u0441\u0442\u043e \\PiterJS #47 \u0412\u0440\u0435\u043c\u044f 2020-05-20<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 <a href=\"https:\/\/medium.com\/piterjs\/%D0%B0%D0%BD%D0%BE%D0%BD%D1%81-piterjs-47-cf7cb666834a\" rel=\"nofollow\">PiterJS#47<\/a>. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"https:\/\/github.com\/nin-jin\/slides\/blob\/master\/tree\/readme.md\" rel=\"nofollow\">\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0451 \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u043b\u0438\u0431\u043e <a href=\"https:\/\/nin-jin.github.io\/slides\/tree\/\" rel=\"nofollow\">\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0439<\/a>, \u043b\u0438\u0431\u043e <a href=\"https:\/\/youtu.be\/pev6g_oysUs?t=5518\" rel=\"nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e<\/a>.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-304044","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=304044"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304044\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}