@ldclabs/kip-lang 0.2.2 → 0.3.1

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/lexer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EA4CR,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAIjD"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAoDR,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAIjD"}
package/dist/parser.js CHANGED
@@ -49,14 +49,20 @@ class Parser {
49
49
  return this.parseFindStatement();
50
50
  case TokenType.Upsert:
51
51
  return this.parseUpsertStatement();
52
+ case TokenType.Update:
53
+ return this.parseUpdateStatement();
54
+ case TokenType.Merge:
55
+ return this.parseMergeStatement();
52
56
  case TokenType.Delete:
53
57
  return this.parseDeleteStatement();
54
58
  case TokenType.Describe:
55
59
  return this.parseDescribeStatement();
56
60
  case TokenType.Search:
57
61
  return this.parseSearchStatement();
62
+ case TokenType.Export:
63
+ return this.parseExportStatement();
58
64
  default:
59
- this.error(`Unexpected token '${tok.value}', expected a statement keyword (FIND, UPSERT, DELETE, DESCRIBE, SEARCH)`, tok);
65
+ this.error(`Unexpected token '${tok.value}', expected a statement keyword (FIND, UPSERT, UPDATE, MERGE, DELETE, DESCRIBE, SEARCH, EXPORT)`, tok);
60
66
  this.advance();
61
67
  return null;
62
68
  }
