| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/define(["require", "exports"], function (require, exports) {    'use strict';    Object.defineProperty(exports, "__esModule", { value: true });    exports.conf = {        comments: {            lineComment: '//',            blockComment: ['/*', '*/'],        },        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 = {        defaultToken: '',        tokenPostfix: '.objective-c',        keywords: [            '#import',            '#include',            '#define',            '#else',            '#endif',            '#if',            '#ifdef',            '#ifndef',            '#ident',            '#undef',            '@class',            '@defs',            '@dynamic',            '@encode',            '@end',            '@implementation',            '@interface',            '@package',            '@private',            '@protected',            '@property',            '@protocol',            '@public',            '@selector',            '@synthesize',            '__declspec',            'assign',            'auto',            'BOOL',            'break',            'bycopy',            'byref',            'case',            'char',            'Class',            'const',            'copy',            'continue',            'default',            'do',            'double',            'else',            'enum',            'extern',            'FALSE',            'false',            'float',            'for',            'goto',            'if',            'in',            'int',            'id',            'inout',            'IMP',            'long',            'nil',            'nonatomic',            'NULL',            'oneway',            'out',            'private',            'public',            'protected',            'readwrite',            'readonly',            'register',            'return',            'SEL',            'self',            'short',            'signed',            'sizeof',            'static',            'struct',            'super',            'switch',            'typedef',            'TRUE',            'true',            'union',            'unsigned',            'volatile',            'void',            'while',        ],        decpart: /\d(_?\d)*/,        decimal: /0|@decpart/,        tokenizer: {            root: [                { include: '@comments' },                { include: '@whitespace' },                { include: '@numbers' },                { include: '@strings' },                [/[,:;]/, 'delimiter'],                [/[{}\[\]()<>]/, '@brackets'],                [/[a-zA-Z@#]\w*/, {                        cases: {                            '@keywords': 'keyword',                            '@default': 'identifier'                        }                    }],                [/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/, 'operator'],            ],            whitespace: [                [/\s+/, 'white'],            ],            comments: [                ['\\/\\*', 'comment', '@comment'],                ['\\/\\/+.*', 'comment'],            ],            comment: [                ['\\*\\/', 'comment', '@pop'],                ['.', 'comment',],            ],            numbers: [                [/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/, 'number.hex'],                [/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/, {                        cases: {                            '(\\d)*': 'number',                            '$0': 'number.float'                        }                    }]            ],            // Recognize strings, including those broken across lines with \ (but not without)            strings: [                [/'$/, 'string.escape', '@popall'],                [/'/, 'string.escape', '@stringBody'],                [/"$/, 'string.escape', '@popall'],                [/"/, 'string.escape', '@dblStringBody']            ],            stringBody: [                [/[^\\']+$/, 'string', '@popall'],                [/[^\\']+/, 'string'],                [/\\./, 'string'],                [/'/, 'string.escape', '@popall'],                [/\\$/, 'string']            ],            dblStringBody: [                [/[^\\"]+$/, 'string', '@popall'],                [/[^\\"]+/, 'string'],                [/\\./, 'string'],                [/"/, 'string.escape', '@popall'],                [/\\$/, 'string']            ]        }    };});
 |