{"version":3,"sources":["webpack:///./node_modules/vue-monaco/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,qFAOO,IAAIA,EAAO,CACdC,SAAU,CACNC,YAAa,KACbC,aAAc,CAAC,KAAM,OAEzBC,SAAU,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,MACrDC,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,gBAEJC,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,aAEJC,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,OAEJd,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,KAAOC,MAAO,IAAKY,MAAO,yBAClC,CAAEb,KAAM,KAAOC,MAAO,IAAKY,MAAO,yBAClC,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,SACPC,QAAS,SACTC,UAAW,kBACXC,cAAe,kBACfC,QAAS,sBACTC,QAAS,gCACTC,mBAAoB,0LACpBC,OAAQ,wBACRC,MAAO,OAGPC,UAAW,CACPC,KAAM,CAEF,CAAEC,MAAO,aAAcC,OAAQ,CAAErB,MAAO,KAExC,CAAEoB,MAAO,SAAUC,OAAQ,CAAErB,MAAO,YACpC,CAAEoB,MAAO,OAAQC,OAAQ,CAAErB,MAAO,UAAWsB,KAAM,4BACnD,CAAEF,MAAO,KAAMC,OAAQ,aACvB,CAAED,MAAO,KAAMC,OAAQ,aACvB,CAAED,MAAO,KAAMC,OAAQ,aACvB,CAAED,MAAO,KAAMC,OAAQ,aACvB,CAAED,MAAO,KAAMC,OAAQ,aACvB,CAAED,MAAO,KAAMC,OAAQ,aAEvB,CAAED,MAAO,MAAOC,OAAQ,aACxB,CAAED,MAAO,IAAKC,OAAQ,CAAErB,MAAO,oBAC/B,CAAEoB,MAAO,IAAKC,OAAQ,CAAErB,MAAO,wBAE/B,CAAEoB,MAAO,MAAOC,OAAQ,aACxB,CAAED,MAAO,MAAOC,OAAQ,aACxB,CAAED,MAAO,MAAOC,OAAQ,aAExB,CAAED,MAAO,KAAMC,OAAQ,CAAErB,MAAO,UAAWsB,KAAM,6BAQjD,CAAEF,MAAO,eAAgBC,OAAQ,CAAErB,MAAO,mBAE1C,CAAEoB,MAAO,+BAAgCC,OAAQ,CAAErB,MAAO,iBAC1D,CAAEoB,MAAO,YAAaC,OAAQ,CAAErB,MAAO,iBAGvC,CACIoB,MAAO,wBACPC,OAAQ,CACJE,MAAO,CACH,gBAAiB,CAAEvB,MAAO,eAC1B,WAAY,CAAEA,MAAO,gBAMjC,CACIoB,MAAO,wBACPC,OAAQ,CACJE,MAAO,CACH,gBAAiB,CAAEvB,MAAO,eAC1B,WAAY,CAAEA,MAAO,iBAKjC,CAAEoB,MAAO,MAAOC,OAAQ,CAAErB,MAAO,0BACjC,CAAEoB,MAAO,gBAAiBC,OAAQ,CAAErB,MAAO,UAAWsB,KAAM,kBAAmBE,aAAc,oBAC7F,CAAEJ,MAAO,MAAOC,OAAQ,CAAErB,MAAO,YAEjC,CAAEoB,MAAO,MAAOC,OAAQ,CAAErB,MAAO,0BACjC,CAAEoB,MAAO,MAAOC,OAAQ,CAAErB,MAAO,sBACjC,CAAEoB,MAAO,MAAOC,OAAQ,CAAErB,MAAO,oBACjC,CAAC,6CAA8C,CAAC,SAAU,gBAAiB,WAC3E,CAAC,WAAY,UAEb,CAAC,IAAK,eAAgB,kBAEtB,CAAEoB,MAAO,MAAOC,OAAQ,aAExB,CAAED,MAAO,KAAMC,OAAQ,CAAErB,MAAO,gBAIhC,CAAEoB,MAAO,mCAAoCC,OAAQ,CAAErB,MAAO,YAC9D,CACIoB,MAAO,6BACPC,OAAQ,CACJE,MAAO,CAOH,YAAa,CAAEvB,MAAO,WACtB,kBAAmB,CAAEA,MAAO,QAC5B,WAAY,CAAEA,MAAO,iBAKjC,CAAEoB,MAAO,WAAYC,OAAQ,CAAErB,MAAO,UAAWsB,KAAM,yBACvD,CAAEF,MAAO,UAAWC,OAAQ,CAAErB,MAAO,YACrC,CAAEoB,MAAO,OAAQC,OAAQ,CAAErB,MAAO,UAAWsB,KAAM,4BAEnD,CAAEF,MAAO,QAASC,OAAQ,CAAErB,MAAO,UAAWsB,KAAM,6BACpD,CACIF,MAAO,aACPC,OAAQ,CACJE,MAAO,CACH,aAAc,UACd,WAAY,cAWxB,CAAEH,MAAO,kDAAmDC,OAAQ,CAAErB,MAAO,iBAC7E,CAAEoB,MAAO,uBAAwBC,OAAQ,CAAErB,MAAO,eAClD,CAAEoB,MAAO,0BAA2BC,OAAQ,CAAErB,MAAO,iBAMrD,CAAEoB,MAAO,wCAAyCC,OAAQ,CAAErB,MAAO,iBACnE,CAAEoB,MAAO,0BAA2BC,OAAQ,CAAErB,MAAO,mBAErD,CAAEoB,MAAO,iBAAkBC,OAAQ,CAAErB,MAAO,YAEhDyB,wBAAyB,CACrB,CAAC,WAAY,WACb,CAAC,OAAQ,UAAW,SACpB,CAAC,OAAQ,mBACT,CAAC,OAAQ,UAAW,QACpB,CAAC,KAAM,YAEXC,uBAAwB,CACpB,CAAC,UAAW,WAGZ,CAAC,OAAQ,UAAW,QACpB,CAAC,QAAS,YAEdC,oBAAqB,CACjB,CAAC,IAAK,UAAW,QACjB,CAAC,KAAM,YAGXC,wBAAyB,CACrB,CACIR,MAAO,8BACPC,OAAQ,CACJE,MAAO,CACH,oBAAqB,CAAEvB,MAAO,eAC9B,WAAY,CAAEA,MAAO,iBAIjC,CAAEoB,MAAO,IAAKC,OAAQ,CAAErB,MAAO,gBAC/B,CAAEoB,MAAO,IAAKC,OAAQ,CAAErB,MAAO,WAAYsB,KAAM,UAErDO,eAAgB,CACZ,CAAET,MAAO,MAAOC,OAAQ,CAAErB,MAAO,WAAYsB,KAAM,OAAQE,aAAc,SACzE,CAAEJ,MAAO,QAASC,OAAQ,KAE9BS,cAAe,CACX,CAAEV,MAAO,IAAKC,OAAQ,CAAErB,MAAO,eAAgBsB,KAAM,SAErD,CAAEF,MAAO,kCAAmCC,OAAQ,CAAC,CAAErB,MAAO,iBAAmB,CAAEA,MAAO,cAAgB,CAAEA,MAAO,mBACnH,CAAEoB,MAAO,MAAOC,OAAQ,CAAErB,MAAO,kBACjC,CAAEoB,MAAO,mCAAoCC,OAAQ,CAAErB,MAAO,kBAC9D,CAAEoB,MAAO,UAAWC,OAAQ,CAAErB,MAAO","file":"js/chunk-2d0d2b72.62464703.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Artyom Shalkhakov. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *\r\n * Based on the ATS/Postiats lexer by Hongwei Xi.\r\n *--------------------------------------------------------------------------------------------*/\r\n'use strict';\r\nexport var conf = {\r\n comments: {\r\n lineComment: '//',\r\n blockComment: ['(*', '*)'],\r\n },\r\n brackets: [['{', '}'], ['[', ']'], ['(', ')'], ['<', '>']],\r\n autoClosingPairs: [\r\n { open: '\"', close: '\"', notIn: ['string', 'comment'] },\r\n { open: '{', close: '}', notIn: ['string', 'comment'] },\r\n { open: '[', close: ']', notIn: ['string', 'comment'] },\r\n { open: '(', close: ')', notIn: ['string', 'comment'] },\r\n ]\r\n};\r\nexport var language = {\r\n tokenPostfix: '.pats',\r\n // TODO: staload and dynload are followed by a special kind of string literals\r\n // with {$IDENTIFER} variables, and it also may make sense to highlight\r\n // the punctuation (. and / and \\) differently.\r\n // Set defaultToken to invalid to see what you do not tokenize yet\r\n defaultToken: 'invalid',\r\n // keyword reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing_token.dats\r\n keywords: [\r\n //\r\n \"abstype\",\r\n \"abst0ype\",\r\n \"absprop\",\r\n \"absview\",\r\n \"absvtype\",\r\n \"absviewtype\",\r\n \"absvt0ype\",\r\n \"absviewt0ype\",\r\n //\r\n \"as\",\r\n //\r\n \"and\",\r\n //\r\n \"assume\",\r\n //\r\n \"begin\",\r\n //\r\n /*\r\n \"case\", // CASE\r\n */\r\n //\r\n \"classdec\",\r\n //\r\n \"datasort\",\r\n //\r\n \"datatype\",\r\n \"dataprop\",\r\n \"dataview\",\r\n \"datavtype\",\r\n \"dataviewtype\",\r\n //\r\n \"do\",\r\n //\r\n \"end\",\r\n //\r\n \"extern\",\r\n \"extype\",\r\n \"extvar\",\r\n //\r\n \"exception\",\r\n //\r\n \"fn\",\r\n \"fnx\",\r\n \"fun\",\r\n //\r\n \"prfn\",\r\n \"prfun\",\r\n //\r\n \"praxi\",\r\n \"castfn\",\r\n //\r\n \"if\",\r\n \"then\",\r\n \"else\",\r\n //\r\n \"ifcase\",\r\n //\r\n \"in\",\r\n //\r\n \"infix\",\r\n \"infixl\",\r\n \"infixr\",\r\n \"prefix\",\r\n \"postfix\",\r\n //\r\n \"implmnt\",\r\n \"implement\",\r\n //\r\n \"primplmnt\",\r\n \"primplement\",\r\n //\r\n \"import\",\r\n //\r\n /*\r\n \"lam\", // LAM\r\n \"llam\", // LLAM\r\n \"fix\", // FIX\r\n */\r\n //\r\n \"let\",\r\n //\r\n \"local\",\r\n //\r\n \"macdef\",\r\n \"macrodef\",\r\n //\r\n \"nonfix\",\r\n //\r\n \"symelim\",\r\n \"symintr\",\r\n \"overload\",\r\n //\r\n \"of\",\r\n \"op\",\r\n //\r\n \"rec\",\r\n //\r\n \"sif\",\r\n \"scase\",\r\n //\r\n \"sortdef\",\r\n /*\r\n // HX: [sta] is now deprecated\r\n */\r\n \"sta\",\r\n \"stacst\",\r\n \"stadef\",\r\n \"static\",\r\n /*\r\n \"stavar\", // T_STAVAR\r\n */\r\n //\r\n \"staload\",\r\n \"dynload\",\r\n //\r\n \"try\",\r\n //\r\n \"tkindef\",\r\n //\r\n /*\r\n \"type\", // TYPE\r\n */\r\n \"typedef\",\r\n \"propdef\",\r\n \"viewdef\",\r\n \"vtypedef\",\r\n \"viewtypedef\",\r\n //\r\n /*\r\n \"val\", // VAL\r\n */\r\n \"prval\",\r\n //\r\n \"var\",\r\n \"prvar\",\r\n //\r\n \"when\",\r\n \"where\",\r\n //\r\n /*\r\n \"for\", // T_FOR\r\n \"while\", // T_WHILE\r\n */\r\n //\r\n \"with\",\r\n //\r\n \"withtype\",\r\n \"withprop\",\r\n \"withview\",\r\n \"withvtype\",\r\n \"withviewtype\",\r\n ],\r\n keywords_dlr: [\r\n \"$delay\",\r\n \"$ldelay\",\r\n //\r\n \"$arrpsz\",\r\n \"$arrptrsize\",\r\n //\r\n \"$d2ctype\",\r\n //\r\n \"$effmask\",\r\n \"$effmask_ntm\",\r\n \"$effmask_exn\",\r\n \"$effmask_ref\",\r\n \"$effmask_wrt\",\r\n \"$effmask_all\",\r\n //\r\n \"$extern\",\r\n \"$extkind\",\r\n \"$extype\",\r\n \"$extype_struct\",\r\n //\r\n \"$extval\",\r\n \"$extfcall\",\r\n \"$extmcall\",\r\n //\r\n \"$literal\",\r\n //\r\n \"$myfilename\",\r\n \"$mylocation\",\r\n \"$myfunction\",\r\n //\r\n \"$lst\",\r\n \"$lst_t\",\r\n \"$lst_vt\",\r\n \"$list\",\r\n \"$list_t\",\r\n \"$list_vt\",\r\n //\r\n \"$rec\",\r\n \"$rec_t\",\r\n \"$rec_vt\",\r\n \"$record\",\r\n \"$record_t\",\r\n \"$record_vt\",\r\n //\r\n \"$tup\",\r\n \"$tup_t\",\r\n \"$tup_vt\",\r\n \"$tuple\",\r\n \"$tuple_t\",\r\n \"$tuple_vt\",\r\n //\r\n \"$break\",\r\n \"$continue\",\r\n //\r\n \"$raise\",\r\n //\r\n \"$showtype\",\r\n //\r\n \"$vcopyenv_v\",\r\n \"$vcopyenv_vt\",\r\n //\r\n \"$tempenver\",\r\n //\r\n \"$solver_assert\",\r\n \"$solver_verify\",\r\n ],\r\n keywords_srp: [\r\n //\r\n \"#if\",\r\n \"#ifdef\",\r\n \"#ifndef\",\r\n //\r\n \"#then\",\r\n //\r\n \"#elif\",\r\n \"#elifdef\",\r\n \"#elifndef\",\r\n //\r\n \"#else\",\r\n \"#endif\",\r\n //\r\n \"#error\",\r\n //\r\n \"#prerr\",\r\n \"#print\",\r\n //\r\n \"#assert\",\r\n //\r\n \"#undef\",\r\n \"#define\",\r\n //\r\n \"#include\",\r\n \"#require\",\r\n //\r\n \"#pragma\",\r\n \"#codegen2\",\r\n \"#codegen3\",\r\n ],\r\n irregular_keyword_list: [\r\n \"val+\",\r\n \"val-\",\r\n \"val\",\r\n \"case+\",\r\n \"case-\",\r\n \"case\",\r\n \"addr@\",\r\n \"addr\",\r\n \"fold@\",\r\n \"free@\",\r\n \"fix@\",\r\n \"fix\",\r\n \"lam@\",\r\n \"lam\",\r\n \"llam@\",\r\n \"llam\",\r\n \"viewt@ype+\",\r\n \"viewt@ype-\",\r\n \"viewt@ype\",\r\n \"viewtype+\",\r\n \"viewtype-\",\r\n \"viewtype\",\r\n \"view+\",\r\n \"view-\",\r\n \"view@\",\r\n \"view\",\r\n \"type+\",\r\n \"type-\",\r\n \"type\",\r\n \"vtype+\",\r\n \"vtype-\",\r\n \"vtype\",\r\n \"vt@ype+\",\r\n \"vt@ype-\",\r\n \"vt@ype\",\r\n \"viewt@ype+\",\r\n \"viewt@ype-\",\r\n \"viewt@ype\",\r\n \"viewtype+\",\r\n \"viewtype-\",\r\n \"viewtype\",\r\n \"prop+\",\r\n \"prop-\",\r\n \"prop\",\r\n \"type+\",\r\n \"type-\",\r\n \"type\",\r\n \"t@ype\",\r\n \"t@ype+\",\r\n \"t@ype-\",\r\n \"abst@ype\",\r\n \"abstype\",\r\n \"absviewt@ype\",\r\n \"absvt@ype\",\r\n \"for*\",\r\n \"for\",\r\n \"while*\",\r\n \"while\"\r\n ],\r\n keywords_types: [\r\n 'bool',\r\n 'double',\r\n 'byte',\r\n 'int',\r\n 'short',\r\n 'char',\r\n 'void',\r\n 'unit',\r\n 'long',\r\n 'float',\r\n 'string',\r\n 'strptr'\r\n ],\r\n // TODO: reference for this?\r\n keywords_effects: [\r\n \"0\",\r\n \"fun\",\r\n \"clo\",\r\n \"prf\",\r\n \"funclo\",\r\n \"cloptr\",\r\n \"cloref\",\r\n \"ref\",\r\n \"ntm\",\r\n \"1\" // all effects\r\n ],\r\n operators: [\r\n \"@\",\r\n \"!\",\r\n \"|\",\r\n \"`\",\r\n \":\",\r\n \"$\",\r\n \".\",\r\n \"=\",\r\n \"#\",\r\n \"~\",\r\n //\r\n \"..\",\r\n \"...\",\r\n //\r\n \"=>\",\r\n // \"=<\", // T_EQLT\r\n \"=<>\",\r\n \"=/=>\",\r\n \"=>>\",\r\n \"=/=>>\",\r\n //\r\n \"<\",\r\n \">\",\r\n //\r\n \"><\",\r\n //\r\n \".<\",\r\n \">.\",\r\n //\r\n \".<>.\",\r\n //\r\n \"->\",\r\n //\"-<\", // T_MINUSLT\r\n \"-<>\",\r\n ],\r\n brackets: [\r\n { open: ',(', close: ')', token: 'delimiter.parenthesis' },\r\n { open: '`(', close: ')', token: 'delimiter.parenthesis' },\r\n { open: '%(', close: ')', token: 'delimiter.parenthesis' },\r\n { open: '\\'(', close: ')', token: 'delimiter.parenthesis' },\r\n { open: '\\'{', close: '}', token: 'delimiter.parenthesis' },\r\n { open: '@(', close: ')', token: 'delimiter.parenthesis' },\r\n { open: '@{', close: '}', token: 'delimiter.brace' },\r\n { open: '@[', close: ']', token: 'delimiter.square' },\r\n { open: '#[', close: ']', token: 'delimiter.square' },\r\n { open: '{', close: '}', token: 'delimiter.curly' },\r\n { open: '[', close: ']', token: 'delimiter.square' },\r\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\r\n { open: '<', close: '>', token: 'delimiter.angle' }\r\n ],\r\n // we include these common regular expressions\r\n symbols: /[=>]/,\r\n digit: /[0-9]/,\r\n digitseq0: /@digit*/,\r\n xdigit: /[0-9A-Za-z]/,\r\n xdigitseq0: /@xdigit*/,\r\n INTSP: /[lLuU]/,\r\n FLOATSP: /[fFlL]/,\r\n fexponent: /[eE][+-]?[0-9]+/,\r\n fexponent_bin: /[pP][+-]?[0-9]+/,\r\n deciexp: /\\.[0-9]*@fexponent?/,\r\n hexiexp: /\\.[0-9a-zA-Z]*@fexponent_bin?/,\r\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\\*?/,\r\n ESCHAR: /[ntvbrfa\\\\\\?'\"\\(\\[\\{]/,\r\n start: 'root',\r\n // The main tokenizer for ATS/Postiats\r\n // reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing.dats\r\n tokenizer: {\r\n root: [\r\n // lexing_blankseq0\r\n { regex: /[ \\t\\r\\n]+/, action: { token: '' } },\r\n // NOTE: (*) is an invalid ML-like comment!\r\n { regex: /\\(\\*\\)/, action: { token: 'invalid' } },\r\n { regex: /\\(\\*/, action: { token: 'comment', next: 'lexing_COMMENT_block_ml' } },\r\n { regex: /\\(/, action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ },\r\n { regex: /\\)/, action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ },\r\n { regex: /\\[/, action: '@brackets' /*{ token: 'delimiter.bracket' }*/ },\r\n { regex: /\\]/, action: '@brackets' /*{ token: 'delimiter.bracket' }*/ },\r\n { regex: /\\{/, action: '@brackets' /*{ token: 'delimiter.brace' }*/ },\r\n { regex: /\\}/, action: '@brackets' /*{ token: 'delimiter.brace' }*/ },\r\n // lexing_COMMA\r\n { regex: /,\\(/, action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ },\r\n { regex: /,/, action: { token: 'delimiter.comma' } },\r\n { regex: /;/, action: { token: 'delimiter.semicolon' } },\r\n // lexing_AT\r\n { regex: /@\\(/, action: '@brackets' /* { token: 'delimiter.parenthesis' }*/ },\r\n { regex: /@\\[/, action: '@brackets' /* { token: 'delimiter.bracket' }*/ },\r\n { regex: /@\\{/, action: '@brackets' /*{ token: 'delimiter.brace' }*/ },\r\n // lexing_COLON\r\n { regex: /: lexing_IDENT_sym\r\n . FLOATDOT => lexing_FLOAT_deciexp\r\n . DIGIT => T_DOTINT\r\n */\r\n { regex: /\\.@symbolic+/, action: { token: 'identifier.sym' } },\r\n // FLOATDOT case\r\n { regex: /\\.@digit*@fexponent@FLOATSP*/, action: { token: 'number.float' } },\r\n { regex: /\\.@digit+/, action: { token: 'number.float' } },\r\n // lexing_DOLLAR:\r\n // '$' IDENTFST IDENTRST* => lexing_IDENT_dlr, _ => lexing_IDENT_sym\r\n {\r\n regex: /\\$@IDENTFST@IDENTRST*/,\r\n action: {\r\n cases: {\r\n '@keywords_dlr': { token: 'keyword.dlr' },\r\n '@default': { token: 'namespace' },\r\n }\r\n }\r\n },\r\n // lexing_SHARP:\r\n // '#' IDENTFST IDENTRST* => lexing_ident_srp, _ => lexing_IDENT_sym\r\n {\r\n regex: /\\#@IDENTFST@IDENTRST*/,\r\n action: {\r\n cases: {\r\n '@keywords_srp': { token: 'keyword.srp' },\r\n '@default': { token: 'identifier' },\r\n }\r\n }\r\n },\r\n // lexing_PERCENT:\r\n { regex: /%\\(/, action: { token: 'delimiter.parenthesis' } },\r\n { regex: /^%{(#|\\^|\\$)?/, action: { token: 'keyword', next: '@lexing_EXTCODE', nextEmbedded: 'text/javascript' } },\r\n { regex: /^%}/, action: { token: 'keyword' } },\r\n // lexing_QUOTE\r\n { regex: /'\\(/, action: { token: 'delimiter.parenthesis' } },\r\n { regex: /'\\[/, action: { token: 'delimiter.bracket' } },\r\n { regex: /'\\{/, action: { token: 'delimiter.brace' } },\r\n [/(')(\\\\@ESCHAR|\\\\[xX]@xdigit+|\\\\@digit+)(')/, ['string', 'string.escape', 'string']],\r\n [/'[^\\\\']'/, 'string'],\r\n // lexing_DQUOTE\r\n [/\"/, 'string.quote', '@lexing_DQUOTE'],\r\n // lexing_BQUOTE\r\n { regex: /`\\(/, action: '@brackets' /* { token: 'delimiter.parenthesis' }*/ },\r\n // TODO: otherwise, try lexing_IDENT_sym\r\n { regex: /\\\\/, action: { token: 'punctuation' } },\r\n // lexing_IDENT_alp:\r\n // NOTE: (?!regex) is syntax for \"not-followed-by\" regex\r\n // to resolve ambiguity such as foreach$fwork being incorrectly lexed as [for] [each$fwork]!\r\n { regex: /@irregular_keywords(?!@IDENTRST)/, action: { token: 'keyword' } },\r\n {\r\n regex: /@IDENTFST@IDENTRST*[ punctuation\r\n // ({\\$)([a-zA-Z_][a-zA-Z_0-9]*)(}) => punctuation,keyword,punctuation\r\n // [^\"] => identifier/literal\r\n '@keywords': { token: 'keyword' },\r\n '@keywords_types': { token: 'type' },\r\n '@default': { token: 'identifier' }\r\n }\r\n }\r\n },\r\n // lexing_IDENT_sym:\r\n { regex: /\\/\\/\\/\\//, action: { token: 'comment', next: '@lexing_COMMENT_rest' } },\r\n { regex: /\\/\\/.*$/, action: { token: 'comment' } },\r\n { regex: /\\/\\*/, action: { token: 'comment', next: '@lexing_COMMENT_block_c' } },\r\n // AS-20160627: specifically for effect annotations\r\n { regex: /-<|= lexing_FLOAT_hexiexp\r\n // - testing_fexponent_bin => lexing_FLOAT_hexiexp\r\n // - testing_intspseq0 => T_INT_hex\r\n // lexing_INT_hex:\r\n { regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/, action: { token: 'number.float' } },\r\n { regex: /0[xX]@xdigit+@INTSP*/, action: { token: 'number.hex' } },\r\n { regex: /0[0-7]+(?![0-9])@INTSP*/, action: { token: 'number.octal' } },\r\n //{regex: /0/, action: { token: 'number' } }, // INTZERO\r\n // lexing_INT_dec:\r\n // - testing_deciexp => lexing_FLOAT_deciexp\r\n // - testing_fexponent => lexing_FLOAT_deciexp\r\n // - otherwise => intspseq0 ([0-9]*[lLuU]?)\r\n { regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/, action: { token: 'number.float' } },\r\n { regex: /@digit@digitseq0@INTSP*/, action: { token: 'number.decimal' } },\r\n // DIGIT, if followed by digitseq0, is lexing_INT_dec\r\n { regex: /@digit+@INTSP*/, action: { token: 'number' } },\r\n ],\r\n lexing_COMMENT_block_ml: [\r\n [/[^\\(\\*]+/, 'comment'],\r\n [/\\(\\*/, 'comment', '@push'],\r\n [/\\(\\*/, 'comment.invalid'],\r\n [/\\*\\)/, 'comment', '@pop'],\r\n [/\\*/, 'comment']\r\n ],\r\n lexing_COMMENT_block_c: [\r\n [/[^\\/*]+/, 'comment'],\r\n // [/\\/\\*/, 'comment', '@push' ], // nested C-style block comments not allowed\r\n // [/\\/\\*/, 'comment.invalid' ],\t// NOTE: this breaks block comments in the shape of /* //*/\r\n [/\\*\\//, 'comment', '@pop'],\r\n [/[\\/*]/, 'comment']\r\n ],\r\n lexing_COMMENT_rest: [\r\n [/$/, 'comment', '@pop'],\r\n [/.*/, 'comment']\r\n ],\r\n // NOTE: added by AS, specifically for highlighting\r\n lexing_EFFECT_commaseq0: [\r\n {\r\n regex: /@IDENTFST@IDENTRST+|@digit+/,\r\n action: {\r\n cases: {\r\n '@keywords_effects': { token: 'type.effect' },\r\n '@default': { token: 'identifier' }\r\n }\r\n }\r\n },\r\n { regex: /,/, action: { token: 'punctuation' } },\r\n { regex: />/, action: { token: '@rematch', next: '@pop' } },\r\n ],\r\n lexing_EXTCODE: [\r\n { regex: /^%}/, action: { token: '@rematch', next: '@pop', nextEmbedded: '@pop' } },\r\n { regex: /[^%]+/, action: '' },\r\n ],\r\n lexing_DQUOTE: [\r\n { regex: /\"/, action: { token: 'string.quote', next: '@pop' } },\r\n // AS-20160628: additional hi-lighting for variables in staload/dynload strings\r\n { regex: /(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/, action: [{ token: 'string.escape' }, { token: 'identifier' }, { token: 'string.escape' }] },\r\n { regex: /\\\\$/, action: { token: 'string.escape' } },\r\n { regex: /\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/, action: { token: 'string.escape' } },\r\n { regex: /[^\\\\\"]+/, action: { token: 'string' } }\r\n ],\r\n },\r\n};\r\n"],"sourceRoot":""}