@ldclabs/kip-lang 0.4.0 → 2.0.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +21 -0
  3. package/README.md +89 -64
  4. package/dist/ast.d.ts +511 -145
  5. package/dist/ast.d.ts.map +1 -1
  6. package/dist/diagnostics.d.ts +8 -2
  7. package/dist/diagnostics.d.ts.map +1 -1
  8. package/dist/diagnostics.js +32 -3
  9. package/dist/diagnostics.js.map +1 -1
  10. package/dist/exec-ast.d.ts +514 -149
  11. package/dist/exec-ast.d.ts.map +1 -1
  12. package/dist/exec-ast.js +8 -7
  13. package/dist/exec-ast.js.map +1 -1
  14. package/dist/formatter.d.ts.map +1 -1
  15. package/dist/formatter.js +870 -479
  16. package/dist/formatter.js.map +1 -1
  17. package/dist/index.d.ts +4 -4
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/lexer.d.ts.map +1 -1
  22. package/dist/lexer.js +12 -30
  23. package/dist/lexer.js.map +1 -1
  24. package/dist/lower.d.ts +1 -2
  25. package/dist/lower.d.ts.map +1 -1
  26. package/dist/lower.js +1287 -598
  27. package/dist/lower.js.map +1 -1
  28. package/dist/parser.d.ts.map +1 -1
  29. package/dist/parser.js +2410 -1300
  30. package/dist/parser.js.map +1 -1
  31. package/dist/semantics.d.ts +11 -7
  32. package/dist/semantics.d.ts.map +1 -1
  33. package/dist/semantics.js +295 -180
  34. package/dist/semantics.js.map +1 -1
  35. package/dist/token.d.ts +130 -40
  36. package/dist/token.d.ts.map +1 -1
  37. package/dist/token.js +264 -83
  38. package/dist/token.js.map +1 -1
  39. package/dist/version.d.ts +2 -2
  40. package/dist/version.js +2 -2
  41. package/package.json +35 -5
  42. package/src/ast.ts +914 -0
  43. package/src/budget.ts +108 -0
  44. package/src/diagnostics.ts +182 -0
  45. package/src/errors.ts +42 -0
  46. package/src/exec-ast.ts +614 -0
  47. package/src/formatter.ts +1339 -0
  48. package/src/index.ts +226 -0
  49. package/src/lexer.ts +459 -0
  50. package/src/lower.ts +2011 -0
  51. package/src/parser.ts +3506 -0
  52. package/src/semantics.ts +392 -0
  53. package/src/token.ts +408 -0
  54. package/src/version.ts +13 -0
package/dist/ast.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Range } from './token.js';
2
+ import type { Program } from './ast.js';
2
3
  export interface Diagnostic {
3
4
  range: Range;
4
5
  severity: 'error' | 'warning' | 'info';
@@ -7,8 +8,13 @@ export interface Diagnostic {
7
8
  }
8
9
  /**
9
10
  * Runs diagnostics on KIP source code.
10
- * Combines lexer-level issues (unterminated strings, unknown tokens)
11
- * with parser-level syntax errors.
11
+ * Combines lexer and parser errors with schema-independent semantic and
12
+ * executable-AST validation.
12
13
  */
13
14
  export declare function diagnose(source: string): Diagnostic[];
15
+ /**
16
+ * Runs the schema-independent checks needed for every parsed statement to
17
+ * lower into the closed executable AST used by a KIP engine.
18
+ */
19
+ export declare function validateExecutable(program: Program): Diagnostic[];
14
20
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAkIrD"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGvC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAsIrD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAgBjE"}
@@ -1,11 +1,13 @@
1
1
  import { tokenize } from './lexer.js';
2
2
  import { parse } from './parser.js';
3
3
  import { analyzeSemantics } from './semantics.js';
4
+ import { lowerStatement } from './lower.js';
5
+ import { KipSyntaxError } from './errors.js';
4
6
  import { TokenType } from './token.js';
