/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(self["webpackChunkbrowser_esm_webpack"] = self["webpackChunkbrowser_esm_webpack"] || []).push([["vendors-node_modules_monaco-editor_esm_vs_basic-languages_twig_twig_js"],{

/***/ "./node_modules/monaco-editor/esm/vs/basic-languages/twig/twig.js":
/*!************************************************************************!*\
  !*** ./node_modules/monaco-editor/esm/vs/basic-languages/twig/twig.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"conf\": () => (/* binding */ conf),\n/* harmony export */   \"language\": () => (/* binding */ language)\n/* harmony export */ });\n/*---------------------------------------------------------------------------------------------\r\n *  Copyright (c) Microsoft Corporation. All rights reserved.\r\n *  Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nvar conf = {\r\n    wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,\r\n    comments: {\r\n        blockComment: ['{#', '#}']\r\n    },\r\n    brackets: [\r\n        ['{#', '#}'],\r\n        ['{%', '%}'],\r\n        ['{{', '}}'],\r\n        ['(', ')'],\r\n        ['[', ']'],\r\n        // HTML\r\n        ['<!--', '-->'],\r\n        ['<', '>']\r\n    ],\r\n    autoClosingPairs: [\r\n        { open: '{# ', close: ' #}' },\r\n        { open: '{% ', close: ' %}' },\r\n        { open: '{{ ', close: ' }}' },\r\n        { open: '[', close: ']' },\r\n        { open: '(', close: ')' },\r\n        { open: '\"', close: '\"' },\r\n        { open: \"'\", close: \"'\" }\r\n    ],\r\n    surroundingPairs: [\r\n        { open: '\"', close: '\"' },\r\n        { open: \"'\", close: \"'\" },\r\n        // HTML\r\n        { open: '<', close: '>' }\r\n    ]\r\n};\r\nvar language = {\r\n    defaultToken: '',\r\n    tokenPostfix: '',\r\n    ignoreCase: true,\r\n    keywords: [\r\n        // (opening) tags\r\n        'apply',\r\n        'autoescape',\r\n        'block',\r\n        'deprecated',\r\n        'do',\r\n        'embed',\r\n        'extends',\r\n        'flush',\r\n        'for',\r\n        'from',\r\n        'if',\r\n        'import',\r\n        'include',\r\n        'macro',\r\n        'sandbox',\r\n        'set',\r\n        'use',\r\n        'verbatim',\r\n        'with',\r\n        // closing tags\r\n        'endapply',\r\n        'endautoescape',\r\n        'endblock',\r\n        'endembed',\r\n        'endfor',\r\n        'endif',\r\n        'endmacro',\r\n        'endsandbox',\r\n        'endset',\r\n        'endwith',\r\n        // literals\r\n        'true',\r\n        'false'\r\n    ],\r\n    tokenizer: {\r\n        root: [\r\n            // whitespace\r\n            [/\\s+/],\r\n            // Twig Tag Delimiters\r\n            [/{#/, 'comment.twig', '@commentState'],\r\n            [/{%[-~]?/, 'delimiter.twig', '@blockState'],\r\n            [/{{[-~]?/, 'delimiter.twig', '@variableState'],\r\n            // HTML\r\n            [/<!DOCTYPE/, 'metatag.html', '@doctype'],\r\n            [/<!--/, 'comment.html', '@comment'],\r\n            [\r\n                /(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,\r\n                ['delimiter.html', 'tag.html', '', 'delimiter.html']\r\n            ],\r\n            [/(<)(script)/, ['delimiter.html', { token: 'tag.html', next: '@script' }]],\r\n            [/(<)(style)/, ['delimiter.html', { token: 'tag.html', next: '@style' }]],\r\n            [\r\n                /(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,\r\n                ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]\r\n            ],\r\n            [\r\n                /(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,\r\n                ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]\r\n            ],\r\n            [/</, 'delimiter.html'],\r\n            [/[^<]+/] // text\r\n        ],\r\n        /**\r\n         * Comment Tag Handling\r\n         */\r\n        commentState: [\r\n            [/#}/, 'comment.twig', '@pop'],\r\n            [/./, 'comment.twig']\r\n        ],\r\n        /**\r\n         * Block Tag Handling\r\n         */\r\n        blockState: [\r\n            [/[-~]?%}/, 'delimiter.twig', '@pop'],\r\n            // whitespace\r\n            [/\\s+/],\r\n            // verbatim\r\n            // Unlike other blocks, verbatim ehas its own state\r\n            // transition to ensure we mark its contents as strings.\r\n            [\r\n                /(verbatim)(\\s*)([-~]?%})/,\r\n                ['keyword.twig', '', { token: 'delimiter.twig', next: '@rawDataState' }]\r\n            ],\r\n            { include: 'expression' }\r\n        ],\r\n        rawDataState: [\r\n            // endverbatim\r\n            [\r\n                /({%[-~]?)(\\s*)(endverbatim)(\\s*)([-~]?%})/,\r\n                [\r\n                    'delimiter.twig',\r\n                    '',\r\n                    'keyword.twig',\r\n                    '',\r\n                    { token: 'delimiter.twig', next: '@popall' }\r\n                ]\r\n            ],\r\n            [/./, 'string.twig']\r\n        ],\r\n        /**\r\n         * Variable Tag Handling\r\n         */\r\n        variableState: [[/[-~]?}}/, 'delimiter.twig', '@pop'], { include: 'expression' }],\r\n        stringState: [\r\n            // closing double quoted string\r\n            [/\"/, 'string.twig', '@pop'],\r\n            // interpolation start\r\n            [/#{\\s*/, 'string.twig', '@interpolationState'],\r\n            // string part\r\n            [/[^#\"\\\\]*(?:(?:\\\\.|#(?!\\{))[^#\"\\\\]*)*/, 'string.twig']\r\n        ],\r\n        interpolationState: [\r\n            // interpolation end\r\n            [/}/, 'string.twig', '@pop'],\r\n            { include: 'expression' }\r\n        ],\r\n        /**\r\n         * Expression Handling\r\n         */\r\n        expression: [\r\n            // whitespace\r\n            [/\\s+/],\r\n            // operators - math\r\n            [/\\+|-|\\/{1,2}|%|\\*{1,2}/, 'operators.twig'],\r\n            // operators - logic\r\n            [/(and|or|not|b-and|b-xor|b-or)(\\s+)/, ['operators.twig', '']],\r\n            // operators - comparison (symbols)\r\n            [/==|!=|<|>|>=|<=/, 'operators.twig'],\r\n            // operators - comparison (words)\r\n            [/(starts with|ends with|matches)(\\s+)/, ['operators.twig', '']],\r\n            // operators - containment\r\n            [/(in)(\\s+)/, ['operators.twig', '']],\r\n            // operators - test\r\n            [/(is)(\\s+)/, ['operators.twig', '']],\r\n            // operators - misc\r\n            [/\\||~|:|\\.{1,2}|\\?{1,2}/, 'operators.twig'],\r\n            // names\r\n            [\r\n                /[^\\W\\d][\\w]*/,\r\n                {\r\n                    cases: {\r\n                        '@keywords': 'keyword.twig',\r\n                        '@default': 'variable.twig'\r\n                    }\r\n                }\r\n            ],\r\n            // numbers\r\n            [/\\d+(\\.\\d+)?/, 'number.twig'],\r\n            // punctuation\r\n            [/\\(|\\)|\\[|\\]|{|}|,/, 'delimiter.twig'],\r\n            // strings\r\n            [/\"([^#\"\\\\]*(?:\\\\.[^#\"\\\\]*)*)\"|\\'([^\\'\\\\]*(?:\\\\.[^\\'\\\\]*)*)\\'/, 'string.twig'],\r\n            // opening double quoted string\r\n            [/\"/, 'string.twig', '@stringState'],\r\n            // misc syntactic constructs\r\n            // These are not operators per se, but for the purposes of lexical analysis we\r\n            // can treat them as such.\r\n            // arrow functions\r\n            [/=>/, 'operators.twig'],\r\n            // assignment\r\n            [/=/, 'operators.twig']\r\n        ],\r\n        /**\r\n         * HTML\r\n         */\r\n        doctype: [\r\n            [/[^>]+/, 'metatag.content.html'],\r\n            [/>/, 'metatag.html', '@pop']\r\n        ],\r\n        comment: [\r\n            [/-->/, 'comment.html', '@pop'],\r\n            [/[^-]+/, 'comment.content.html'],\r\n            [/./, 'comment.content.html']\r\n        ],\r\n        otherTag: [\r\n            [/\\/?>/, 'delimiter.html', '@pop'],\r\n            [/\"([^\"]*)\"/, 'attribute.value.html'],\r\n            [/'([^']*)'/, 'attribute.value.html'],\r\n            [/[\\w\\-]+/, 'attribute.name.html'],\r\n            [/=/, 'delimiter.html'],\r\n            [/[ \\t\\r\\n]+/] // whitespace\r\n        ],\r\n        // -- BEGIN <script> tags handling\r\n        // After <script\r\n        script: [\r\n            [/type/, 'attribute.name.html', '@scriptAfterType'],\r\n            [/\"([^\"]*)\"/, 'attribute.value.html'],\r\n            [/'([^']*)'/, 'attribute.value.html'],\r\n            [/[\\w\\-]+/, 'attribute.name.html'],\r\n            [/=/, 'delimiter.html'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded',\r\n                    nextEmbedded: 'text/javascript'\r\n                }\r\n            ],\r\n            [/[ \\t\\r\\n]+/],\r\n            [\r\n                /(<\\/)(script\\s*)(>)/,\r\n                ['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }]\r\n            ]\r\n        ],\r\n        // After <script ... type\r\n        scriptAfterType: [\r\n            [/=/, 'delimiter.html', '@scriptAfterTypeEquals'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded',\r\n                    nextEmbedded: 'text/javascript'\r\n                }\r\n            ],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/script\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        // After <script ... type =\r\n        scriptAfterTypeEquals: [\r\n            [\r\n                /\"([^\"]*)\"/,\r\n                {\r\n                    token: 'attribute.value.html',\r\n                    switchTo: '@scriptWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                /'([^']*)'/,\r\n                {\r\n                    token: 'attribute.value.html',\r\n                    switchTo: '@scriptWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded',\r\n                    nextEmbedded: 'text/javascript'\r\n                }\r\n            ],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/script\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        // After <script ... type = $S2\r\n        scriptWithCustomType: [\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded.$S2',\r\n                    nextEmbedded: '$S2'\r\n                }\r\n            ],\r\n            [/\"([^\"]*)\"/, 'attribute.value.html'],\r\n            [/'([^']*)'/, 'attribute.value.html'],\r\n            [/[\\w\\-]+/, 'attribute.name.html'],\r\n            [/=/, 'delimiter.html'],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/script\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        scriptEmbedded: [\r\n            [/<\\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],\r\n            [/[^<]+/, '']\r\n        ],\r\n        // -- END <script> tags handling\r\n        // -- BEGIN <style> tags handling\r\n        // After <style\r\n        style: [\r\n            [/type/, 'attribute.name.html', '@styleAfterType'],\r\n            [/\"([^\"]*)\"/, 'attribute.value.html'],\r\n            [/'([^']*)'/, 'attribute.value.html'],\r\n            [/[\\w\\-]+/, 'attribute.name.html'],\r\n            [/=/, 'delimiter.html'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded',\r\n                    nextEmbedded: 'text/css'\r\n                }\r\n            ],\r\n            [/[ \\t\\r\\n]+/],\r\n            [\r\n                /(<\\/)(style\\s*)(>)/,\r\n                ['delimiter.html', 'tag.html', { token: 'delimiter.html', next: '@pop' }]\r\n            ]\r\n        ],\r\n        // After <style ... type\r\n        styleAfterType: [\r\n            [/=/, 'delimiter.html', '@styleAfterTypeEquals'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded',\r\n                    nextEmbedded: 'text/css'\r\n                }\r\n            ],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/style\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        // After <style ... type =\r\n        styleAfterTypeEquals: [\r\n            [\r\n                /\"([^\"]*)\"/,\r\n                {\r\n                    token: 'attribute.value.html',\r\n                    switchTo: '@styleWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                /'([^']*)'/,\r\n                {\r\n                    token: 'attribute.value.html',\r\n                    switchTo: '@styleWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded',\r\n                    nextEmbedded: 'text/css'\r\n                }\r\n            ],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/style\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        // After <style ... type = $S2\r\n        styleWithCustomType: [\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded.$S2',\r\n                    nextEmbedded: '$S2'\r\n                }\r\n            ],\r\n            [/\"([^\"]*)\"/, 'attribute.value.html'],\r\n            [/'([^']*)'/, 'attribute.value.html'],\r\n            [/[\\w\\-]+/, 'attribute.name.html'],\r\n            [/=/, 'delimiter.html'],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/style\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        styleEmbedded: [\r\n            [/<\\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],\r\n            [/[^<]+/, '']\r\n        ]\r\n    }\r\n};\r\n\n\n//# sourceURL=webpack://browser-esm-webpack/./node_modules/monaco-editor/esm/vs/basic-languages/twig/twig.js?");

/***/ })

}]);