pgsql.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. /*!-----------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
  4. * Released under the MIT license
  5. * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
  6. *-----------------------------------------------------------------------------*/
  7. // src/basic-languages/pgsql/pgsql.ts
  8. var 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. var 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. "ALL",
  43. "ANALYSE",
  44. "ANALYZE",
  45. "AND",
  46. "ANY",
  47. "ARRAY",
  48. "AS",
  49. "ASC",
  50. "ASYMMETRIC",
  51. "AUTHORIZATION",
  52. "BINARY",
  53. "BOTH",
  54. "CASE",
  55. "CAST",
  56. "CHECK",
  57. "COLLATE",
  58. "COLLATION",
  59. "COLUMN",
  60. "CONCURRENTLY",
  61. "CONSTRAINT",
  62. "CREATE",
  63. "CROSS",
  64. "CURRENT_CATALOG",
  65. "CURRENT_DATE",
  66. "CURRENT_ROLE",
  67. "CURRENT_SCHEMA",
  68. "CURRENT_TIME",
  69. "CURRENT_TIMESTAMP",
  70. "CURRENT_USER",
  71. "DEFAULT",
  72. "DEFERRABLE",
  73. "DESC",
  74. "DISTINCT",
  75. "DO",
  76. "ELSE",
  77. "END",
  78. "EXCEPT",
  79. "FALSE",
  80. "FETCH",
  81. "FOR",
  82. "FOREIGN",
  83. "FREEZE",
  84. "FROM",
  85. "FULL",
  86. "GRANT",
  87. "GROUP",
  88. "HAVING",
  89. "ILIKE",
  90. "IN",
  91. "INITIALLY",
  92. "INNER",
  93. "INTERSECT",
  94. "INTO",
  95. "IS",
  96. "ISNULL",
  97. "JOIN",
  98. "LATERAL",
  99. "LEADING",
  100. "LEFT",
  101. "LIKE",
  102. "LIMIT",
  103. "LOCALTIME",
  104. "LOCALTIMESTAMP",
  105. "NATURAL",
  106. "NOT",
  107. "NOTNULL",
  108. "NULL",
  109. "OFFSET",
  110. "ON",
  111. "ONLY",
  112. "OR",
  113. "ORDER",
  114. "OUTER",
  115. "OVERLAPS",
  116. "PLACING",
  117. "PRIMARY",
  118. "REFERENCES",
  119. "RETURNING",
  120. "RIGHT",
  121. "SELECT",
  122. "SESSION_USER",
  123. "SIMILAR",
  124. "SOME",
  125. "SYMMETRIC",
  126. "TABLE",
  127. "TABLESAMPLE",
  128. "THEN",
  129. "TO",
  130. "TRAILING",
  131. "TRUE",
  132. "UNION",
  133. "UNIQUE",
  134. "USER",
  135. "USING",
  136. "VARIADIC",
  137. "VERBOSE",
  138. "WHEN",
  139. "WHERE",
  140. "WINDOW",
  141. "WITH"
  142. ],
  143. operators: [
  144. "AND",
  145. "BETWEEN",
  146. "IN",
  147. "LIKE",
  148. "NOT",
  149. "OR",
  150. "IS",
  151. "NULL",
  152. "INTERSECT",
  153. "UNION",
  154. "INNER",
  155. "JOIN",
  156. "LEFT",
  157. "OUTER",
  158. "RIGHT"
  159. ],
  160. builtinFunctions: [
  161. "abbrev",
  162. "abs",
  163. "acldefault",
  164. "aclexplode",
  165. "acos",
  166. "acosd",
  167. "acosh",
  168. "age",
  169. "any",
  170. "area",
  171. "array_agg",
  172. "array_append",
  173. "array_cat",
  174. "array_dims",
  175. "array_fill",
  176. "array_length",
  177. "array_lower",
  178. "array_ndims",
  179. "array_position",
  180. "array_positions",
  181. "array_prepend",
  182. "array_remove",
  183. "array_replace",
  184. "array_to_json",
  185. "array_to_string",
  186. "array_to_tsvector",
  187. "array_upper",
  188. "ascii",
  189. "asin",
  190. "asind",
  191. "asinh",
  192. "atan",
  193. "atan2",
  194. "atan2d",
  195. "atand",
  196. "atanh",
  197. "avg",
  198. "bit",
  199. "bit_and",
  200. "bit_count",
  201. "bit_length",
  202. "bit_or",
  203. "bit_xor",
  204. "bool_and",
  205. "bool_or",
  206. "bound_box",
  207. "box",
  208. "brin_desummarize_range",
  209. "brin_summarize_new_values",
  210. "brin_summarize_range",
  211. "broadcast",
  212. "btrim",
  213. "cardinality",
  214. "cbrt",
  215. "ceil",
  216. "ceiling",
  217. "center",
  218. "char_length",
  219. "character_length",
  220. "chr",
  221. "circle",
  222. "clock_timestamp",
  223. "coalesce",
  224. "col_description",
  225. "concat",
  226. "concat_ws",
  227. "convert",
  228. "convert_from",
  229. "convert_to",
  230. "corr",
  231. "cos",
  232. "cosd",
  233. "cosh",
  234. "cot",
  235. "cotd",
  236. "count",
  237. "covar_pop",
  238. "covar_samp",
  239. "cume_dist",
  240. "current_catalog",
  241. "current_database",
  242. "current_date",
  243. "current_query",
  244. "current_role",
  245. "current_schema",
  246. "current_schemas",
  247. "current_setting",
  248. "current_time",
  249. "current_timestamp",
  250. "current_user",
  251. "currval",
  252. "cursor_to_xml",
  253. "cursor_to_xmlschema",
  254. "date_bin",
  255. "date_part",
  256. "date_trunc",
  257. "database_to_xml",
  258. "database_to_xml_and_xmlschema",
  259. "database_to_xmlschema",
  260. "decode",
  261. "degrees",
  262. "dense_rank",
  263. "diagonal",
  264. "diameter",
  265. "div",
  266. "encode",
  267. "enum_first",
  268. "enum_last",
  269. "enum_range",
  270. "every",
  271. "exp",
  272. "extract",
  273. "factorial",
  274. "family",
  275. "first_value",
  276. "floor",
  277. "format",
  278. "format_type",
  279. "gcd",
  280. "gen_random_uuid",
  281. "generate_series",
  282. "generate_subscripts",
  283. "get_bit",
  284. "get_byte",
  285. "get_current_ts_config",
  286. "gin_clean_pending_list",
  287. "greatest",
  288. "grouping",
  289. "has_any_column_privilege",
  290. "has_column_privilege",
  291. "has_database_privilege",
  292. "has_foreign_data_wrapper_privilege",
  293. "has_function_privilege",
  294. "has_language_privilege",
  295. "has_schema_privilege",
  296. "has_sequence_privilege",
  297. "has_server_privilege",
  298. "has_table_privilege",
  299. "has_tablespace_privilege",
  300. "has_type_privilege",
  301. "height",
  302. "host",
  303. "hostmask",
  304. "inet_client_addr",
  305. "inet_client_port",
  306. "inet_merge",
  307. "inet_same_family",
  308. "inet_server_addr",
  309. "inet_server_port",
  310. "initcap",
  311. "isclosed",
  312. "isempty",
  313. "isfinite",
  314. "isopen",
  315. "json_agg",
  316. "json_array_elements",
  317. "json_array_elements_text",
  318. "json_array_length",
  319. "json_build_array",
  320. "json_build_object",
  321. "json_each",
  322. "json_each_text",
  323. "json_extract_path",
  324. "json_extract_path_text",
  325. "json_object",
  326. "json_object_agg",
  327. "json_object_keys",
  328. "json_populate_record",
  329. "json_populate_recordset",
  330. "json_strip_nulls",
  331. "json_to_record",
  332. "json_to_recordset",
  333. "json_to_tsvector",
  334. "json_typeof",
  335. "jsonb_agg",
  336. "jsonb_array_elements",
  337. "jsonb_array_elements_text",
  338. "jsonb_array_length",
  339. "jsonb_build_array",
  340. "jsonb_build_object",
  341. "jsonb_each",
  342. "jsonb_each_text",
  343. "jsonb_extract_path",
  344. "jsonb_extract_path_text",
  345. "jsonb_insert",
  346. "jsonb_object",
  347. "jsonb_object_agg",
  348. "jsonb_object_keys",
  349. "jsonb_path_exists",
  350. "jsonb_path_match",
  351. "jsonb_path_query",
  352. "jsonb_path_query_array",
  353. "jsonb_path_exists_tz",
  354. "jsonb_path_query_first",
  355. "jsonb_path_query_array_tz",
  356. "jsonb_path_query_first_tz",
  357. "jsonb_path_query_tz",
  358. "jsonb_path_match_tz",
  359. "jsonb_populate_record",
  360. "jsonb_populate_recordset",
  361. "jsonb_pretty",
  362. "jsonb_set",
  363. "jsonb_set_lax",
  364. "jsonb_strip_nulls",
  365. "jsonb_to_record",
  366. "jsonb_to_recordset",
  367. "jsonb_to_tsvector",
  368. "jsonb_typeof",
  369. "justify_days",
  370. "justify_hours",
  371. "justify_interval",
  372. "lag",
  373. "last_value",
  374. "lastval",
  375. "lcm",
  376. "lead",
  377. "least",
  378. "left",
  379. "length",
  380. "line",
  381. "ln",
  382. "localtime",
  383. "localtimestamp",
  384. "log",
  385. "log10",
  386. "lower",
  387. "lower_inc",
  388. "lower_inf",
  389. "lpad",
  390. "lseg",
  391. "ltrim",
  392. "macaddr8_set7bit",
  393. "make_date",
  394. "make_interval",
  395. "make_time",
  396. "make_timestamp",
  397. "make_timestamptz",
  398. "makeaclitem",
  399. "masklen",
  400. "max",
  401. "md5",
  402. "min",
  403. "min_scale",
  404. "mod",
  405. "mode",
  406. "multirange",
  407. "netmask",
  408. "network",
  409. "nextval",
  410. "normalize",
  411. "now",
  412. "npoints",
  413. "nth_value",
  414. "ntile",
  415. "nullif",
  416. "num_nonnulls",
  417. "num_nulls",
  418. "numnode",
  419. "obj_description",
  420. "octet_length",
  421. "overlay",
  422. "parse_ident",
  423. "path",
  424. "pclose",
  425. "percent_rank",
  426. "percentile_cont",
  427. "percentile_disc",
  428. "pg_advisory_lock",
  429. "pg_advisory_lock_shared",
  430. "pg_advisory_unlock",
  431. "pg_advisory_unlock_all",
  432. "pg_advisory_unlock_shared",
  433. "pg_advisory_xact_lock",
  434. "pg_advisory_xact_lock_shared",
  435. "pg_backend_pid",
  436. "pg_backup_start_time",
  437. "pg_blocking_pids",
  438. "pg_cancel_backend",
  439. "pg_client_encoding",
  440. "pg_collation_actual_version",
  441. "pg_collation_is_visible",
  442. "pg_column_compression",
  443. "pg_column_size",
  444. "pg_conf_load_time",
  445. "pg_control_checkpoint",
  446. "pg_control_init",
  447. "pg_control_recovery",
  448. "pg_control_system",
  449. "pg_conversion_is_visible",
  450. "pg_copy_logical_replication_slot",
  451. "pg_copy_physical_replication_slot",
  452. "pg_create_logical_replication_slot",
  453. "pg_create_physical_replication_slot",
  454. "pg_create_restore_point",
  455. "pg_current_logfile",
  456. "pg_current_snapshot",
  457. "pg_current_wal_flush_lsn",
  458. "pg_current_wal_insert_lsn",
  459. "pg_current_wal_lsn",
  460. "pg_current_xact_id",
  461. "pg_current_xact_id_if_assigned",
  462. "pg_current_xlog_flush_location",
  463. "pg_current_xlog_insert_location",
  464. "pg_current_xlog_location",
  465. "pg_database_size",
  466. "pg_describe_object",
  467. "pg_drop_replication_slot",
  468. "pg_event_trigger_ddl_commands",
  469. "pg_event_trigger_dropped_objects",
  470. "pg_event_trigger_table_rewrite_oid",
  471. "pg_event_trigger_table_rewrite_reason",
  472. "pg_export_snapshot",
  473. "pg_filenode_relation",
  474. "pg_function_is_visible",
  475. "pg_get_catalog_foreign_keys",
  476. "pg_get_constraintdef",
  477. "pg_get_expr",
  478. "pg_get_function_arguments",
  479. "pg_get_function_identity_arguments",
  480. "pg_get_function_result",
  481. "pg_get_functiondef",
  482. "pg_get_indexdef",
  483. "pg_get_keywords",
  484. "pg_get_object_address",
  485. "pg_get_owned_sequence",
  486. "pg_get_ruledef",
  487. "pg_get_serial_sequence",
  488. "pg_get_statisticsobjdef",
  489. "pg_get_triggerdef",
  490. "pg_get_userbyid",
  491. "pg_get_viewdef",
  492. "pg_get_wal_replay_pause_state",
  493. "pg_has_role",
  494. "pg_identify_object",
  495. "pg_identify_object_as_address",
  496. "pg_import_system_collations",
  497. "pg_index_column_has_property",
  498. "pg_index_has_property",
  499. "pg_indexam_has_property",
  500. "pg_indexes_size",
  501. "pg_is_in_backup",
  502. "pg_is_in_recovery",
  503. "pg_is_other_temp_schema",
  504. "pg_is_wal_replay_paused",
  505. "pg_is_xlog_replay_paused",
  506. "pg_jit_available",
  507. "pg_last_committed_xact",
  508. "pg_last_wal_receive_lsn",
  509. "pg_last_wal_replay_lsn",
  510. "pg_last_xact_replay_timestamp",
  511. "pg_last_xlog_receive_location",
  512. "pg_last_xlog_replay_location",
  513. "pg_listening_channels",
  514. "pg_log_backend_memory_contexts",
  515. "pg_logical_emit_message",
  516. "pg_logical_slot_get_binary_changes",
  517. "pg_logical_slot_get_changes",
  518. "pg_logical_slot_peek_binary_changes",
  519. "pg_logical_slot_peek_changes",
  520. "pg_ls_archive_statusdir",
  521. "pg_ls_dir",
  522. "pg_ls_logdir",
  523. "pg_ls_tmpdir",
  524. "pg_ls_waldir",
  525. "pg_mcv_list_items",
  526. "pg_my_temp_schema",
  527. "pg_notification_queue_usage",
  528. "pg_opclass_is_visible",
  529. "pg_operator_is_visible",
  530. "pg_opfamily_is_visible",
  531. "pg_options_to_table",
  532. "pg_partition_ancestors",
  533. "pg_partition_root",
  534. "pg_partition_tree",
  535. "pg_postmaster_start_time",
  536. "pg_promote",
  537. "pg_read_binary_file",
  538. "pg_read_file",
  539. "pg_relation_filenode",
  540. "pg_relation_filepath",
  541. "pg_relation_size",
  542. "pg_reload_conf",
  543. "pg_replication_origin_advance",
  544. "pg_replication_origin_create",
  545. "pg_replication_origin_drop",
  546. "pg_replication_origin_oid",
  547. "pg_replication_origin_progress",
  548. "pg_replication_origin_session_is_setup",
  549. "pg_replication_origin_session_progress",
  550. "pg_replication_origin_session_reset",
  551. "pg_replication_origin_session_setup",
  552. "pg_replication_origin_xact_reset",
  553. "pg_replication_origin_xact_setup",
  554. "pg_replication_slot_advance",
  555. "pg_rotate_logfile",
  556. "pg_safe_snapshot_blocking_pids",
  557. "pg_size_bytes",
  558. "pg_size_pretty",
  559. "pg_sleep",
  560. "pg_sleep_for",
  561. "pg_sleep_until",
  562. "pg_snapshot_xip",
  563. "pg_snapshot_xmax",
  564. "pg_snapshot_xmin",
  565. "pg_start_backup",
  566. "pg_stat_file",
  567. "pg_statistics_obj_is_visible",
  568. "pg_stop_backup",
  569. "pg_switch_wal",
  570. "pg_switch_xlog",
  571. "pg_table_is_visible",
  572. "pg_table_size",
  573. "pg_tablespace_databases",
  574. "pg_tablespace_location",
  575. "pg_tablespace_size",
  576. "pg_terminate_backend",
  577. "pg_total_relation_size",
  578. "pg_trigger_depth",
  579. "pg_try_advisory_lock",
  580. "pg_try_advisory_lock_shared",
  581. "pg_try_advisory_xact_lock",
  582. "pg_try_advisory_xact_lock_shared",
  583. "pg_ts_config_is_visible",
  584. "pg_ts_dict_is_visible",
  585. "pg_ts_parser_is_visible",
  586. "pg_ts_template_is_visible",
  587. "pg_type_is_visible",
  588. "pg_typeof",
  589. "pg_visible_in_snapshot",
  590. "pg_wal_lsn_diff",
  591. "pg_wal_replay_pause",
  592. "pg_wal_replay_resume",
  593. "pg_walfile_name",
  594. "pg_walfile_name_offset",
  595. "pg_xact_commit_timestamp",
  596. "pg_xact_commit_timestamp_origin",
  597. "pg_xact_status",
  598. "pg_xlog_location_diff",
  599. "pg_xlog_replay_pause",
  600. "pg_xlog_replay_resume",
  601. "pg_xlogfile_name",
  602. "pg_xlogfile_name_offset",
  603. "phraseto_tsquery",
  604. "pi",
  605. "plainto_tsquery",
  606. "point",
  607. "polygon",
  608. "popen",
  609. "position",
  610. "power",
  611. "pqserverversion",
  612. "query_to_xml",
  613. "query_to_xml_and_xmlschema",
  614. "query_to_xmlschema",
  615. "querytree",
  616. "quote_ident",
  617. "quote_literal",
  618. "quote_nullable",
  619. "radians",
  620. "radius",
  621. "random",
  622. "range_agg",
  623. "range_intersect_agg",
  624. "range_merge",
  625. "rank",
  626. "regexp_match",
  627. "regexp_matches",
  628. "regexp_replace",
  629. "regexp_split_to_array",
  630. "regexp_split_to_table",
  631. "regr_avgx",
  632. "regr_avgy",
  633. "regr_count",
  634. "regr_intercept",
  635. "regr_r2",
  636. "regr_slope",
  637. "regr_sxx",
  638. "regr_sxy",
  639. "regr_syy",
  640. "repeat",
  641. "replace",
  642. "reverse",
  643. "right",
  644. "round",
  645. "row_number",
  646. "row_security_active",
  647. "row_to_json",
  648. "rpad",
  649. "rtrim",
  650. "scale",
  651. "schema_to_xml",
  652. "schema_to_xml_and_xmlschema",
  653. "schema_to_xmlschema",
  654. "session_user",
  655. "set_bit",
  656. "set_byte",
  657. "set_config",
  658. "set_masklen",
  659. "setseed",
  660. "setval",
  661. "setweight",
  662. "sha224",
  663. "sha256",
  664. "sha384",
  665. "sha512",
  666. "shobj_description",
  667. "sign",
  668. "sin",
  669. "sind",
  670. "sinh",
  671. "slope",
  672. "split_part",
  673. "sprintf",
  674. "sqrt",
  675. "starts_with",
  676. "statement_timestamp",
  677. "stddev",
  678. "stddev_pop",
  679. "stddev_samp",
  680. "string_agg",
  681. "string_to_array",
  682. "string_to_table",
  683. "strip",
  684. "strpos",
  685. "substr",
  686. "substring",
  687. "sum",
  688. "suppress_redundant_updates_trigger",
  689. "table_to_xml",
  690. "table_to_xml_and_xmlschema",
  691. "table_to_xmlschema",
  692. "tan",
  693. "tand",
  694. "tanh",
  695. "text",
  696. "timeofday",
  697. "timezone",
  698. "to_ascii",
  699. "to_char",
  700. "to_date",
  701. "to_hex",
  702. "to_json",
  703. "to_number",
  704. "to_regclass",
  705. "to_regcollation",
  706. "to_regnamespace",
  707. "to_regoper",
  708. "to_regoperator",
  709. "to_regproc",
  710. "to_regprocedure",
  711. "to_regrole",
  712. "to_regtype",
  713. "to_timestamp",
  714. "to_tsquery",
  715. "to_tsvector",
  716. "transaction_timestamp",
  717. "translate",
  718. "trim",
  719. "trim_array",
  720. "trim_scale",
  721. "trunc",
  722. "ts_debug",
  723. "ts_delete",
  724. "ts_filter",
  725. "ts_headline",
  726. "ts_lexize",
  727. "ts_parse",
  728. "ts_rank",
  729. "ts_rank_cd",
  730. "ts_rewrite",
  731. "ts_stat",
  732. "ts_token_type",
  733. "tsquery_phrase",
  734. "tsvector_to_array",
  735. "tsvector_update_trigger",
  736. "tsvector_update_trigger_column",
  737. "txid_current",
  738. "txid_current_if_assigned",
  739. "txid_current_snapshot",
  740. "txid_snapshot_xip",
  741. "txid_snapshot_xmax",
  742. "txid_snapshot_xmin",
  743. "txid_status",
  744. "txid_visible_in_snapshot",
  745. "unistr",
  746. "unnest",
  747. "upper",
  748. "upper_inc",
  749. "upper_inf",
  750. "user",
  751. "var_pop",
  752. "var_samp",
  753. "variance",
  754. "version",
  755. "websearch_to_tsquery",
  756. "width",
  757. "width_bucket",
  758. "xml_is_well_formed",
  759. "xml_is_well_formed_content",
  760. "xml_is_well_formed_document",
  761. "xmlagg",
  762. "xmlcomment",
  763. "xmlconcat",
  764. "xmlelement",
  765. "xmlexists",
  766. "xmlforest",
  767. "xmlparse",
  768. "xmlpi",
  769. "xmlroot",
  770. "xmlserialize",
  771. "xpath",
  772. "xpath_exists"
  773. ],
  774. builtinVariables: [],
  775. pseudoColumns: [],
  776. tokenizer: {
  777. root: [
  778. { include: "@comments" },
  779. { include: "@whitespace" },
  780. { include: "@pseudoColumns" },
  781. { include: "@numbers" },
  782. { include: "@strings" },
  783. { include: "@complexIdentifiers" },
  784. { include: "@scopes" },
  785. [/[;,.]/, "delimiter"],
  786. [/[()]/, "@brackets"],
  787. [
  788. /[\w@#$]+/,
  789. {
  790. cases: {
  791. "@operators": "operator",
  792. "@builtinVariables": "predefined",
  793. "@builtinFunctions": "predefined",
  794. "@keywords": "keyword",
  795. "@default": "identifier"
  796. }
  797. }
  798. ],
  799. [/[<>=!%&+\-*/|~^]/, "operator"]
  800. ],
  801. whitespace: [[/\s+/, "white"]],
  802. comments: [
  803. [/--+.*/, "comment"],
  804. [/\/\*/, { token: "comment.quote", next: "@comment" }]
  805. ],
  806. comment: [
  807. [/[^*/]+/, "comment"],
  808. [/\*\//, { token: "comment.quote", next: "@pop" }],
  809. [/./, "comment"]
  810. ],
  811. pseudoColumns: [
  812. [
  813. /[$][A-Za-z_][\w@#$]*/,
  814. {
  815. cases: {
  816. "@pseudoColumns": "predefined",
  817. "@default": "identifier"
  818. }
  819. }
  820. ]
  821. ],
  822. numbers: [
  823. [/0[xX][0-9a-fA-F]*/, "number"],
  824. [/[$][+-]*\d*(\.\d*)?/, "number"],
  825. [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"]
  826. ],
  827. strings: [[/'/, { token: "string", next: "@string" }]],
  828. string: [
  829. [/[^']+/, "string"],
  830. [/''/, "string"],
  831. [/'/, { token: "string", next: "@pop" }]
  832. ],
  833. complexIdentifiers: [[/"/, { token: "identifier.quote", next: "@quotedIdentifier" }]],
  834. quotedIdentifier: [
  835. [/[^"]+/, "identifier"],
  836. [/""/, "identifier"],
  837. [/"/, { token: "identifier.quote", next: "@pop" }]
  838. ],
  839. scopes: []
  840. }
  841. };
  842. export {
  843. conf,
  844. language
  845. };