/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-languages version: 0.8.0(fbdcb70601ea4f81278d62ad15d456807ccaa7fa)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
define('vs/basic-languages/src/sql', ['require', 'exports'], function(E, T) {
  'use strict'
  Object.defineProperty(T, '__esModule', { value: !0 }),
    (T.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: "'" }
      ]
    }),
    (T.language = {
      defaultToken: '',
      tokenPostfix: '.sql',
      ignoreCase: !0,
      brackets: [
        { open: '[', close: ']', token: 'delimiter.square' },
        { open: '(', close: ')', token: 'delimiter.parenthesis' }
      ],
      keywords: [
        'ABORT_AFTER_WAIT',
        'ABSENT',
        'ABSOLUTE',
        'ACCENT_SENSITIVITY',
        'ACTION',
        'ACTIVATION',
        'ACTIVE',
        'ADD',
        'ADDRESS',
        'ADMIN',
        'AES',
        'AES_128',
        'AES_192',
        'AES_256',
        'AFFINITY',
        'AFTER',
        'AGGREGATE',
        'ALGORITHM',
        'ALL_CONSTRAINTS',
        'ALL_ERRORMSGS',
        'ALL_INDEXES',
        'ALL_LEVELS',
        'ALL_SPARSE_COLUMNS',
        'ALLOW_CONNECTIONS',
        'ALLOW_MULTIPLE_EVENT_LOSS',
        'ALLOW_PAGE_LOCKS',
        'ALLOW_ROW_LOCKS',
        'ALLOW_SINGLE_EVENT_LOSS',
        'ALLOW_SNAPSHOT_ISOLATION',
        'ALLOWED',
        'ALTER',
        'ANONYMOUS',
        'ANSI_DEFAULTS',
        'ANSI_NULL_DEFAULT',
        'ANSI_NULL_DFLT_OFF',
        'ANSI_NULL_DFLT_ON',
        'ANSI_NULLS',
        'ANSI_PADDING',
        'ANSI_WARNINGS',
        'APPEND',
        'APPLICATION',
        'APPLICATION_LOG',
        'ARITHABORT',
        'ARITHIGNORE',
        'AS',
        'ASC',
        'ASSEMBLY',
        'ASYMMETRIC',
        'ASYNCHRONOUS_COMMIT',
        'AT',
        'ATOMIC',
        'ATTACH',
        'ATTACH_REBUILD_LOG',
        'AUDIT',
        'AUDIT_GUID',
        'AUTHENTICATION',
        'AUTHORIZATION',
        'AUTO',
        'AUTO_CLEANUP',
        'AUTO_CLOSE',
        'AUTO_CREATE_STATISTICS',
        'AUTO_SHRINK',
        'AUTO_UPDATE_STATISTICS',
        'AUTO_UPDATE_STATISTICS_ASYNC',
        'AUTOMATED_BACKUP_PREFERENCE',
        'AUTOMATIC',
        'AVAILABILITY',
        'AVAILABILITY_MODE',
        'BACKUP',
        'BACKUP_PRIORITY',
        'BASE64',
        'BATCHSIZE',
        'BEGIN',
        'BEGIN_DIALOG',
        'BIGINT',
        'BINARY',
        'BINDING',
        'BIT',
        'BLOCKERS',
        'BLOCKSIZE',
        'BOUNDING_BOX',
        'BREAK',
        'BROKER',
        'BROKER_INSTANCE',
        'BROWSE',
        'BUCKET_COUNT',
        'BUFFER',
        'BUFFERCOUNT',
        'BULK',
        'BULK_LOGGED',
        'BY',
        'CACHE',
        'CALL',
        'CALLED',
        'CALLER',
        'CAP_CPU_PERCENT',
        'CASCADE',
        'CASE',
        'CATALOG',
        'CATCH',
        'CELLS_PER_OBJECT',
        'CERTIFICATE',
        'CHANGE_RETENTION',
        'CHANGE_TRACKING',
        'CHANGES',
        'CHAR',
        'CHARACTER',
        'CHECK',
        'CHECK_CONSTRAINTS',
        'CHECK_EXPIRATION',
        'CHECK_POLICY',
        'CHECKALLOC',
        'CHECKCATALOG',
        'CHECKCONSTRAINTS',
        'CHECKDB',
        'CHECKFILEGROUP',
        'CHECKIDENT',
        'CHECKPOINT',
        'CHECKTABLE',
        'CLASSIFIER_FUNCTION',
        'CLEANTABLE',
        'CLEANUP',
        'CLEAR',
        'CLOSE',
        'CLUSTER',
        'CLUSTERED',
        'CODEPAGE',
        'COLLATE',
        'COLLECTION',
        'COLUMN',
        'COLUMN_SET',
        'COLUMNS',
        'COLUMNSTORE',
        'COLUMNSTORE_ARCHIVE',
        'COMMIT',
        'COMMITTED',
        'COMPATIBILITY_LEVEL',
        'COMPRESSION',
        'COMPUTE',
        'CONCAT',
        'CONCAT_NULL_YIELDS_NULL',
        'CONFIGURATION',
        'CONNECT',
        'CONSTRAINT',
        'CONTAINMENT',
        'CONTENT',
        'CONTEXT',
        'CONTINUE',
        'CONTINUE_AFTER_ERROR',
        'CONTRACT',
        'CONTRACT_NAME',
        'CONTROL',
        'CONVERSATION',
        'COOKIE',
        'COPY_ONLY',
        'COUNTER',
        'CPU',
        'CREATE',
        'CREATE_NEW',
        'CREATION_DISPOSITION',
        'CREDENTIAL',
        'CRYPTOGRAPHIC',
        'CUBE',
        'CURRENT',
        'CURRENT_DATE',
        'CURSOR',
        'CURSOR_CLOSE_ON_COMMIT',
        'CURSOR_DEFAULT',
        'CYCLE',
        'DATA',
        'DATA_COMPRESSION',
        'DATA_PURITY',
        'DATABASE',
        'DATABASE_DEFAULT',
        'DATABASE_MIRRORING',
        'DATABASE_SNAPSHOT',
        'DATAFILETYPE',
        'DATE',
        'DATE_CORRELATION_OPTIMIZATION',
        'DATEFIRST',
        'DATEFORMAT',
        'DATETIME',
        'DATETIME2',
        'DATETIMEOFFSET',
        'DAY',
        'DAYOFYEAR',
        'DAYS',
        'DB_CHAINING',
        'DBCC',
        'DBREINDEX',
        'DDL_DATABASE_LEVEL_EVENTS',
        'DEADLOCK_PRIORITY',
        'DEALLOCATE',
        'DEC',
        'DECIMAL',
        'DECLARE',
        'DECRYPTION',
        'DEFAULT',
        'DEFAULT_DATABASE',
        'DEFAULT_FULLTEXT_LANGUAGE',
        'DEFAULT_LANGUAGE',
        'DEFAULT_SCHEMA',
        'DEFINITION',
        'DELAY',
        'DELAYED_DURABILITY',
        'DELETE',
        'DELETED',
        'DENSITY_VECTOR',
        'DENY',
        'DEPENDENTS',
        'DES',
        'DESC',
        'DESCRIPTION',
        'DESX',
        'DHCP',
        'DIAGNOSTICS',
        'DIALOG',
        'DIFFERENTIAL',
        'DIRECTORY_NAME',
        'DISABLE',
        'DISABLE_BROKER',
        'DISABLED',
        'DISK',
        'DISTINCT',
        'DISTRIBUTED',
        'DOCUMENT',
        'DOUBLE',
        'DROP',
        'DROP_EXISTING',
        'DROPCLEANBUFFERS',
        'DUMP',
        'DURABILITY',
        'DYNAMIC',
        'EDITION',
        'ELEMENTS',
        'ELSE',
        'EMERGENCY',
        'EMPTY',
        'EMPTYFILE',
        'ENABLE',
        'ENABLE_BROKER',
        'ENABLED',
        'ENCRYPTION',
        'END',
        'ENDPOINT',
        'ENDPOINT_URL',
        'ERRLVL',
        'ERROR',
        'ERROR_BROKER_CONVERSATIONS',
        'ERRORFILE',
        'ESCAPE',
        'ESTIMATEONLY',
        'EVENT',
        'EVENT_RETENTION_MODE',
        'EXEC',
        'EXECUTABLE',
        'EXECUTE',
        'EXIT',
        'EXPAND',
        'EXPIREDATE',
        'EXPIRY_DATE',
        'EXPLICIT',
        'EXTENDED_LOGICAL_CHECKS',
        'EXTENSION',
        'EXTERNAL',
        'EXTERNAL_ACCESS',
        'FAIL_OPERATION',
        'FAILOVER',
        'FAILOVER_MODE',
        'FAILURE_CONDITION_LEVEL',
        'FALSE',
        'FAN_IN',
        'FAST',
        'FAST_FORWARD',
        'FETCH',
        'FIELDTERMINATOR',
        'FILE',
        'FILEGROUP',
        'FILEGROWTH',
        'FILELISTONLY',
        'FILENAME',
        'FILEPATH',
        'FILESTREAM',
        'FILESTREAM_ON',
        'FILETABLE_COLLATE_FILENAME',
        'FILETABLE_DIRECTORY',
        'FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME',
        'FILETABLE_NAMESPACE',
        'FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME',
        'FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME',
        'FILLFACTOR',
        'FILTERING',
        'FIRE_TRIGGERS',
        'FIRST',
        'FIRSTROW',
        'FLOAT',
        'FMTONLY',
        'FOLLOWING',
        'FOR',
        'FORCE',
        'FORCE_FAILOVER_ALLOW_DATA_LOSS',
        'FORCE_SERVICE_ALLOW_DATA_LOSS',
        'FORCED',
        'FORCEPLAN',
        'FORCESCAN',
        'FORCESEEK',
        'FOREIGN',
        'FORMATFILE',
        'FORMSOF',
        'FORWARD_ONLY',
        'FREE',
        'FREEPROCCACHE',
        'FREESESSIONCACHE',
        'FREESYSTEMCACHE',
        'FROM',
        'FULL',
        'FULLSCAN',
        'FULLTEXT',
        'FUNCTION',
        'GB',
        'GEOGRAPHY_AUTO_GRID',
        'GEOGRAPHY_GRID',
        'GEOMETRY_AUTO_GRID',
        'GEOMETRY_GRID',
        'GET',
        'GLOBAL',
        'GO',
        'GOTO',
        'GOVERNOR',
        'GRANT',
        'GRIDS',
        'GROUP',
        'GROUP_MAX_REQUESTS',
        'HADR',
        'HASH',
        'HASHED',
        'HAVING',
        'HEADERONLY',
        'HEALTH_CHECK_TIMEOUT',
        'HELP',
        'HIERARCHYID',
        'HIGH',
        'HINT',
        'HISTOGRAM',
        'HOLDLOCK',
        'HONOR_BROKER_PRIORITY',
        'HOUR',
        'HOURS',
        'IDENTITY',
        'IDENTITY_INSERT',
        'IDENTITY_VALUE',
        'IDENTITYCOL',
        'IF',
        'IGNORE_CONSTRAINTS',
        'IGNORE_DUP_KEY',
        'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX',
        'IGNORE_TRIGGERS',
        'IMAGE',
        'IMMEDIATE',
        'IMPERSONATE',
        'IMPLICIT_TRANSACTIONS',
        'IMPORTANCE',
        'INCLUDE',
        'INCREMENT',
        'INCREMENTAL',
        'INDEX',
        'INDEXDEFRAG',
        'INFINITE',
        'INFLECTIONAL',
        'INIT',
        'INITIATOR',
        'INPUT',
        'INPUTBUFFER',
        'INSENSITIVE',
        'INSERT',
        'INSERTED',
        'INSTEAD',
        'INT',
        'INTEGER',
        'INTO',
        'IO',
        'IP',
        'ISABOUT',
        'ISOLATION',
        'JOB',
        'KB',
        'KEEP',
        'KEEP_CDC',
        'KEEP_NULLS',
        'KEEP_REPLICATION',
        'KEEPDEFAULTS',
        'KEEPFIXED',
        'KEEPIDENTITY',
        'KEEPNULLS',
        'KERBEROS',
        'KEY',
        'KEY_SOURCE',
        'KEYS',
        'KEYSET',
        'KILL',
        'KILOBYTES_PER_BATCH',
        'LABELONLY',
        'LANGUAGE',
        'LAST',
        'LASTROW',
        'LEVEL',
        'LEVEL_1',
        'LEVEL_2',
        'LEVEL_3',
        'LEVEL_4',
        'LIFETIME',
        'LINENO',
        'LIST',
        'LISTENER',
        'LISTENER_IP',
        'LISTENER_PORT',
        'LOAD',
        'LOADHISTORY',
        'LOB_COMPACTION',
        'LOCAL',
        'LOCAL_SERVICE_NAME',
        'LOCK_ESCALATION',
        'LOCK_TIMEOUT',
        'LOGIN',
        'LOGSPACE',
        'LOOP',
        'LOW',
        'MANUAL',
        'MARK',
        'MARK_IN_USE_FOR_REMOVAL',
        'MASTER',
        'MAX_CPU_PERCENT',
        'MAX_DISPATCH_LATENCY',
        'MAX_DOP',
        'MAX_DURATION',
        'MAX_EVENT_SIZE',
        'MAX_FILES',
        'MAX_IOPS_PER_VOLUME',
        'MAX_MEMORY',
        'MAX_MEMORY_PERCENT',
        'MAX_QUEUE_READERS',
        'MAX_ROLLOVER_FILES',
        'MAX_SIZE',
        'MAXDOP',
        'MAXERRORS',
        'MAXLENGTH',
        'MAXRECURSION',
        'MAXSIZE',
        'MAXTRANSFERSIZE',
        'MAXVALUE',
        'MB',
        'MEDIADESCRIPTION',
        'MEDIANAME',
        'MEDIAPASSWORD',
        'MEDIUM',
        'MEMBER',
        'MEMORY_OPTIMIZED',
        'MEMORY_OPTIMIZED_DATA',
        'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT',
        'MEMORY_PARTITION_MODE',
        'MERGE',
        'MESSAGE',
        'MESSAGE_FORWARD_SIZE',
        'MESSAGE_FORWARDING',
        'MICROSECOND',
        'MILLISECOND',
        'MIN_CPU_PERCENT',
        'MIN_IOPS_PER_VOLUME',
        'MIN_MEMORY_PERCENT',
        'MINUTE',
        'MINUTES',
        'MINVALUE',
        'MIRROR',
        'MIRROR_ADDRESS',
        'MODIFY',
        'MONEY',
        'MONTH',
        'MOVE',
        'MULTI_USER',
        'MUST_CHANGE',
        'NAME',
        'NANOSECOND',
        'NATIONAL',
        'NATIVE_COMPILATION',
        'NCHAR',
        'NEGOTIATE',
        'NESTED_TRIGGERS',
        'NEW_ACCOUNT',
        'NEW_BROKER',
        'NEW_PASSWORD',
        'NEWNAME',
        'NEXT',
        'NO',
        'NO_BROWSETABLE',
        'NO_CHECKSUM',
        'NO_COMPRESSION',
        'NO_EVENT_LOSS',
        'NO_INFOMSGS',
        'NO_TRUNCATE',
        'NO_WAIT',
        'NOCHECK',
        'NOCOUNT',
        'NOEXEC',
        'NOEXPAND',
        'NOFORMAT',
        'NOINDEX',
        'NOINIT',
        'NOLOCK',
        'NON',
        'NON_TRANSACTED_ACCESS',
        'NONCLUSTERED',
        'NONE',
        'NORECOMPUTE',
        'NORECOVERY',
        'NORESEED',
        'NORESET',
        'NOREWIND',
        'NORMAL',
        'NOSKIP',
        'NOTIFICATION',
        'NOTRUNCATE',
        'NOUNLOAD',
        'NOWAIT',
        'NTEXT',
        'NTLM',
        'NUMANODE',
        'NUMERIC',
        'NUMERIC_ROUNDABORT',
        'NVARCHAR',
        'OBJECT',
        'OF',
        'OFF',
        'OFFLINE',
        'OFFSET',
        'OFFSETS',
        'OLD_ACCOUNT',
        'OLD_PASSWORD',
        'ON',
        'ON_FAILURE',
        'ONLINE',
        'ONLY',
        'OPEN',
        'OPEN_EXISTING',
        'OPENTRAN',
        'OPTIMISTIC',
        'OPTIMIZE',
        'OPTION',
        'ORDER',
        'OUT',
        'OUTPUT',
        'OUTPUTBUFFER',
        'OVER',
        'OVERRIDE',
        'OWNER',
        'OWNERSHIP',
        'PAD_INDEX',
        'PAGE',
        'PAGE_VERIFY',
        'PAGECOUNT',
        'PAGLOCK',
        'PARAMETERIZATION',
        'PARSEONLY',
        'PARTIAL',
        'PARTITION',
        'PARTITIONS',
        'PARTNER',
        'PASSWORD',
        'PATH',
        'PER_CPU',
        'PER_NODE',
        'PERCENT',
        'PERMISSION_SET',
        'PERSISTED',
        'PHYSICAL_ONLY',
        'PLAN',
        'POISON_MESSAGE_HANDLING',
        'POOL',
        'POPULATION',
        'PORT',
        'PRECEDING',
        'PRECISION',
        'PRIMARY',
        'PRIMARY_ROLE',
        'PRINT',
        'PRIOR',
        'PRIORITY',
        'PRIORITY_LEVEL',
        'PRIVATE',
        'PRIVILEGES',
        'PROC',
        'PROCCACHE',
        'PROCEDURE',
        'PROCEDURE_NAME',
        'PROCESS',
        'PROFILE',
        'PROPERTY',
        'PROPERTY_DESCRIPTION',
        'PROPERTY_INT_ID',
        'PROPERTY_SET_GUID',
        'PROVIDER',
        'PROVIDER_KEY_NAME',
        'PUBLIC',
        'PUT',
        'QUARTER',
        'QUERY',
        'QUERY_GOVERNOR_COST_LIMIT',
        'QUEUE',
        'QUEUE_DELAY',
        'QUOTED_IDENTIFIER',
        'RAISERROR',
        'RANGE',
        'RAW',
        'RC2',
        'RC4',
        'RC4_128',
        'READ',
        'READ_COMMITTED_SNAPSHOT',
        'READ_ONLY',
        'READ_ONLY_ROUTING_LIST',
        'READ_ONLY_ROUTING_URL',
        'READ_WRITE',
        'READ_WRITE_FILEGROUPS',
        'READCOMMITTED',
        'READCOMMITTEDLOCK',
        'READONLY',
        'READPAST',
        'READTEXT',
        'READUNCOMMITTED',
        'READWRITE',
        'REAL',
        'REBUILD',
        'RECEIVE',
        'RECOMPILE',
        'RECONFIGURE',
        'RECOVERY',
        'RECURSIVE',
        'RECURSIVE_TRIGGERS',
        'REFERENCES',
        'REGENERATE',
        'RELATED_CONVERSATION',
        'RELATED_CONVERSATION_GROUP',
        'RELATIVE',
        'REMOTE',
        'REMOTE_PROC_TRANSACTIONS',
        'REMOTE_SERVICE_NAME',
        'REMOVE',
        'REORGANIZE',
        'REPAIR_ALLOW_DATA_LOSS',
        'REPAIR_FAST',
        'REPAIR_REBUILD',
        'REPEATABLE',
        'REPEATABLEREAD',
        'REPLICA',
        'REPLICATION',
        'REQUEST_MAX_CPU_TIME_SEC',
        'REQUEST_MAX_MEMORY_GRANT_PERCENT',
        'REQUEST_MEMORY_GRANT_TIMEOUT_SEC',
        'REQUIRED',
        'RESAMPLE',
        'RESEED',
        'RESERVE_DISK_SPACE',
        'RESET',
        'RESOURCE',
        'RESTART',
        'RESTORE',
        'RESTRICT',
        'RESTRICTED_USER',
        'RESULT',
        'RESUME',
        'RETAINDAYS',
        'RETENTION',
        'RETURN',
        'RETURNS',
        'REVERT',
        'REVOKE',
        'REWIND',
        'REWINDONLY',
        'ROBUST',
        'ROLE',
        'ROLLBACK',
        'ROLLUP',
        'ROOT',
        'ROUTE',
        'ROW',
        'ROWCOUNT',
        'ROWGUIDCOL',
        'ROWLOCK',
        'ROWS',
        'ROWS_PER_BATCH',
        'ROWTERMINATOR',
        'ROWVERSION',
        'RSA_1024',
        'RSA_2048',
        'RSA_512',
        'RULE',
        'SAFE',
        'SAFETY',
        'SAMPLE',
        'SAVE',
        'SCHEDULER',
        'SCHEMA',
        'SCHEMA_AND_DATA',
        'SCHEMA_ONLY',
        'SCHEMABINDING',
        'SCHEME',
        'SCROLL',
        'SCROLL_LOCKS',
        'SEARCH',
        'SECOND',
        'SECONDARY',
        'SECONDARY_ONLY',
        'SECONDARY_ROLE',
        'SECONDS',
        'SECRET',
        'SECURITY_LOG',
        'SECURITYAUDIT',
        'SELECT',
        'SELECTIVE',
        'SELF',
        'SEND',
        'SENT',
        'SEQUENCE',
        'SERIALIZABLE',
        'SERVER',
        'SERVICE',
        'SERVICE_BROKER',
        'SERVICE_NAME',
        'SESSION',
        'SESSION_TIMEOUT',
        'SET',
        'SETS',
        'SETUSER',
        'SHOW_STATISTICS',
        'SHOWCONTIG',
        'SHOWPLAN',
        'SHOWPLAN_ALL',
        'SHOWPLAN_TEXT',
        'SHOWPLAN_XML',
        'SHRINKDATABASE',
        'SHRINKFILE',
        'SHUTDOWN',
        'SID',
        'SIGNATURE',
        'SIMPLE',
        'SINGLE_BLOB',
        'SINGLE_CLOB',
        'SINGLE_NCLOB',
        'SINGLE_USER',
        'SINGLETON',
        'SIZE',
        'SKIP',
        'SMALLDATETIME',
        'SMALLINT',
        'SMALLMONEY',
        'SNAPSHOT',
        'SORT_IN_TEMPDB',
        'SOURCE',
        'SPARSE',
        'SPATIAL',
        'SPATIAL_WINDOW_MAX_CELLS',
        'SPECIFICATION',
        'SPLIT',
        'SQL',
        'SQL_VARIANT',
        'SQLPERF',
        'STANDBY',
        'START',
        'START_DATE',
        'STARTED',
        'STARTUP_STATE',
        'STAT_HEADER',
        'STATE',
        'STATEMENT',
        'STATIC',
        'STATISTICAL_SEMANTICS',
        'STATISTICS',
        'STATISTICS_INCREMENTAL',
        'STATISTICS_NORECOMPUTE',
        'STATS',
        'STATS_STREAM',
        'STATUS',
        'STATUSONLY',
        'STOP',
        'STOP_ON_ERROR',
        'STOPAT',
        'STOPATMARK',
        'STOPBEFOREMARK',
        'STOPLIST',
        'STOPPED',
        'SUBJECT',
        'SUBSCRIPTION',
        'SUPPORTED',
        'SUSPEND',
        'SWITCH',
        'SYMMETRIC',
        'SYNCHRONOUS_COMMIT',
        'SYNONYM',
        'SYSNAME',
        'SYSTEM',
        'TABLE',
        'TABLERESULTS',
        'TABLESAMPLE',
        'TABLOCK',
        'TABLOCKX',
        'TAKE',
        'TAPE',
        'TARGET',
        'TARGET_RECOVERY_TIME',
        'TB',
        'TCP',
        'TEXT',
        'TEXTIMAGE_ON',
        'TEXTSIZE',
        'THEN',
        'THESAURUS',
        'THROW',
        'TIES',
        'TIME',
        'TIMEOUT',
        'TIMER',
        'TIMESTAMP',
        'TINYINT',
        'TO',
        'TOP',
        'TORN_PAGE_DETECTION',
        'TRACEOFF',
        'TRACEON',
        'TRACESTATUS',
        'TRACK_CAUSALITY',
        'TRACK_COLUMNS_UPDATED',
        'TRAN',
        'TRANSACTION',
        'TRANSFER',
        'TRANSFORM_NOISE_WORDS',
        'TRIGGER',
        'TRIPLE_DES',
        'TRIPLE_DES_3KEY',
        'TRUE',
        'TRUNCATE',
        'TRUNCATEONLY',
        'TRUSTWORTHY',
        'TRY',
        'TSQL',
        'TWO_DIGIT_YEAR_CUTOFF',
        'TYPE',
        'TYPE_WARNING',
        'UNBOUNDED',
        'UNCHECKED',
        'UNCOMMITTED',
        'UNDEFINED',
        'UNIQUE',
        'UNIQUEIDENTIFIER',
        'UNKNOWN',
        'UNLIMITED',
        'UNLOAD',
        'UNSAFE',
        'UPDATE',
        'UPDATETEXT',
        'UPDATEUSAGE',
        'UPDLOCK',
        'URL',
        'USE',
        'USED',
        'USER',
        'USEROPTIONS',
        'USING',
        'VALID_XML',
        'VALIDATION',
        'VALUE',
        'VALUES',
        'VARBINARY',
        'VARCHAR',
        'VARYING',
        'VERIFYONLY',
        'VERSION',
        'VIEW',
        'VIEW_METADATA',
        'VIEWS',
        'VISIBILITY',
        'WAIT_AT_LOW_PRIORITY',
        'WAITFOR',
        'WEEK',
        'WEIGHT',
        'WELL_FORMED_XML',
        'WHEN',
        'WHERE',
        'WHILE',
        'WINDOWS',
        'WITH',
        'WITHIN',
        'WITHOUT',
        'WITNESS',
        'WORK',
        'WORKLOAD',
        'WRITETEXT',
        'XACT_ABORT',
        'XLOCK',
        'XMAX',
        'XMIN',
        'XML',
        'XMLDATA',
        'XMLNAMESPACES',
        'XMLSCHEMA',
        'XQUERY',
        'XSINIL',
        'YEAR',
        'YMAX',
        'YMIN'
      ],
      operators: [
        'ALL',
        'AND',
        'ANY',
        'BETWEEN',
        'EXISTS',
        'IN',
        'LIKE',
        'NOT',
        'OR',
        'SOME',
        'EXCEPT',
        'INTERSECT',
        'UNION',
        'APPLY',
        'CROSS',
        'FULL',
        'INNER',
        'JOIN',
        'LEFT',
        'OUTER',
        'RIGHT',
        'CONTAINS',
        'FREETEXT',
        'IS',
        'NULL',
        'PIVOT',
        'UNPIVOT',
        'MATCHED'
      ],
      builtinFunctions: [
        'AVG',
        'CHECKSUM_AGG',
        'COUNT',
        'COUNT_BIG',
        'GROUPING',
        'GROUPING_ID',
        'MAX',
        'MIN',
        'SUM',
        'STDEV',
        'STDEVP',
        'VAR',
        'VARP',
        'CUME_DIST',
        'FIRST_VALUE',
        'LAG',
        'LAST_VALUE',
        'LEAD',
        'PERCENTILE_CONT',
        'PERCENTILE_DISC',
        'PERCENT_RANK',
        'COLLATE',
        'COLLATIONPROPERTY',
        'TERTIARY_WEIGHTS',
        'FEDERATION_FILTERING_VALUE',
        'CAST',
        'CONVERT',
        'PARSE',
        'TRY_CAST',
        'TRY_CONVERT',
        'TRY_PARSE',
        'ASYMKEY_ID',
        'ASYMKEYPROPERTY',
        'CERTPROPERTY',
        'CERT_ID',
        'CRYPT_GEN_RANDOM',
        'DECRYPTBYASYMKEY',
        'DECRYPTBYCERT',
        'DECRYPTBYKEY',
        'DECRYPTBYKEYAUTOASYMKEY',
        'DECRYPTBYKEYAUTOCERT',
        'DECRYPTBYPASSPHRASE',
        'ENCRYPTBYASYMKEY',
        'ENCRYPTBYCERT',
        'ENCRYPTBYKEY',
        'ENCRYPTBYPASSPHRASE',
        'HASHBYTES',
        'IS_OBJECTSIGNED',
        'KEY_GUID',
        'KEY_ID',
        'KEY_NAME',
        'SIGNBYASYMKEY',
        'SIGNBYCERT',
        'SYMKEYPROPERTY',
        'VERIFYSIGNEDBYCERT',
        'VERIFYSIGNEDBYASYMKEY',
        'CURSOR_STATUS',
        'DATALENGTH',
        'IDENT_CURRENT',
        'IDENT_INCR',
        'IDENT_SEED',
        'IDENTITY',
        'SQL_VARIANT_PROPERTY',
        'CURRENT_TIMESTAMP',
        'DATEADD',
        'DATEDIFF',
        'DATEFROMPARTS',
        'DATENAME',
        'DATEPART',
        'DATETIME2FROMPARTS',
        'DATETIMEFROMPARTS',
        'DATETIMEOFFSETFROMPARTS',
        'DAY',
        'EOMONTH',
        'GETDATE',
        'GETUTCDATE',
        'ISDATE',
        'MONTH',
        'SMALLDATETIMEFROMPARTS',
        'SWITCHOFFSET',
        'SYSDATETIME',
        'SYSDATETIMEOFFSET',
        'SYSUTCDATETIME',
        'TIMEFROMPARTS',
        'TODATETIMEOFFSET',
        'YEAR',
        'CHOOSE',
        'COALESCE',
        'IIF',
        'NULLIF',
        'ABS',
        'ACOS',
        'ASIN',
        'ATAN',
        'ATN2',
        'CEILING',
        'COS',
        'COT',
        'DEGREES',
        'EXP',
        'FLOOR',
        'LOG',
        'LOG10',
        'PI',
        'POWER',
        'RADIANS',
        'RAND',
        'ROUND',
        'SIGN',
        'SIN',
        'SQRT',
        'SQUARE',
        'TAN',
        'APP_NAME',
        'APPLOCK_MODE',
        'APPLOCK_TEST',
        'ASSEMBLYPROPERTY',
        'COL_LENGTH',
        'COL_NAME',
        'COLUMNPROPERTY',
        'DATABASE_PRINCIPAL_ID',
        'DATABASEPROPERTYEX',
        'DB_ID',
        'DB_NAME',
        'FILE_ID',
        'FILE_IDEX',
        'FILE_NAME',
        'FILEGROUP_ID',
        'FILEGROUP_NAME',
        'FILEGROUPPROPERTY',
        'FILEPROPERTY',
        'FULLTEXTCATALOGPROPERTY',
        'FULLTEXTSERVICEPROPERTY',
        'INDEX_COL',
        'INDEXKEY_PROPERTY',
        'INDEXPROPERTY',
        'OBJECT_DEFINITION',
        'OBJECT_ID',
        'OBJECT_NAME',
        'OBJECT_SCHEMA_NAME',
        'OBJECTPROPERTY',
        'OBJECTPROPERTYEX',
        'ORIGINAL_DB_NAME',
        'PARSENAME',
        'SCHEMA_ID',
        'SCHEMA_NAME',
        'SCOPE_IDENTITY',
        'SERVERPROPERTY',
        'STATS_DATE',
        'TYPE_ID',
        'TYPE_NAME',
        'TYPEPROPERTY',
        'DENSE_RANK',
        'NTILE',
        'RANK',
        'ROW_NUMBER',
        'PUBLISHINGSERVERNAME',
        'OPENDATASOURCE',
        'OPENQUERY',
        'OPENROWSET',
        'OPENXML',
        'CERTENCODED',
        'CERTPRIVATEKEY',
        'CURRENT_USER',
        'HAS_DBACCESS',
        'HAS_PERMS_BY_NAME',
        'IS_MEMBER',
        'IS_ROLEMEMBER',
        'IS_SRVROLEMEMBER',
        'LOGINPROPERTY',
        'ORIGINAL_LOGIN',
        'PERMISSIONS',
        'PWDENCRYPT',
        'PWDCOMPARE',
        'SESSION_USER',
        'SESSIONPROPERTY',
        'SUSER_ID',
        'SUSER_NAME',
        'SUSER_SID',
        'SUSER_SNAME',
        'SYSTEM_USER',
        'USER',
        'USER_ID',
        'USER_NAME',
        'ASCII',
        'CHAR',
        'CHARINDEX',
        'CONCAT',
        'DIFFERENCE',
        'FORMAT',
        'LEFT',
        'LEN',
        'LOWER',
        'LTRIM',
        'NCHAR',
        'PATINDEX',
        'QUOTENAME',
        'REPLACE',
        'REPLICATE',
        'REVERSE',
        'RIGHT',
        'RTRIM',
        'SOUNDEX',
        'SPACE',
        'STR',
        'STUFF',
        'SUBSTRING',
        'UNICODE',
        'UPPER',
        'BINARY_CHECKSUM',
        'CHECKSUM',
        'CONNECTIONPROPERTY',
        'CONTEXT_INFO',
        'CURRENT_REQUEST_ID',
        'ERROR_LINE',
        'ERROR_NUMBER',
        'ERROR_MESSAGE',
        'ERROR_PROCEDURE',
        'ERROR_SEVERITY',
        'ERROR_STATE',
        'FORMATMESSAGE',
        'GETANSINULL',
        'GET_FILESTREAM_TRANSACTION_CONTEXT',
        'HOST_ID',
        'HOST_NAME',
        'ISNULL',
        'ISNUMERIC',
        'MIN_ACTIVE_ROWVERSION',
        'NEWID',
        'NEWSEQUENTIALID',
        'ROWCOUNT_BIG',
        'XACT_STATE',
        'TEXTPTR',
        'TEXTVALID',
        'COLUMNS_UPDATED',
        'EVENTDATA',
        'TRIGGER_NESTLEVEL',
        'UPDATE',
        'CHANGETABLE',
        'CHANGE_TRACKING_CONTEXT',
        'CHANGE_TRACKING_CURRENT_VERSION',
        'CHANGE_TRACKING_IS_COLUMN_IN_MASK',
        'CHANGE_TRACKING_MIN_VALID_VERSION',
        'CONTAINSTABLE',
        'FREETEXTTABLE',
        'SEMANTICKEYPHRASETABLE',
        'SEMANTICSIMILARITYDETAILSTABLE',
        'SEMANTICSIMILARITYTABLE',
        'FILETABLEROOTPATH',
        'GETFILENAMESPACEPATH',
        'GETPATHLOCATOR',
        'PATHNAME',
        'GET_TRANSMISSION_STATUS'
      ],
      builtinVariables: [
        '@@DATEFIRST',
        '@@DBTS',
        '@@LANGID',
        '@@LANGUAGE',
        '@@LOCK_TIMEOUT',
        '@@MAX_CONNECTIONS',
        '@@MAX_PRECISION',
        '@@NESTLEVEL',
        '@@OPTIONS',
        '@@REMSERVER',
        '@@SERVERNAME',
        '@@SERVICENAME',
        '@@SPID',
        '@@TEXTSIZE',
        '@@VERSION',
        '@@CURSOR_ROWS',
        '@@FETCH_STATUS',
        '@@DATEFIRST',
        '@@PROCID',
        '@@ERROR',
        '@@IDENTITY',
        '@@ROWCOUNT',
        '@@TRANCOUNT',
        '@@CONNECTIONS',
        '@@CPU_BUSY',
        '@@IDLE',
        '@@IO_BUSY',
        '@@PACKET_ERRORS',
        '@@PACK_RECEIVED',
        '@@PACK_SENT',
        '@@TIMETICKS',
        '@@TOTAL_ERRORS',
        '@@TOTAL_READ',
        '@@TOTAL_WRITE'
      ],
      pseudoColumns: ['$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'],
      tokenizer: {
        root: [
          { include: '@comments' },
          { include: '@whitespace' },
          { include: '@pseudoColumns' },
          { include: '@numbers' },
          { include: '@strings' },
          { include: '@complexIdentifiers' },
          { include: '@scopes' },
          [/[;,.]/, 'delimiter'],
          [/[()]/, '@brackets'],
          [
            /[\w@#$]+/,
            {
              cases: {
                '@keywords': 'keyword',
                '@operators': 'operator',
                '@builtinVariables': 'predefined',
                '@builtinFunctions': 'predefined',
                '@default': 'identifier'
              }
            }
          ],
          [/[<>=!%&+\-*/|~^]/, 'operator']
        ],
        whitespace: [[/\s+/, 'white']],
        comments: [
          [/--+.*/, 'comment'],
          [/\/\*/, { token: 'comment.quote', next: '@comment' }]
        ],
        comment: [
          [/[^*/]+/, 'comment'],
          [/\*\//, { token: 'comment.quote', next: '@pop' }],
          [/./, 'comment']
        ],
        pseudoColumns: [
          [
            /[$][A-Za-z_][\w@#$]*/,
            {
              cases: {
                '@pseudoColumns': 'predefined',
                '@default': 'identifier'
              }
            }
          ]
        ],
        numbers: [
          [/0[xX][0-9a-fA-F]*/, 'number'],
          [/[$][+-]*\d*(\.\d*)?/, 'number'],
          [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
        ],
        strings: [
          [/N'/, { token: 'string', next: '@string' }],
          [/'/, { token: 'string', next: '@string' }]
        ],
        string: [
          [/[^']+/, 'string'],
          [/''/, 'string'],
          [/'/, { token: 'string', next: '@pop' }]
        ],
        complexIdentifiers: [
          [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],
          [/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }]
        ],
        bracketedIdentifier: [
          [/[^\]]+/, 'identifier'],
          [/]]/, 'identifier'],
          [/]/, { token: 'identifier.quote', next: '@pop' }]
        ],
        quotedIdentifier: [
          [/[^"]+/, 'identifier'],
          [/""/, 'identifier'],
          [/"/, { token: 'identifier.quote', next: '@pop' }]
        ],
        scopes: [
          [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'],
          [/BEGIN\s+TRY\b/i, { token: 'keyword.try' }],
          [/END\s+TRY\b/i, { token: 'keyword.try' }],
          [/BEGIN\s+CATCH\b/i, { token: 'keyword.catch' }],
          [/END\s+CATCH\b/i, { token: 'keyword.catch' }],
          [/(BEGIN|CASE)\b/i, { token: 'keyword.block' }],
          [/END\b/i, { token: 'keyword.block' }],
          [/WHEN\b/i, { token: 'keyword.choice' }],
          [/THEN\b/i, { token: 'keyword.choice' }]
        ]
      }
    })
})