@@ -68,6 +74,7 @@ class Parser {
68
74
  const start = this.currentPos();
69
75
  const comments = this.collectLeadingComments();
70
76
  this.expect(TokenType.Find);
77
+ const lparen = this.current();
71
78
  this.expect(TokenType.LParen);
72
79
  const projections = [];
73
80
  if (!this.check(TokenType.RParen)) {
@@ -76,6 +83,9 @@ class Parser {
76
83
  projections.push(this.parseExpression());
77
84
  }
78
85
  }
86
+ if (projections.length === 0) {
87
+ this.error(`FIND must declare at least one output expression, e.g. FIND(?var)`, lparen);
88
+ }
79
89
  this.expect(TokenType.RParen);
80
90
  let where;
81
91
  let orderBy;
@@ -151,6 +161,10 @@ class Parser {
151
161
  const handle = this.expectVariable();
152
162
  this.expect(TokenType.LBrace);
153
163
  const matcher = this.parseConceptMatcher();
164
+ let expectVersion;
165
+ if (this.check(TokenType.Expect)) {
166
+ expectVersion = this.parseExpectVersion();
167
+ }
154
168
  let setAttributes;
155
169
  let setPropositions;
156
170
  let metadata;
@@ -197,6 +211,7 @@ class Parser {
197
211
  kind: 'ConceptBlock',
198
212
  handle,
199
213
  matcher,
214
+ expectVersion,
200
215
  setAttributes,
201
216
  setPropositions,
202
217
  metadata,
@@ -214,6 +229,10 @@ class Parser {
214
229
  }
215
230
  this.expect(TokenType.LBrace);
216
231
  const proposition = this.parsePropositionPatternBody(undefined);
232
+ let expectVersion;
233
+ if (this.check(TokenType.Expect)) {
234
+ expectVersion = this.parseExpectVersion();
235
+ }
217
236
  let setAttributes;
218
237
  let metadata;
219
238
  this.skipComments();
@@ -250,6 +269,7 @@ class Parser {
250
269
  subject: proposition.subject,
251
270
  predicate: proposition.predicate,
252
271
  object: proposition.object,
272
+ expectVersion,
253
273
  setAttributes,
254
274
  metadata,
255
275
  range: { start, end: this.currentPos() },
@@ -257,6 +277,74 @@ class Parser {
257
277
  };
258
278
  }
259
279
  // ────────────────────────────────────────────────────────────────────
280
+ // UPDATE
281
+ // ────────────────────────────────────────────────────────────────────
282
+ parseUpdateStatement() {
283
+ const start = this.currentPos();
284
+ const comments = this.collectLeadingComments();
285
+ this.expect(TokenType.Update);
286
+ const target = this.expectVariable();
287
+ let setAttributes;
288
+ let setMetadata;
289
+ this.skipComments();
290
+ while (this.check(TokenType.Set) && !this.isAtEnd()) {
291
+ const setStart = this.currentPos();
292
+ this.advance();
293
+ if (this.check(TokenType.Attributes)) {
294
+ this.advance();
295
+ setAttributes = this.parseSetAttributesBody(setStart);
296
+ }
297
+ else if (this.check(TokenType.Metadata)) {
298
+ this.advance();
299
+ setMetadata = this.parseSetMetadataBody(setStart);
300
+ }
301
+ else {
302
+ this.error(`Expected ATTRIBUTES or METADATA after SET in UPDATE statement`, this.current());
303
+ this.advance();
304
+ }
305
+ this.skipComments();
306
+ }
307
+ if (!setAttributes && !setMetadata) {
308
+ this.error(`Expected SET ATTRIBUTES or SET METADATA in UPDATE statement`, this.current());
309
+ }
310
+ const where = this.parseWhereClause();
311
+ let limit;
312
+ if (this.check(TokenType.Limit)) {
313
+ limit = this.parseLimitClause();
314
+ }
315
+ return {
316
+ kind: 'UpdateStatement',
317
+ target,
318
+ setAttributes,
319
+ setMetadata,
320
+ where,
321
+ limit,
322
+ range: { start, end: this.currentPos() },
323
+ leadingComments: comments.length > 0 ? comments : undefined
324
+ };
325
+ }
326
+ // ────────────────────────────────────────────────────────────────────
327
+ // MERGE
328
+ // ────────────────────────────────────────────────────────────────────
329
+ parseMergeStatement() {
330
+ const start = this.currentPos();
331
+ const comments = this.collectLeadingComments();
332
+ this.expect(TokenType.Merge);
333
+ this.expect(TokenType.Concept);
334
+ const source = this.expectVariable();
335
+ this.expect(TokenType.Into);
336
+ const target = this.expectVariable();
337
+ const where = this.parseWhereClause();
338
+ return {
339
+ kind: 'MergeStatement',
340
+ source,
341
+ target,
342
+ where,
343
+ range: { start, end: this.currentPos() },
344
+ leadingComments: comments.length > 0 ? comments : undefined
345
+ };
346
+ }
347
+ // ────────────────────────────────────────────────────────────────────
260
348
  // DELETE
261
349
  // ────────────────────────────────────────────────────────────────────
262
350
  parseDeleteStatement() {
@@ -393,10 +481,18 @@ class Parser {
393
481
  this.error(`Expected PRIMER, DOMAINS, CONCEPT, or PROPOSITION after DESCRIBE`, this.current());
394
482
  describeType = 'PRIMER';
395
483
  }
484
+ // Only the plural `... TYPES` forms are paginated (§5.1.3 / §5.1.5).
485
+ const paginable = describeType === 'CONCEPT_TYPES' || describeType === 'PROPOSITION_TYPES';
396
486
  if (this.check(TokenType.Limit)) {
487
+ if (!paginable) {
488
+ this.error(`LIMIT is only valid on DESCRIBE CONCEPT TYPES / PROPOSITION TYPES`, this.current());
489
+ }
397
490
  limit = this.parseLimitClause();
398
491
  }
399
492
  if (this.check(TokenType.Cursor)) {
493
+ if (!paginable) {
494
+ this.error(`CURSOR is only valid on DESCRIBE CONCEPT TYPES / PROPOSITION TYPES`, this.current());
495
+ }
400
496
  cursor = this.parseCursorClause();
401
497
  }
402
498
  return {
@@ -434,18 +530,35 @@ class Parser {
434
530
  const term = termValue.kind === 'StringLiteral' ? termValue.parsed : termValue.name;
435
531
  let withType;
436
532
  let withTypeValue;
437
- if (this.check(TokenType.With)) {
438
- this.advance();
439
- this.expect(TokenType.Type);
440
- withTypeValue = this.parseStringOrParameterValue('SEARCH WITH TYPE');
441
- withType =
442
- withTypeValue.kind === 'StringLiteral'
443
- ? withTypeValue.parsed
444
- : withTypeValue.name;
445
- }
533
+ let mode;
534
+ let modeValue;
535
+ let threshold;
446
536
  let limit;
447
- if (this.check(TokenType.Limit)) {
448
- limit = this.parseLimitClause();
537
+ while (!this.isAtEnd()) {
538
+ if (this.check(TokenType.With)) {
539
+ this.advance();
540
+ this.expect(TokenType.Type);
541
+ withTypeValue = this.parseStringOrParameterValue('SEARCH WITH TYPE');
542
+ withType =
543
+ withTypeValue.kind === 'StringLiteral'
544
+ ? withTypeValue.parsed
545
+ : withTypeValue.name;
546
+ }
547
+ else if (this.check(TokenType.Mode)) {
548
+ this.advance();
549
+ modeValue = this.parseStringOrParameterValue('SEARCH MODE');
550
+ mode =
551
+ modeValue.kind === 'StringLiteral' ? modeValue.parsed : modeValue.name;
552
+ }
553
+ else if (this.check(TokenType.Threshold)) {
554
+ threshold = this.parseThresholdClause();
555
+ }
556
+ else if (this.check(TokenType.Limit)) {
557
+ limit = this.parseLimitClause();
558
+ }
559
+ else {
560
+ break;
561
+ }
449
562
  }
450
563
  return {
451
564
  kind: 'SearchStatement',
@@ -454,6 +567,31 @@ class Parser {
454
567
  termValue,
455
568
  withType,
456
569
  withTypeValue,
570
+ mode,
571
+ modeValue,
572
+ threshold,
573
+ limit,
574
+ range: { start, end: this.currentPos() },
575
+ leadingComments: comments.length > 0 ? comments : undefined
576
+ };
577
+ }
578
+ // ────────────────────────────────────────────────────────────────────
579
+ // EXPORT
580
+ // ────────────────────────────────────────────────────────────────────
581
+ parseExportStatement() {
582
+ const start = this.currentPos();
583
+ const comments = this.collectLeadingComments();
584
+ this.expect(TokenType.Export);
585
+ const target = this.expectVariable();
586
+ const where = this.parseWhereClause();
587
+ let limit;
588
+ if (this.check(TokenType.Limit)) {
589
+ limit = this.parseLimitClause();
590
+ }
591
+ return {
592
+ kind: 'ExportStatement',
593
+ target,
594
+ where,
457
595
  limit,
458
596
  range: { start, end: this.currentPos() },
459
597
  leadingComments: comments.length > 0 ? comments : undefined
@@ -627,6 +765,31 @@ class Parser {
627
765
  }
628
766
  parsePredicateExpr() {
629
767
  const start = this.currentPos();
768
+ if (this.check(TokenType.Variable)) {
769
+ const pred = this.parsePredicateVariable();
770
+ if (this.check(TokenType.LBrace)) {
771
+ this.error(`Predicate variables cannot use hop ranges; use a quoted predicate literal for path traversal`, this.current());
772
+ this.parseHopRange();
773
+ }
774
+ if (this.check(TokenType.Pipe)) {
775
+ this.error(`Predicate variables cannot be used in predicate alternations`, this.current());
776
+ while (this.match(TokenType.Pipe)) {
777
+ if (this.check(TokenType.String)) {
778
+ this.parsePredicateLiteral();
779
+ }
780
+ else if (this.check(TokenType.Variable)) {
781
+ this.parsePredicateVariable();
782
+ }
783
+ else {
784
+ break;
785
+ }
786
+ }
787
+ }
788
+ return {
789
+ ...pred,
790
+ range: { start, end: this.currentPos() }
791
+ };
792
+ }
630
793
  const first = this.parsePredicateLiteral();
631
794
  // Check for alternation: "pred1" | "pred2"
632
795
  if (this.check(TokenType.Pipe)) {
@@ -642,6 +805,15 @@ class Parser {
642
805
  }
643
806
  return first;
644
807
  }
808
+ parsePredicateVariable() {
809
+ const start = this.currentPos();
810
+ const name = this.expectVariable();
811
+ return {
812
+ kind: 'PredicateVariable',
813
+ name,
814
+ range: { start, end: this.currentPos() }
815
+ };
816
+ }
645
817
  parsePredicateLiteral() {
646
818
  const start = this.currentPos();
647
819
  const value = this.expectStringValue();
@@ -746,6 +918,16 @@ class Parser {
746
918
  range: { start, end: this.currentPos() }
747
919
  };
748
920
  }
921
+ parseSetMetadataBody(start) {
922
+ this.expect(TokenType.LBrace);
923
+ const entries = this.parseObjectEntries();
924
+ this.expect(TokenType.RBrace);
925
+ return {
926
+ kind: 'SetMetadata',
927
+ entries,
928
+ range: { start, end: this.currentPos() }
929
+ };
930
+ }
749
931
  parseSetPropositionsBody(start) {
750
932
  this.expect(TokenType.LBrace);
751
933
  const items = [];
@@ -841,6 +1023,17 @@ class Parser {
841
1023
  range: { start, end: this.currentPos() }
842
1024
  };
843
1025
  }
1026
+ parseExpectVersion() {
1027
+ const start = this.currentPos();
1028
+ this.expect(TokenType.Expect);
1029
+ this.expect(TokenType.Version);
1030
+ const value = this.parseNumberOrParameterValue('EXPECT VERSION');
1031
+ return {
1032
+ kind: 'ExpectVersion',
1033
+ value,
1034
+ range: { start, end: this.currentPos() }
1035
+ };
1036
+ }
844
1037
  // ────────────────────────────────────────────────────────────────────
845
1038
  // ORDER BY, LIMIT, CURSOR
846
1039
  // ────────────────────────────────────────────────────────────────────
@@ -848,6 +1041,22 @@ class Parser {
848
1041
  const start = this.currentPos();
849
1042
  this.expect(TokenType.Order);
850
1043
  this.expect(TokenType.By);
1044
+ const keys = [];
1045
+ keys.push(this.parseOrderByKey());
1046
+ while (this.match(TokenType.Comma)) {
1047
+ keys.push(this.parseOrderByKey());
1048
+ }
1049
+ const first = keys[0];
1050
+ return {
1051
+ kind: 'OrderByClause',
1052
+ keys,
1053
+ expression: first.expression,
1054
+ direction: first.direction,
1055
+ range: { start, end: this.currentPos() }
1056
+ };
1057
+ }
1058
+ parseOrderByKey() {
1059
+ const start = this.currentPos();
851
1060
  const expression = this.parseExpression();
852
1061
  let direction = 'ASC';
853
1062
  if (this.check(TokenType.Asc)) {
@@ -859,45 +1068,59 @@ class Parser {
859
1068
  direction = 'DESC';
860
1069
  }
861
1070
  return {
862
- kind: 'OrderByClause',
1071
+ kind: 'OrderByKey',
863
1072
  expression,
864
1073
  direction,
865
1074
  range: { start, end: this.currentPos() }
866
1075
  };
867
1076
  }
868
- parseLimitClause() {
1077
+ parseThresholdClause() {
869
1078
  const start = this.currentPos();
870
- this.expect(TokenType.Limit);
1079
+ this.expect(TokenType.Threshold);
1080
+ const value = this.parseNumberOrParameterValue('THRESHOLD');
1081
+ return {
1082
+ kind: 'ThresholdClause',
1083
+ value,
1084
+ range: { start, end: this.currentPos() }
1085
+ };
1086
+ }
1087
+ parseNumberOrParameterValue(context) {
871
1088
  const tok = this.current();
1089
+ const start = this.currentPos();
872
1090
  let value;
873
1091
  if (tok.type === TokenType.Number) {
874
1092
  value = {
875
1093
  kind: 'NumberLiteral',
876
1094
  value: Number(tok.value),
877
1095
  raw: tok.value,
878
- range: { start: this.currentPos(), end: this.currentPos() }
1096
+ range: { start, end: start }
879
1097
  };
880
1098
  this.advance();
881
1099
  value.range.end = this.currentPos();
1100
+ return value;
882
1101
  }
883
- else if (tok.type === TokenType.Parameter) {
1102
+ if (tok.type === TokenType.Parameter) {
884
1103
  value = {
885
1104
  kind: 'ParameterRef',
886
1105
  name: tok.value,
887
- range: { start: this.currentPos(), end: this.currentPos() }
1106
+ range: { start, end: start }
888
1107
  };
889
1108
  this.advance();
890
1109
  value.range.end = this.currentPos();
1110
+ return value;
891
1111
  }
892
- else {
893
- this.error(`Expected number or parameter after LIMIT`, tok);
894
- value = {
895
- kind: 'NumberLiteral',
896
- value: 0,
897
- raw: '0',
898
- range: { start: this.currentPos(), end: this.currentPos() }
899
- };
900
- }
1112
+ this.error(`Expected number or parameter after ${context}`, tok);
1113
+ return {
1114
+ kind: 'NumberLiteral',
1115
+ value: 0,
1116
+ raw: '0',
1117
+ range: { start, end: start }
1118
+ };
1119
+ }
1120
+ parseLimitClause() {
1121
+ const start = this.currentPos();
1122
+ this.expect(TokenType.Limit);
1123
+ const value = this.parseNumberOrParameterValue('LIMIT');
901
1124
  return {
902
1125
  kind: 'LimitClause',
903
1126
  value,
@@ -1216,7 +1439,7 @@ class Parser {
1216
1439
  break;
1217
1440
  const entryStart = this.currentPos();
1218
1441
  const { key, isQuoted } = this.expectKeyWithQuoting();
1219
- this.expect(TokenType.Colon);
1442
+ this.expectObjectColon(key);
1220
1443
  const value = this.parseExpression();
1221
1444
  entries.push({
1222
1445
  kind: 'ObjectEntry',
@@ -1307,22 +1530,6 @@ class Parser {
1307
1530
  this.advance();
1308
1531
  return this.unescapeString(tok.value);
1309
1532
  }
1310
- expectKey() {
1311
- const tok = this.current();
1312
- // Keys can be identifiers, strings, or even some keywords used as keys
1313
- if (tok.type === TokenType.String) {
1314
- this.advance();
1315
- return this.unescapeString(tok.value);
1316
- }
1317
- if (tok.type === TokenType.Identifier ||
1318
- this.isNonAmbiguousKeyword(tok.type)) {
1319
- this.advance();
1320
- return tok.value;
1321
- }
1322
- this.error(`Expected object key but got '${tok.value}'`, tok);
1323
- this.advance();
1324
- return tok.value;
1325
- }
1326
1533
  expectKeyWithQuoting() {
1327
1534
  const tok = this.current();
1328
1535
  if (tok.type === TokenType.String) {
@@ -1354,6 +1561,25 @@ class Parser {
1354
1561
  }
1355
1562
  return comments;
1356
1563
  }
1564
+ /**
1565
+ * Consume the `:` separating an object key from its value. A colon written
1566
+ * with no space before an identifier value (e.g. `status:active`) is lexed as
1567
+ * a single parameter placeholder token (`:active`), so surface a targeted hint
1568
+ * instead of the generic "Expected ':'" message.
1569
+ */
1570
+ expectObjectColon(key) {
1571
+ if (this.check(TokenType.Colon)) {
1572
+ this.advance();
1573
+ return;
1574
+ }
1575
+ const tok = this.current();
1576
+ if (tok.type === TokenType.Parameter) {
1577
+ this.error(`Missing space after ':' — '${key}${tok.value}' was read as a parameter placeholder. ` +
1578
+ `Write '${key}: ${tok.value.slice(1)}' (or quote the value).`, tok);
1579
+ return;
1580
+ }
1581
+ this.expect(TokenType.Colon);
1582
+ }
1357
1583
  isFunctionToken(type) {
1358
1584
  return (type === TokenType.Count ||
1359
1585
  type === TokenType.Sum ||
@@ -1366,7 +1592,11 @@ class Parser {
1366
1592
  type === TokenType.Regex ||
1367
1593
  type === TokenType.In ||
1368
1594
  type === TokenType.IsNull ||
1369
- type === TokenType.IsNotNull);
1595
+ type === TokenType.IsNotNull ||
1596
+ type === TokenType.Add ||
1597
+ type === TokenType.Mul ||
1598
+ type === TokenType.Clamp ||
1599
+ type === TokenType.Coalesce);
1370
1600
  }
1371
1601
  /** Keywords that can also serve as property names in dot notation or object keys */
1372
1602
  isNonAmbiguousKeyword(type) {
@@ -1385,7 +1615,12 @@ class Parser {
1385
1615
  type === TokenType.By ||
1386
1616
  type === TokenType.Order ||
1387
1617
  type === TokenType.Set ||
1388
- type === TokenType.With);
1618
+ type === TokenType.With ||
1619
+ type === TokenType.Into ||
1620
+ type === TokenType.Expect ||
1621
+ type === TokenType.Version ||
1622
+ type === TokenType.Mode ||
1623
+ type === TokenType.Threshold);
1389
1624
  }
1390
1625
  unescapeString(raw) {
1391
1626
  if (raw.startsWith('"') && raw.endsWith('"')) {
@@ -1415,7 +1650,7 @@ class Parser {
1415
1650
  }
1416
1651
  });
1417
1652
  }
1418
- error(message, token) {
1653
+ error(message, token, code = 'KIP_1001') {
1419
1654
  this.diagnostics.push({
1420
1655
  range: {
1421
1656
  start: { line: token.line, column: token.column },
@@ -1423,16 +1658,19 @@ class Parser {
1423
1658
  },
1424
1659
  severity: 'error',
1425
1660
  message,
1426
- code: 'KIP_PARSE'
1661
+ code
1427
1662
  });
1428
1663
  }
1429
1664
  recoverToNextStatement() {
1430
1665
  const stmtStarters = new Set([
1431
1666
  TokenType.Find,
1432
1667
  TokenType.Upsert,
1668
+ TokenType.Update,
1669
+ TokenType.Merge,
1433
1670
  TokenType.Delete,
1434
1671
  TokenType.Describe,
1435
1672
  TokenType.Search,
1673
+ TokenType.Export,
1436
1674
  TokenType.EOF
1437
1675
  ]);
1438
1676
  while (!this.isAtEnd() && !stmtStarters.has(this.current().type)) {