33.js
19.8 KB
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[33],{
/***/ "./node_modules/monaco-editor/esm/vs/basic-languages/postiats/postiats.js":
/*!********************************************************************************!*\
!*** ./node_modules/monaco-editor/esm/vs/basic-languages/postiats/postiats.js ***!
\********************************************************************************/
/*! exports provided: conf, language */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conf\", function() { return conf; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"language\", function() { return language; });\n/*---------------------------------------------------------------------------------------------\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 *--------------------------------------------------------------------------------------------*/\n\nvar conf = {\n comments: {\n lineComment: '//',\n blockComment: ['(*', '*)'],\n },\n brackets: [['{', '}'], ['[', ']'], ['(', ')'], ['<', '>']],\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};\nvar 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\",\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\",\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\",\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 \"-<>\",\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 IDENTFST: /[a-zA-Z_]/,\n IDENTRST: /[a-zA-Z0-9_'$]/,\n symbolic: /[%&+-./:=@~`^|*!$#?<>]/,\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 { regex: /\\(\\*/, action: { token: 'comment', next: 'lexing_COMMENT_block_ml' } },\n { regex: /\\(/, action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ },\n { regex: /\\)/, action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ },\n { regex: /\\[/, action: '@brackets' /*{ token: 'delimiter.bracket' }*/ },\n { regex: /\\]/, action: '@brackets' /*{ token: 'delimiter.bracket' }*/ },\n { regex: /\\{/, action: '@brackets' /*{ token: 'delimiter.brace' }*/ },\n { regex: /\\}/, action: '@brackets' /*{ token: 'delimiter.brace' }*/ },\n // lexing_COMMA\n { regex: /,\\(/, action: '@brackets' /*{ token: 'delimiter.parenthesis' }*/ },\n { regex: /,/, action: { token: 'delimiter.comma' } },\n { regex: /;/, action: { token: 'delimiter.semicolon' } },\n // lexing_AT\n { regex: /@\\(/, action: '@brackets' /* { token: 'delimiter.parenthesis' }*/ },\n { regex: /@\\[/, action: '@brackets' /* { token: 'delimiter.bracket' }*/ },\n { regex: /@\\{/, action: '@brackets' /*{ token: 'delimiter.brace' }*/ },\n // lexing_COLON\n { regex: /:</, action: { token: 'keyword', next: '@lexing_EFFECT_commaseq0' } },\n /*\n lexing_DOT:\n\n . // SYMBOLIC => lexing_IDENT_sym\n . FLOATDOT => lexing_FLOAT_deciexp\n . DIGIT => T_DOTINT\n */\n { regex: /\\.@symbolic+/, action: { token: 'identifier.sym' } },\n // FLOATDOT case\n { regex: /\\.@digit*@fexponent@FLOATSP*/, action: { token: 'number.float' } },\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' },\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 { regex: /^%{(#|\\^|\\$)?/, action: { token: 'keyword', next: '@lexing_EXTCODE', nextEmbedded: 'text/javascript' } },\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 { regex: /`\\(/, action: '@brackets' /* { token: 'delimiter.parenthesis' }*/ },\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 { regex: /@irregular_keywords(?!@IDENTRST)/, action: { token: 'keyword' } },\n {\n regex: /@IDENTFST@IDENTRST*[<!\\[]?/,\n action: {\n cases: {\n // TODO: dynload and staload should be specially parsed\n // dynload whitespace+ \"special_string\"\n // this special string is really:\n // '/' '\\\\' '.' => 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 { regex: /\\/\\/\\/\\//, action: { token: 'comment', next: '@lexing_COMMENT_rest' } },\n { regex: /\\/\\/.*$/, action: { token: 'comment' } },\n { regex: /\\/\\*/, action: { token: 'comment', next: '@lexing_COMMENT_block_c' } },\n // AS-20160627: specifically for effect annotations\n { regex: /-<|=</, action: { token: 'keyword', next: '@lexing_EFFECT_commaseq0' } },\n {\n regex: /@symbolic+/,\n action: {\n cases: {\n '@operators': 'keyword',\n '@default': 'operator'\n }\n }\n },\n // lexing_ZERO:\n // FIXME: this one is quite messy/unfinished yet\n // TODO: lexing_INT_hex\n // - testing_hexiexp => lexing_FLOAT_hexiexp\n // - testing_fexponent_bin => lexing_FLOAT_hexiexp\n // - testing_intspseq0 => T_INT_hex\n // lexing_INT_hex:\n { regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/, action: { token: 'number.float' } },\n { regex: /0[xX]@xdigit+@INTSP*/, action: { token: 'number.hex' } },\n { regex: /0[0-7]+(?![0-9])@INTSP*/, action: { token: 'number.octal' } },\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 { regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/, action: { token: 'number.float' } },\n { regex: /@digit@digitseq0@INTSP*/, action: { token: 'number.decimal' } },\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 { regex: /^%}/, action: { token: '@rematch', next: '@pop', nextEmbedded: '@pop' } },\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 { regex: /(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/, action: [{ token: 'string.escape' }, { token: 'identifier' }, { token: 'string.escape' }] },\n { regex: /\\\\$/, action: { token: 'string.escape' } },\n { regex: /\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/, action: { token: 'string.escape' } },\n { regex: /[^\\\\\"]+/, action: { token: 'string' } }\n ],\n },\n};\n\n\n//# sourceURL=webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/postiats/postiats.js?");
/***/ })
}]);