prettier-plugin-bq 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/keywords.js +14 -11
- package/dist/keywords.js.map +1 -1
- package/dist/printer.js +55 -49
- package/dist/printer.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.options = exports.printers = exports.parsers = exports.languages = void 0;
|
|
4
|
+
const bq2cst_1 = require("bq2cst");
|
|
5
|
+
const printer_1 = require("./printer");
|
|
3
6
|
const languages = [
|
|
4
7
|
{
|
|
5
8
|
extensions: [".sql", ".bq"],
|
|
@@ -7,17 +10,20 @@ const languages = [
|
|
|
7
10
|
parsers: ["sql-parse"],
|
|
8
11
|
},
|
|
9
12
|
];
|
|
13
|
+
exports.languages = languages;
|
|
10
14
|
const parsers = {
|
|
11
15
|
"sql-parse": {
|
|
12
|
-
parse: (text) => parse(text),
|
|
16
|
+
parse: (text) => (0, bq2cst_1.parse)(text),
|
|
13
17
|
astFormat: "sql-ast",
|
|
14
18
|
},
|
|
15
19
|
};
|
|
20
|
+
exports.parsers = parsers;
|
|
16
21
|
const printers = {
|
|
17
22
|
"sql-ast": {
|
|
18
|
-
print: printSQL,
|
|
23
|
+
print: printer_1.printSQL,
|
|
19
24
|
},
|
|
20
25
|
};
|
|
26
|
+
exports.printers = printers;
|
|
21
27
|
const CATEGORY_BQ = "BQ";
|
|
22
28
|
const options = {
|
|
23
29
|
formatMultilineComment: {
|
|
@@ -51,5 +57,5 @@ const options = {
|
|
|
51
57
|
description: "Deprecated: This option was merged into printKeywordsInUpperCase.",
|
|
52
58
|
},
|
|
53
59
|
};
|
|
54
|
-
|
|
60
|
+
exports.options = options;
|
|
55
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,uCAAqC;AAErC,MAAM,SAAS,GAAG;IAChB;QACE,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,WAAW,CAAC;KACvB;CACF,CAAC;AAoDO,8BAAS;AAlDlB,MAAM,OAAO,GAAG;IACd,WAAW,EAAE;QACX,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC;QACpC,SAAS,EAAE,SAAS;KACrB;CACF,CAAC;AA6CkB,0BAAO;AA3C3B,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE;QACT,KAAK,EAAE,kBAAQ;KAChB;CACF,CAAC;AAuC2B,4BAAQ;AArCrC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,MAAM,OAAO,GAAG;IACd,sBAAsB,EAAE;QACtB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,2BAA2B;KACzC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,4BAA4B;KAC1C;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,4CAA4C;KAC1D;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,sEAAsE;KACzE;IACD,6BAA6B,EAAE;QAC7B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,mEAAmE;KACtE;CACF,CAAC;AAEqC,0BAAO"}
|
package/dist/keywords.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.vectorIndexFunctions = exports.aiFunctions = exports.mlFunctions = exports.objFunctions = exports.netFunctions = exports.kllQuantilesFunctions = exports.hllCountFunctions = exports.aeadFunctions = exports.keysFunctions = exports.globalFunctions = exports.reservedKeywords = void 0;
|
|
4
|
+
exports.reservedKeywords = [
|
|
2
5
|
"ALL",
|
|
3
6
|
"AND",
|
|
4
7
|
"ANY",
|
|
@@ -95,7 +98,7 @@ export const reservedKeywords = [
|
|
|
95
98
|
"WITH",
|
|
96
99
|
"WITHIN",
|
|
97
100
|
];
|
|
98
|
-
|
|
101
|
+
exports.globalFunctions = [
|
|
99
102
|
// conditional expressions
|
|
100
103
|
"COALESCE",
|
|
101
104
|
"IF",
|
|
@@ -490,7 +493,7 @@ export const globalFunctions = [
|
|
|
490
493
|
"MATCH_ROW_NUMBER",
|
|
491
494
|
"CLASSIFIER",
|
|
492
495
|
];
|
|
493
|
-
|
|
496
|
+
exports.keysFunctions = [
|
|
494
497
|
// AEAD encryption functions
|
|
495
498
|
"NEW_KEYSET",
|
|
496
499
|
"NEW_WRAPPED_KEYSET",
|
|
@@ -503,20 +506,20 @@ export const keysFunctions = [
|
|
|
503
506
|
"ROTATE_WRAPPED_KEYSET",
|
|
504
507
|
"KEYSET_LENGTH",
|
|
505
508
|
];
|
|
506
|
-
|
|
509
|
+
exports.aeadFunctions = [
|
|
507
510
|
// AEAD encryption functions
|
|
508
511
|
"DECRYPT_BYTES",
|
|
509
512
|
"DECRYPT_STRING",
|
|
510
513
|
"ENCRYPT",
|
|
511
514
|
];
|
|
512
|
-
|
|
515
|
+
exports.hllCountFunctions = [
|
|
513
516
|
// HLL functions
|
|
514
517
|
"INIT",
|
|
515
518
|
"MERGE",
|
|
516
519
|
"MERGE_PARTIAL",
|
|
517
520
|
"EXTRACT",
|
|
518
521
|
];
|
|
519
|
-
|
|
522
|
+
exports.kllQuantilesFunctions = [
|
|
520
523
|
// KLL functions
|
|
521
524
|
"EXTRACT_INT64",
|
|
522
525
|
"EXTRACT_FLOAT64",
|
|
@@ -530,7 +533,7 @@ export const kllQuantilesFunctions = [
|
|
|
530
533
|
"MERGE_POINT_INT64",
|
|
531
534
|
"MERGE_POINT_FLOAT64",
|
|
532
535
|
];
|
|
533
|
-
|
|
536
|
+
exports.netFunctions = [
|
|
534
537
|
// net functions
|
|
535
538
|
"IP_FROM_STRING",
|
|
536
539
|
"SAFE_IP_FROM_STRING",
|
|
@@ -543,13 +546,13 @@ export const netFunctions = [
|
|
|
543
546
|
"PUBLIC_SUFFIX",
|
|
544
547
|
"REG_DOMAIN",
|
|
545
548
|
];
|
|
546
|
-
|
|
549
|
+
exports.objFunctions = [
|
|
547
550
|
// ObjectRef functions
|
|
548
551
|
"FETCH_METADATA",
|
|
549
552
|
"GET_ACCESS_URL",
|
|
550
553
|
"MAKE_REF",
|
|
551
554
|
];
|
|
552
|
-
|
|
555
|
+
exports.mlFunctions = [
|
|
553
556
|
"TRANSFORM",
|
|
554
557
|
"FEATURE_INFO",
|
|
555
558
|
// general functions
|
|
@@ -629,7 +632,7 @@ export const mlFunctions = [
|
|
|
629
632
|
"DISTANCE",
|
|
630
633
|
"LP_NORM",
|
|
631
634
|
];
|
|
632
|
-
|
|
635
|
+
exports.aiFunctions = [
|
|
633
636
|
"GENERATE",
|
|
634
637
|
"GENERATE_BOOL",
|
|
635
638
|
"GENERATE_DOUBLE",
|
|
@@ -637,5 +640,5 @@ export const aiFunctions = [
|
|
|
637
640
|
"GENERATE_TABLE",
|
|
638
641
|
"FORECAST",
|
|
639
642
|
];
|
|
640
|
-
|
|
643
|
+
exports.vectorIndexFunctions = ["STATISTICS"];
|
|
641
644
|
//# sourceMappingURL=keywords.js.map
|
package/dist/keywords.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keywords.js","sourceRoot":"","sources":["../src/keywords.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keywords.js","sourceRoot":"","sources":["../src/keywords.ts"],"names":[],"mappings":"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"}
|
package/dist/printer.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.printSQL = exports.isNodeVecChild = exports.isNodeChild = void 0;
|
|
4
|
+
const keywords_1 = require("./keywords");
|
|
5
|
+
const prettier_1 = require("prettier");
|
|
6
|
+
const { builders: { breakParent, group, hardline, ifBreak, indent, join, line, lineSuffix, softline, }, } = prettier_1.doc;
|
|
7
|
+
const isNodeChild = (child) => {
|
|
5
8
|
if (child &&
|
|
6
9
|
typeof child === "object" &&
|
|
7
10
|
Object.keys(child).length === 1 &&
|
|
@@ -10,7 +13,8 @@ export const isNodeChild = (child) => {
|
|
|
10
13
|
}
|
|
11
14
|
return false;
|
|
12
15
|
};
|
|
13
|
-
|
|
16
|
+
exports.isNodeChild = isNodeChild;
|
|
17
|
+
const isNodeVecChild = (child) => {
|
|
14
18
|
if (child &&
|
|
15
19
|
typeof child === "object" &&
|
|
16
20
|
Object.keys(child).length === 1 &&
|
|
@@ -19,6 +23,7 @@ export const isNodeVecChild = (child) => {
|
|
|
19
23
|
}
|
|
20
24
|
return false;
|
|
21
25
|
};
|
|
26
|
+
exports.isNodeVecChild = isNodeVecChild;
|
|
22
27
|
class Printer {
|
|
23
28
|
constructor(path, options, print, node) {
|
|
24
29
|
this.path = path;
|
|
@@ -30,7 +35,7 @@ class Printer {
|
|
|
30
35
|
child(key, transform, consumeLeadingComments, sep) {
|
|
31
36
|
const child = this.children[key];
|
|
32
37
|
let f = (x) => x;
|
|
33
|
-
if (isNodeChild(child)) {
|
|
38
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
34
39
|
if (typeof transform === "function") {
|
|
35
40
|
f = transform;
|
|
36
41
|
}
|
|
@@ -43,7 +48,7 @@ class Printer {
|
|
|
43
48
|
this.path.call((p) => p.call((p) => f(p.call(this.print, "Node")), key), "children"),
|
|
44
49
|
];
|
|
45
50
|
}
|
|
46
|
-
else if (isNodeVecChild(child)) {
|
|
51
|
+
else if ((0, exports.isNodeVecChild)(child)) {
|
|
47
52
|
if (typeof transform === "function") {
|
|
48
53
|
f = transform;
|
|
49
54
|
}
|
|
@@ -62,7 +67,7 @@ class Printer {
|
|
|
62
67
|
consumeAllCommentsOfX(key) {
|
|
63
68
|
let res = "";
|
|
64
69
|
const child = this.children[key];
|
|
65
|
-
if (isNodeChild(child)) {
|
|
70
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
66
71
|
const leading_comments = child.Node.children.leading_comments;
|
|
67
72
|
if (leading_comments) {
|
|
68
73
|
res = leading_comments.NodeVec.map((x) => lineSuffix([" ", x.token.literal]));
|
|
@@ -107,10 +112,10 @@ class Printer {
|
|
|
107
112
|
else if (target === "all") {
|
|
108
113
|
const child = this.children[key];
|
|
109
114
|
let firstNodes = [];
|
|
110
|
-
if (isNodeChild(child)) {
|
|
115
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
111
116
|
firstNodes = [getFirstNode(child.Node)];
|
|
112
117
|
}
|
|
113
|
-
else if (isNodeVecChild(child)) {
|
|
118
|
+
else if ((0, exports.isNodeVecChild)(child)) {
|
|
114
119
|
firstNodes = child.NodeVec.map((x) => getFirstNode(x));
|
|
115
120
|
}
|
|
116
121
|
const res = [];
|
|
@@ -137,10 +142,10 @@ class Printer {
|
|
|
137
142
|
getFirstNode(key) {
|
|
138
143
|
const child = this.children[key];
|
|
139
144
|
let firstNode;
|
|
140
|
-
if (isNodeChild(child)) {
|
|
145
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
141
146
|
firstNode = getFirstNode(child.Node);
|
|
142
147
|
}
|
|
143
|
-
else if (isNodeVecChild(child) && child.NodeVec.length > 0) {
|
|
148
|
+
else if ((0, exports.isNodeVecChild)(child) && child.NodeVec.length > 0) {
|
|
144
149
|
firstNode = getFirstNode(child.NodeVec[0]);
|
|
145
150
|
}
|
|
146
151
|
else {
|
|
@@ -173,7 +178,7 @@ class Printer {
|
|
|
173
178
|
}
|
|
174
179
|
len(key) {
|
|
175
180
|
const nodeVec = this.children[key];
|
|
176
|
-
if (isNodeVecChild(nodeVec)) {
|
|
181
|
+
if ((0, exports.isNodeVecChild)(nodeVec)) {
|
|
177
182
|
return nodeVec.NodeVec.length;
|
|
178
183
|
}
|
|
179
184
|
return 0;
|
|
@@ -199,7 +204,7 @@ class Printer {
|
|
|
199
204
|
if (upperOrLower === "upper") {
|
|
200
205
|
literal = literal.toUpperCase();
|
|
201
206
|
}
|
|
202
|
-
else if (!this.node.notGlobal && this.includedIn(reservedKeywords)) {
|
|
207
|
+
else if (!this.node.notGlobal && this.includedIn(keywords_1.reservedKeywords)) {
|
|
203
208
|
literal = literal.toUpperCase();
|
|
204
209
|
}
|
|
205
210
|
else if (this.options.printKeywordsInUpperCase &&
|
|
@@ -226,7 +231,7 @@ class Printer {
|
|
|
226
231
|
}
|
|
227
232
|
setBreakRecommended(key) {
|
|
228
233
|
const child = this.children[key];
|
|
229
|
-
if (isNodeChild(child)) {
|
|
234
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
230
235
|
child.Node.breakRecommended = true;
|
|
231
236
|
}
|
|
232
237
|
}
|
|
@@ -237,10 +242,10 @@ class Printer {
|
|
|
237
242
|
* e.g. when grouping a part of `this.child(key)`.
|
|
238
243
|
*/
|
|
239
244
|
const child = this.children[key];
|
|
240
|
-
if (isNodeChild(child)) {
|
|
245
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
241
246
|
child.Node.groupRecommended = true;
|
|
242
247
|
}
|
|
243
|
-
else if (isNodeVecChild(child)) {
|
|
248
|
+
else if ((0, exports.isNodeVecChild)(child)) {
|
|
244
249
|
child.NodeVec.forEach((x) => {
|
|
245
250
|
x.groupRecommended = true;
|
|
246
251
|
});
|
|
@@ -248,7 +253,7 @@ class Printer {
|
|
|
248
253
|
}
|
|
249
254
|
setLiteral(key, literal) {
|
|
250
255
|
const child = this.children[key];
|
|
251
|
-
if (isNodeChild(child)) {
|
|
256
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
252
257
|
const token = child.Node.token;
|
|
253
258
|
if (token) {
|
|
254
259
|
token.literal = literal;
|
|
@@ -257,10 +262,10 @@ class Printer {
|
|
|
257
262
|
}
|
|
258
263
|
setNotRoot(key) {
|
|
259
264
|
const child = this.children[key];
|
|
260
|
-
if (isNodeChild(child)) {
|
|
265
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
261
266
|
child.Node.notRoot = true;
|
|
262
267
|
}
|
|
263
|
-
else if (isNodeVecChild(child)) {
|
|
268
|
+
else if ((0, exports.isNodeVecChild)(child)) {
|
|
264
269
|
child.NodeVec.forEach((x) => {
|
|
265
270
|
x.notRoot = true;
|
|
266
271
|
});
|
|
@@ -268,7 +273,7 @@ class Printer {
|
|
|
268
273
|
}
|
|
269
274
|
setNotGlobal(key) {
|
|
270
275
|
const child = this.children[key];
|
|
271
|
-
if (isNodeChild(child)) {
|
|
276
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
272
277
|
child.Node.notGlobal = true;
|
|
273
278
|
}
|
|
274
279
|
}
|
|
@@ -276,7 +281,7 @@ class Printer {
|
|
|
276
281
|
if (this.hasLeadingComments(key))
|
|
277
282
|
return true;
|
|
278
283
|
const child = this.children[key];
|
|
279
|
-
if (!isNodeChild(child))
|
|
284
|
+
if (!(0, exports.isNodeChild)(child))
|
|
280
285
|
return false; // unnexpected pattern
|
|
281
286
|
const token = child.Node.token;
|
|
282
287
|
if (!token)
|
|
@@ -303,13 +308,13 @@ class Printer {
|
|
|
303
308
|
if (!this.options.printKeywordsInUpperCase) {
|
|
304
309
|
return;
|
|
305
310
|
}
|
|
306
|
-
if (isNodeChild(child)) {
|
|
311
|
+
if ((0, exports.isNodeChild)(child)) {
|
|
307
312
|
const token = child.Node.token;
|
|
308
313
|
if (token) {
|
|
309
314
|
token.literal = token.literal.toUpperCase();
|
|
310
315
|
}
|
|
311
316
|
}
|
|
312
|
-
else if (isNodeVecChild(child)) {
|
|
317
|
+
else if ((0, exports.isNodeVecChild)(child)) {
|
|
313
318
|
child.NodeVec.forEach((x) => {
|
|
314
319
|
const token = x.token;
|
|
315
320
|
if (token) {
|
|
@@ -326,10 +331,10 @@ const getFirstNode = (node, includeComment = false) => {
|
|
|
326
331
|
!includeComment) {
|
|
327
332
|
continue;
|
|
328
333
|
}
|
|
329
|
-
if (isNodeChild(v)) {
|
|
334
|
+
if ((0, exports.isNodeChild)(v)) {
|
|
330
335
|
candidates.push(getFirstNode(v.Node, includeComment));
|
|
331
336
|
}
|
|
332
|
-
else if (isNodeVecChild(v)) {
|
|
337
|
+
else if ((0, exports.isNodeVecChild)(v)) {
|
|
333
338
|
// NOTE maybe you don't have to check 2nd, 3rd, or latter node
|
|
334
339
|
v.NodeVec.forEach((x) => candidates.push(getFirstNode(x, includeComment)));
|
|
335
340
|
}
|
|
@@ -357,10 +362,10 @@ const getLastNode = (node, includeComment = false) => {
|
|
|
357
362
|
!includeComment) {
|
|
358
363
|
continue;
|
|
359
364
|
}
|
|
360
|
-
if (isNodeChild(v)) {
|
|
365
|
+
if ((0, exports.isNodeChild)(v)) {
|
|
361
366
|
candidates.push(getLastNode(v.Node, includeComment));
|
|
362
367
|
}
|
|
363
|
-
else if (isNodeVecChild(v)) {
|
|
368
|
+
else if ((0, exports.isNodeVecChild)(v)) {
|
|
364
369
|
// NOTE maybe you don't have to check 2nd, 3rd, or latter node
|
|
365
370
|
v.NodeVec.forEach((x) => candidates.push(getLastNode(x, includeComment)));
|
|
366
371
|
}
|
|
@@ -381,7 +386,7 @@ const getLastNode = (node, includeComment = false) => {
|
|
|
381
386
|
}
|
|
382
387
|
return res;
|
|
383
388
|
};
|
|
384
|
-
|
|
389
|
+
const printSQL = (path, options, print) => {
|
|
385
390
|
const node = path.node;
|
|
386
391
|
if (Array.isArray(node)) {
|
|
387
392
|
for (let i = 0; i < node.length - 1; i++) {
|
|
@@ -718,6 +723,7 @@ export const printSQL = (path, options, print) => {
|
|
|
718
723
|
throw new Error(`Not implemented node type: ${JSON.stringify(node)}`);
|
|
719
724
|
}
|
|
720
725
|
};
|
|
726
|
+
exports.printSQL = printSQL;
|
|
721
727
|
const printAccessOperator = (path, options, print, node) => {
|
|
722
728
|
const p = new Printer(path, options, print, node);
|
|
723
729
|
const docs = {
|
|
@@ -1550,7 +1556,7 @@ const printCallingFunctionGeneral = (path, options, print, node) => {
|
|
|
1550
1556
|
};
|
|
1551
1557
|
if (func.node_type === "Identifier") {
|
|
1552
1558
|
// SUBSTR("foo", 0, 2)
|
|
1553
|
-
if (globalFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1559
|
+
if (keywords_1.globalFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1554
1560
|
func.isPreDefinedFunction = true;
|
|
1555
1561
|
}
|
|
1556
1562
|
}
|
|
@@ -1562,61 +1568,61 @@ const printCallingFunctionGeneral = (path, options, print, node) => {
|
|
|
1562
1568
|
// KEYS.NEW_KEYSET('AEAD_AES_GCM_256')
|
|
1563
1569
|
switch (parent.token.literal.toUpperCase()) {
|
|
1564
1570
|
case "SAFE":
|
|
1565
|
-
if (globalFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1571
|
+
if (keywords_1.globalFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1566
1572
|
func.isPreDefinedFunction = true;
|
|
1567
1573
|
toUpper(parent.token);
|
|
1568
1574
|
}
|
|
1569
1575
|
break;
|
|
1570
1576
|
case "KEYS":
|
|
1571
|
-
if (keysFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1577
|
+
if (keywords_1.keysFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1572
1578
|
func.isPreDefinedFunction = true;
|
|
1573
1579
|
toUpper(parent.token);
|
|
1574
1580
|
}
|
|
1575
1581
|
break;
|
|
1576
1582
|
case "AEAD":
|
|
1577
|
-
if (aeadFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1583
|
+
if (keywords_1.aeadFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1578
1584
|
func.isPreDefinedFunction = true;
|
|
1579
1585
|
toUpper(parent.token);
|
|
1580
1586
|
}
|
|
1581
1587
|
break;
|
|
1582
1588
|
case "NET":
|
|
1583
|
-
if (netFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1589
|
+
if (keywords_1.netFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1584
1590
|
func.isPreDefinedFunction = true;
|
|
1585
1591
|
toUpper(parent.token);
|
|
1586
1592
|
}
|
|
1587
1593
|
break;
|
|
1588
1594
|
case "HLL_COUNT":
|
|
1589
|
-
if (hllCountFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1595
|
+
if (keywords_1.hllCountFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1590
1596
|
func.isPreDefinedFunction = true;
|
|
1591
1597
|
toUpper(parent.token);
|
|
1592
1598
|
}
|
|
1593
1599
|
break;
|
|
1594
1600
|
case "KLL_QUANTILES":
|
|
1595
|
-
if (kllQuantilesFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1601
|
+
if (keywords_1.kllQuantilesFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1596
1602
|
func.isPreDefinedFunction = true;
|
|
1597
1603
|
toUpper(parent.token);
|
|
1598
1604
|
}
|
|
1599
1605
|
break;
|
|
1600
1606
|
case "OBJ":
|
|
1601
|
-
if (objFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1607
|
+
if (keywords_1.objFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1602
1608
|
func.isPreDefinedFunction = true;
|
|
1603
1609
|
toUpper(parent.token);
|
|
1604
1610
|
}
|
|
1605
1611
|
break;
|
|
1606
1612
|
case "ML":
|
|
1607
|
-
if (mlFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1613
|
+
if (keywords_1.mlFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1608
1614
|
func.isPreDefinedFunction = true;
|
|
1609
1615
|
toUpper(parent.token);
|
|
1610
1616
|
}
|
|
1611
1617
|
break;
|
|
1612
1618
|
case "AI":
|
|
1613
|
-
if (aiFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1619
|
+
if (keywords_1.aiFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1614
1620
|
func.isPreDefinedFunction = true;
|
|
1615
1621
|
toUpper(parent.token);
|
|
1616
1622
|
}
|
|
1617
1623
|
break;
|
|
1618
1624
|
case "VECTOR_INDEX":
|
|
1619
|
-
if (vectorIndexFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1625
|
+
if (keywords_1.vectorIndexFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1620
1626
|
func.isPreDefinedFunction = true;
|
|
1621
1627
|
toUpper(parent.token);
|
|
1622
1628
|
}
|
|
@@ -1630,63 +1636,63 @@ const printCallingFunctionGeneral = (path, options, print, node) => {
|
|
|
1630
1636
|
if (grandParent.token.literal.toUpperCase() === "SAFE") {
|
|
1631
1637
|
switch (parent.token.literal.toUpperCase()) {
|
|
1632
1638
|
case "KEYS":
|
|
1633
|
-
if (keysFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1639
|
+
if (keywords_1.keysFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1634
1640
|
func.isPreDefinedFunction = true;
|
|
1635
1641
|
toUpper(parent.token);
|
|
1636
1642
|
toUpper(grandParent.token);
|
|
1637
1643
|
}
|
|
1638
1644
|
break;
|
|
1639
1645
|
case "AEAD":
|
|
1640
|
-
if (aeadFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1646
|
+
if (keywords_1.aeadFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1641
1647
|
func.isPreDefinedFunction = true;
|
|
1642
1648
|
toUpper(parent.token);
|
|
1643
1649
|
toUpper(grandParent.token);
|
|
1644
1650
|
}
|
|
1645
1651
|
break;
|
|
1646
1652
|
case "NET":
|
|
1647
|
-
if (netFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1653
|
+
if (keywords_1.netFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1648
1654
|
func.isPreDefinedFunction = true;
|
|
1649
1655
|
toUpper(parent.token);
|
|
1650
1656
|
toUpper(grandParent.token);
|
|
1651
1657
|
}
|
|
1652
1658
|
break;
|
|
1653
1659
|
case "HLL_COUNT":
|
|
1654
|
-
if (hllCountFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1660
|
+
if (keywords_1.hllCountFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1655
1661
|
func.isPreDefinedFunction = true;
|
|
1656
1662
|
toUpper(parent.token);
|
|
1657
1663
|
toUpper(grandParent.token);
|
|
1658
1664
|
}
|
|
1659
1665
|
break;
|
|
1660
1666
|
case "KLL_QUANTILES":
|
|
1661
|
-
if (kllQuantilesFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1667
|
+
if (keywords_1.kllQuantilesFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1662
1668
|
func.isPreDefinedFunction = true;
|
|
1663
1669
|
toUpper(parent.token);
|
|
1664
1670
|
toUpper(grandParent.token);
|
|
1665
1671
|
}
|
|
1666
1672
|
break;
|
|
1667
1673
|
case "OBJ":
|
|
1668
|
-
if (objFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1674
|
+
if (keywords_1.objFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1669
1675
|
func.isPreDefinedFunction = true;
|
|
1670
1676
|
toUpper(parent.token);
|
|
1671
1677
|
toUpper(grandParent.token);
|
|
1672
1678
|
}
|
|
1673
1679
|
break;
|
|
1674
1680
|
case "ML":
|
|
1675
|
-
if (mlFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1681
|
+
if (keywords_1.mlFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1676
1682
|
func.isPreDefinedFunction = true;
|
|
1677
1683
|
toUpper(parent.token);
|
|
1678
1684
|
toUpper(grandParent.token);
|
|
1679
1685
|
}
|
|
1680
1686
|
break;
|
|
1681
1687
|
case "AI":
|
|
1682
|
-
if (aiFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1688
|
+
if (keywords_1.aiFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1683
1689
|
func.isPreDefinedFunction = true;
|
|
1684
1690
|
toUpper(parent.token);
|
|
1685
1691
|
toUpper(grandParent.token);
|
|
1686
1692
|
}
|
|
1687
1693
|
break;
|
|
1688
1694
|
case "VECTOR_INDEX":
|
|
1689
|
-
if (vectorIndexFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1695
|
+
if (keywords_1.vectorIndexFunctions.includes(func.token.literal.toUpperCase())) {
|
|
1690
1696
|
func.isPreDefinedFunction = true;
|
|
1691
1697
|
toUpper(parent.token);
|
|
1692
1698
|
toUpper(grandParent.token);
|