5
7
  /**
6
8
  * Runs diagnostics on KIP source code.
7
- * Combines lexer-level issues (unterminated strings, unknown tokens)
8
- * with parser-level syntax errors.
9
+ * Combines lexer and parser errors with schema-independent semantic and
10
+ * executable-AST validation.
9
11
  */
10
12
  export function diagnose(source) {
11
13
  const diagnostics = [];
@@ -125,7 +127,34 @@ export function diagnose(source) {
125
127
  // Phase 4: Semantic checks (only when the AST parsed cleanly, to avoid
126
128
  // cascading false positives from error-recovery placeholders).
127
129
  if (!parseDiags.some((d) => d.severity === 'error')) {
128
- diagnostics.push(...analyzeSemantics(ast));
130
+ const semanticDiags = analyzeSemantics(ast);
131
+ diagnostics.push(...semanticDiags);
132
+ if (!semanticDiags.some((d) => d.severity === 'error')) {
133
+ diagnostics.push(...validateExecutable(ast));
134
+ }
135
+ }
136
+ return diagnostics;
137
+ }
138
+ /**
139
+ * Runs the schema-independent checks needed for every parsed statement to
140
+ * lower into the closed executable AST used by a KIP engine.
141
+ */
142
+ export function validateExecutable(program) {
143
+ const diagnostics = [];
144
+ for (const statement of program.statements) {
145
+ try {
146
+ lowerStatement(statement);
147
+ }
148
+ catch (error) {
149
+ if (!(error instanceof KipSyntaxError))
150
+ throw error;
151
+ diagnostics.push({
152
+ range: error.range ?? statement.range,
153
+ severity: 'error',
154
+ message: error.message,
155
+ code: error.code
156
+ });
157
+ }
129
158
  }
130
159
  return diagnostics;
131
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAStC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,MAAM,WAAW,GAAiB,EAAE,CAAA;IAEpC,mCAAmC;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE;oBACL,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;oBAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;iBAC/D;gBACD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,yBAAyB,GAAG,CAAC,KAAK,GAAG;gBAC9C,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAA;QACJ,CAAC;QAED,iCAAiC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrD,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE;wBACL,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;wBAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;qBAC/D;oBACD,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,6BAA6B;oBACtC,IAAI,EAAE,6BAA6B;iBACpC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW,CAAC,IAAI,CAAC;wBACf,KAAK,EAAE;4BACL,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;4BAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;yBAC/D;wBACD,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,6CAA6C;wBACtD,IAAI,EAAE,wBAAwB;qBAC/B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE;oBACL,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;oBAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;iBAC/D;gBACD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,6BAA6B;gBACtC,IAAI,EAAE,wBAAwB;aAC/B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAqD,EAAE,CAAA;IACzE,MAAM,OAAO,GAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACxE,MAAM,OAAO,GAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAExE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IACE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;YAC7B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;YAC7B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,EAC/B,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5E,CAAC;aAAM,IACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;YAC7B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;YAC7B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,EAC/B,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE;wBACL,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;wBAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;qBAChD;oBACD,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,sBAAsB,GAAG,CAAC,KAAK,GAAG;oBAC3C,IAAI,EAAE,2BAA2B;iBAClC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;gBAClD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,WAAW,CAAC,IAAI,CAAC;wBACf,KAAK,EAAE;4BACL,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;4BAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;yBAChD;wBACD,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,iCAAiC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,GAAG;wBACrF,IAAI,EAAE,4BAA4B;qBACnC,CAAC,CAAA;gBACJ,CAAC;gBACD,YAAY,CAAC,GAAG,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;gBACvD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;aAC1D;YACD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,aAAa,QAAQ,CAAC,IAAI,GAAG;YACtC,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAA;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IACtD,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;IAE/B,uEAAuE;IACvE,+DAA+D;IAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC3C,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,cAAc,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC;gBAAE,MAAM,KAAK,CAAA;YACnD,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK;gBACrC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,+CAA+C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACpE,CAAC"}