sql.js 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. define(["require", "exports"], function (require, exports) {
  6. 'use strict';
  7. Object.defineProperty(exports, "__esModule", { value: true });
  8. exports.conf = {
  9. comments: {
  10. lineComment: '--',
  11. blockComment: ['/*', '*/'],
  12. },
  13. brackets: [
  14. ['{', '}'],
  15. ['[', ']'],
  16. ['(', ')']
  17. ],
  18. autoClosingPairs: [
  19. { open: '{', close: '}' },
  20. { open: '[', close: ']' },
  21. { open: '(', close: ')' },
  22. { open: '"', close: '"' },
  23. { open: '\'', close: '\'' },
  24. ],
  25. surroundingPairs: [
  26. { open: '{', close: '}' },
  27. { open: '[', close: ']' },
  28. { open: '(', close: ')' },
  29. { open: '"', close: '"' },
  30. { open: '\'', close: '\'' },
  31. ]
  32. };
  33. exports.language = {
  34. defaultToken: '',
  35. tokenPostfix: '.sql',
  36. ignoreCase: true,
  37. brackets: [
  38. { open: '[', close: ']', token: 'delimiter.square' },
  39. { open: '(', close: ')', token: 'delimiter.parenthesis' }
  40. ],
  41. keywords: [
  42. 'ABORT_AFTER_WAIT',
  43. 'ABSENT',
  44. 'ABSOLUTE',
  45. 'ACCENT_SENSITIVITY',
  46. 'ACTION',
  47. 'ACTIVATION',
  48. 'ACTIVE',
  49. 'ADD',
  50. 'ADDRESS',
  51. 'ADMIN',
  52. 'AES',
  53. 'AES_128',
  54. 'AES_192',
  55. 'AES_256',
  56. 'AFFINITY',
  57. 'AFTER',
  58. 'AGGREGATE',
  59. 'ALGORITHM',
  60. 'ALL_CONSTRAINTS',
  61. 'ALL_ERRORMSGS',
  62. 'ALL_INDEXES',
  63. 'ALL_LEVELS',
  64. 'ALL_SPARSE_COLUMNS',
  65. 'ALLOW_CONNECTIONS',
  66. 'ALLOW_MULTIPLE_EVENT_LOSS',
  67. 'ALLOW_PAGE_LOCKS',
  68. 'ALLOW_ROW_LOCKS',
  69. 'ALLOW_SINGLE_EVENT_LOSS',
  70. 'ALLOW_SNAPSHOT_ISOLATION',
  71. 'ALLOWED',
  72. 'ALTER',
  73. 'ANONYMOUS',
  74. 'ANSI_DEFAULTS',
  75. 'ANSI_NULL_DEFAULT',
  76. 'ANSI_NULL_DFLT_OFF',
  77. 'ANSI_NULL_DFLT_ON',
  78. 'ANSI_NULLS',
  79. 'ANSI_PADDING',
  80. 'ANSI_WARNINGS',
  81. 'APPEND',
  82. 'APPLICATION',
  83. 'APPLICATION_LOG',
  84. 'ARITHABORT',
  85. 'ARITHIGNORE',
  86. 'AS',
  87. 'ASC',
  88. 'ASSEMBLY',
  89. 'ASYMMETRIC',
  90. 'ASYNCHRONOUS_COMMIT',
  91. 'AT',
  92. 'ATOMIC',
  93. 'ATTACH',
  94. 'ATTACH_REBUILD_LOG',
  95. 'AUDIT',
  96. 'AUDIT_GUID',
  97. 'AUTHENTICATION',
  98. 'AUTHORIZATION',
  99. 'AUTO',
  100. 'AUTO_CLEANUP',
  101. 'AUTO_CLOSE',
  102. 'AUTO_CREATE_STATISTICS',
  103. 'AUTO_SHRINK',
  104. 'AUTO_UPDATE_STATISTICS',
  105. 'AUTO_UPDATE_STATISTICS_ASYNC',
  106. 'AUTOMATED_BACKUP_PREFERENCE',
  107. 'AUTOMATIC',
  108. 'AVAILABILITY',
  109. 'AVAILABILITY_MODE',
  110. 'BACKUP',
  111. 'BACKUP_PRIORITY',
  112. 'BASE64',
  113. 'BATCHSIZE',
  114. 'BEGIN',
  115. 'BEGIN_DIALOG',
  116. 'BIGINT',
  117. 'BINARY',
  118. 'BINDING',
  119. 'BIT',
  120. 'BLOCKERS',
  121. 'BLOCKSIZE',
  122. 'BOUNDING_BOX',
  123. 'BREAK',
  124. 'BROKER',
  125. 'BROKER_INSTANCE',
  126. 'BROWSE',
  127. 'BUCKET_COUNT',
  128. 'BUFFER',
  129. 'BUFFERCOUNT',
  130. 'BULK',
  131. 'BULK_LOGGED',
  132. 'BY',
  133. 'CACHE',
  134. 'CALL',
  135. 'CALLED',
  136. 'CALLER',
  137. 'CAP_CPU_PERCENT',
  138. 'CASCADE',
  139. 'CASE',
  140. 'CATALOG',
  141. 'CATCH',
  142. 'CELLS_PER_OBJECT',
  143. 'CERTIFICATE',
  144. 'CHANGE_RETENTION',
  145. 'CHANGE_TRACKING',
  146. 'CHANGES',
  147. 'CHAR',
  148. 'CHARACTER',
  149. 'CHECK',
  150. 'CHECK_CONSTRAINTS',
  151. 'CHECK_EXPIRATION',
  152. 'CHECK_POLICY',
  153. 'CHECKALLOC',
  154. 'CHECKCATALOG',
  155. 'CHECKCONSTRAINTS',
  156. 'CHECKDB',
  157. 'CHECKFILEGROUP',
  158. 'CHECKIDENT',
  159. 'CHECKPOINT',
  160. 'CHECKTABLE',
  161. 'CLASSIFIER_FUNCTION',
  162. 'CLEANTABLE',
  163. 'CLEANUP',
  164. 'CLEAR',
  165. 'CLOSE',
  166. 'CLUSTER',
  167. 'CLUSTERED',
  168. 'CODEPAGE',
  169. 'COLLATE',
  170. 'COLLECTION',
  171. 'COLUMN',
  172. 'COLUMN_SET',
  173. 'COLUMNS',
  174. 'COLUMNSTORE',
  175. 'COLUMNSTORE_ARCHIVE',
  176. 'COMMIT',
  177. 'COMMITTED',
  178. 'COMPATIBILITY_LEVEL',
  179. 'COMPRESSION',
  180. 'COMPUTE',
  181. 'CONCAT',
  182. 'CONCAT_NULL_YIELDS_NULL',
  183. 'CONFIGURATION',
  184. 'CONNECT',
  185. 'CONSTRAINT',
  186. 'CONTAINMENT',
  187. 'CONTENT',
  188. 'CONTEXT',
  189. 'CONTINUE',
  190. 'CONTINUE_AFTER_ERROR',
  191. 'CONTRACT',
  192. 'CONTRACT_NAME',
  193. 'CONTROL',
  194. 'CONVERSATION',
  195. 'COOKIE',
  196. 'COPY_ONLY',
  197. 'COUNTER',
  198. 'CPU',
  199. 'CREATE',
  200. 'CREATE_NEW',
  201. 'CREATION_DISPOSITION',
  202. 'CREDENTIAL',
  203. 'CRYPTOGRAPHIC',
  204. 'CUBE',
  205. 'CURRENT',
  206. 'CURRENT_DATE',
  207. 'CURSOR',
  208. 'CURSOR_CLOSE_ON_COMMIT',
  209. 'CURSOR_DEFAULT',
  210. 'CYCLE',
  211. 'DATA',
  212. 'DATA_COMPRESSION',
  213. 'DATA_PURITY',
  214. 'DATABASE',
  215. 'DATABASE_DEFAULT',
  216. 'DATABASE_MIRRORING',
  217. 'DATABASE_SNAPSHOT',
  218. 'DATAFILETYPE',
  219. 'DATE',
  220. 'DATE_CORRELATION_OPTIMIZATION',
  221. 'DATEFIRST',
  222. 'DATEFORMAT',
  223. 'DATETIME',
  224. 'DATETIME2',
  225. 'DATETIMEOFFSET',
  226. 'DAY',
  227. 'DAYOFYEAR',
  228. 'DAYS',
  229. 'DB_CHAINING',
  230. 'DBCC',
  231. 'DBREINDEX',
  232. 'DDL_DATABASE_LEVEL_EVENTS',
  233. 'DEADLOCK_PRIORITY',
  234. 'DEALLOCATE',
  235. 'DEC',
  236. 'DECIMAL',
  237. 'DECLARE',
  238. 'DECRYPTION',
  239. 'DEFAULT',
  240. 'DEFAULT_DATABASE',
  241. 'DEFAULT_FULLTEXT_LANGUAGE',
  242. 'DEFAULT_LANGUAGE',
  243. 'DEFAULT_SCHEMA',
  244. 'DEFINITION',
  245. 'DELAY',
  246. 'DELAYED_DURABILITY',
  247. 'DELETE',
  248. 'DELETED',
  249. 'DENSITY_VECTOR',
  250. 'DENY',
  251. 'DEPENDENTS',
  252. 'DES',
  253. 'DESC',
  254. 'DESCRIPTION',
  255. 'DESX',
  256. 'DHCP',
  257. 'DIAGNOSTICS',
  258. 'DIALOG',
  259. 'DIFFERENTIAL',
  260. 'DIRECTORY_NAME',
  261. 'DISABLE',
  262. 'DISABLE_BROKER',
  263. 'DISABLED',
  264. 'DISK',
  265. 'DISTINCT',
  266. 'DISTRIBUTED',
  267. 'DOCUMENT',
  268. 'DOUBLE',
  269. 'DROP',
  270. 'DROP_EXISTING',
  271. 'DROPCLEANBUFFERS',
  272. 'DUMP',
  273. 'DURABILITY',
  274. 'DYNAMIC',
  275. 'EDITION',
  276. 'ELEMENTS',
  277. 'ELSE',
  278. 'EMERGENCY',
  279. 'EMPTY',
  280. 'EMPTYFILE',
  281. 'ENABLE',
  282. 'ENABLE_BROKER',
  283. 'ENABLED',
  284. 'ENCRYPTION',
  285. 'END',
  286. 'ENDPOINT',
  287. 'ENDPOINT_URL',
  288. 'ERRLVL',
  289. 'ERROR',
  290. 'ERROR_BROKER_CONVERSATIONS',
  291. 'ERRORFILE',
  292. 'ESCAPE',
  293. 'ESTIMATEONLY',
  294. 'EVENT',
  295. 'EVENT_RETENTION_MODE',
  296. 'EXEC',
  297. 'EXECUTABLE',
  298. 'EXECUTE',
  299. 'EXIT',
  300. 'EXPAND',
  301. 'EXPIREDATE',
  302. 'EXPIRY_DATE',
  303. 'EXPLICIT',
  304. 'EXTENDED_LOGICAL_CHECKS',
  305. 'EXTENSION',
  306. 'EXTERNAL',
  307. 'EXTERNAL_ACCESS',
  308. 'FAIL_OPERATION',
  309. 'FAILOVER',
  310. 'FAILOVER_MODE',
  311. 'FAILURE_CONDITION_LEVEL',
  312. 'FALSE',
  313. 'FAN_IN',
  314. 'FAST',
  315. 'FAST_FORWARD',
  316. 'FETCH',
  317. 'FIELDTERMINATOR',
  318. 'FILE',
  319. 'FILEGROUP',
  320. 'FILEGROWTH',
  321. 'FILELISTONLY',
  322. 'FILENAME',
  323. 'FILEPATH',
  324. 'FILESTREAM',
  325. 'FILESTREAM_ON',
  326. 'FILETABLE_COLLATE_FILENAME',
  327. 'FILETABLE_DIRECTORY',
  328. 'FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME',
  329. 'FILETABLE_NAMESPACE',
  330. 'FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME',
  331. 'FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME',
  332. 'FILLFACTOR',
  333. 'FILTERING',
  334. 'FIRE_TRIGGERS',
  335. 'FIRST',
  336. 'FIRSTROW',
  337. 'FLOAT',
  338. 'FMTONLY',
  339. 'FOLLOWING',
  340. 'FOR',
  341. 'FORCE',
  342. 'FORCE_FAILOVER_ALLOW_DATA_LOSS',
  343. 'FORCE_SERVICE_ALLOW_DATA_LOSS',
  344. 'FORCED',
  345. 'FORCEPLAN',
  346. 'FORCESCAN',
  347. 'FORCESEEK',
  348. 'FOREIGN',
  349. 'FORMATFILE',
  350. 'FORMSOF',
  351. 'FORWARD_ONLY',
  352. 'FREE',
  353. 'FREEPROCCACHE',
  354. 'FREESESSIONCACHE',
  355. 'FREESYSTEMCACHE',
  356. 'FROM',
  357. 'FULL',
  358. 'FULLSCAN',
  359. 'FULLTEXT',
  360. 'FUNCTION',
  361. 'GB',
  362. 'GEOGRAPHY_AUTO_GRID',
  363. 'GEOGRAPHY_GRID',
  364. 'GEOMETRY_AUTO_GRID',
  365. 'GEOMETRY_GRID',
  366. 'GET',
  367. 'GLOBAL',
  368. 'GO',
  369. 'GOTO',
  370. 'GOVERNOR',
  371. 'GRANT',
  372. 'GRIDS',
  373. 'GROUP',
  374. 'GROUP_MAX_REQUESTS',
  375. 'HADR',
  376. 'HASH',
  377. 'HASHED',
  378. 'HAVING',
  379. 'HEADERONLY',
  380. 'HEALTH_CHECK_TIMEOUT',
  381. 'HELP',
  382. 'HIERARCHYID',
  383. 'HIGH',
  384. 'HINT',
  385. 'HISTOGRAM',
  386. 'HOLDLOCK',
  387. 'HONOR_BROKER_PRIORITY',
  388. 'HOUR',
  389. 'HOURS',
  390. 'IDENTITY',
  391. 'IDENTITY_INSERT',
  392. 'IDENTITY_VALUE',
  393. 'IDENTITYCOL',
  394. 'IF',
  395. 'IGNORE_CONSTRAINTS',
  396. 'IGNORE_DUP_KEY',
  397. 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX',
  398. 'IGNORE_TRIGGERS',
  399. 'IMAGE',
  400. 'IMMEDIATE',
  401. 'IMPERSONATE',
  402. 'IMPLICIT_TRANSACTIONS',
  403. 'IMPORTANCE',
  404. 'INCLUDE',
  405. 'INCREMENT',
  406. 'INCREMENTAL',
  407. 'INDEX',
  408. 'INDEXDEFRAG',
  409. 'INFINITE',
  410. 'INFLECTIONAL',
  411. 'INIT',
  412. 'INITIATOR',
  413. 'INPUT',
  414. 'INPUTBUFFER',
  415. 'INSENSITIVE',
  416. 'INSERT',
  417. 'INSERTED',
  418. 'INSTEAD',
  419. 'INT',
  420. 'INTEGER',
  421. 'INTO',
  422. 'IO',
  423. 'IP',
  424. 'ISABOUT',
  425. 'ISOLATION',
  426. 'JOB',
  427. 'KB',
  428. 'KEEP',
  429. 'KEEP_CDC',
  430. 'KEEP_NULLS',
  431. 'KEEP_REPLICATION',
  432. 'KEEPDEFAULTS',
  433. 'KEEPFIXED',
  434. 'KEEPIDENTITY',
  435. 'KEEPNULLS',
  436. 'KERBEROS',
  437. 'KEY',
  438. 'KEY_SOURCE',
  439. 'KEYS',
  440. 'KEYSET',
  441. 'KILL',
  442. 'KILOBYTES_PER_BATCH',
  443. 'LABELONLY',
  444. 'LANGUAGE',
  445. 'LAST',
  446. 'LASTROW',
  447. 'LEVEL',
  448. 'LEVEL_1',
  449. 'LEVEL_2',
  450. 'LEVEL_3',
  451. 'LEVEL_4',
  452. 'LIFETIME',
  453. 'LIMIT',
  454. 'LINENO',
  455. 'LIST',
  456. 'LISTENER',
  457. 'LISTENER_IP',
  458. 'LISTENER_PORT',
  459. 'LOAD',
  460. 'LOADHISTORY',
  461. 'LOB_COMPACTION',
  462. 'LOCAL',
  463. 'LOCAL_SERVICE_NAME',
  464. 'LOCK_ESCALATION',
  465. 'LOCK_TIMEOUT',
  466. 'LOGIN',
  467. 'LOGSPACE',
  468. 'LOOP',
  469. 'LOW',
  470. 'MANUAL',
  471. 'MARK',
  472. 'MARK_IN_USE_FOR_REMOVAL',
  473. 'MASTER',
  474. 'MAX_CPU_PERCENT',
  475. 'MAX_DISPATCH_LATENCY',
  476. 'MAX_DOP',
  477. 'MAX_DURATION',
  478. 'MAX_EVENT_SIZE',
  479. 'MAX_FILES',
  480. 'MAX_IOPS_PER_VOLUME',
  481. 'MAX_MEMORY',
  482. 'MAX_MEMORY_PERCENT',
  483. 'MAX_QUEUE_READERS',
  484. 'MAX_ROLLOVER_FILES',
  485. 'MAX_SIZE',
  486. 'MAXDOP',
  487. 'MAXERRORS',
  488. 'MAXLENGTH',
  489. 'MAXRECURSION',
  490. 'MAXSIZE',
  491. 'MAXTRANSFERSIZE',
  492. 'MAXVALUE',
  493. 'MB',
  494. 'MEDIADESCRIPTION',
  495. 'MEDIANAME',
  496. 'MEDIAPASSWORD',
  497. 'MEDIUM',
  498. 'MEMBER',
  499. 'MEMORY_OPTIMIZED',
  500. 'MEMORY_OPTIMIZED_DATA',
  501. 'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT',
  502. 'MEMORY_PARTITION_MODE',
  503. 'MERGE',
  504. 'MESSAGE',
  505. 'MESSAGE_FORWARD_SIZE',
  506. 'MESSAGE_FORWARDING',
  507. 'MICROSECOND',
  508. 'MILLISECOND',
  509. 'MIN_CPU_PERCENT',
  510. 'MIN_IOPS_PER_VOLUME',
  511. 'MIN_MEMORY_PERCENT',
  512. 'MINUTE',
  513. 'MINUTES',
  514. 'MINVALUE',
  515. 'MIRROR',
  516. 'MIRROR_ADDRESS',
  517. 'MODIFY',
  518. 'MONEY',
  519. 'MONTH',
  520. 'MOVE',
  521. 'MULTI_USER',
  522. 'MUST_CHANGE',
  523. 'NAME',
  524. 'NANOSECOND',
  525. 'NATIONAL',
  526. 'NATIVE_COMPILATION',
  527. 'NCHAR',
  528. 'NEGOTIATE',
  529. 'NESTED_TRIGGERS',
  530. 'NEW_ACCOUNT',
  531. 'NEW_BROKER',
  532. 'NEW_PASSWORD',
  533. 'NEWNAME',
  534. 'NEXT',
  535. 'NO',
  536. 'NO_BROWSETABLE',
  537. 'NO_CHECKSUM',
  538. 'NO_COMPRESSION',
  539. 'NO_EVENT_LOSS',
  540. 'NO_INFOMSGS',
  541. 'NO_TRUNCATE',
  542. 'NO_WAIT',
  543. 'NOCHECK',
  544. 'NOCOUNT',
  545. 'NOEXEC',
  546. 'NOEXPAND',
  547. 'NOFORMAT',
  548. 'NOINDEX',
  549. 'NOINIT',
  550. 'NOLOCK',
  551. 'NON',
  552. 'NON_TRANSACTED_ACCESS',
  553. 'NONCLUSTERED',
  554. 'NONE',
  555. 'NORECOMPUTE',
  556. 'NORECOVERY',
  557. 'NORESEED',
  558. 'NORESET',
  559. 'NOREWIND',
  560. 'NORMAL',
  561. 'NOSKIP',
  562. 'NOTIFICATION',
  563. 'NOTRUNCATE',
  564. 'NOUNLOAD',
  565. 'NOWAIT',
  566. 'NTEXT',
  567. 'NTLM',
  568. 'NUMANODE',
  569. 'NUMERIC',
  570. 'NUMERIC_ROUNDABORT',
  571. 'NVARCHAR',
  572. 'OBJECT',
  573. 'OF',
  574. 'OFF',
  575. 'OFFLINE',
  576. 'OFFSET',
  577. 'OFFSETS',
  578. 'OLD_ACCOUNT',
  579. 'OLD_PASSWORD',
  580. 'ON',
  581. 'ON_FAILURE',
  582. 'ONLINE',
  583. 'ONLY',
  584. 'OPEN',
  585. 'OPEN_EXISTING',
  586. 'OPENTRAN',
  587. 'OPTIMISTIC',
  588. 'OPTIMIZE',
  589. 'OPTION',
  590. 'ORDER',
  591. 'OUT',
  592. 'OUTPUT',
  593. 'OUTPUTBUFFER',
  594. 'OVER',
  595. 'OVERRIDE',
  596. 'OWNER',
  597. 'OWNERSHIP',
  598. 'PAD_INDEX',
  599. 'PAGE',
  600. 'PAGE_VERIFY',
  601. 'PAGECOUNT',
  602. 'PAGLOCK',
  603. 'PARAMETERIZATION',
  604. 'PARSEONLY',
  605. 'PARTIAL',
  606. 'PARTITION',
  607. 'PARTITIONS',
  608. 'PARTNER',
  609. 'PASSWORD',
  610. 'PATH',
  611. 'PER_CPU',
  612. 'PER_NODE',
  613. 'PERCENT',
  614. 'PERMISSION_SET',
  615. 'PERSISTED',
  616. 'PHYSICAL_ONLY',
  617. 'PLAN',
  618. 'POISON_MESSAGE_HANDLING',
  619. 'POOL',
  620. 'POPULATION',
  621. 'PORT',
  622. 'PRECEDING',
  623. 'PRECISION',
  624. 'PRIMARY',
  625. 'PRIMARY_ROLE',
  626. 'PRINT',
  627. 'PRIOR',
  628. 'PRIORITY',
  629. 'PRIORITY_LEVEL',
  630. 'PRIVATE',
  631. 'PRIVILEGES',
  632. 'PROC',
  633. 'PROCCACHE',
  634. 'PROCEDURE',
  635. 'PROCEDURE_NAME',
  636. 'PROCESS',
  637. 'PROFILE',
  638. 'PROPERTY',
  639. 'PROPERTY_DESCRIPTION',
  640. 'PROPERTY_INT_ID',
  641. 'PROPERTY_SET_GUID',
  642. 'PROVIDER',
  643. 'PROVIDER_KEY_NAME',
  644. 'PUBLIC',
  645. 'PUT',
  646. 'QUARTER',
  647. 'QUERY',
  648. 'QUERY_GOVERNOR_COST_LIMIT',
  649. 'QUEUE',
  650. 'QUEUE_DELAY',
  651. 'QUOTED_IDENTIFIER',
  652. 'RAISERROR',
  653. 'RANGE',
  654. 'RAW',
  655. 'RC2',
  656. 'RC4',
  657. 'RC4_128',
  658. 'READ',
  659. 'READ_COMMITTED_SNAPSHOT',
  660. 'READ_ONLY',
  661. 'READ_ONLY_ROUTING_LIST',
  662. 'READ_ONLY_ROUTING_URL',
  663. 'READ_WRITE',
  664. 'READ_WRITE_FILEGROUPS',
  665. 'READCOMMITTED',
  666. 'READCOMMITTEDLOCK',
  667. 'READONLY',
  668. 'READPAST',
  669. 'READTEXT',
  670. 'READUNCOMMITTED',
  671. 'READWRITE',
  672. 'REAL',
  673. 'REBUILD',
  674. 'RECEIVE',
  675. 'RECOMPILE',
  676. 'RECONFIGURE',
  677. 'RECOVERY',
  678. 'RECURSIVE',
  679. 'RECURSIVE_TRIGGERS',
  680. 'REFERENCES',
  681. 'REGENERATE',
  682. 'RELATED_CONVERSATION',
  683. 'RELATED_CONVERSATION_GROUP',
  684. 'RELATIVE',
  685. 'REMOTE',
  686. 'REMOTE_PROC_TRANSACTIONS',
  687. 'REMOTE_SERVICE_NAME',
  688. 'REMOVE',
  689. 'REORGANIZE',
  690. 'REPAIR_ALLOW_DATA_LOSS',
  691. 'REPAIR_FAST',
  692. 'REPAIR_REBUILD',
  693. 'REPEATABLE',
  694. 'REPEATABLEREAD',
  695. 'REPLICA',
  696. 'REPLICATION',
  697. 'REQUEST_MAX_CPU_TIME_SEC',
  698. 'REQUEST_MAX_MEMORY_GRANT_PERCENT',
  699. 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC',
  700. 'REQUIRED',
  701. 'RESAMPLE',
  702. 'RESEED',
  703. 'RESERVE_DISK_SPACE',
  704. 'RESET',
  705. 'RESOURCE',
  706. 'RESTART',
  707. 'RESTORE',
  708. 'RESTRICT',
  709. 'RESTRICTED_USER',
  710. 'RESULT',
  711. 'RESUME',
  712. 'RETAINDAYS',
  713. 'RETENTION',
  714. 'RETURN',
  715. 'RETURNS',
  716. 'REVERT',
  717. 'REVOKE',
  718. 'REWIND',
  719. 'REWINDONLY',
  720. 'ROBUST',
  721. 'ROLE',
  722. 'ROLLBACK',
  723. 'ROLLUP',
  724. 'ROOT',
  725. 'ROUTE',
  726. 'ROW',
  727. 'ROWCOUNT',
  728. 'ROWGUIDCOL',
  729. 'ROWLOCK',
  730. 'ROWS',
  731. 'ROWS_PER_BATCH',
  732. 'ROWTERMINATOR',
  733. 'ROWVERSION',
  734. 'RSA_1024',
  735. 'RSA_2048',
  736. 'RSA_512',
  737. 'RULE',
  738. 'SAFE',
  739. 'SAFETY',
  740. 'SAMPLE',
  741. 'SAVE',
  742. 'SCHEDULER',
  743. 'SCHEMA',
  744. 'SCHEMA_AND_DATA',
  745. 'SCHEMA_ONLY',
  746. 'SCHEMABINDING',
  747. 'SCHEME',
  748. 'SCROLL',
  749. 'SCROLL_LOCKS',
  750. 'SEARCH',
  751. 'SECOND',
  752. 'SECONDARY',
  753. 'SECONDARY_ONLY',
  754. 'SECONDARY_ROLE',
  755. 'SECONDS',
  756. 'SECRET',
  757. 'SECURITY_LOG',
  758. 'SECURITYAUDIT',
  759. 'SELECT',
  760. 'SELECTIVE',
  761. 'SELF',
  762. 'SEND',
  763. 'SENT',
  764. 'SEQUENCE',
  765. 'SERIALIZABLE',
  766. 'SERVER',
  767. 'SERVICE',
  768. 'SERVICE_BROKER',
  769. 'SERVICE_NAME',
  770. 'SESSION',
  771. 'SESSION_TIMEOUT',
  772. 'SET',
  773. 'SETS',
  774. 'SETUSER',
  775. 'SHOW_STATISTICS',
  776. 'SHOWCONTIG',
  777. 'SHOWPLAN',
  778. 'SHOWPLAN_ALL',
  779. 'SHOWPLAN_TEXT',
  780. 'SHOWPLAN_XML',
  781. 'SHRINKDATABASE',
  782. 'SHRINKFILE',
  783. 'SHUTDOWN',
  784. 'SID',
  785. 'SIGNATURE',
  786. 'SIMPLE',
  787. 'SINGLE_BLOB',
  788. 'SINGLE_CLOB',
  789. 'SINGLE_NCLOB',
  790. 'SINGLE_USER',
  791. 'SINGLETON',
  792. 'SIZE',
  793. 'SKIP',
  794. 'SMALLDATETIME',
  795. 'SMALLINT',
  796. 'SMALLMONEY',
  797. 'SNAPSHOT',
  798. 'SORT_IN_TEMPDB',
  799. 'SOURCE',
  800. 'SPARSE',
  801. 'SPATIAL',
  802. 'SPATIAL_WINDOW_MAX_CELLS',
  803. 'SPECIFICATION',
  804. 'SPLIT',
  805. 'SQL',
  806. 'SQL_VARIANT',
  807. 'SQLPERF',
  808. 'STANDBY',
  809. 'START',
  810. 'START_DATE',
  811. 'STARTED',
  812. 'STARTUP_STATE',
  813. 'STAT_HEADER',
  814. 'STATE',
  815. 'STATEMENT',
  816. 'STATIC',
  817. 'STATISTICAL_SEMANTICS',
  818. 'STATISTICS',
  819. 'STATISTICS_INCREMENTAL',
  820. 'STATISTICS_NORECOMPUTE',
  821. 'STATS',
  822. 'STATS_STREAM',
  823. 'STATUS',
  824. 'STATUSONLY',
  825. 'STOP',
  826. 'STOP_ON_ERROR',
  827. 'STOPAT',
  828. 'STOPATMARK',
  829. 'STOPBEFOREMARK',
  830. 'STOPLIST',
  831. 'STOPPED',
  832. 'SUBJECT',
  833. 'SUBSCRIPTION',
  834. 'SUPPORTED',
  835. 'SUSPEND',
  836. 'SWITCH',
  837. 'SYMMETRIC',
  838. 'SYNCHRONOUS_COMMIT',
  839. 'SYNONYM',
  840. 'SYSNAME',
  841. 'SYSTEM',
  842. 'TABLE',
  843. 'TABLERESULTS',
  844. 'TABLESAMPLE',
  845. 'TABLOCK',
  846. 'TABLOCKX',
  847. 'TAKE',
  848. 'TAPE',
  849. 'TARGET',
  850. 'TARGET_RECOVERY_TIME',
  851. 'TB',
  852. 'TCP',
  853. 'TEXT',
  854. 'TEXTIMAGE_ON',
  855. 'TEXTSIZE',
  856. 'THEN',
  857. 'THESAURUS',
  858. 'THROW',
  859. 'TIES',
  860. 'TIME',
  861. 'TIMEOUT',
  862. 'TIMER',
  863. 'TIMESTAMP',
  864. 'TINYINT',
  865. 'TO',
  866. 'TOP',
  867. 'TORN_PAGE_DETECTION',
  868. 'TRACEOFF',
  869. 'TRACEON',
  870. 'TRACESTATUS',
  871. 'TRACK_CAUSALITY',
  872. 'TRACK_COLUMNS_UPDATED',
  873. 'TRAN',
  874. 'TRANSACTION',
  875. 'TRANSFER',
  876. 'TRANSFORM_NOISE_WORDS',
  877. 'TRIGGER',
  878. 'TRIPLE_DES',
  879. 'TRIPLE_DES_3KEY',
  880. 'TRUE',
  881. 'TRUNCATE',
  882. 'TRUNCATEONLY',
  883. 'TRUSTWORTHY',
  884. 'TRY',
  885. 'TSQL',
  886. 'TWO_DIGIT_YEAR_CUTOFF',
  887. 'TYPE',
  888. 'TYPE_WARNING',
  889. 'UNBOUNDED',
  890. 'UNCHECKED',
  891. 'UNCOMMITTED',
  892. 'UNDEFINED',
  893. 'UNIQUE',
  894. 'UNIQUEIDENTIFIER',
  895. 'UNKNOWN',
  896. 'UNLIMITED',
  897. 'UNLOAD',
  898. 'UNSAFE',
  899. 'UPDATE',
  900. 'UPDATETEXT',
  901. 'UPDATEUSAGE',
  902. 'UPDLOCK',
  903. 'URL',
  904. 'USE',
  905. 'USED',
  906. 'USER',
  907. 'USEROPTIONS',
  908. 'USING',
  909. 'VALID_XML',
  910. 'VALIDATION',
  911. 'VALUE',
  912. 'VALUES',
  913. 'VARBINARY',
  914. 'VARCHAR',
  915. 'VARYING',
  916. 'VERIFYONLY',
  917. 'VERSION',
  918. 'VIEW',
  919. 'VIEW_METADATA',
  920. 'VIEWS',
  921. 'VISIBILITY',
  922. 'WAIT_AT_LOW_PRIORITY',
  923. 'WAITFOR',
  924. 'WEEK',
  925. 'WEIGHT',
  926. 'WELL_FORMED_XML',
  927. 'WHEN',
  928. 'WHERE',
  929. 'WHILE',
  930. 'WINDOWS',
  931. 'WITH',
  932. 'WITHIN',
  933. 'WITHOUT',
  934. 'WITNESS',
  935. 'WORK',
  936. 'WORKLOAD',
  937. 'WRITETEXT',
  938. 'XACT_ABORT',
  939. 'XLOCK',
  940. 'XMAX',
  941. 'XMIN',
  942. 'XML',
  943. 'XMLDATA',
  944. 'XMLNAMESPACES',
  945. 'XMLSCHEMA',
  946. 'XQUERY',
  947. 'XSINIL',
  948. 'YEAR',
  949. 'YMAX',
  950. 'YMIN'
  951. ],
  952. operators: [
  953. // Logical
  954. 'ALL', 'AND', 'ANY', 'BETWEEN', 'EXISTS', 'IN', 'LIKE', 'NOT', 'OR', 'SOME',
  955. // Set
  956. 'EXCEPT', 'INTERSECT', 'UNION',
  957. // Join
  958. 'APPLY', 'CROSS', 'FULL', 'INNER', 'JOIN', 'LEFT', 'OUTER', 'RIGHT',
  959. // Predicates
  960. 'CONTAINS', 'FREETEXT', 'IS', 'NULL',
  961. // Pivoting
  962. 'PIVOT', 'UNPIVOT',
  963. // Merging
  964. 'MATCHED'
  965. ],
  966. builtinFunctions: [
  967. // Aggregate
  968. 'AVG', 'CHECKSUM_AGG', 'COUNT', 'COUNT_BIG', 'GROUPING', 'GROUPING_ID', 'MAX', 'MIN', 'SUM', 'STDEV', 'STDEVP', 'VAR', 'VARP',
  969. // Analytic
  970. 'CUME_DIST', 'FIRST_VALUE', 'LAG', 'LAST_VALUE', 'LEAD', 'PERCENTILE_CONT', 'PERCENTILE_DISC', 'PERCENT_RANK',
  971. // Collation
  972. 'COLLATE', 'COLLATIONPROPERTY', 'TERTIARY_WEIGHTS',
  973. // Azure
  974. 'FEDERATION_FILTERING_VALUE',
  975. // Conversion
  976. 'CAST', 'CONVERT', 'PARSE', 'TRY_CAST', 'TRY_CONVERT', 'TRY_PARSE',
  977. // Cryptographic
  978. 'ASYMKEY_ID', 'ASYMKEYPROPERTY', 'CERTPROPERTY', 'CERT_ID', 'CRYPT_GEN_RANDOM',
  979. 'DECRYPTBYASYMKEY', 'DECRYPTBYCERT', 'DECRYPTBYKEY', 'DECRYPTBYKEYAUTOASYMKEY', 'DECRYPTBYKEYAUTOCERT', 'DECRYPTBYPASSPHRASE',
  980. 'ENCRYPTBYASYMKEY', 'ENCRYPTBYCERT', 'ENCRYPTBYKEY', 'ENCRYPTBYPASSPHRASE', 'HASHBYTES', 'IS_OBJECTSIGNED',
  981. 'KEY_GUID', 'KEY_ID', 'KEY_NAME', 'SIGNBYASYMKEY', 'SIGNBYCERT', 'SYMKEYPROPERTY', 'VERIFYSIGNEDBYCERT', 'VERIFYSIGNEDBYASYMKEY',
  982. // Cursor
  983. 'CURSOR_STATUS',
  984. // Datatype
  985. 'DATALENGTH', 'IDENT_CURRENT', 'IDENT_INCR', 'IDENT_SEED', 'IDENTITY', 'SQL_VARIANT_PROPERTY',
  986. // Datetime
  987. 'CURRENT_TIMESTAMP', 'DATEADD', 'DATEDIFF', 'DATEFROMPARTS', 'DATENAME', 'DATEPART', 'DATETIME2FROMPARTS', 'DATETIMEFROMPARTS',
  988. 'DATETIMEOFFSETFROMPARTS', 'DAY', 'EOMONTH', 'GETDATE', 'GETUTCDATE', 'ISDATE', 'MONTH', 'SMALLDATETIMEFROMPARTS', 'SWITCHOFFSET',
  989. 'SYSDATETIME', 'SYSDATETIMEOFFSET', 'SYSUTCDATETIME', 'TIMEFROMPARTS', 'TODATETIMEOFFSET', 'YEAR',
  990. // Logical
  991. 'CHOOSE', 'COALESCE', 'IIF', 'NULLIF',
  992. // Mathematical
  993. 'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATN2', 'CEILING', 'COS', 'COT', 'DEGREES', 'EXP', 'FLOOR', 'LOG', 'LOG10',
  994. 'PI', 'POWER', 'RADIANS', 'RAND', 'ROUND', 'SIGN', 'SIN', 'SQRT', 'SQUARE', 'TAN',
  995. // Metadata
  996. 'APP_NAME', 'APPLOCK_MODE', 'APPLOCK_TEST', 'ASSEMBLYPROPERTY', 'COL_LENGTH', 'COL_NAME', 'COLUMNPROPERTY',
  997. 'DATABASE_PRINCIPAL_ID', 'DATABASEPROPERTYEX', 'DB_ID', 'DB_NAME', 'FILE_ID', 'FILE_IDEX', 'FILE_NAME', 'FILEGROUP_ID',
  998. 'FILEGROUP_NAME', 'FILEGROUPPROPERTY', 'FILEPROPERTY', 'FULLTEXTCATALOGPROPERTY', 'FULLTEXTSERVICEPROPERTY',
  999. 'INDEX_COL', 'INDEXKEY_PROPERTY', 'INDEXPROPERTY', 'OBJECT_DEFINITION', 'OBJECT_ID',
  1000. 'OBJECT_NAME', 'OBJECT_SCHEMA_NAME', 'OBJECTPROPERTY', 'OBJECTPROPERTYEX', 'ORIGINAL_DB_NAME', 'PARSENAME',
  1001. 'SCHEMA_ID', 'SCHEMA_NAME', 'SCOPE_IDENTITY', 'SERVERPROPERTY', 'STATS_DATE', 'TYPE_ID', 'TYPE_NAME', 'TYPEPROPERTY',
  1002. // Ranking
  1003. 'DENSE_RANK', 'NTILE', 'RANK', 'ROW_NUMBER',
  1004. // Replication
  1005. 'PUBLISHINGSERVERNAME',
  1006. // Rowset
  1007. 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML',
  1008. // Security
  1009. 'CERTENCODED', 'CERTPRIVATEKEY', 'CURRENT_USER', 'HAS_DBACCESS', 'HAS_PERMS_BY_NAME', 'IS_MEMBER', 'IS_ROLEMEMBER', 'IS_SRVROLEMEMBER',
  1010. 'LOGINPROPERTY', 'ORIGINAL_LOGIN', 'PERMISSIONS', 'PWDENCRYPT', 'PWDCOMPARE', 'SESSION_USER', 'SESSIONPROPERTY', 'SUSER_ID', 'SUSER_NAME',
  1011. 'SUSER_SID', 'SUSER_SNAME', 'SYSTEM_USER', 'USER', 'USER_ID', 'USER_NAME',
  1012. // String
  1013. 'ASCII', 'CHAR', 'CHARINDEX', 'CONCAT', 'DIFFERENCE', 'FORMAT', 'LEFT', 'LEN', 'LOWER', 'LTRIM', 'NCHAR', 'PATINDEX',
  1014. 'QUOTENAME', 'REPLACE', 'REPLICATE', 'REVERSE', 'RIGHT', 'RTRIM', 'SOUNDEX', 'SPACE', 'STR', 'STUFF', 'SUBSTRING', 'UNICODE', 'UPPER',
  1015. // System
  1016. 'BINARY_CHECKSUM', 'CHECKSUM', 'CONNECTIONPROPERTY', 'CONTEXT_INFO', 'CURRENT_REQUEST_ID', 'ERROR_LINE', 'ERROR_NUMBER', 'ERROR_MESSAGE',
  1017. 'ERROR_PROCEDURE', 'ERROR_SEVERITY', 'ERROR_STATE', 'FORMATMESSAGE', 'GETANSINULL', 'GET_FILESTREAM_TRANSACTION_CONTEXT', 'HOST_ID',
  1018. 'HOST_NAME', 'ISNULL', 'ISNUMERIC', 'MIN_ACTIVE_ROWVERSION', 'NEWID', 'NEWSEQUENTIALID', 'ROWCOUNT_BIG', 'XACT_STATE',
  1019. // TextImage
  1020. 'TEXTPTR', 'TEXTVALID',
  1021. // Trigger
  1022. 'COLUMNS_UPDATED', 'EVENTDATA', 'TRIGGER_NESTLEVEL', 'UPDATE',
  1023. // ChangeTracking
  1024. 'CHANGETABLE', 'CHANGE_TRACKING_CONTEXT', 'CHANGE_TRACKING_CURRENT_VERSION', 'CHANGE_TRACKING_IS_COLUMN_IN_MASK', 'CHANGE_TRACKING_MIN_VALID_VERSION',
  1025. // FullTextSearch
  1026. 'CONTAINSTABLE', 'FREETEXTTABLE',
  1027. // SemanticTextSearch
  1028. 'SEMANTICKEYPHRASETABLE', 'SEMANTICSIMILARITYDETAILSTABLE', 'SEMANTICSIMILARITYTABLE',
  1029. // FileStream
  1030. 'FILETABLEROOTPATH', 'GETFILENAMESPACEPATH', 'GETPATHLOCATOR', 'PATHNAME',
  1031. // ServiceBroker
  1032. 'GET_TRANSMISSION_STATUS'
  1033. ],
  1034. builtinVariables: [
  1035. // Configuration
  1036. '@@DATEFIRST', '@@DBTS', '@@LANGID', '@@LANGUAGE', '@@LOCK_TIMEOUT', '@@MAX_CONNECTIONS', '@@MAX_PRECISION', '@@NESTLEVEL',
  1037. '@@OPTIONS', '@@REMSERVER', '@@SERVERNAME', '@@SERVICENAME', '@@SPID', '@@TEXTSIZE', '@@VERSION',
  1038. // Cursor
  1039. '@@CURSOR_ROWS', '@@FETCH_STATUS',
  1040. // Datetime
  1041. '@@DATEFIRST',
  1042. // Metadata
  1043. '@@PROCID',
  1044. // System
  1045. '@@ERROR', '@@IDENTITY', '@@ROWCOUNT', '@@TRANCOUNT',
  1046. // Stats
  1047. '@@CONNECTIONS', '@@CPU_BUSY', '@@IDLE', '@@IO_BUSY', '@@PACKET_ERRORS', '@@PACK_RECEIVED', '@@PACK_SENT',
  1048. '@@TIMETICKS', '@@TOTAL_ERRORS', '@@TOTAL_READ', '@@TOTAL_WRITE'
  1049. ],
  1050. pseudoColumns: [
  1051. '$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'
  1052. ],
  1053. tokenizer: {
  1054. root: [
  1055. { include: '@comments' },
  1056. { include: '@whitespace' },
  1057. { include: '@pseudoColumns' },
  1058. { include: '@numbers' },
  1059. { include: '@strings' },
  1060. { include: '@complexIdentifiers' },
  1061. { include: '@scopes' },
  1062. [/[;,.]/, 'delimiter'],
  1063. [/[()]/, '@brackets'],
  1064. [/[\w@#$]+/, {
  1065. cases: {
  1066. '@keywords': 'keyword',
  1067. '@operators': 'operator',
  1068. '@builtinVariables': 'predefined',
  1069. '@builtinFunctions': 'predefined',
  1070. '@default': 'identifier'
  1071. }
  1072. }],
  1073. [/[<>=!%&+\-*/|~^]/, 'operator'],
  1074. ],
  1075. whitespace: [
  1076. [/\s+/, 'white']
  1077. ],
  1078. comments: [
  1079. [/--+.*/, 'comment'],
  1080. [/\/\*/, { token: 'comment.quote', next: '@comment' }]
  1081. ],
  1082. comment: [
  1083. [/[^*/]+/, 'comment'],
  1084. // Not supporting nested comments, as nested comments seem to not be standard?
  1085. // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
  1086. // [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
  1087. [/\*\//, { token: 'comment.quote', next: '@pop' }],
  1088. [/./, 'comment']
  1089. ],
  1090. pseudoColumns: [
  1091. [/[$][A-Za-z_][\w@#$]*/, {
  1092. cases: {
  1093. '@pseudoColumns': 'predefined',
  1094. '@default': 'identifier'
  1095. }
  1096. }],
  1097. ],
  1098. numbers: [
  1099. [/0[xX][0-9a-fA-F]*/, 'number'],
  1100. [/[$][+-]*\d*(\.\d*)?/, 'number'],
  1101. [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
  1102. ],
  1103. strings: [
  1104. [/N'/, { token: 'string', next: '@string' }],
  1105. [/'/, { token: 'string', next: '@string' }]
  1106. ],
  1107. string: [
  1108. [/[^']+/, 'string'],
  1109. [/''/, 'string'],
  1110. [/'/, { token: 'string', next: '@pop' }]
  1111. ],
  1112. complexIdentifiers: [
  1113. [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],
  1114. [/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }]
  1115. ],
  1116. bracketedIdentifier: [
  1117. [/[^\]]+/, 'identifier'],
  1118. [/]]/, 'identifier'],
  1119. [/]/, { token: 'identifier.quote', next: '@pop' }]
  1120. ],
  1121. quotedIdentifier: [
  1122. [/[^"]+/, 'identifier'],
  1123. [/""/, 'identifier'],
  1124. [/"/, { token: 'identifier.quote', next: '@pop' }]
  1125. ],
  1126. scopes: [
  1127. [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'],
  1128. [/BEGIN\s+TRY\b/i, { token: 'keyword.try' }],
  1129. [/END\s+TRY\b/i, { token: 'keyword.try' }],
  1130. [/BEGIN\s+CATCH\b/i, { token: 'keyword.catch' }],
  1131. [/END\s+CATCH\b/i, { token: 'keyword.catch' }],
  1132. [/(BEGIN|CASE)\b/i, { token: 'keyword.block' }],
  1133. [/END\b/i, { token: 'keyword.block' }],
  1134. [/WHEN\b/i, { token: 'keyword.choice' }],
  1135. [/THEN\b/i, { token: 'keyword.choice' }]
  1136. ]
  1137. }
  1138. };
  1139. });