forked from DerekStride/tree-sitter-sql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkeywords.js
More file actions
443 lines (421 loc) · 20.2 KB
/
Copy pathkeywords.js
File metadata and controls
443 lines (421 loc) · 20.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
import { make_keyword } from "./helpers.js";
export default {
keyword_select: _ => make_keyword("select"),
keyword_delete: _ => make_keyword("delete"),
keyword_insert: _ => make_keyword("insert"),
keyword_replace: _ => make_keyword("replace"),
keyword_update: _ => make_keyword("update"),
keyword_truncate: _ => make_keyword("truncate"),
keyword_merge: _ => make_keyword("merge"),
keyword_show: _ => make_keyword("show"),
keyword_unload: _ => make_keyword("unload"),
keyword_into: _ => make_keyword("into"),
keyword_overwrite: _ => make_keyword("overwrite"),
keyword_values: _ => make_keyword("values"),
keyword_value: _ => make_keyword("value"),
keyword_matched: _ => make_keyword("matched"),
keyword_set: _ => make_keyword("set"),
keyword_from: _ => make_keyword("from"),
keyword_left: _ => make_keyword("left"),
keyword_right: _ => make_keyword("right"),
keyword_inner: _ => make_keyword("inner"),
keyword_full: _ => make_keyword("full"),
keyword_outer: _ => make_keyword("outer"),
keyword_cross: _ => make_keyword("cross"),
keyword_join: _ => make_keyword("join"),
keyword_lateral: _ => make_keyword("lateral"),
keyword_natural: _ => make_keyword("natural"),
keyword_on: _ => make_keyword("on"),
keyword_off: _ => make_keyword("off"),
keyword_where: _ => make_keyword("where"),
keyword_order: _ => make_keyword("order"),
keyword_group: _ => make_keyword("group"),
keyword_partition: _ => make_keyword("partition"),
keyword_by: _ => make_keyword("by"),
keyword_having: _ => make_keyword("having"),
keyword_desc: _ => make_keyword("desc"),
keyword_asc: _ => make_keyword("asc"),
keyword_limit: _ => make_keyword("limit"),
keyword_offset: _ => make_keyword("offset"),
keyword_primary: _ => make_keyword("primary"),
keyword_create: _ => make_keyword("create"),
keyword_alter: _ => make_keyword("alter"),
keyword_change: _ => make_keyword("change"),
keyword_analyze: _ => make_keyword("analyze"),
keyword_explain: _ => make_keyword("explain"),
keyword_verbose: _ => make_keyword("verbose"),
keyword_modify: _ => make_keyword("modify"),
keyword_drop: _ => make_keyword("drop"),
keyword_add: _ => make_keyword("add"),
keyword_table: _ => make_keyword("table"),
keyword_tables: _ => make_keyword("tables"),
keyword_view: _ => make_keyword("view"),
keyword_policy: _ => make_keyword("policy"),
keyword_column: _ => make_keyword("column"),
keyword_columns: _ => make_keyword("columns"),
keyword_materialized: _ => make_keyword("materialized"),
keyword_tablespace: _ => make_keyword("tablespace"),
keyword_split: _ => make_keyword("split"),
keyword_tablets: _ => make_keyword("tablets"),
keyword_sequence: _ => make_keyword("sequence"),
keyword_increment: _ => make_keyword("increment"),
keyword_minvalue: _ => make_keyword("minvalue"),
keyword_maxvalue: _ => make_keyword("maxvalue"),
keyword_none: _ => make_keyword("none"),
keyword_owned: _ => make_keyword("owned"),
keyword_start: _ => make_keyword("start"),
keyword_restart: _ => make_keyword("restart"),
keyword_key: _ => make_keyword("key"),
keyword_duplicate: _ => make_keyword("duplicate"),
keyword_as: _ => make_keyword("as"),
keyword_distinct: _ => make_keyword("distinct"),
keyword_constraint: _ => make_keyword("constraint"),
keyword_filter: _ => make_keyword("filter"),
keyword_cast: _ => make_keyword("cast"),
keyword_separator: _ => make_keyword("separator"),
keyword_case: _ => make_keyword("case"),
keyword_when: _ => make_keyword("when"),
keyword_then: _ => make_keyword("then"),
keyword_else: _ => make_keyword("else"),
keyword_end: _ => make_keyword("end"),
keyword_in: _ => make_keyword("in"),
keyword_and: _ => make_keyword("and"),
keyword_or: _ => make_keyword("or"),
keyword_is: _ => make_keyword("is"),
keyword_not: _ => make_keyword("not"),
keyword_enable: _ => make_keyword("enable"),
keyword_disable: _ => make_keyword("disable"),
keyword_force: _ => make_keyword("force"),
keyword_ignore: _ => make_keyword("ignore"),
keyword_using: _ => make_keyword("using"),
keyword_use: _ => make_keyword("use"),
keyword_index: _ => make_keyword("index"),
keyword_include: _ => make_keyword("include"),
keyword_for: _ => make_keyword("for"),
keyword_if: _ => make_keyword("if"),
keyword_exists: _ => make_keyword("exists"),
keyword_auto_increment: _ => make_keyword("auto_increment"),
keyword_generated: _ => make_keyword("generated"),
keyword_always: _ => make_keyword("always"),
keyword_collate: _ => make_keyword("collate"),
keyword_character: _ => make_keyword("character"),
keyword_engine: _ => make_keyword("engine"),
keyword_default: _ => make_keyword("default"),
keyword_cascade: _ => make_keyword("cascade"),
keyword_restrict: _ => make_keyword("restrict"),
keyword_with: _ => make_keyword("with"),
keyword_without: _ => make_keyword("without"),
keyword_no: _ => make_keyword("no"),
keyword_data: _ => make_keyword("data"),
keyword_type: _ => make_keyword("type"),
keyword_refresh: _ => make_keyword("refresh"),
keyword_rename: _ => make_keyword("rename"),
keyword_to: _ => make_keyword("to"),
keyword_database: _ => make_keyword("database"),
keyword_schema: _ => make_keyword("schema"),
keyword_public: _ => make_keyword("public"),
keyword_owner: _ => make_keyword("owner"),
keyword_user: _ => make_keyword("user"),
keyword_current_user: _ => make_keyword("current_user"),
keyword_session_user: _ => make_keyword("session_user"),
keyword_admin: _ => make_keyword("admin"),
keyword_password: _ => make_keyword("password"),
keyword_encrypted: _ => make_keyword("encrypted"),
keyword_valid: _ => make_keyword("valid"),
keyword_until: _ => make_keyword("until"),
keyword_connection: _ => make_keyword("connection"),
keyword_role: _ => make_keyword("role"),
keyword_current_role: _ => make_keyword("current_role"),
keyword_reset: _ => make_keyword("reset"),
keyword_temp: _ => make_keyword("temp"),
keyword_temporary: _ => make_keyword("temporary"),
keyword_unlogged: _ => make_keyword("unlogged"),
keyword_logged: _ => make_keyword("logged"),
keyword_cycle: _ => make_keyword("cycle"),
keyword_union: _ => make_keyword("union"),
keyword_all: _ => make_keyword("all"),
keyword_any: _ => make_keyword("any"),
keyword_some: _ => make_keyword("some"),
keyword_except: _ => make_keyword("except"),
keyword_intersect: _ => make_keyword("intersect"),
keyword_returning: _ => make_keyword("returning"),
keyword_begin: _ => make_keyword("begin"),
keyword_commit: _ => make_keyword("commit"),
keyword_rollback: _ => make_keyword("rollback"),
keyword_transaction: _ => make_keyword("transaction"),
keyword_over: _ => make_keyword("over"),
keyword_nulls: _ => make_keyword("nulls"),
keyword_first: _ => make_keyword("first"),
keyword_after: _ => make_keyword("after"),
keyword_before: _ => make_keyword("before"),
keyword_last: _ => make_keyword("last"),
keyword_window: _ => make_keyword("window"),
keyword_range: _ => make_keyword("range"),
keyword_rows: _ => make_keyword("rows"),
keyword_groups: _ => make_keyword("groups"),
keyword_between: _ => make_keyword("between"),
keyword_unbounded: _ => make_keyword("unbounded"),
keyword_preceding: _ => make_keyword("preceding"),
keyword_following: _ => make_keyword("following"),
keyword_permissive: _ => make_keyword("permissive"),
keyword_restrictive: _ => make_keyword("restrictive"),
keyword_exclude: _ => make_keyword("exclude"),
keyword_current: _ => make_keyword("current"),
keyword_row: _ => make_keyword("row"),
keyword_ties: _ => make_keyword("ties"),
keyword_others: _ => make_keyword("others"),
keyword_only: _ => make_keyword("only"),
keyword_unique: _ => make_keyword("unique"),
keyword_foreign: _ => make_keyword("foreign"),
keyword_references: _ => make_keyword("references"),
keyword_concurrently: _ => make_keyword("concurrently"),
keyword_btree: _ => make_keyword("btree"),
keyword_hash: _ => make_keyword("hash"),
keyword_gist: _ => make_keyword("gist"),
keyword_spgist: _ => make_keyword("spgist"),
keyword_gin: _ => make_keyword("gin"),
keyword_brin: _ => make_keyword("brin"),
keyword_like: _ => choice(make_keyword("like"),make_keyword("ilike")),
keyword_rlike: _ => choice(make_keyword("rlike"),make_keyword("regexp")),
keyword_similar: _ => make_keyword("similar"),
keyword_unsigned: _ => make_keyword("unsigned"),
keyword_zerofill: _ => make_keyword("zerofill"),
keyword_conflict: _ => make_keyword("conflict"),
keyword_do: _ => make_keyword("do"),
keyword_nothing: _ => make_keyword("nothing"),
keyword_high_priority: _ => make_keyword("high_priority"),
keyword_low_priority: _ => make_keyword("low_priority"),
keyword_delayed: _ => make_keyword("delayed"),
keyword_recursive: _ => make_keyword("recursive"),
keyword_cascaded: _ => make_keyword("cascaded"),
keyword_local: _ => make_keyword("local"),
keyword_current_timestamp: _ => make_keyword("current_timestamp"),
keyword_check: _ => make_keyword("check"),
keyword_option: _ => make_keyword("option"),
keyword_vacuum: _ => make_keyword("vacuum"),
keyword_wait: _ => make_keyword("wait"),
keyword_nowait: _ => make_keyword("nowait"),
keyword_attribute: _ => make_keyword("attribute"),
keyword_authorization: _ => make_keyword("authorization"),
keyword_action: _ => make_keyword("action"),
keyword_extension: _ => make_keyword("extension"),
keyword_copy: _ => make_keyword("copy"),
keyword_stdin: _ => make_keyword("stdin"),
keyword_freeze: _ => make_keyword("freeze"),
keyword_escape: _ => make_keyword("escape"),
keyword_encoding: _ => make_keyword("encoding"),
keyword_force_quote: _ => make_keyword("force_quote"),
keyword_quote: _ => make_keyword("quote"),
keyword_force_null: _ => make_keyword("force_null"),
keyword_force_not_null: _ => make_keyword("force_not_null"),
keyword_header: _ => make_keyword("header"),
keyword_match: _ => make_keyword("match"),
keyword_program: _ => make_keyword("program"),
keyword_plain: _ => make_keyword("plain"),
keyword_extended: _ => make_keyword("extended"),
keyword_main: _ => make_keyword("main"),
keyword_storage: _ => make_keyword("storage"),
keyword_compression: _ => make_keyword("compression"),
keyword_while: _ => make_keyword("while"),
keyword_trigger: _ => make_keyword('trigger'),
keyword_function: _ => make_keyword("function"),
keyword_returns: _ => make_keyword("returns"),
keyword_return: _ => make_keyword("return"),
keyword_setof: _ => make_keyword("setof"),
keyword_atomic: _ => make_keyword("atomic"),
keyword_declare: _ => make_keyword("declare"),
keyword_language: _ => make_keyword("language"),
keyword_immutable: _ => make_keyword("immutable"),
keyword_stable: _ => make_keyword("stable"),
keyword_volatile: _ => make_keyword("volatile"),
keyword_leakproof: _ => make_keyword("leakproof"),
keyword_parallel: _ => make_keyword("parallel"),
keyword_safe: _ => make_keyword("safe"),
keyword_unsafe: _ => make_keyword("unsafe"),
keyword_restricted: _ => make_keyword("restricted"),
keyword_called: _ => make_keyword("called"),
keyword_input: _ => make_keyword("input"),
keyword_strict: _ => make_keyword("strict"),
keyword_cost: _ => make_keyword("cost"),
keyword_rows: _ => make_keyword("rows"),
keyword_support: _ => make_keyword("support"),
keyword_definer: _ => make_keyword("definer"),
keyword_invoker: _ => make_keyword("invoker"),
keyword_security: _ => make_keyword("security"),
keyword_version: _ => make_keyword("version"),
keyword_extension: _ => make_keyword("extension"),
keyword_out: _ => make_keyword("out"),
keyword_inout: _ => make_keyword("inout"),
keyword_variadic: _ => make_keyword("variadic"),
keyword_ordinality: _ => make_keyword("ordinality"),
keyword_session: _ => make_keyword("session"),
keyword_isolation: _ => make_keyword("isolation"),
keyword_level: _ => make_keyword("level"),
keyword_serializable: _ => make_keyword("serializable"),
keyword_repeatable: _ => make_keyword("repeatable"),
keyword_read: _ => make_keyword("read"),
keyword_write: _ => make_keyword("write"),
keyword_committed: _ => make_keyword("committed"),
keyword_uncommitted: _ => make_keyword("uncommitted"),
keyword_deferrable: _ => make_keyword("deferrable"),
keyword_names: _ => make_keyword("names"),
keyword_zone: _ => make_keyword("zone"),
keyword_immediate: _ => make_keyword("immediate"),
keyword_deferred: _ => make_keyword("deferred"),
keyword_constraints : _ => make_keyword("constraints"),
keyword_snapshot: _ => make_keyword("snapshot"),
keyword_characteristics: _ => make_keyword("characteristics"),
keyword_follows: _ => make_keyword("follows"),
keyword_precedes: _ => make_keyword("precedes"),
keyword_each: _ => make_keyword("each"),
keyword_instead: _ => make_keyword("instead"),
keyword_of: _ => make_keyword("of"),
keyword_initially: _ => make_keyword("initially"),
keyword_old: _ => make_keyword("old"),
keyword_new: _ => make_keyword("new"),
keyword_referencing: _ => make_keyword("referencing"),
keyword_statement: _ => make_keyword("statement"),
keyword_execute: _ => make_keyword("execute"),
keyword_procedure: _ => make_keyword("procedure"),
keyword_object_id: _ => make_keyword("object_id"),
// Hive Keywords
keyword_external: _ => make_keyword("external"),
keyword_stored: _ => make_keyword("stored"),
keyword_virtual: _ => make_keyword("virtual"),
keyword_cached: _ => make_keyword("cached"),
keyword_uncached: _ => make_keyword("uncached"),
keyword_replication: _ => make_keyword("replication"),
keyword_tblproperties: _ => make_keyword("tblproperties"),
keyword_compute: _ => make_keyword("compute"),
keyword_stats: _ => make_keyword("stats"),
keyword_statistics: _ => make_keyword("statistics"),
keyword_optimize: _ => make_keyword("optimize"),
keyword_rewrite: _ => make_keyword("rewrite"),
keyword_bin_pack: _ => make_keyword("bin_pack"),
keyword_incremental: _ => make_keyword("incremental"),
keyword_location: _ => make_keyword("location"),
keyword_partitioned: _ => make_keyword("partitioned"),
keyword_comment: _ => make_keyword("comment"),
keyword_sort: _ => make_keyword("sort"),
keyword_format: _ => make_keyword("format"),
keyword_delimited: _ => make_keyword("delimited"),
keyword_delimiter: _ => make_keyword("delimiter"),
keyword_fields: _ => make_keyword("fields"),
keyword_terminated: _ => make_keyword("terminated"),
keyword_escaped: _ => make_keyword("escaped"),
keyword_lines: _ => make_keyword("lines"),
keyword_cache: _ => make_keyword("cache"),
keyword_metadata: _ => make_keyword("metadata"),
keyword_noscan: _ => make_keyword("noscan"),
// Hive file formats
keyword_parquet: _ => make_keyword("parquet"),
keyword_rcfile: _ => make_keyword("rcfile"),
keyword_csv: _ => make_keyword("csv"),
keyword_textfile: _ => make_keyword("textfile"),
keyword_avro: _ => make_keyword("avro"),
keyword_sequencefile: _ => make_keyword("sequencefile"),
keyword_orc: _ => make_keyword("orc"),
keyword_avro: _ => make_keyword("avro"),
keyword_jsonfile: _ => make_keyword("jsonfile"),
// Operators
is_not: $ => prec.left(seq($.keyword_is, $.keyword_not)),
not_like: $ => seq($.keyword_not, $.keyword_like),
not_rlike: $ => seq($.keyword_not, $.keyword_rlike),
similar_to: $ => seq($.keyword_similar, $.keyword_to),
not_similar_to: $ => seq($.keyword_not, $.keyword_similar, $.keyword_to),
distinct_from: $ => seq($.keyword_is, $.keyword_distinct, $.keyword_from),
not_distinct_from: $ => seq($.keyword_is, $.keyword_not, $.keyword_distinct, $.keyword_from),
_temporary: $ => choice($.keyword_temp, $.keyword_temporary),
_not_null: $ => seq($.keyword_not, $.keyword_null),
_primary_key: $ => seq($.keyword_primary, $.keyword_key),
_if_exists: $ => seq($.keyword_if, $.keyword_exists),
_if_not_exists: $ => seq($.keyword_if, $.keyword_not, $.keyword_exists),
_or_replace: $ => seq($.keyword_or, $.keyword_replace),
_default_null: $ => seq($.keyword_default, $.keyword_null),
_current_row: $ => seq($.keyword_current, $.keyword_row),
_exclude_current_row: $ => seq($.keyword_exclude, $.keyword_current, $.keyword_row),
_exclude_group: $ => seq($.keyword_exclude, $.keyword_group),
_exclude_no_others: $ => seq($.keyword_exclude, $.keyword_no, $.keyword_others),
_exclude_ties: $ => seq($.keyword_exclude, $.keyword_ties),
_check_option: $ => seq($.keyword_check, $.keyword_option),
direction: $ => choice($.keyword_desc, $.keyword_asc),
// Types
keyword_null: _ => make_keyword("null"),
keyword_true: _ => make_keyword("true"),
keyword_false: _ => make_keyword("false"),
keyword_boolean: _ => make_keyword("boolean"),
keyword_bit: _ => make_keyword("bit"),
keyword_binary: _ => make_keyword("binary"),
keyword_varbinary: _ => make_keyword("varbinary"),
keyword_image: _ => make_keyword("image"),
keyword_smallserial: _ => choice(make_keyword("smallserial"),make_keyword("serial2")),
keyword_serial: _ => choice(make_keyword("serial"),make_keyword("serial4")),
keyword_bigserial: _ => choice(make_keyword("bigserial"),make_keyword("serial8")),
keyword_tinyint: _ => choice(make_keyword("tinyint"),make_keyword("int1")),
keyword_smallint: _ => choice(make_keyword("smallint"),make_keyword("int2")),
keyword_mediumint: _ => choice(make_keyword("mediumint"),make_keyword("int3")),
keyword_int: _ => choice(make_keyword("int"), make_keyword("integer"), make_keyword("int4")),
keyword_bigint: _ => choice(make_keyword("bigint"),make_keyword("int8")),
keyword_decimal: _ => make_keyword("decimal"),
keyword_numeric: _ => make_keyword("numeric"),
keyword_real: _ => choice(make_keyword("real"),make_keyword("float4")),
keyword_float: _ => make_keyword("float"),
keyword_double: _ => make_keyword("double"),
keyword_precision: _ => make_keyword("precision"),
keyword_inet: _ => make_keyword("inet"),
keyword_money: _ => make_keyword("money"),
keyword_smallmoney: _ => make_keyword("smallmoney"),
keyword_varying: _ => make_keyword("varying"),
keyword_char: _ => choice(make_keyword("char"), make_keyword("character")),
keyword_nchar: _ => make_keyword("nchar"),
keyword_varchar: $ => choice(
make_keyword("varchar"),
seq(
make_keyword("character"),
$.keyword_varying,
)
),
keyword_nvarchar: _ => make_keyword("nvarchar"),
keyword_text: _ => make_keyword("text"),
keyword_string: _ => make_keyword("string"),
keyword_uuid: _ => make_keyword("uuid"),
keyword_json: _ => make_keyword("json"),
keyword_jsonb: _ => make_keyword("jsonb"),
keyword_xml: _ => make_keyword("xml"),
keyword_bytea: _ => make_keyword("bytea"),
keyword_enum: _ => make_keyword("enum"),
keyword_date: _ => make_keyword("date"),
keyword_datetime: _ => make_keyword("datetime"),
keyword_datetime2: _ => make_keyword("datetime2"),
keyword_smalldatetime: _ => make_keyword("smalldatetime"),
keyword_datetimeoffset: _ => make_keyword("datetimeoffset"),
keyword_time: _ => make_keyword("time"),
keyword_timestamp: _ => make_keyword("timestamp"),
keyword_timestamptz: _ => make_keyword('timestamptz'),
keyword_interval: _ => make_keyword("interval"),
keyword_geometry: _ => make_keyword("geometry"),
keyword_geography: _ => make_keyword("geography"),
keyword_box2d: _ => make_keyword("box2d"),
keyword_box3d: _ => make_keyword("box3d"),
keyword_oid: _ => make_keyword("oid"),
keyword_oids: _ => make_keyword("oids"),
keyword_name: _ => make_keyword("name"),
keyword_regclass: _ => make_keyword("regclass"),
keyword_regnamespace: _ => make_keyword("regnamespace"),
keyword_regproc: _ => make_keyword("regproc"),
keyword_regtype: _ => make_keyword("regtype"),
keyword_array: _ => make_keyword("array"), // not included in _type since it's a constructor literal
// Firebird dialect keywords
keyword_term: _ => make_keyword("term"),
keyword_domain: _ => make_keyword("domain"),
keyword_exception: _ => make_keyword("exception"),
keyword_generator: _ => make_keyword("generator"),
keyword_active: _ => make_keyword("active"),
keyword_inactive: _ => make_keyword("inactive"),
keyword_position: _ => make_keyword("position"),
keyword_suspend: _ => make_keyword("suspend"),
keyword_exit: _ => make_keyword("exit"),
keyword_variable: _ => make_keyword("variable"),
keyword_entry_point: _ => make_keyword("entry_point"),
keyword_module_name: _ => make_keyword("module_name"),
}