@ldclabs/kip-lang 0.3.0 → 0.4.0
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/README.md +69 -5
- package/dist/ast.d.ts +10 -1
- package/dist/ast.d.ts.map +1 -1
- package/dist/budget.d.ts +37 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +105 -0
- package/dist/budget.js.map +1 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +7 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/errors.d.ts +29 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +27 -0
- package/dist/errors.js.map +1 -0
- package/dist/exec-ast.d.ts +314 -0
- package/dist/exec-ast.d.ts.map +1 -0
- package/dist/exec-ast.js +23 -0
- package/dist/exec-ast.js.map +1 -0
- package/dist/formatter.d.ts +5 -7
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +71 -143
- package/dist/formatter.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +42 -11
- package/dist/lexer.js.map +1 -1
- package/dist/lower.d.ts +18 -0
- package/dist/lower.d.ts.map +1 -0
- package/dist/lower.js +877 -0
- package/dist/lower.js.map +1 -0
- package/dist/parser.js +311 -82
- package/dist/parser.js.map +1 -1
- package/dist/semantics.d.ts +13 -0
- package/dist/semantics.d.ts.map +1 -0
- package/dist/semantics.js +228 -0
- package/dist/semantics.js.map +1 -0
- package/dist/token.d.ts +4 -4
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +5 -10
- package/dist/token.js.map +1 -1
- package/dist/version.d.ts +13 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/package.json +9 -4
package/dist/formatter.js
CHANGED
|
@@ -5,7 +5,7 @@ import { TokenType } from './token.js';
|
|
|
5
5
|
export function format(source, options) {
|
|
6
6
|
const opts = {
|
|
7
7
|
indentSize: options?.indentSize ?? 4,
|
|
8
|
-
sortAttributes: options?.sortAttributes ??
|
|
8
|
+
sortAttributes: options?.sortAttributes ?? false
|
|
9
9
|
};
|
|
10
10
|
const firstError = diagnose(source).find((d) => d.severity === 'error');
|
|
11
11
|
if (firstError) {
|
|
@@ -47,16 +47,31 @@ class Formatter {
|
|
|
47
47
|
this.commentIdx++;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* True if an un-emitted comment lies within a node spanning
|
|
52
|
+
* [startLine, endLine]. Used to keep a block multi-line so interior
|
|
53
|
+
* comments can be preserved at their position rather than relocated.
|
|
54
|
+
*/
|
|
55
|
+
hasPendingCommentInRange(startLine, endLine) {
|
|
56
|
+
for (let i = this.commentIdx; i < this.comments.length; i++) {
|
|
57
|
+
const line = this.comments[i].line;
|
|
58
|
+
if (line > endLine)
|
|
59
|
+
break;
|
|
60
|
+
if (line >= startLine)
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
50
65
|
formatProgram(program) {
|
|
51
66
|
this.output = '';
|
|
52
67
|
for (let i = 0; i < program.statements.length; i++) {
|
|
53
68
|
const stmt = program.statements[i];
|
|
69
|
+
// Separate statements with exactly one blank line.
|
|
54
70
|
if (i > 0)
|
|
55
71
|
this.newline();
|
|
56
72
|
// Emit comments that appear before this statement
|
|
57
73
|
this.emitCommentsBefore(stmt.range.start.line);
|
|
58
74
|
this.formatStatement(stmt);
|
|
59
|
-
this.newline();
|
|
60
75
|
}
|
|
61
76
|
// Trailing comments after last statement
|
|
62
77
|
this.emitRemainingComments();
|
|
@@ -155,10 +170,11 @@ class Formatter {
|
|
|
155
170
|
}
|
|
156
171
|
formatConceptBlock(block) {
|
|
157
172
|
this.writeIndent();
|
|
158
|
-
this.write(`CONCEPT ${block.handle} {`);
|
|
173
|
+
this.write(block.handle ? `CONCEPT ${block.handle} {` : 'CONCEPT {');
|
|
159
174
|
this.newline();
|
|
160
175
|
this.indentLevel++;
|
|
161
176
|
// Matcher: {type: "...", name: "..."}
|
|
177
|
+
this.emitCommentsBefore(block.matcher.range.start.line);
|
|
162
178
|
this.writeIndent();
|
|
163
179
|
this.write('{');
|
|
164
180
|
this.write(block.matcher.entries
|
|
@@ -167,12 +183,15 @@ class Formatter {
|
|
|
167
183
|
this.write('}');
|
|
168
184
|
this.newline();
|
|
169
185
|
if (block.expectVersion) {
|
|
186
|
+
this.emitCommentsBefore(block.expectVersion.range.start.line);
|
|
170
187
|
this.formatExpectVersion(block.expectVersion);
|
|
171
188
|
}
|
|
172
189
|
if (block.setAttributes) {
|
|
190
|
+
this.emitCommentsBefore(block.setAttributes.range.start.line);
|
|
173
191
|
this.formatSetAttributes(block.setAttributes);
|
|
174
192
|
}
|
|
175
193
|
if (block.setPropositions) {
|
|
194
|
+
this.emitCommentsBefore(block.setPropositions.range.start.line);
|
|
176
195
|
this.formatSetPropositions(block.setPropositions);
|
|
177
196
|
}
|
|
178
197
|
this.indentLevel--;
|
|
@@ -195,9 +214,11 @@ class Formatter {
|
|
|
195
214
|
this.write(this.propositionBlockPatternToString(block));
|
|
196
215
|
this.newline();
|
|
197
216
|
if (block.expectVersion) {
|
|
217
|
+
this.emitCommentsBefore(block.expectVersion.range.start.line);
|
|
198
218
|
this.formatExpectVersion(block.expectVersion);
|
|
199
219
|
}
|
|
200
220
|
if (block.setAttributes) {
|
|
221
|
+
this.emitCommentsBefore(block.setAttributes.range.start.line);
|
|
201
222
|
this.formatSetAttributes(block.setAttributes);
|
|
202
223
|
}
|
|
203
224
|
this.indentLevel--;
|
|
@@ -209,54 +230,38 @@ class Formatter {
|
|
|
209
230
|
}
|
|
210
231
|
}
|
|
211
232
|
formatSetAttributes(sa) {
|
|
212
|
-
this.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
: sa.entries;
|
|
217
|
-
if (entries.length === 0) {
|
|
218
|
-
this.write('}');
|
|
219
|
-
this.newline();
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
// Check if all values are simple (single-line)
|
|
223
|
-
const allSimple = entries.every((e) => this.isSimpleValue(e.value));
|
|
224
|
-
if (allSimple && entries.length <= 3) {
|
|
225
|
-
// Inline format for very simple cases
|
|
226
|
-
this.write(' ');
|
|
227
|
-
this.write(entries
|
|
228
|
-
.map((e) => `${this.keyToString(e)}: ${this.exprToString(e.value, 0)}`)
|
|
229
|
-
.join(', '));
|
|
230
|
-
this.write(' }');
|
|
231
|
-
this.newline();
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
this.newline();
|
|
235
|
-
this.indentLevel++;
|
|
236
|
-
for (let i = 0; i < entries.length; i++) {
|
|
237
|
-
this.formatObjectEntry(entries[i]);
|
|
238
|
-
if (i < entries.length - 1) {
|
|
239
|
-
this.write(',');
|
|
240
|
-
}
|
|
241
|
-
this.newline();
|
|
242
|
-
}
|
|
243
|
-
this.indentLevel--;
|
|
244
|
-
this.writeIndent();
|
|
245
|
-
this.write('}');
|
|
246
|
-
this.newline();
|
|
233
|
+
this.formatEntryBlock('SET ATTRIBUTES', sa.entries, sa.range, {
|
|
234
|
+
inlineMax: 3,
|
|
235
|
+
sort: this.opts.sortAttributes
|
|
236
|
+
});
|
|
247
237
|
}
|
|
248
238
|
formatSetMetadata(sm) {
|
|
249
|
-
this.
|
|
250
|
-
|
|
251
|
-
|
|
239
|
+
this.formatEntryBlock('SET METADATA', sm.entries, sm.range, {
|
|
240
|
+
inlineMax: 3,
|
|
241
|
+
sort: false
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Render a `HEADER { ... }` key/value block. Collapses to a single line when
|
|
246
|
+
* all values are primitive, there are few of them, and no comment sits inside
|
|
247
|
+
* the block; otherwise emits one entry per line, preserving interior comments
|
|
248
|
+
* at their source position. Sorting is skipped whenever interior comments are
|
|
249
|
+
* present, since reordering would detach comments from their keys.
|
|
250
|
+
*/
|
|
251
|
+
formatEntryBlock(header, entries, range, opts) {
|
|
252
|
+
this.writeIndent();
|
|
253
|
+
this.write(`${header} {`);
|
|
254
|
+
if (entries.length === 0) {
|
|
252
255
|
this.write('}');
|
|
253
256
|
this.newline();
|
|
254
257
|
return;
|
|
255
258
|
}
|
|
256
|
-
const
|
|
257
|
-
|
|
259
|
+
const hasComments = this.hasPendingCommentInRange(range.start.line, range.end.line);
|
|
260
|
+
const ordered = opts.sort && !hasComments ? this.sortObjectEntries(entries) : entries;
|
|
261
|
+
const allSimple = ordered.every((e) => this.isSimpleValue(e.value));
|
|
262
|
+
if (allSimple && ordered.length <= opts.inlineMax && !hasComments) {
|
|
258
263
|
this.write(' ');
|
|
259
|
-
this.write(
|
|
264
|
+
this.write(ordered
|
|
260
265
|
.map((e) => `${this.keyToString(e)}: ${this.exprToString(e.value, 0)}`)
|
|
261
266
|
.join(', '));
|
|
262
267
|
this.write(' }');
|
|
@@ -265,13 +270,15 @@ class Formatter {
|
|
|
265
270
|
}
|
|
266
271
|
this.newline();
|
|
267
272
|
this.indentLevel++;
|
|
268
|
-
for (let i = 0; i <
|
|
269
|
-
this.
|
|
270
|
-
|
|
273
|
+
for (let i = 0; i < ordered.length; i++) {
|
|
274
|
+
this.emitCommentsBefore(ordered[i].range.start.line);
|
|
275
|
+
this.formatObjectEntry(ordered[i]);
|
|
276
|
+
if (i < ordered.length - 1) {
|
|
271
277
|
this.write(',');
|
|
272
278
|
}
|
|
273
279
|
this.newline();
|
|
274
280
|
}
|
|
281
|
+
this.emitCommentsBefore(range.end.line);
|
|
275
282
|
this.indentLevel--;
|
|
276
283
|
this.writeIndent();
|
|
277
284
|
this.write('}');
|
|
@@ -288,8 +295,10 @@ class Formatter {
|
|
|
288
295
|
this.newline();
|
|
289
296
|
this.indentLevel++;
|
|
290
297
|
for (const item of sp.items) {
|
|
298
|
+
this.emitCommentsBefore(item.range.start.line);
|
|
291
299
|
this.formatPropositionItem(item);
|
|
292
300
|
}
|
|
301
|
+
this.emitCommentsBefore(sp.range.end.line);
|
|
293
302
|
this.indentLevel--;
|
|
294
303
|
this.writeIndent();
|
|
295
304
|
this.write('}');
|
|
@@ -316,34 +325,18 @@ class Formatter {
|
|
|
316
325
|
this.newline();
|
|
317
326
|
return;
|
|
318
327
|
}
|
|
319
|
-
|
|
320
|
-
if (allSimple && wm.entries.length <= 5) {
|
|
321
|
-
// Inline
|
|
322
|
-
this.newline();
|
|
323
|
-
this.indentLevel++;
|
|
324
|
-
for (let i = 0; i < wm.entries.length; i++) {
|
|
325
|
-
this.writeIndent();
|
|
326
|
-
this.write(`${this.keyToString(wm.entries[i])}: ${this.exprToString(wm.entries[i].value, 0)}`);
|
|
327
|
-
if (i < wm.entries.length - 1) {
|
|
328
|
-
this.write(',');
|
|
329
|
-
}
|
|
330
|
-
this.newline();
|
|
331
|
-
}
|
|
332
|
-
this.indentLevel--;
|
|
333
|
-
this.writeIndent();
|
|
334
|
-
this.write('}');
|
|
335
|
-
this.newline();
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
328
|
+
// Metadata blocks are conventionally one entry per line.
|
|
338
329
|
this.newline();
|
|
339
330
|
this.indentLevel++;
|
|
340
331
|
for (let i = 0; i < wm.entries.length; i++) {
|
|
332
|
+
this.emitCommentsBefore(wm.entries[i].range.start.line);
|
|
341
333
|
this.formatObjectEntry(wm.entries[i]);
|
|
342
334
|
if (i < wm.entries.length - 1) {
|
|
343
335
|
this.write(',');
|
|
344
336
|
}
|
|
345
337
|
this.newline();
|
|
346
338
|
}
|
|
339
|
+
this.emitCommentsBefore(wm.range.end.line);
|
|
347
340
|
this.indentLevel--;
|
|
348
341
|
this.writeIndent();
|
|
349
342
|
this.write('}');
|
|
@@ -457,12 +450,14 @@ class Formatter {
|
|
|
457
450
|
for (const p of where.patterns) {
|
|
458
451
|
this.formatWherePattern(p);
|
|
459
452
|
}
|
|
453
|
+
this.emitCommentsBefore(where.range.end.line);
|
|
460
454
|
this.indentLevel--;
|
|
461
455
|
this.writeIndent();
|
|
462
456
|
this.write('}');
|
|
463
457
|
this.newline();
|
|
464
458
|
}
|
|
465
459
|
formatWherePattern(p) {
|
|
460
|
+
this.emitCommentsBefore(p.range.start.line);
|
|
466
461
|
switch (p.kind) {
|
|
467
462
|
case 'ConceptPattern':
|
|
468
463
|
return this.formatConceptPattern(p);
|
|
@@ -502,41 +497,24 @@ class Formatter {
|
|
|
502
497
|
this.newline();
|
|
503
498
|
}
|
|
504
499
|
formatNotClause(n) {
|
|
505
|
-
this.
|
|
506
|
-
this.write('NOT {');
|
|
507
|
-
this.newline();
|
|
508
|
-
this.indentLevel++;
|
|
509
|
-
for (const p of n.patterns) {
|
|
510
|
-
this.formatWherePattern(p);
|
|
511
|
-
}
|
|
512
|
-
this.indentLevel--;
|
|
513
|
-
this.writeIndent();
|
|
514
|
-
this.write('}');
|
|
515
|
-
this.newline();
|
|
500
|
+
this.formatBlockClause('NOT', n.patterns, n.range.end.line);
|
|
516
501
|
}
|
|
517
502
|
formatOptionalClause(o) {
|
|
518
|
-
this.
|
|
519
|
-
this.writeIndent();
|
|
520
|
-
this.write('OPTIONAL {');
|
|
521
|
-
this.newline();
|
|
522
|
-
this.indentLevel++;
|
|
523
|
-
for (const p of o.patterns) {
|
|
524
|
-
this.formatWherePattern(p);
|
|
525
|
-
}
|
|
526
|
-
this.indentLevel--;
|
|
527
|
-
this.writeIndent();
|
|
528
|
-
this.write('}');
|
|
529
|
-
this.newline();
|
|
503
|
+
this.formatBlockClause('OPTIONAL', o.patterns, o.range.end.line);
|
|
530
504
|
}
|
|
531
505
|
formatUnionClause(u) {
|
|
532
|
-
this.
|
|
506
|
+
this.formatBlockClause('UNION', u.patterns, u.range.end.line);
|
|
507
|
+
}
|
|
508
|
+
/** Shared rendering for NOT / OPTIONAL / UNION blocks (consistent styling). */
|
|
509
|
+
formatBlockClause(keyword, patterns, endLine) {
|
|
533
510
|
this.writeIndent();
|
|
534
|
-
this.write(
|
|
511
|
+
this.write(`${keyword} {`);
|
|
535
512
|
this.newline();
|
|
536
513
|
this.indentLevel++;
|
|
537
|
-
for (const p of
|
|
514
|
+
for (const p of patterns) {
|
|
538
515
|
this.formatWherePattern(p);
|
|
539
516
|
}
|
|
517
|
+
this.emitCommentsBefore(endLine);
|
|
540
518
|
this.indentLevel--;
|
|
541
519
|
this.writeIndent();
|
|
542
520
|
this.write('}');
|
|
@@ -720,7 +698,7 @@ class Formatter {
|
|
|
720
698
|
: `"${this.escapeString(fallback)}"`;
|
|
721
699
|
}
|
|
722
700
|
sortObjectEntries(entries) {
|
|
723
|
-
//
|
|
701
|
+
// Alphabetical by key (attributes are an unordered map in KIP).
|
|
724
702
|
return [...entries].sort((a, b) => a.key.localeCompare(b.key));
|
|
725
703
|
}
|
|
726
704
|
isSimpleValue(expr) {
|
|
@@ -736,15 +714,6 @@ class Formatter {
|
|
|
736
714
|
e.kind === 'DotExpression' ||
|
|
737
715
|
e.kind === 'FunctionCallExpr');
|
|
738
716
|
}
|
|
739
|
-
formatLeadingComments(comments) {
|
|
740
|
-
if (!comments)
|
|
741
|
-
return;
|
|
742
|
-
for (const c of comments) {
|
|
743
|
-
this.writeIndent();
|
|
744
|
-
this.write(c);
|
|
745
|
-
this.newline();
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
717
|
escapeString(s) {
|
|
749
718
|
return s
|
|
750
719
|
.replace(/\\/g, '\\\\')
|
|
@@ -769,45 +738,4 @@ class Formatter {
|
|
|
769
738
|
this.output += '\n';
|
|
770
739
|
}
|
|
771
740
|
}
|
|
772
|
-
/**
|
|
773
|
-
* A simpler comment-preserving formatter that works at the token level.
|
|
774
|
-
* It re-parses the source and reconstructs it line by line, preserving
|
|
775
|
-
* all comments in their relative positions while normalizing indentation.
|
|
776
|
-
*/
|
|
777
|
-
export function formatPreservingComments(source, options) {
|
|
778
|
-
const opts = {
|
|
779
|
-
indentSize: options?.indentSize ?? 4,
|
|
780
|
-
sortAttributes: options?.sortAttributes ?? true
|
|
781
|
-
};
|
|
782
|
-
const tokens = tokenize(source);
|
|
783
|
-
const lines = source.split('\n');
|
|
784
|
-
const result = [];
|
|
785
|
-
let indent = 0;
|
|
786
|
-
const indentStr = ' '.repeat(opts.indentSize);
|
|
787
|
-
for (let i = 0; i < lines.length; i++) {
|
|
788
|
-
const trimmed = lines[i].trim();
|
|
789
|
-
if (trimmed === '') {
|
|
790
|
-
result.push('');
|
|
791
|
-
continue;
|
|
792
|
-
}
|
|
793
|
-
// Decrease indent before closing braces/parens
|
|
794
|
-
if (/^\s*[}\])]+/.test(trimmed)) {
|
|
795
|
-
const closers = trimmed.match(/^[}\])]+/);
|
|
796
|
-
if (closers) {
|
|
797
|
-
indent = Math.max(0, indent - closers[0].length);
|
|
798
|
-
}
|
|
799
|
-
}
|
|
800
|
-
result.push(indentStr.repeat(indent) + trimmed);
|
|
801
|
-
// Increase indent after opening braces
|
|
802
|
-
const opens = (trimmed.match(/[{([\[]/g) || []).length;
|
|
803
|
-
const closes = (trimmed.match(/[})\]]/g) || []).length;
|
|
804
|
-
indent = Math.max(0, indent + opens - closes);
|
|
805
|
-
}
|
|
806
|
-
// Remove trailing blank lines, ensure single trailing newline
|
|
807
|
-
while (result.length > 0 && result[result.length - 1].trim() === '') {
|
|
808
|
-
result.pop();
|
|
809
|
-
}
|
|
810
|
-
result.push('');
|
|
811
|
-
return result.join('\n');
|
|
812
|
-
}
|
|
813
741
|
//# sourceMappingURL=formatter.js.map
|
package/dist/formatter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
export { tokenize } from './lexer.js';
|
|
2
2
|
export { parse } from './parser.js';
|
|
3
3
|
export type { ParseResult } from './parser.js';
|
|
4
|
-
export { format
|
|
4
|
+
export { format } from './formatter.js';
|
|
5
5
|
export type { FormatOptions } from './formatter.js';
|
|
6
6
|
export { diagnose } from './diagnostics.js';
|
|
7
7
|
export type { Diagnostic } from './diagnostics.js';
|
|
8
|
+
export { analyzeSemantics } from './semantics.js';
|
|
8
9
|
export { TokenType, KEYWORDS, FUNCTIONS, isKeyword, isFunction, isLiteral, isTrivia } from './token.js';
|
|
9
10
|
export type { Token, Position, Range } from './token.js';
|
|
10
11
|
export type { Program, Statement, FindStatement, UpsertStatement, UpdateStatement, MergeStatement, DeleteStatement, DescribeStatement, SearchStatement, ExportStatement, WhereClause, WherePattern, OrderByClause, OrderByKey, LimitClause, CursorClause, ThresholdClause, ConceptPattern, ConceptMatcher, PropositionPattern, PropositionEndpoint, PredicateExpr, PredicateLiteral, PredicateVariable, PredicateAlternation, HopRange, FilterClause, NotClause, OptionalClause, UnionClause, ConceptBlock, PropositionBlock, ExpectVersion, SetAttributes, SetMetadata, SetPropositions, PropositionItem, WithMetadata, Expression, BinaryExpression, UnaryExpression, FunctionCallExpr, DotExpression, VariableRef, ParameterRef, StringLiteral, NumberLiteral, BooleanLiteral, NullLiteral, ObjectEntry, ObjectLiteral, ArrayLiteral } from './ast.js';
|
|
12
|
+
export { lower, lowerAll, lowerStatement } from './lower.js';
|
|
13
|
+
export { checkBudget, checkBatchBudget, MAX_KIP_INPUT_LEN, MAX_KIP_NESTING_DEPTH, MAX_KIP_BATCH_COMMANDS } from './budget.js';
|
|
14
|
+
export { KipSyntaxError, invalidSyntax, resourceExhausted } from './errors.js';
|
|
15
|
+
export type { KipSyntaxCode } from './errors.js';
|
|
16
|
+
export type { Command, Json, KipValue, KqlQuery, FindClause, FindExpression, DotPathVar, AggregationFunction, OrderByItem, OrderDirection, WhereClause as ExecWhereClause, ConceptMatcher as ExecConceptMatcher, PropositionMatcher, TargetTerm, PredTerm, FilterExpression, FilterOperand, FilterFunction, ComparisonOperator, LogicalOperator, KmlStatement, UpsertBlock as ExecUpsertBlock, UpsertItem, ConceptBlock as ExecConceptBlock, PropositionBlock as ExecPropositionBlock, SetProposition, UpdateStatement as ExecUpdateStatement, UpdateValue, UpdateExpr, UpdateFunction, MergeStatement as ExecMergeStatement, DeleteStatement as ExecDeleteStatement, MetaCommand, DescribeTarget, SearchCommand, SearchTarget, SearchMode, ExportCommand } from './exec-ast.js';
|
|
17
|
+
export { PARSER_VERSION, KIP_SPEC_REVISION } from './version.js';
|
|
11
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACT,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAExD,YAAY,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,cAAc,EACd,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,YAAY,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,IAAI,eAAe,EAC9B,cAAc,IAAI,kBAAkB,EACpC,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,WAAW,IAAI,eAAe,EAC9B,UAAU,EACV,YAAY,IAAI,gBAAgB,EAChC,gBAAgB,IAAI,oBAAoB,EACxC,cAAc,EACd,eAAe,IAAI,mBAAmB,EACtC,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,IAAI,kBAAkB,EACpC,eAAe,IAAI,mBAAmB,EACtC,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export { tokenize } from './lexer.js';
|
|
2
2
|
export { parse } from './parser.js';
|
|
3
|
-
export { format
|
|
3
|
+
export { format } from './formatter.js';
|
|
4
4
|
export { diagnose } from './diagnostics.js';
|
|
5
|
+
export { analyzeSemantics } from './semantics.js';
|
|
5
6
|
export { TokenType, KEYWORDS, FUNCTIONS, isKeyword, isFunction, isLiteral, isTrivia } from './token.js';
|
|
7
|
+
export { lower, lowerAll, lowerStatement } from './lower.js';
|
|
8
|
+
export { checkBudget, checkBatchBudget, MAX_KIP_INPUT_LEN, MAX_KIP_NESTING_DEPTH, MAX_KIP_BATCH_COMMANDS } from './budget.js';
|
|
9
|
+
export { KipSyntaxError, invalidSyntax, resourceExhausted } from './errors.js';
|
|
10
|
+
export { PARSER_VERSION, KIP_SPEC_REVISION } from './version.js';
|
|
6
11
|
//# 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,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACT,MAAM,YAAY,CAAA;AA0DnB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AA4C9E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/lexer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkC,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkC,MAAM,YAAY,CAAA;AASlE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAGhD"}
|
package/dist/lexer.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { TokenType, KEYWORDS, FUNCTIONS } from './token.js';
|
|
2
|
+
/**
|
|
3
|
+
* Characters that continue a word for boundary purposes. Unicode-aware on
|
|
4
|
+
* purpose: `FROMé` is one word to the grammar even though `é` cannot start a
|
|
5
|
+
* KIP identifier, so `FROM` must not be lifted out of it as a keyword.
|
|
6
|
+
*/
|
|
7
|
+
const WORD_CHAR = /[\p{Alphabetic}\p{N}]/u;
|
|
2
8
|
export function tokenize(source) {
|
|
3
9
|
const lexer = new Lexer(source);
|
|
4
10
|
return lexer.tokenizeAll();
|
|
@@ -312,17 +318,24 @@ class Lexer {
|
|
|
312
318
|
this.pushToken(TokenType.Null, value, start, startLine, startCol);
|
|
313
319
|
return;
|
|
314
320
|
}
|
|
315
|
-
//
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
321
|
+
// A keyword only counts as one at a word boundary. Letters, digits and `_`
|
|
322
|
+
// are already absorbed above, so what remains to exclude is `?` and `"`:
|
|
323
|
+
// `FROM?x` and `TYPE"Drug"` are not `FROM ?x` and `TYPE "Drug"` written
|
|
324
|
+
// tersely, they are unparseable — and accepting them here would let a
|
|
325
|
+
// command run on this parser that a spec-conformant engine rejects.
|
|
326
|
+
if (this.atWordBoundary()) {
|
|
327
|
+
// Check keywords (case-sensitive — KIP keywords are uppercase)
|
|
328
|
+
const kwType = KEYWORDS.get(upper);
|
|
329
|
+
if (kwType && value === upper) {
|
|
330
|
+
this.pushToken(kwType, value, start, startLine, startCol);
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
// Check functions
|
|
334
|
+
const fnType = FUNCTIONS.get(upper);
|
|
335
|
+
if (fnType && value === upper) {
|
|
336
|
+
this.pushToken(fnType, value, start, startLine, startCol);
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
326
339
|
}
|
|
327
340
|
this.pushToken(TokenType.Identifier, value, start, startLine, startCol);
|
|
328
341
|
}
|
|
@@ -338,6 +351,24 @@ class Lexer {
|
|
|
338
351
|
pushToken(type, value, offset, line, column) {
|
|
339
352
|
this.tokens.push({ type, value, offset, line, column });
|
|
340
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* True when the character at the cursor ends a keyword.
|
|
356
|
+
*
|
|
357
|
+
* Mirrors the grammar's word boundary: a keyword may butt directly against
|
|
358
|
+
* punctuation (`WHERE{`, `FIND(`) but not against something that could have
|
|
359
|
+
* been part of an identifier, a variable, or a string.
|
|
360
|
+
*/
|
|
361
|
+
atWordBoundary() {
|
|
362
|
+
if (this.pos >= this.source.length)
|
|
363
|
+
return true;
|
|
364
|
+
// Read a whole code point: a surrogate pair tested one unit at a time is
|
|
365
|
+
// alphabetic in neither half, which would read `FROM𝔸` as `FROM` + junk
|
|
366
|
+
// while a `char`-based engine reads it as one word.
|
|
367
|
+
const cp = String.fromCodePoint(this.source.codePointAt(this.pos));
|
|
368
|
+
if (cp === '?' || cp === '"' || cp === '_')
|
|
369
|
+
return false;
|
|
370
|
+
return !WORD_CHAR.test(cp);
|
|
371
|
+
}
|
|
341
372
|
isDigit(ch) {
|
|
342
373
|
return ch >= '0' && ch <= '9';
|
|
343
374
|
}
|