/*--------------------------------------------------------------------------------------------- * 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/m3/m3',["require", "exports"], function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.language = exports.conf = void 0; exports.conf = { comments: { blockComment: ['(*', '*)'] }, brackets: [ ['{', '}'], ['[', ']'], ['(', ')'] ], autoClosingPairs: [ { open: '[', close: ']' }, { open: '{', close: '}' }, { open: '(', close: ')' }, { open: '(*', close: '*)' }, { open: '<*', close: '*>' }, { open: "'", close: "'", notIn: ['string', 'comment'] }, { open: '"', close: '"', notIn: ['string', 'comment'] } ] }; exports.language = { defaultToken: '', tokenPostfix: '.m3', brackets: [ { token: 'delimiter.curly', open: '{', close: '}' }, { token: 'delimiter.parenthesis', open: '(', close: ')' }, { token: 'delimiter.square', open: '[', close: ']' } ], keywords: [ 'AND', 'ANY', 'ARRAY', 'AS', 'BEGIN', 'BITS', 'BRANDED', 'BY', 'CASE', 'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EVAL', 'EXCEPT', 'EXCEPTION', 'EXIT', 'EXPORTS', 'FINALLY', 'FOR', 'FROM', 'GENERIC', 'IF', 'IMPORT', 'IN', 'INTERFACE', 'LOCK', 'LOOP', 'METHODS', 'MOD', 'MODULE', 'NOT', 'OBJECT', 'OF', 'OR', 'OVERRIDES', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF', 'REPEAT', 'RETURN', 'REVEAL', 'SET', 'THEN', 'TO', 'TRY', 'TYPE', 'TYPECASE', 'UNSAFE', 'UNTIL', 'UNTRACED', 'VALUE', 'VAR', 'WHILE', 'WITH' ], reservedConstNames: [ 'ABS', 'ADR', 'ADRSIZE', 'BITSIZE', 'BYTESIZE', 'CEILING', 'DEC', 'DISPOSE', 'FALSE', 'FIRST', 'FLOAT', 'FLOOR', 'INC', 'ISTYPE', 'LAST', 'LOOPHOLE', 'MAX', 'MIN', 'NARROW', 'NEW', 'NIL', 'NUMBER', 'ORD', 'ROUND', 'SUBARRAY', 'TRUE', 'TRUNC', 'TYPECODE', 'VAL' ], reservedTypeNames: [ 'ADDRESS', 'ANY', 'BOOLEAN', 'CARDINAL', 'CHAR', 'EXTENDED', 'INTEGER', 'LONGCARD', 'LONGINT', 'LONGREAL', 'MUTEX', 'NULL', 'REAL', 'REFANY', 'ROOT', 'TEXT' ], operators: ['+', '-', '*', '/', '&', '^', '.'], relations: ['=', '#', '<', '<=', '>', '>=', '<:', ':'], delimiters: ['|', '..', '=>', ',', ';', ':='], symbols: /[>=<#.,:;+\-*/&^]+/, escapes: /\\(?:[\\fnrt"']|[0-7]{3})/, tokenizer: { root: [ // Identifiers and keywords [/_\w*/, 'invalid'], [ /[a-zA-Z][a-zA-Z0-9_]*/, { cases: { '@keywords': { token: 'keyword.$0' }, '@reservedConstNames': { token: 'constant.reserved.$0' }, '@reservedTypeNames': { token: 'type.reserved.$0' }, '@default': 'identifier' } } ], // Whitespace { include: '@whitespace' }, [/[{}()\[\]]/, '@brackets'], // Integer- and real literals [/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/, 'number.float'], [/[0-9]+(?:\_[0-9a-fA-F]+)?L?/, 'number'], // Operators, relations, and delimiters [ /@symbols/, { cases: { '@operators': 'operators', '@relations': 'operators', '@delimiters': 'delimiter', '@default': 'invalid' } } ], // Character literals [/'[^\\']'/, 'string.char'], [/(')(@escapes)(')/, ['string.char', 'string.escape', 'string.char']], [/'/, 'invalid'], // Text literals [/"([^"\\]|\\.)*$/, 'invalid'], [/"/, 'string.text', '@text'] ], text: [ [/[^\\"]+/, 'string.text'], [/@escapes/, 'string.escape'], [/\\./, 'invalid'], [/"/, 'string.text', '@pop'] ], comment: [ [/\(\*/, 'comment', '@push'], [/\*\)/, 'comment', '@pop'], [/./, 'comment'] ], pragma: [ [/<\*/, 'keyword.pragma', '@push'], [/\*>/, 'keyword.pragma', '@pop'], [/./, 'keyword.pragma'] ], whitespace: [ [/[ \t\r\n]+/, 'white'], [/\(\*/, 'comment', '@comment'], [/<\*/, 'keyword.pragma', '@pragma'] ] } }; });