{"version":3,"sources":["webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/postiats/postiats.js"],"names":["conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","language","tokenPostfix","defaultToken","keywords","keywords_dlr","keywords_srp","irregular_keyword_list","keywords_types","keywords_effects","operators","token","symbols","IDENTFST","IDENTRST","symbolic","digit","digitseq0","xdigit","xdigitseq0","INTSP","FLOATSP","fexponent","fexponent_bin","deciexp","hexiexp","irregular_keywords","ESCHAR","start","tokenizer","root","regex","action","next","cases","nextEmbedded","lexing_COMMENT_block_ml","lexing_COMMENT_block_c","lexing_COMMENT_rest","lexing_EFFECT_commaseq0","lexing_EXTCODE","lexing_DQUOTE"],"mappings":"kHAAA,qFAMO,IAAIA,EAAO,CACdC,SAAU,CACNC,YAAa,KACbC,aAAc,CAAC,KAAM,OAEzBC,SAAU,CACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MAEVC,iBAAkB,CACd,CAAEC,KAAM,IAAKC,MAAO,IAAKC,MAAO,CAAC,SAAU,YAC3C,CAAEF,KAAM,IAAKC,MAAO,IAAKC,MAAO,CAAC,SAAU,YAC3C,CAAEF,KAAM,IAAKC,MAAO,IAAKC,MAAO,CAAC,SAAU,YAC3C,CAAEF,KAAM,IAAKC,MAAO,IAAKC,MAAO,CAAC,SAAU,cAGxCC,EAAW,CAClBC,aAAc,QAKdC,aAAc,UAEdC,SAAU,CAEN,UACA,WACA,UACA,UACA,WACA,cACA,YACA,eAEA,KAEA,MAEA,SAEA,QAMA,WAEA,WAEA,WACA,WACA,WACA,YACA,eAEA,KAEA,MAEA,SACA,SACA,SAEA,YAEA,KACA,MACA,MAEA,OACA,QAEA,QACA,SAEA,KACA,OACA,OAEA,SAEA,KAEA,QACA,SACA,SACA,SACA,UAEA,UACA,YAEA,YACA,cAEA,SAQA,MAEA,QAEA,SACA,WAEA,SAEA,UACA,UACA,WAEA,KACA,KAEA,MAEA,MACA,QAEA,UAIA,MACA,SACA,SACA,SAKA,UACA,UAEA,MAEA,UAKA,UACA,UACA,UACA,WACA,cAKA,QAEA,MACA,QAEA,OACA,QAOA,OAEA,WACA,WACA,WACA,YACA,gBAGJC,aAAc,CACV,SACA,UAEA,UACA,cAEA,WAEA,WACA,eACA,eACA,eACA,eACA,eAEA,UACA,WACA,UACA,iBAEA,UACA,YACA,YAEA,WAEA,cACA,cACA,cAEA,OACA,SACA,UACA,QACA,UACA,WAEA,OACA,SACA,UACA,UACA,YACA,aAEA,OACA,SACA,UACA,SACA,WACA,YAEA,SACA,YAEA,SAEA,YAEA,cACA,eAEA,aAEA,iBACA,kBAEJC,aAAc,CAEV,MACA,SACA,UAEA,QAEA,QACA,WACA,YAEA,QACA,SAEA,SAEA,SACA,SAEA,UAEA,SACA,UAEA,WACA,WAEA,UACA,YACA,aAKJC,uBAAwB,CACpB,OACA,OACA,MACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,MACA,OACA,MACA,QACA,OACA,aACA,aACA,YACA,YACA,YACA,WACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,SACA,SACA,QACA,UACA,UACA,SACA,aACA,aACA,YACA,YACA,YACA,WACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,SACA,WACA,UACA,eACA,YACA,OACA,MACA,SACA,SAEJC,eAAgB,CACZ,OACA,SACA,OACA,MACA,QACA,OACA,OACA,OACA,OACA,QACA,SACA,UAGJC,iBAAkB,CACd,IACA,MACA,MACA,MACA,SACA,SACA,SACA,MACA,MACA,KAEJC,UAAW,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,KACA,MAEA,KAEA,MACA,OACA,MACA,QAEA,IACA,IAEA,KAEA,KACA,KAEA,OAEA,KAEA,OAMJd,SAAU,CACN,CAAEE,KAAM,KAAMC,MAAO,IAAKY,MAAO,yBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,yBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,yBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,yBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,yBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,yBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,mBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,oBACjC,CAAEb,KAAM,KAAMC,MAAO,IAAKY,MAAO,oBACjC,CAAEb,KAAM,IAAKC,MAAO,IAAKY,MAAO,mBAChC,CAAEb,KAAM,IAAKC,MAAO,IAAKY,MAAO,oBAChC,CAAEb,KAAM,IAAKC,MAAO,IAAKY,MAAO,yBAChC,CAAEb,KAAM,IAAKC,MAAO,IAAKY,MAAO,oBAGpCC,QAAS,wBACTC,SAAU,YACVC,SAAU,iBACVC,SAAU,yBACVC,MAAO,QACPC,UAAW,UACXC,OAAQ,cACRC,WAAY,WACZC,MAAO,SACP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","file":"js/chunk-2d0cf16e.ca69e096.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Artyom Shalkhakov. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *\n * Based on the ATS/Postiats lexer by Hongwei Xi.\n *--------------------------------------------------------------------------------------------*/\nexport var conf = {\n comments: {\n lineComment: '//',\n blockComment: ['(*', '*)']\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ['<', '>']\n ],\n autoClosingPairs: [\n { open: '\"', close: '\"', notIn: ['string', 'comment'] },\n { open: '{', close: '}', notIn: ['string', 'comment'] },\n { open: '[', close: ']', notIn: ['string', 'comment'] },\n { open: '(', close: ')', notIn: ['string', 'comment'] }\n ]\n};\nexport var language = {\n tokenPostfix: '.pats',\n // TODO: staload and dynload are followed by a special kind of string literals\n // with {$IDENTIFER} variables, and it also may make sense to highlight\n // the punctuation (. and / and \\) differently.\n // Set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: 'invalid',\n // keyword reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing_token.dats\n keywords: [\n //\n 'abstype',\n 'abst0ype',\n 'absprop',\n 'absview',\n 'absvtype',\n 'absviewtype',\n 'absvt0ype',\n 'absviewt0ype',\n //\n 'as',\n //\n 'and',\n //\n 'assume',\n //\n 'begin',\n //\n /*\n \"case\", // CASE\n */\n //\n 'classdec',\n //\n 'datasort',\n //\n 'datatype',\n 'dataprop',\n 'dataview',\n 'datavtype',\n 'dataviewtype',\n //\n 'do',\n //\n 'end',\n //\n 'extern',\n 'extype',\n 'extvar',\n //\n 'exception',\n //\n 'fn',\n 'fnx',\n 'fun',\n //\n 'prfn',\n 'prfun',\n //\n 'praxi',\n 'castfn',\n //\n 'if',\n 'then',\n 'else',\n //\n 'ifcase',\n //\n 'in',\n //\n 'infix',\n 'infixl',\n 'infixr',\n 'prefix',\n 'postfix',\n //\n 'implmnt',\n 'implement',\n //\n 'primplmnt',\n 'primplement',\n //\n 'import',\n //\n /*\n \"lam\", // LAM\n \"llam\", // LLAM\n \"fix\", // FIX\n */\n //\n 'let',\n //\n 'local',\n //\n 'macdef',\n 'macrodef',\n //\n 'nonfix',\n //\n 'symelim',\n 'symintr',\n 'overload',\n //\n 'of',\n 'op',\n //\n 'rec',\n //\n 'sif',\n 'scase',\n //\n 'sortdef',\n /*\n // HX: [sta] is now deprecated\n */\n 'sta',\n 'stacst',\n 'stadef',\n 'static',\n /*\n \"stavar\", // T_STAVAR\n */\n //\n 'staload',\n 'dynload',\n //\n 'try',\n //\n 'tkindef',\n //\n /*\n \"type\", // TYPE\n */\n 'typedef',\n 'propdef',\n 'viewdef',\n 'vtypedef',\n 'viewtypedef',\n //\n /*\n \"val\", // VAL\n */\n 'prval',\n //\n 'var',\n 'prvar',\n //\n 'when',\n 'where',\n //\n /*\n \"for\", // T_FOR\n \"while\", // T_WHILE\n */\n //\n 'with',\n //\n 'withtype',\n 'withprop',\n 'withview',\n 'withvtype',\n 'withviewtype' // WITHVIEWTYPE\n //\n ],\n keywords_dlr: [\n '$delay',\n '$ldelay',\n //\n '$arrpsz',\n '$arrptrsize',\n //\n '$d2ctype',\n //\n '$effmask',\n '$effmask_ntm',\n '$effmask_exn',\n '$effmask_ref',\n '$effmask_wrt',\n '$effmask_all',\n //\n '$extern',\n '$extkind',\n '$extype',\n '$extype_struct',\n //\n '$extval',\n '$extfcall',\n '$extmcall',\n //\n '$literal',\n //\n '$myfilename',\n '$mylocation',\n '$myfunction',\n //\n '$lst',\n '$lst_t',\n '$lst_vt',\n '$list',\n '$list_t',\n '$list_vt',\n //\n '$rec',\n '$rec_t',\n '$rec_vt',\n '$record',\n '$record_t',\n '$record_vt',\n //\n '$tup',\n '$tup_t',\n '$tup_vt',\n '$tuple',\n '$tuple_t',\n '$tuple_vt',\n //\n '$break',\n '$continue',\n //\n '$raise',\n //\n '$showtype',\n //\n '$vcopyenv_v',\n '$vcopyenv_vt',\n //\n '$tempenver',\n //\n '$solver_assert',\n '$solver_verify' // T_DLRSOLVERIFY\n ],\n keywords_srp: [\n //\n '#if',\n '#ifdef',\n '#ifndef',\n //\n '#then',\n //\n '#elif',\n '#elifdef',\n '#elifndef',\n //\n '#else',\n '#endif',\n //\n '#error',\n //\n '#prerr',\n '#print',\n //\n '#assert',\n //\n '#undef',\n '#define',\n //\n '#include',\n '#require',\n //\n '#pragma',\n '#codegen2',\n '#codegen3' // T_SRPCODEGEN3 // for level-3 codegen\n //\n // HX: end of special tokens\n //\n ],\n irregular_keyword_list: [\n 'val+',\n 'val-',\n 'val',\n 'case+',\n 'case-',\n 'case',\n 'addr@',\n 'addr',\n 'fold@',\n 'free@',\n 'fix@',\n 'fix',\n 'lam@',\n 'lam',\n 'llam@',\n 'llam',\n 'viewt@ype+',\n 'viewt@ype-',\n 'viewt@ype',\n 'viewtype+',\n 'viewtype-',\n 'viewtype',\n 'view+',\n 'view-',\n 'view@',\n 'view',\n 'type+',\n 'type-',\n 'type',\n 'vtype+',\n 'vtype-',\n 'vtype',\n 'vt@ype+',\n 'vt@ype-',\n 'vt@ype',\n 'viewt@ype+',\n 'viewt@ype-',\n 'viewt@ype',\n 'viewtype+',\n 'viewtype-',\n 'viewtype',\n 'prop+',\n 'prop-',\n 'prop',\n 'type+',\n 'type-',\n 'type',\n 't@ype',\n 't@ype+',\n 't@ype-',\n 'abst@ype',\n 'abstype',\n 'absviewt@ype',\n 'absvt@ype',\n 'for*',\n 'for',\n 'while*',\n 'while'\n ],\n keywords_types: [\n 'bool',\n 'double',\n 'byte',\n 'int',\n 'short',\n 'char',\n 'void',\n 'unit',\n 'long',\n 'float',\n 'string',\n 'strptr'\n ],\n // TODO: reference for this?\n keywords_effects: [\n '0',\n 'fun',\n 'clo',\n 'prf',\n 'funclo',\n 'cloptr',\n 'cloref',\n 'ref',\n 'ntm',\n '1' // all effects\n ],\n operators: [\n '@',\n '!',\n '|',\n '`',\n ':',\n '$',\n '.',\n '=',\n '#',\n '~',\n //\n '..',\n '...',\n //\n '=>',\n // \"=<\", // T_EQLT\n '=<>',\n '=/=>',\n '=>>',\n '=/=>>',\n //\n '<',\n '>',\n //\n '><',\n //\n '.<',\n '>.',\n //\n '.<>.',\n //\n '->',\n //\"-<\", // T_MINUSLT\n '-<>' // T_MINUSLTGT\n //\n /*\n \":<\", // T_COLONLT\n */\n ],\n brackets: [\n { open: ',(', close: ')', token: 'delimiter.parenthesis' },\n { open: '`(', close: ')', token: 'delimiter.parenthesis' },\n { open: '%(', close: ')', token: 'delimiter.parenthesis' },\n { open: \"'(\", close: ')', token: 'delimiter.parenthesis' },\n { open: \"'{\", close: '}', token: 'delimiter.parenthesis' },\n { open: '@(', close: ')', token: 'delimiter.parenthesis' },\n { open: '@{', close: '}', token: 'delimiter.brace' },\n { open: '@[', close: ']', token: 'delimiter.square' },\n { open: '#[', close: ']', token: 'delimiter.square' },\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n { open: '<', close: '>', token: 'delimiter.angle' }\n ],\n // we include these common regular expressions\n symbols: /[=>]/,\n digit: /[0-9]/,\n digitseq0: /@digit*/,\n xdigit: /[0-9A-Za-z]/,\n xdigitseq0: /@xdigit*/,\n INTSP: /[lLuU]/,\n FLOATSP: /[fFlL]/,\n fexponent: /[eE][+-]?[0-9]+/,\n fexponent_bin: /[pP][+-]?[0-9]+/,\n deciexp: /\\.[0-9]*@fexponent?/,\n hexiexp: /\\.[0-9a-zA-Z]*@fexponent_bin?/,\n irregular_keywords: /val[+-]?|case[+-]?|addr\\@?|fold\\@|free\\@|fix\\@?|lam\\@?|llam\\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\\*?|while\\*?/,\n ESCHAR: /[ntvbrfa\\\\\\?'\"\\(\\[\\{]/,\n start: 'root',\n // The main tokenizer for ATS/Postiats\n // reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing.dats\n tokenizer: {\n root: [\n // lexing_blankseq0\n { regex: /[ \\t\\r\\n]+/, action: { token: '' } },\n // NOTE: (*) is an invalid ML-like comment!\n { regex: /\\(\\*\\)/, action: { token: 'invalid' } },\n {\n regex: /\\(\\*/,\n action: { token: 'comment', next: 'lexing_COMMENT_block_ml' }\n },\n {\n regex: /\\(/,\n action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/\n },\n {\n regex: /\\)/,\n action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/\n },\n {\n regex: /\\[/,\n action: '@brackets' /*{ token: 'delimiter.bracket' }*/\n },\n {\n regex: /\\]/,\n action: '@brackets' /*{ token: 'delimiter.bracket' }*/\n },\n {\n regex: /\\{/,\n action: '@brackets' /*{ token: 'delimiter.brace' }*/\n },\n {\n regex: /\\}/,\n action: '@brackets' /*{ token: 'delimiter.brace' }*/\n },\n // lexing_COMMA\n {\n regex: /,\\(/,\n action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/\n },\n { regex: /,/, action: { token: 'delimiter.comma' } },\n { regex: /;/, action: { token: 'delimiter.semicolon' } },\n // lexing_AT\n {\n regex: /@\\(/,\n action: '@brackets' /* { token: 'delimiter.parenthesis' }*/\n },\n {\n regex: /@\\[/,\n action: '@brackets' /* { token: 'delimiter.bracket' }*/\n },\n {\n regex: /@\\{/,\n action: '@brackets' /*{ token: 'delimiter.brace' }*/\n },\n // lexing_COLON\n {\n regex: /: lexing_IDENT_sym\n . FLOATDOT => lexing_FLOAT_deciexp\n . DIGIT => T_DOTINT\n */\n { regex: /\\.@symbolic+/, action: { token: 'identifier.sym' } },\n // FLOATDOT case\n {\n regex: /\\.@digit*@fexponent@FLOATSP*/,\n action: { token: 'number.float' }\n },\n { regex: /\\.@digit+/, action: { token: 'number.float' } },\n // lexing_DOLLAR:\n // '$' IDENTFST IDENTRST* => lexing_IDENT_dlr, _ => lexing_IDENT_sym\n {\n regex: /\\$@IDENTFST@IDENTRST*/,\n action: {\n cases: {\n '@keywords_dlr': { token: 'keyword.dlr' },\n '@default': { token: 'namespace' } // most likely a module qualifier\n }\n }\n },\n // lexing_SHARP:\n // '#' IDENTFST IDENTRST* => lexing_ident_srp, _ => lexing_IDENT_sym\n {\n regex: /\\#@IDENTFST@IDENTRST*/,\n action: {\n cases: {\n '@keywords_srp': { token: 'keyword.srp' },\n '@default': { token: 'identifier' }\n }\n }\n },\n // lexing_PERCENT:\n { regex: /%\\(/, action: { token: 'delimiter.parenthesis' } },\n {\n regex: /^%{(#|\\^|\\$)?/,\n action: {\n token: 'keyword',\n next: '@lexing_EXTCODE',\n nextEmbedded: 'text/javascript'\n }\n },\n { regex: /^%}/, action: { token: 'keyword' } },\n // lexing_QUOTE\n { regex: /'\\(/, action: { token: 'delimiter.parenthesis' } },\n { regex: /'\\[/, action: { token: 'delimiter.bracket' } },\n { regex: /'\\{/, action: { token: 'delimiter.brace' } },\n [/(')(\\\\@ESCHAR|\\\\[xX]@xdigit+|\\\\@digit+)(')/, ['string', 'string.escape', 'string']],\n [/'[^\\\\']'/, 'string'],\n // lexing_DQUOTE\n [/\"/, 'string.quote', '@lexing_DQUOTE'],\n // lexing_BQUOTE\n {\n regex: /`\\(/,\n action: '@brackets' /* { token: 'delimiter.parenthesis' }*/\n },\n // TODO: otherwise, try lexing_IDENT_sym\n { regex: /\\\\/, action: { token: 'punctuation' } },\n // lexing_IDENT_alp:\n // NOTE: (?!regex) is syntax for \"not-followed-by\" regex\n // to resolve ambiguity such as foreach$fwork being incorrectly lexed as [for] [each$fwork]!\n {\n regex: /@irregular_keywords(?!@IDENTRST)/,\n action: { token: 'keyword' }\n },\n {\n regex: /@IDENTFST@IDENTRST*[ punctuation\n // ({\\$)([a-zA-Z_][a-zA-Z_0-9]*)(}) => punctuation,keyword,punctuation\n // [^\"] => identifier/literal\n '@keywords': { token: 'keyword' },\n '@keywords_types': { token: 'type' },\n '@default': { token: 'identifier' }\n }\n }\n },\n // lexing_IDENT_sym:\n {\n regex: /\\/\\/\\/\\//,\n action: { token: 'comment', next: '@lexing_COMMENT_rest' }\n },\n { regex: /\\/\\/.*$/, action: { token: 'comment' } },\n {\n regex: /\\/\\*/,\n action: { token: 'comment', next: '@lexing_COMMENT_block_c' }\n },\n // AS-20160627: specifically for effect annotations\n {\n regex: /-<|= lexing_FLOAT_hexiexp\n // - testing_fexponent_bin => lexing_FLOAT_hexiexp\n // - testing_intspseq0 => T_INT_hex\n // lexing_INT_hex:\n {\n regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,\n action: { token: 'number.float' }\n },\n { regex: /0[xX]@xdigit+@INTSP*/, action: { token: 'number.hex' } },\n {\n regex: /0[0-7]+(?![0-9])@INTSP*/,\n action: { token: 'number.octal' }\n },\n //{regex: /0/, action: { token: 'number' } }, // INTZERO\n // lexing_INT_dec:\n // - testing_deciexp => lexing_FLOAT_deciexp\n // - testing_fexponent => lexing_FLOAT_deciexp\n // - otherwise => intspseq0 ([0-9]*[lLuU]?)\n {\n regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/,\n action: { token: 'number.float' }\n },\n {\n regex: /@digit@digitseq0@INTSP*/,\n action: { token: 'number.decimal' }\n },\n // DIGIT, if followed by digitseq0, is lexing_INT_dec\n { regex: /@digit+@INTSP*/, action: { token: 'number' } }\n ],\n lexing_COMMENT_block_ml: [\n [/[^\\(\\*]+/, 'comment'],\n [/\\(\\*/, 'comment', '@push'],\n [/\\(\\*/, 'comment.invalid'],\n [/\\*\\)/, 'comment', '@pop'],\n [/\\*/, 'comment']\n ],\n lexing_COMMENT_block_c: [\n [/[^\\/*]+/, 'comment'],\n // [/\\/\\*/, 'comment', '@push' ], // nested C-style block comments not allowed\n // [/\\/\\*/, 'comment.invalid' ],\t// NOTE: this breaks block comments in the shape of /* //*/\n [/\\*\\//, 'comment', '@pop'],\n [/[\\/*]/, 'comment']\n ],\n lexing_COMMENT_rest: [\n [/$/, 'comment', '@pop'],\n [/.*/, 'comment']\n ],\n // NOTE: added by AS, specifically for highlighting\n lexing_EFFECT_commaseq0: [\n {\n regex: /@IDENTFST@IDENTRST+|@digit+/,\n action: {\n cases: {\n '@keywords_effects': { token: 'type.effect' },\n '@default': { token: 'identifier' }\n }\n }\n },\n { regex: /,/, action: { token: 'punctuation' } },\n { regex: />/, action: { token: '@rematch', next: '@pop' } }\n ],\n lexing_EXTCODE: [\n {\n regex: /^%}/,\n action: {\n token: '@rematch',\n next: '@pop',\n nextEmbedded: '@pop'\n }\n },\n { regex: /[^%]+/, action: '' }\n ],\n lexing_DQUOTE: [\n { regex: /\"/, action: { token: 'string.quote', next: '@pop' } },\n // AS-20160628: additional hi-lighting for variables in staload/dynload strings\n {\n regex: /(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/,\n action: [{ token: 'string.escape' }, { token: 'identifier' }, { token: 'string.escape' }]\n },\n { regex: /\\\\$/, action: { token: 'string.escape' } },\n {\n regex: /\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/,\n action: { token: 'string.escape' }\n },\n { regex: /[^\\\\\"]+/, action: { token: 'string' } }\n ]\n }\n};\n"],"sourceRoot":""}