{"version":3,"sources":["webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/perl/perl.js"],"names":["__webpack_require__","r","__webpack_exports__","d","conf","language","comments","lineComment","brackets","autoClosingPairs","open","close","surroundingPairs","defaultToken","tokenPostfix","token","keywords","builtinFunctions","builtinFileHandlers","builtinVariables","symbols","quoteLikeOps","escapes","tokenizer","root","include","cases","@keywords","@builtinFunctions","@builtinFileHandlers","@quoteLikeOps","next","@default","@builtinVariables","whitespace","numbers","strings","stringBody","dblStrings","dblStringBody","quotedConstructs","switchTo","qstring","$#==$S3","$#==$S2","qregexp","regexpModifiers","qqstring","heredoc","heredocBody","$1==$S2","perldoc","perldocBody","variables"],"mappings":"kHAAAA,EAAAC,EAAAC,GAAAF,EAAAG,EAAAD,EAAA,yBAAAE,IAAAJ,EAAAG,EAAAD,EAAA,6BAAAG,IAKO,IAAAD,EAAA,CACPE,SAAA,CACAC,YAAA,KAEAC,SAAA,MAAkB,KAAK,qBACvBC,iBAAA,CACA,CAASC,KAAA,IAASC,MAAA,KAClB,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,MAETC,iBAAA,CACA,CAASF,KAAA,IAASC,MAAA,KAClB,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,KACT,CAASD,KAAA,IAAAC,MAAA,OAGFN,EAAA,CACPQ,aAAA,GACAC,aAAA,QACAN,SAAA,CACA,CAASO,MAAA,oBAAAL,KAAA,IAAqCC,MAAA,KAC9C,CAASI,MAAA,wBAAAL,KAAA,IAAAC,MAAA,KACT,CAASI,MAAA,mBAAAL,KAAA,IAAAC,MAAA,MAITK,SAAA,CACA,WACA,OACA,OACA,UACA,QACA,KACA,WACA,KACA,WACA,MACA,KACA,MACA,cACA,MACA,KACA,MACA,UACA,KACA,SACA,MACA,KACA,UACA,QACA,WACA,KACA,QACA,OACA,KACA,MACA,KACA,KACA,UACA,YAGAC,iBAAA,CACA,KACA,MACA,SACA,UACA,KACA,WACA,OACA,cACA,KACA,aACA,SACA,cACA,KACA,YACA,QACA,WACA,KACA,cACA,YACA,aACA,KACA,WACA,MACA,aACA,KACA,aACA,QACA,QACA,KACA,MACA,MACA,SACA,KACA,OACA,QACA,SACA,KACA,OACA,SACA,UACA,KACA,SACA,SACA,WACA,KACA,OACA,SACA,WACA,KACA,QACA,SACA,MACA,KACA,SACA,KACA,QACA,KACA,QACA,OACA,SACA,KACA,OACA,MACA,aACA,KACA,SACA,MACA,OACA,KACA,WACA,OACA,SACA,KACA,OACA,UACA,QACA,KACA,WACA,MACA,UACA,KACA,WACA,MACA,OACA,KACA,WACA,OACA,QACA,KACA,gBACA,OACA,OACA,KACA,gBACA,MACA,QACA,KACA,aACA,MACA,QACA,KACA,WACA,QACA,SACA,KACA,eACA,SACA,UACA,MACA,eACA,YACA,UACA,SACA,YACA,OACA,UACA,QACA,cACA,YACA,UACA,QACA,UACA,OACA,UACA,WACA,UACA,OACA,SACA,QACA,cACA,UACA,WACA,OACA,iBACA,WACA,OACA,UACA,mBACA,WACA,UACA,QACA,cACA,WACA,MACA,QACA,WACA,OACA,OACA,SACA,WACA,OACA,OACA,QACA,WACA,MACA,QACA,QACA,gBACA,SACA,WACA,QACA,gBACA,UACA,KACA,QACA,aACA,QACA,UACA,OACA,cACA,SACA,QACA,QACA,aACA,UACA,QACA,MACA,OACA,YACA,YACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,SACA,WACA,OACA,MACA,UACA,UACA,MACA,SACA,QACA,MACA,QACA,OACA,MACA,QACA,OACA,UACA,QACA,WACA,MACA,SACA,SACA,UACA,QACA,SACA,MACA,UACA,OACA,SACA,OACA,SACA,OACA,QACA,UACA,UACA,OACA,OACA,YACA,MACA,OACA,WACA,OACA,OACA,KACA,aACA,QACA,OACA,UACA,aAGAC,oBAAA,mDAEAC,iBAAA,CACA,KACA,mBACA,2BACA,KACA,MACA,kBACA,KACA,MACA,SACA,KACA,UACA,sBACA,KACA,YACA,MACA,KACA,eACA,QACA,KACA,MACA,OACA,KACA,MACA,OACA,KACA,iBACA,YACA,KACA,sBACA,UACA,KACA,MACA,qBACA,KACA,KACA,0BACA,KACA,KACA,2BACA,KACA,KACA,gBACA,KACA,eACA,UACA,KACA,OACA,OACA,KACA,QACA,aACA,KACA,KACA,YACA,KACA,YACA,cACA,KACA,eACA,gBACA,KACA,aACA,iBACA,KACA,aACA,gBACA,KACA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","file":"js/chunk-2d0c0494.4d634b7d.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\n'use strict';\nexport var conf = {\n comments: {\n lineComment: '#',\n },\n brackets: [['{', '}'], ['[', ']'], ['(', ')']],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: '`', close: '`' },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: '`', close: '`' },\n ],\n};\nexport var language = {\n defaultToken: '',\n tokenPostfix: '.perl',\n brackets: [\n { token: 'delimiter.bracket', open: '{', close: '}' },\n { token: 'delimiter.parenthesis', open: '(', close: ')' },\n { token: 'delimiter.square', open: '[', close: ']' },\n ],\n // https://learn.perl.org/docs/keywords.html\n // Perl syntax\n keywords: [\n '__DATA__',\n 'else',\n 'lock',\n '__END__',\n 'elsif',\n 'lt',\n '__FILE__',\n 'eq',\n '__LINE__',\n 'exp',\n 'ne',\n 'sub',\n '__PACKAGE__',\n 'for',\n 'no',\n 'and',\n 'foreach',\n 'or',\n 'unless',\n 'cmp',\n 'ge',\n 'package',\n 'until',\n 'continue',\n 'gt',\n 'while',\n 'CORE',\n 'if',\n 'xor',\n 'do',\n 'le',\n '__DIE__',\n '__WARN__',\n ],\n // Perl functions\n builtinFunctions: [\n '-A',\n 'END',\n 'length',\n 'setpgrp',\n '-B',\n 'endgrent',\n 'link',\n 'setpriority',\n '-b',\n 'endhostent',\n 'listen',\n 'setprotoent',\n '-C',\n 'endnetent',\n 'local',\n 'setpwent',\n '-c',\n 'endprotoent',\n 'localtime',\n 'setservent',\n '-d',\n 'endpwent',\n 'log',\n 'setsockopt',\n '-e',\n 'endservent',\n 'lstat',\n 'shift',\n '-f',\n 'eof',\n 'map',\n 'shmctl',\n '-g',\n 'eval',\n 'mkdir',\n 'shmget',\n '-k',\n 'exec',\n 'msgctl',\n 'shmread',\n '-l',\n 'exists',\n 'msgget',\n 'shmwrite',\n '-M',\n 'exit',\n 'msgrcv',\n 'shutdown',\n '-O',\n 'fcntl',\n 'msgsnd',\n 'sin',\n '-o',\n 'fileno',\n 'my',\n 'sleep',\n '-p',\n 'flock',\n 'next',\n 'socket',\n '-r',\n 'fork',\n 'not',\n 'socketpair',\n '-R',\n 'format',\n 'oct',\n 'sort',\n '-S',\n 'formline',\n 'open',\n 'splice',\n '-s',\n 'getc',\n 'opendir',\n 'split',\n '-T',\n 'getgrent',\n 'ord',\n 'sprintf',\n '-t',\n 'getgrgid',\n 'our',\n 'sqrt',\n '-u',\n 'getgrnam',\n 'pack',\n 'srand',\n '-w',\n 'gethostbyaddr',\n 'pipe',\n 'stat',\n '-W',\n 'gethostbyname',\n 'pop',\n 'state',\n '-X',\n 'gethostent',\n 'pos',\n 'study',\n '-x',\n 'getlogin',\n 'print',\n 'substr',\n '-z',\n 'getnetbyaddr',\n 'printf',\n 'symlink',\n 'abs',\n 'getnetbyname',\n 'prototype',\n 'syscall',\n 'accept',\n 'getnetent',\n 'push',\n 'sysopen',\n 'alarm',\n 'getpeername',\n 'quotemeta',\n 'sysread',\n 'atan2',\n 'getpgrp',\n 'rand',\n 'sysseek',\n 'AUTOLOAD',\n 'getppid',\n 'read',\n 'system',\n 'BEGIN',\n 'getpriority',\n 'readdir',\n 'syswrite',\n 'bind',\n 'getprotobyname',\n 'readline',\n 'tell',\n 'binmode',\n 'getprotobynumber',\n 'readlink',\n 'telldir',\n 'bless',\n 'getprotoent',\n 'readpipe',\n 'tie',\n 'break',\n 'getpwent',\n 'recv',\n 'tied',\n 'caller',\n 'getpwnam',\n 'redo',\n 'time',\n 'chdir',\n 'getpwuid',\n 'ref',\n 'times',\n 'CHECK',\n 'getservbyname',\n 'rename',\n 'truncate',\n 'chmod',\n 'getservbyport',\n 'require',\n 'uc',\n 'chomp',\n 'getservent',\n 'reset',\n 'ucfirst',\n 'chop',\n 'getsockname',\n 'return',\n 'umask',\n 'chown',\n 'getsockopt',\n 'reverse',\n 'undef',\n 'chr',\n 'glob',\n 'rewinddir',\n 'UNITCHECK',\n 'chroot',\n 'gmtime',\n 'rindex',\n 'unlink',\n 'close',\n 'goto',\n 'rmdir',\n 'unpack',\n 'closedir',\n 'grep',\n 'say',\n 'unshift',\n 'connect',\n 'hex',\n 'scalar',\n 'untie',\n 'cos',\n 'index',\n 'seek',\n 'use',\n 'crypt',\n 'INIT',\n 'seekdir',\n 'utime',\n 'dbmclose',\n 'int',\n 'select',\n 'values',\n 'dbmopen',\n 'ioctl',\n 'semctl',\n 'vec',\n 'defined',\n 'join',\n 'semget',\n 'wait',\n 'delete',\n 'keys',\n 'semop',\n 'waitpid',\n 'DESTROY',\n 'kill',\n 'send',\n 'wantarray',\n 'die',\n 'last',\n 'setgrent',\n 'warn',\n 'dump',\n 'lc',\n 'sethostent',\n 'write',\n 'each',\n 'lcfirst',\n 'setnetent',\n ],\n // File handlers\n builtinFileHandlers: ['ARGV', 'STDERR', 'STDOUT', 'ARGVOUT', 'STDIN', 'ENV'],\n // Perl variables\n builtinVariables: [\n '$!',\n '$^RE_TRIE_MAXBUF',\n '$LAST_REGEXP_CODE_RESULT',\n '$\"',\n '$^S',\n '$LIST_SEPARATOR',\n '$#',\n '$^T',\n '$MATCH',\n '$$',\n '$^TAINT',\n '$MULTILINE_MATCHING',\n '$%',\n '$^UNICODE',\n '$NR',\n '$&',\n '$^UTF8LOCALE',\n '$OFMT',\n \"$'\",\n '$^V',\n '$OFS',\n '$(',\n '$^W',\n '$ORS',\n '$)',\n '$^WARNING_BITS',\n '$OS_ERROR',\n '$*',\n '$^WIDE_SYSTEM_CALLS',\n '$OSNAME',\n '$+',\n '$^X',\n '$OUTPUT_AUTO_FLUSH',\n '$,',\n '$_',\n '$OUTPUT_FIELD_SEPARATOR',\n '$-',\n '$`',\n '$OUTPUT_RECORD_SEPARATOR',\n '$.',\n '$a',\n '$PERL_VERSION',\n '$/',\n '$ACCUMULATOR',\n '$PERLDB',\n '$0',\n '$ARG',\n '$PID',\n '$:',\n '$ARGV',\n '$POSTMATCH',\n '$;',\n '$b',\n '$PREMATCH',\n '$<',\n '$BASETIME',\n '$PROCESS_ID',\n '$=',\n '$CHILD_ERROR',\n '$PROGRAM_NAME',\n '$>',\n '$COMPILING',\n '$REAL_GROUP_ID',\n '$?',\n '$DEBUGGING',\n '$REAL_USER_ID',\n '$@',\n '$EFFECTIVE_GROUP_ID',\n '$RS',\n '$[',\n '$EFFECTIVE_USER_ID',\n '$SUBSCRIPT_SEPARATOR',\n '$\\\\',\n '$EGID',\n '$SUBSEP',\n '$]',\n '$ERRNO',\n '$SYSTEM_FD_MAX',\n '$^',\n '$EUID',\n '$UID',\n '$^A',\n '$EVAL_ERROR',\n '$WARNING',\n '$^C',\n '$EXCEPTIONS_BEING_CAUGHT',\n '$|',\n '$^CHILD_ERROR_NATIVE',\n '$EXECUTABLE_NAME',\n '$~',\n '$^D',\n '$EXTENDED_OS_ERROR',\n '%!',\n '$^E',\n '$FORMAT_FORMFEED',\n '%^H',\n '$^ENCODING',\n '$FORMAT_LINE_BREAK_CHARACTERS',\n '%ENV',\n '$^F',\n '$FORMAT_LINES_LEFT',\n '%INC',\n '$^H',\n '$FORMAT_LINES_PER_PAGE',\n '%OVERLOAD',\n '$^I',\n '$FORMAT_NAME',\n '%SIG',\n '$^L',\n '$FORMAT_PAGE_NUMBER',\n '@+',\n '$^M',\n '$FORMAT_TOP_NAME',\n '@-',\n '$^N',\n '$GID',\n '@_',\n '$^O',\n '$INPLACE_EDIT',\n '@ARGV',\n '$^OPEN',\n '$INPUT_LINE_NUMBER',\n '@INC',\n '$^P',\n '$INPUT_RECORD_SEPARATOR',\n '@LAST_MATCH_START',\n '$^R',\n '$LAST_MATCH_END',\n '$^RE_DEBUG_FLAGS',\n '$LAST_PAREN_MATCH',\n ],\n // operators\n symbols: /[:+\\-\\^*$&%@=<>!?|\\/~\\.]/,\n quoteLikeOps: ['qr', 'm', 's', 'q', 'qq', 'qx', 'qw', 'tr', 'y'],\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n { include: '@whitespace' },\n [\n /[a-zA-Z\\-_][\\w\\-_]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@builtinFunctions': 'type.identifier',\n '@builtinFileHandlers': 'variable.predefined',\n '@quoteLikeOps': { token: '@rematch', next: 'quotedConstructs' },\n '@default': '',\n },\n },\n ],\n // Perl variables\n [\n /[\\$@%][*@#?\\+\\-\\$!\\w\\\\\\^><~:;\\.]+/,\n {\n cases: {\n '@builtinVariables': 'variable.predefined',\n '@default': 'variable',\n },\n },\n ],\n { include: '@strings' },\n { include: '@dblStrings' },\n // Perl Doc\n { include: '@perldoc' },\n // Here Doc\n { include: '@heredoc' },\n [/[{}\\[\\]()]/, '@brackets'],\n // RegExp\n [\n /[\\/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\\\/|[^\\]\\/]))*[\\/]\\w*\\s*(?=[).,;]|$)/,\n 'regexp',\n ],\n [/@symbols/, 'operators'],\n { include: '@numbers' },\n [/[,;]/, 'delimiter'],\n ],\n whitespace: [\n [/\\s+/, 'white'],\n [/(^#!.*$)/, 'metatag'],\n [/(^#.*$)/, 'comment'],\n ],\n numbers: [\n [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'],\n [/\\d+/, 'number'],\n ],\n // Single quote string\n strings: [[/'/, 'string', '@stringBody']],\n stringBody: [\n [/'/, 'string', '@popall'],\n [/\\\\'/, 'string.escape'],\n [/./, 'string'],\n ],\n // Double quote string\n dblStrings: [[/\"/, 'string', '@dblStringBody']],\n dblStringBody: [\n [/\"/, 'string', '@popall'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n { include: '@variables' },\n [/./, 'string'],\n ],\n // Quoted constructs\n // Percent strings in Ruby are similar to quote-like operators in Perl.\n // This is adapted from pstrings in ../ruby/ruby.ts.\n quotedConstructs: [\n [/(q|qw|tr|y)\\s*\\(/, { token: 'string.delim', switchTo: '@qstring.(.)' }],\n [/(q|qw|tr|y)\\s*\\[/, { token: 'string.delim', switchTo: '@qstring.[.]' }],\n [/(q|qw|tr|y)\\s*\\{/, { token: 'string.delim', switchTo: '@qstring.{.}' }],\n [/(q|qw|tr|y)\\s*' }],\n [/(q|qw|tr|y)#/, { token: 'string.delim', switchTo: '@qstring.#.#' }],\n [/(q|qw|tr|y)\\s*([^A-Za-z0-9#\\s])/, { token: 'string.delim', switchTo: '@qstring.$2.$2' }],\n [/(q|qw|tr|y)\\s+(\\w)/, { token: 'string.delim', switchTo: '@qstring.$2.$2' }],\n [/(qr|m|s)\\s*\\(/, { token: 'regexp.delim', switchTo: '@qregexp.(.)' }],\n [/(qr|m|s)\\s*\\[/, { token: 'regexp.delim', switchTo: '@qregexp.[.]' }],\n [/(qr|m|s)\\s*\\{/, { token: 'regexp.delim', switchTo: '@qregexp.{.}' }],\n [/(qr|m|s)\\s*' }],\n [/(qr|m|s)#/, { token: 'regexp.delim', switchTo: '@qregexp.#.#' }],\n [/(qr|m|s)\\s*([^A-Za-z0-9_#\\s])/, { token: 'regexp.delim', switchTo: '@qregexp.$2.$2' }],\n [/(qr|m|s)\\s+(\\w)/, { token: 'regexp.delim', switchTo: '@qregexp.$2.$2' }],\n [/(qq|qx)\\s*\\(/, { token: 'string.delim', switchTo: '@qqstring.(.)' }],\n [/(qq|qx)\\s*\\[/, { token: 'string.delim', switchTo: '@qqstring.[.]' }],\n [/(qq|qx)\\s*\\{/, { token: 'string.delim', switchTo: '@qqstring.{.}' }],\n [/(qq|qx)\\s*' }],\n [/(qq|qx)#/, { token: 'string.delim', switchTo: '@qqstring.#.#' }],\n [/(qq|qx)\\s*([^A-Za-z0-9#\\s])/, { token: 'string.delim', switchTo: '@qqstring.$2.$2' }],\n [/(qq|qx)\\s+(\\w)/, { token: 'string.delim', switchTo: '@qqstring.$2.$2' }],\n ],\n // Non-expanded quoted string\n // qstring.\n // open = open delimiter\n // close = close delimiter\n qstring: [\n [/\\\\./, 'string.escape'],\n [/./, {\n cases: {\n '$#==$S3': { token: 'string.delim', next: '@pop' },\n '$#==$S2': { token: 'string.delim', next: '@push' },\n '@default': 'string'\n }\n }],\n ],\n // Quoted regexp\n // qregexp..\n // open = open delimiter\n // close = close delimiter\n qregexp: [\n { include: '@variables' },\n [/\\\\./, 'regexp.escape'],\n [/./, {\n cases: {\n '$#==$S3': { token: 'regexp.delim', next: '@regexpModifiers' },\n '$#==$S2': { token: 'regexp.delim', next: '@push' },\n '@default': 'regexp'\n }\n }],\n ],\n regexpModifiers: [\n [/[msixpodualngcer]+/, { token: 'regexp.modifier', next: '@popall' }],\n ],\n // Expanded quoted string\n // qqstring..\n // open = open delimiter\n // close = close delimiter\n qqstring: [\n { include: '@variables' },\n { include: '@qstring' },\n ],\n heredoc: [\n [\n /<<\\s*['\"`]?([\\w\\-]+)['\"`]?/,\n { token: 'string.heredoc.delimiter', next: '@heredocBody.$1' },\n ],\n ],\n heredocBody: [\n [\n /^([\\w\\-]+)$/,\n {\n cases: {\n '$1==$S2': [{ token: 'string.heredoc.delimiter', next: '@popall' }],\n '@default': 'string.heredoc',\n },\n },\n ],\n [/./, 'string.heredoc'],\n ],\n perldoc: [[/^=\\w/, 'comment.doc', '@perldocBody']],\n perldocBody: [\n [/^=cut\\b/, 'type.identifier', '@popall'],\n [/./, 'comment.doc'],\n ],\n variables: [\n [/\\$\\w+/, 'variable'],\n [/@\\w+/, 'variable'],\n [/%\\w+/, 'variable'],\n ],\n },\n};\n"],"sourceRoot":""}