/*
 * 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_php_php_js"],{

/***/ "./node_modules/monaco-editor/esm/vs/basic-languages/php/php.js":
/*!**********************************************************************!*\
  !*** ./node_modules/monaco-editor/esm/vs/basic-languages/php/php.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        lineComment: '//',\r\n        blockComment: ['/*', '*/']\r\n    },\r\n    brackets: [\r\n        ['{', '}'],\r\n        ['[', ']'],\r\n        ['(', ')']\r\n    ],\r\n    autoClosingPairs: [\r\n        { open: '{', close: '}', notIn: ['string'] },\r\n        { open: '[', close: ']', notIn: ['string'] },\r\n        { open: '(', close: ')', notIn: ['string'] },\r\n        { open: '\"', close: '\"', notIn: ['string'] },\r\n        { open: \"'\", close: \"'\", notIn: ['string', 'comment'] }\r\n    ],\r\n    folding: {\r\n        markers: {\r\n            start: new RegExp('^\\\\s*(#|//)region\\\\b'),\r\n            end: new RegExp('^\\\\s*(#|//)endregion\\\\b')\r\n        }\r\n    }\r\n};\r\nvar language = {\r\n    defaultToken: '',\r\n    tokenPostfix: '',\r\n    // ignoreCase: true,\r\n    // The main tokenizer for our languages\r\n    tokenizer: {\r\n        root: [\r\n            [/<\\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.root' }],\r\n            [/<!DOCTYPE/, 'metatag.html', '@doctype'],\r\n            [/<!--/, 'comment.html', '@comment'],\r\n            [/(<)(\\w+)(\\/>)/, ['delimiter.html', 'tag.html', 'delimiter.html']],\r\n            [/(<)(script)/, ['delimiter.html', { token: 'tag.html', next: '@script' }]],\r\n            [/(<)(style)/, ['delimiter.html', { token: 'tag.html', next: '@style' }]],\r\n            [/(<)([:\\w]+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]],\r\n            [/(<\\/)(\\w+)/, ['delimiter.html', { token: 'tag.html', next: '@otherTag' }]],\r\n            [/</, 'delimiter.html'],\r\n            [/[^<]+/] // text\r\n        ],\r\n        doctype: [\r\n            [/<\\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.comment' }],\r\n            [/[^>]+/, 'metatag.content.html'],\r\n            [/>/, 'metatag.html', '@pop']\r\n        ],\r\n        comment: [\r\n            [/<\\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.comment' }],\r\n            [/-->/, 'comment.html', '@pop'],\r\n            [/[^-]+/, 'comment.content.html'],\r\n            [/./, 'comment.content.html']\r\n        ],\r\n        otherTag: [\r\n            [/<\\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.otherTag' }],\r\n            [/\\/?>/, 'delimiter.html', '@pop'],\r\n            [/\"([^\"]*)\"/, 'attribute.value'],\r\n            [/'([^']*)'/, 'attribute.value'],\r\n            [/[\\w\\-]+/, 'attribute.name'],\r\n            [/=/, 'delimiter'],\r\n            [/[ \\t\\r\\n]+/] // whitespace\r\n        ],\r\n        // -- BEGIN <script> tags handling\r\n        // After <script\r\n        script: [\r\n            [/<\\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.script' }],\r\n            [/type/, 'attribute.name', '@scriptAfterType'],\r\n            [/\"([^\"]*)\"/, 'attribute.value'],\r\n            [/'([^']*)'/, 'attribute.value'],\r\n            [/[\\w\\-]+/, 'attribute.name'],\r\n            [/=/, 'delimiter'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded.text/javascript',\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            [\r\n                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInSimpleState.scriptAfterType'\r\n                }\r\n            ],\r\n            [/=/, 'delimiter', '@scriptAfterTypeEquals'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded.text/javascript',\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                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInSimpleState.scriptAfterTypeEquals'\r\n                }\r\n            ],\r\n            [\r\n                /\"([^\"]*)\"/,\r\n                {\r\n                    token: 'attribute.value',\r\n                    switchTo: '@scriptWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                /'([^']*)'/,\r\n                {\r\n                    token: 'attribute.value',\r\n                    switchTo: '@scriptWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@scriptEmbedded.text/javascript',\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                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInSimpleState.scriptWithCustomType.$S2'\r\n                }\r\n            ],\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'],\r\n            [/'([^']*)'/, 'attribute.value'],\r\n            [/[\\w\\-]+/, 'attribute.name'],\r\n            [/=/, 'delimiter'],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/script\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        scriptEmbedded: [\r\n            [\r\n                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInEmbeddedState.scriptEmbedded.$S2',\r\n                    nextEmbedded: '@pop'\r\n                }\r\n            ],\r\n            [/<\\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }]\r\n        ],\r\n        // -- END <script> tags handling\r\n        // -- BEGIN <style> tags handling\r\n        // After <style\r\n        style: [\r\n            [/<\\?((php)|=)?/, { token: '@rematch', switchTo: '@phpInSimpleState.style' }],\r\n            [/type/, 'attribute.name', '@styleAfterType'],\r\n            [/\"([^\"]*)\"/, 'attribute.value'],\r\n            [/'([^']*)'/, 'attribute.value'],\r\n            [/[\\w\\-]+/, 'attribute.name'],\r\n            [/=/, 'delimiter'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded.text/css',\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            [\r\n                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInSimpleState.styleAfterType'\r\n                }\r\n            ],\r\n            [/=/, 'delimiter', '@styleAfterTypeEquals'],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded.text/css',\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                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInSimpleState.styleAfterTypeEquals'\r\n                }\r\n            ],\r\n            [\r\n                /\"([^\"]*)\"/,\r\n                {\r\n                    token: 'attribute.value',\r\n                    switchTo: '@styleWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                /'([^']*)'/,\r\n                {\r\n                    token: 'attribute.value',\r\n                    switchTo: '@styleWithCustomType.$1'\r\n                }\r\n            ],\r\n            [\r\n                />/,\r\n                {\r\n                    token: 'delimiter.html',\r\n                    next: '@styleEmbedded.text/css',\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                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInSimpleState.styleWithCustomType.$S2'\r\n                }\r\n            ],\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'],\r\n            [/'([^']*)'/, 'attribute.value'],\r\n            [/[\\w\\-]+/, 'attribute.name'],\r\n            [/=/, 'delimiter'],\r\n            [/[ \\t\\r\\n]+/],\r\n            [/<\\/style\\s*>/, { token: '@rematch', next: '@pop' }]\r\n        ],\r\n        styleEmbedded: [\r\n            [\r\n                /<\\?((php)|=)?/,\r\n                {\r\n                    token: '@rematch',\r\n                    switchTo: '@phpInEmbeddedState.styleEmbedded.$S2',\r\n                    nextEmbedded: '@pop'\r\n                }\r\n            ],\r\n            [/<\\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }]\r\n        ],\r\n        // -- END <style> tags handling\r\n        phpInSimpleState: [\r\n            [/<\\?((php)|=)?/, 'metatag.php'],\r\n            [/\\?>/, { token: 'metatag.php', switchTo: '@$S2.$S3' }],\r\n            { include: 'phpRoot' }\r\n        ],\r\n        phpInEmbeddedState: [\r\n            [/<\\?((php)|=)?/, 'metatag.php'],\r\n            [\r\n                /\\?>/,\r\n                {\r\n                    token: 'metatag.php',\r\n                    switchTo: '@$S2.$S3',\r\n                    nextEmbedded: '$S3'\r\n                }\r\n            ],\r\n            { include: 'phpRoot' }\r\n        ],\r\n        phpRoot: [\r\n            [\r\n                /[a-zA-Z_]\\w*/,\r\n                {\r\n                    cases: {\r\n                        '@phpKeywords': { token: 'keyword.php' },\r\n                        '@phpCompileTimeConstants': { token: 'constant.php' },\r\n                        '@default': 'identifier.php'\r\n                    }\r\n                }\r\n            ],\r\n            [\r\n                /[$a-zA-Z_]\\w*/,\r\n                {\r\n                    cases: {\r\n                        '@phpPreDefinedVariables': {\r\n                            token: 'variable.predefined.php'\r\n                        },\r\n                        '@default': 'variable.php'\r\n                    }\r\n                }\r\n            ],\r\n            // brackets\r\n            [/[{}]/, 'delimiter.bracket.php'],\r\n            [/[\\[\\]]/, 'delimiter.array.php'],\r\n            [/[()]/, 'delimiter.parenthesis.php'],\r\n            // whitespace\r\n            [/[ \\t\\r\\n]+/],\r\n            // comments\r\n            [/(#|\\/\\/)$/, 'comment.php'],\r\n            [/(#|\\/\\/)/, 'comment.php', '@phpLineComment'],\r\n            // block comments\r\n            [/\\/\\*/, 'comment.php', '@phpComment'],\r\n            // strings\r\n            [/\"/, 'string.php', '@phpDoubleQuoteString'],\r\n            [/'/, 'string.php', '@phpSingleQuoteString'],\r\n            // delimiters\r\n            [/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,\\@]/, 'delimiter.php'],\r\n            // numbers\r\n            [/\\d*\\d+[eE]([\\-+]?\\d+)?/, 'number.float.php'],\r\n            [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, 'number.float.php'],\r\n            [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, 'number.hex.php'],\r\n            [/0[0-7']*[0-7]/, 'number.octal.php'],\r\n            [/0[bB][0-1']*[0-1]/, 'number.binary.php'],\r\n            [/\\d[\\d']*/, 'number.php'],\r\n            [/\\d/, 'number.php']\r\n        ],\r\n        phpComment: [\r\n            [/\\*\\//, 'comment.php', '@pop'],\r\n            [/[^*]+/, 'comment.php'],\r\n            [/./, 'comment.php']\r\n        ],\r\n        phpLineComment: [\r\n            [/\\?>/, { token: '@rematch', next: '@pop' }],\r\n            [/.$/, 'comment.php', '@pop'],\r\n            [/[^?]+$/, 'comment.php', '@pop'],\r\n            [/[^?]+/, 'comment.php'],\r\n            [/./, 'comment.php']\r\n        ],\r\n        phpDoubleQuoteString: [\r\n            [/[^\\\\\"]+/, 'string.php'],\r\n            [/@escapes/, 'string.escape.php'],\r\n            [/\\\\./, 'string.escape.invalid.php'],\r\n            [/\"/, 'string.php', '@pop']\r\n        ],\r\n        phpSingleQuoteString: [\r\n            [/[^\\\\']+/, 'string.php'],\r\n            [/@escapes/, 'string.escape.php'],\r\n            [/\\\\./, 'string.escape.invalid.php'],\r\n            [/'/, 'string.php', '@pop']\r\n        ]\r\n    },\r\n    phpKeywords: [\r\n        'abstract',\r\n        'and',\r\n        'array',\r\n        'as',\r\n        'break',\r\n        'callable',\r\n        'case',\r\n        'catch',\r\n        'cfunction',\r\n        'class',\r\n        'clone',\r\n        'const',\r\n        'continue',\r\n        'declare',\r\n        'default',\r\n        'do',\r\n        'else',\r\n        'elseif',\r\n        'enddeclare',\r\n        'endfor',\r\n        'endforeach',\r\n        'endif',\r\n        'endswitch',\r\n        'endwhile',\r\n        'extends',\r\n        'false',\r\n        'final',\r\n        'for',\r\n        'foreach',\r\n        'function',\r\n        'global',\r\n        'goto',\r\n        'if',\r\n        'implements',\r\n        'interface',\r\n        'instanceof',\r\n        'insteadof',\r\n        'namespace',\r\n        'new',\r\n        'null',\r\n        'object',\r\n        'old_function',\r\n        'or',\r\n        'private',\r\n        'protected',\r\n        'public',\r\n        'resource',\r\n        'static',\r\n        'switch',\r\n        'throw',\r\n        'trait',\r\n        'try',\r\n        'true',\r\n        'use',\r\n        'var',\r\n        'while',\r\n        'xor',\r\n        'die',\r\n        'echo',\r\n        'empty',\r\n        'exit',\r\n        'eval',\r\n        'include',\r\n        'include_once',\r\n        'isset',\r\n        'list',\r\n        'require',\r\n        'require_once',\r\n        'return',\r\n        'print',\r\n        'unset',\r\n        'yield',\r\n        '__construct'\r\n    ],\r\n    phpCompileTimeConstants: [\r\n        '__CLASS__',\r\n        '__DIR__',\r\n        '__FILE__',\r\n        '__LINE__',\r\n        '__NAMESPACE__',\r\n        '__METHOD__',\r\n        '__FUNCTION__',\r\n        '__TRAIT__'\r\n    ],\r\n    phpPreDefinedVariables: [\r\n        '$GLOBALS',\r\n        '$_SERVER',\r\n        '$_GET',\r\n        '$_POST',\r\n        '$_FILES',\r\n        '$_REQUEST',\r\n        '$_SESSION',\r\n        '$_ENV',\r\n        '$_COOKIE',\r\n        '$php_errormsg',\r\n        '$HTTP_RAW_POST_DATA',\r\n        '$http_response_header',\r\n        '$argc',\r\n        '$argv'\r\n    ],\r\n    escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/\r\n};\r\n// TESTED WITH\r\n// <style type=\"text/css\" >\r\n//   .boo { background: blue;\r\n//   <?=''?>\r\n//   }\r\n//   .boo { background: blue;  <?=''?>  }\r\n// </style>\r\n// <!--\r\n// <?= '' ?>\r\n// -->\r\n// <?php\r\n// // The next line contains a syntax error:\r\n// __construct\r\n// if () {\r\n// \treturn \"The parser recovers from this type of syntax error\";\r\n// }\r\n// ?>\r\n// <html>\r\n// <head>\r\n// \t<title <?=''?>>Example page</title>\r\n//   <style <?=''?>>\r\n//     .boo { background: blue; <?=''?> }\r\n//   </style>\r\n// </head>\r\n// <body>\r\n// <script <?=''?> type<?=''?>=<?=''?>\"text/javascript\"<?=''?>>\r\n// \t// Some PHP embedded inside JS\r\n// \t// Generated <?=date('l, F jS, Y')?>\r\n// \tvar server_token = <?=rand(5, 10000)?>\r\n// \tif (typeof server_token === 'number') {\r\n// \t\talert('token: ' + server_token);\r\n// \t}\r\n// </script>\r\n// <div>\r\n// Hello\r\n// <? if (isset($user)) { ?>\r\n// \t<b><?=$user?></b>\r\n// <? } else { ?>\r\n// \t<i>guest</i>\r\n// <? } ?>\r\n// !\r\n// </div>\r\n// <?php\r\n// \t/* Example PHP file\r\n// \tmultiline comment\r\n// \t*/\r\n//  # Another single line comment\r\n// \t$cards = array(\"ah\", \"ac\", \"ad\", \"as\",\r\n// \t\t\"2h\", \"2c\", \"2d\", \"2s\",\r\n// \t\t\"3h\", \"3c\", \"3d\", \"3s\",\r\n// \t\t\"4h\", \"4c\", \"4d\", \"4s\",\r\n// \t\t\"5h\", \"5c\", \"5d\", \"5s\",\r\n// \t\t\"6h\", \"6c\", \"6d\", \"6s\",\r\n// \t\t\"7h\", \"7c\", \"7d\", \"7s\",\r\n// \t\t\"8h\", \"8c\", \"8d\", \"8s\",\r\n// \t\t\"9h\", \"9c\", \"9d\", \"9s\",\r\n// \t\t\"th\", \"tc\", \"td\", \"ts\",\r\n// \t\t\"jh\", \"jc\", \"jd\", \"js\",\r\n// \t\t\"qh\", \"qc\", \"qd\", \"qs\",\r\n// \t\t\"kh\", \"kc\", \"kd\", \"ks\");\r\n// \tsrand(time());\r\n// \tfor($i = 0; $i < 52; $i++) {\r\n// \t\t$count = count($cards);\r\n// \t\t$random = (rand()%$count);\r\n// \t\tif($cards[$random] == \"\") {\r\n// \t\t\t$i--;\r\n// \t\t} else {\r\n// \t\t\t$deck[] = $cards[$random];\r\n// \t\t\t$cards[$random] = \"\";\r\n// \t\t}\r\n// \t}\r\n// $_GET\r\n// __CLASS__\r\n// \tsrand(time());\r\n// \t$starting_point = (rand()%51);\r\n// \tprint(\"Starting point for cut cards is: $starting_point<p>\");\r\n// \t// display shuffled cards (EXAMPLE ONLY)\r\n// \tfor ($index = 0; $index < 52; $index++) {\r\n// \t\tif ($starting_point == 52) { $starting_point = 0; }\r\n// \t\tprint(\"Uncut Point: <strong>$deck[$index]</strong> \");\r\n// \t\tprint(\"Starting Point: <strong>$deck[$starting_point]</strong><br>\");\r\n// \t\t$starting_point++;\r\n// \t}\r\n// ?>\r\n// </body>\r\n// </html>\r\n\n\n//# sourceURL=webpack://browser-esm-webpack/./node_modules/monaco-editor/esm/vs/basic-languages/php/php.js?");

/***/ })

}]);