UNPKG

@21epub/epub-thirdparty

Version:
240 lines (238 loc) 7.55 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ define('vs/basic-languages/tcl/tcl',["require", "exports"], function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.language = exports.conf = void 0; exports.conf = { brackets: [ ['{', '}'], ['[', ']'], ['(', ')'] ], autoClosingPairs: [ { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' }, { open: '"', close: '"' }, { open: "'", close: "'" } ], surroundingPairs: [ { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' }, { open: '"', close: '"' }, { open: "'", close: "'" } ] }; exports.language = { tokenPostfix: '.tcl', specialFunctions: [ 'set', 'unset', 'rename', 'variable', 'proc', 'coroutine', 'foreach', 'incr', 'append', 'lappend', 'linsert', 'lreplace' ], mainFunctions: [ 'if', 'then', 'elseif', 'else', 'case', 'switch', 'while', 'for', 'break', 'continue', 'return', 'package', 'namespace', 'catch', 'exit', 'eval', 'expr', 'uplevel', 'upvar' ], builtinFunctions: [ 'file', 'info', 'concat', 'join', 'lindex', 'list', 'llength', 'lrange', 'lsearch', 'lsort', 'split', 'array', 'parray', 'binary', 'format', 'regexp', 'regsub', 'scan', 'string', 'subst', 'dict', 'cd', 'clock', 'exec', 'glob', 'pid', 'pwd', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek', 'socket', 'tell', 'interp', 'after', 'auto_execok', 'auto_load', 'auto_mkindex', 'auto_reset', 'bgerror', 'error', 'global', 'history', 'load', 'source', 'time', 'trace', 'unknown', 'unset', 'update', 'vwait', 'winfo', 'wm', 'bind', 'event', 'pack', 'place', 'grid', 'font', 'bell', 'clipboard', 'destroy', 'focus', 'grab', 'lower', 'option', 'raise', 'selection', 'send', 'tk', 'tkwait', 'tk_bisque', 'tk_focusNext', 'tk_focusPrev', 'tk_focusFollowsMouse', 'tk_popup', 'tk_setPalette' ], symbols: /[=><!~?:&|+\-*\/\^%]+/, brackets: [ { open: '(', close: ')', token: 'delimiter.parenthesis' }, { open: '{', close: '}', token: 'delimiter.curly' }, { open: '[', close: ']', token: 'delimiter.square' } ], escapes: /\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, variables: /(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/, tokenizer: { root: [ // identifiers and keywords [ /[a-zA-Z_]\w*/, { cases: { '@specialFunctions': { token: 'keyword.flow', next: '@specialFunc' }, '@mainFunctions': 'keyword', '@builtinFunctions': 'variable', '@default': 'operator.scss' } } ], [/\s+\-+(?!\d|\.)\w*|{\*}/, 'metatag'], // whitespace { include: '@whitespace' }, // delimiters and operators [/[{}()\[\]]/, '@brackets'], [/@symbols/, 'operator'], [/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }], [/@variables/, 'type.identifier'], [/\.(?!\d|\.)[\w\-]*/, 'operator.sql'], // numbers [/\d+(\.\d+)?/, 'number'], [/\d+/, 'number'], // delimiter [/;/, 'delimiter'], // strings [/"/, { token: 'string.quote', bracket: '@open', next: '@dstring' }], [/'/, { token: 'string.quote', bracket: '@open', next: '@sstring' }] ], dstring: [ [/\[/, { token: '@brackets', next: '@nestedCall' }], [/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }], [/@variables/, 'type.identifier'], [/[^\\$\[\]"]+/, 'string'], [/@escapes/, 'string.escape'], [/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }] ], sstring: [ [/\[/, { token: '@brackets', next: '@nestedCall' }], [/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }], [/@variables/, 'type.identifier'], [/[^\\$\[\]']+/, 'string'], [/@escapes/, 'string.escape'], [/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }] ], whitespace: [ [/[ \t\r\n]+/, 'white'], [/#.*\\$/, { token: 'comment', next: '@newlineComment' }], [/#.*(?!\\)$/, 'comment'] ], newlineComment: [ [/.*\\$/, 'comment'], [/.*(?!\\)$/, { token: 'comment', next: '@pop' }] ], nestedVariable: [ [/[^\{\}\$]+/, 'type.identifier'], [/\}/, { token: 'identifier', next: '@pop' }] ], nestedCall: [ [/\[/, { token: '@brackets', next: '@nestedCall' }], [/\]/, { token: '@brackets', next: '@pop' }], { include: 'root' } ], specialFunc: [ [/"/, { token: 'string', next: '@dstring' }], [/'/, { token: 'string', next: '@sstring' }], [/\S+/, { token: 'type', next: '@pop' }] ] } }; });