@ldclabs/kip-lang 0.3.1 → 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.
- package/CHANGELOG.md +53 -0
- package/LICENSE +21 -0
- package/README.md +133 -44
- package/dist/ast.d.ts +519 -144
- 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 +8 -2
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +32 -3
- 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 +679 -0
- package/dist/exec-ast.d.ts.map +1 -0
- package/dist/exec-ast.js +24 -0
- package/dist/exec-ast.js.map +1 -0
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +870 -479
- package/dist/formatter.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +46 -33
- package/dist/lexer.js.map +1 -1
- package/dist/lower.d.ts +17 -0
- package/dist/lower.d.ts.map +1 -0
- package/dist/lower.js +1566 -0
- package/dist/lower.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +2476 -1152
- package/dist/parser.js.map +1 -1
- package/dist/semantics.d.ts +11 -7
- package/dist/semantics.d.ts.map +1 -1
- package/dist/semantics.js +295 -180
- package/dist/semantics.js.map +1 -1
- package/dist/token.d.ts +130 -40
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +264 -83
- 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 +36 -6
- package/src/ast.ts +914 -0
- package/src/budget.ts +108 -0
- package/src/diagnostics.ts +182 -0
- package/src/errors.ts +42 -0
- package/src/exec-ast.ts +614 -0
- package/src/formatter.ts +1339 -0
- package/src/index.ts +226 -0
- package/src/lexer.ts +459 -0
- package/src/lower.ts +2011 -0
- package/src/parser.ts +3506 -0
- package/src/semantics.ts +392 -0
- package/src/token.ts +408 -0
- 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":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IACZ,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAID,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,IAAI,EAAE,SAAS,CAAA;IACf,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAA;AAEnE,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,aAAa,CAAA;AAExC,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,cAAc,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,0BAA0B,GAC1B,eAAe,GACf,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,yBAAyB,GACzB,2BAA2B,GAC3B,wBAAwB,GACxB,2BAA2B,GAC3B,qBAAqB,GACrB,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,qBAAqB,CAAA;AAEzB,sEAAsE;AACtE,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,sBAAsB,CAAA;AAI1B,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,CAAA;AAEvD,oFAAoF;AACpF,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,WAAW,CAAA;AAEf,2DAA2D;AAC3D,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAA;AAElE,wEAAwE;AACxE,MAAM,MAAM,MAAM,GAAG,WAAW,CAAA;AAIhC,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;IAC5B,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,IAAI,EAAE,WAAW,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,WAAW,CAAA;CACnB;AAID,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,SAAS,GACT,cAAc,GACd,WAAW,CAAA;AAEf,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,gBAAgB,CAAA;IACtB,QAAQ,EAAE,WAAW,CAAA;IACrB,0DAA0D;IAC1D,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,IAAI,EAAE,oBAAoB,CAAA;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,gBAAgB,CAAA;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,IAAI,CAAA;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,MAAM,CAAC,EAAE,IAAI,CAAA;CACd;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,EAAE,aAAa,CAAA;CACzB;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,gBAAgB,CAAA;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAID;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,6DAA6D;IAC7D,EAAE,CAAC,EAAE,WAAW,CAAA;IAChB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAClC,MAAM,CAAC,EAAE,IAAI,CAAA;CACd;AAED,MAAM,MAAM,IAAI,GACZ,WAAW,GACX,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,WAAW,GACX,aAAa,GACb,gBAAgB,CAAA;AAEpB,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,CAAA;AAEtE;;;;;;GAMG;AACH,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD,IAAI,EAAE,wBAAwB,CAAA;IAC9B,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,gBAAgB,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAA;CAClB;AAID;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAID,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD,IAAI,EAAE,wBAAwB,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD,IAAI,EAAE,wBAAwB,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,qBAAqB,CAAA;IACvC,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,eAAe,CAAC,EAAE,qBAAqB,CAAA;CACxC;AAED,MAAM,WAAW,0BAA2B,SAAQ,QAAQ;IAC1D,IAAI,EAAE,4BAA4B,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAA;IACvB,WAAW,EAAE,aAAa,CAAA;IAC1B,WAAW,CAAC,EAAE,SAAS,CAAA;CACxB;AAED,MAAM,WAAW,uBAAwB,SAAQ,QAAQ;IACvD,IAAI,EAAE,yBAAyB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,MAAM,WAAW,wBAAyB,SAAQ,QAAQ;IACxD,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,MAAM,WAAW,uBAAwB,SAAQ,QAAQ;IACvD,IAAI,EAAE,yBAAyB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAID,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,WAAW,EAAE,aAAa,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,IAAI,EAAE,qBAAqB,CAAA;IAC3B,WAAW,EAAE,aAAa,CAAA;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,aAAa,CAAA;CAC3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,uBAAuB,CAAA;IAC7B,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,IAAI,EAAE,qBAAqB,CAAA;IAC3B,WAAW,EAAE,oBAAoB,EAAE,CAAA;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,QAAQ;IACpD,IAAI,EAAE,sBAAsB,CAAA;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,uBAAuB,CAAA;IAC7B,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,IAAI,EAAE,qBAAqB,CAAA;IAC3B,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;CACnB;AAID;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,mBAAmB,GACnB,cAAc,GACd,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,GACnB,qBAAqB,CAAA;AAIzB,MAAM,WAAW,yBAA0B,SAAQ,QAAQ;IACzD,IAAI,EAAE,2BAA2B,CAAA;IACjC,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC;AAED,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IAC3D,IAAI,EAAE,6BAA6B,CAAA;IACnC,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC;AAED,MAAM,WAAW,wBAAyB,SAAQ,QAAQ;IACxD,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC;AAED,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IAC3D,IAAI,EAAE,6BAA6B,CAAA;IACnC,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,QAAQ,EAAE,CAAC,eAAe,GAAG,mBAAmB,CAAC,EAAE,CAAA;IACnD,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC;AAID,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,uBAAuB,CAAA;IAC7B,MAAM,EAAE,SAAS,CAAA;IACjB,WAAW,EAAE,aAAa,CAAA;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,IAAI,EAAE,oBAAoB,CAAA;IAC1B,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,gBAAgB,CAAA;IACtB,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,eAAe,CAAC,EAAE,WAAW,CAAA;IAC7B,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,uEAAuE;AACvE,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,uBAAuB,CAAA;IAC7B,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAID,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,UAAU,GACV,mBAAmB,GACnB,cAAc,GACd,OAAO,GACP,oBAAoB,GACpB,SAAS,GACT,MAAM,GACN,WAAW,GACX,OAAO,GACP,kBAAkB,GAClB,eAAe,GACf,OAAO,GACP,aAAa,GACb,gCAAgC,GAChC,UAAU,GACV,SAAS,GACT,kBAAkB,GAClB,uBAAuB,GACvB,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,iCAAiC;IACjC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,EAAE,CAAC,EAAE,WAAW,CAAA;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAID,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,iBAAiB,GACjB,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,mBAAmB,GACnB,oBAAoB,CAAA;AAExB,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,MAAM,EAAE,cAAc,CAAA;IACtB,wCAAwC;IACxC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAID,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,aAAa,GACb,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,CAAA;AAEf;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,gDAAgD;IAChD,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAID,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,gBAAgB,GAChB,SAAS,GACT,MAAM,GACN,YAAY,CAAA;AAEhB,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL,KAAK,GACL,SAAS,GACT,gBAAgB,GAChB,aAAa,CAAA;AAEjB,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,KAAK,GAAG,gBAAgB,CAAA;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB;AAID,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3B,qCAAqC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,OAAO,GAAG,WAAW,CAAA;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,mBAAmB,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAID,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD,IAAI,EAAE,wBAAwB,CAAA;IAC9B,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,WAAW,GACX,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,WAAW,GACX,YAAY,GACZ,aAAa,GACb,aAAa,GACb,gBAAgB,CAAA;AAEpB,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAA;IACnB,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,UAAU,CAAA;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAE3C,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,aAAa,CAAA;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,oFAAoF;IACpF,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;CAClB"}
|
package/dist/budget.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser budgets.
|
|
3
|
+
*
|
|
4
|
+
* KIP source reaches a server as agent-generated text, so the parser is an
|
|
5
|
+
* attack surface before it is a convenience. `parse` is recursive descent:
|
|
6
|
+
* without a depth ceiling, `[[[[...` recurses until the JavaScript stack
|
|
7
|
+
* overflows, and in an environment that shares one stack across requests
|
|
8
|
+
* (a Cloudflare Worker isolate, say) that takes the whole runtime down rather
|
|
9
|
+
* than failing the one request. The check runs on raw text, before a single
|
|
10
|
+
* token is produced, so a hostile input costs one linear scan.
|
|
11
|
+
*
|
|
12
|
+
* The values mirror `MAX_KIP_*` in `anda_kip`'s parser: a command rejected by
|
|
13
|
+
* one KIP engine's budget must be rejected by every other engine's, or the
|
|
14
|
+
* same command succeeds on one deployment and fails on another.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MAX_KIP_INPUT_LEN: number;
|
|
17
|
+
export declare const MAX_KIP_NESTING_DEPTH = 64;
|
|
18
|
+
export declare const MAX_KIP_BATCH_COMMANDS = 256;
|
|
19
|
+
/**
|
|
20
|
+
* Rejects source that exceeds a parser budget.
|
|
21
|
+
*
|
|
22
|
+
* The bracket scan must skip line comments exactly the way the lexer does.
|
|
23
|
+
* Counting a `"` inside a comment would latch the scanner into string mode
|
|
24
|
+
* for the rest of the input, after which every bracket goes uncounted and the
|
|
25
|
+
* depth ceiling silently stops existing — the failure mode is a guard that
|
|
26
|
+
* looks present and defends nothing.
|
|
27
|
+
*
|
|
28
|
+
* @throws {KipSyntaxError} `KIP_4002` when a budget is exceeded.
|
|
29
|
+
*/
|
|
30
|
+
export declare function checkBudget(source: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Rejects an over-long batch of commands.
|
|
33
|
+
*
|
|
34
|
+
* @throws {KipSyntaxError} `KIP_4002` when the batch is too large.
|
|
35
|
+
*/
|
|
36
|
+
export declare function checkBatchBudget(count: number): void;
|
|
37
|
+
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAC3C,eAAO,MAAM,qBAAqB,KAAK,CAAA;AACvC,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAEzC;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA8DhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMpD"}
|
package/dist/budget.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { resourceExhausted } from './errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parser budgets.
|
|
4
|
+
*
|
|
5
|
+
* KIP source reaches a server as agent-generated text, so the parser is an
|
|
6
|
+
* attack surface before it is a convenience. `parse` is recursive descent:
|
|
7
|
+
* without a depth ceiling, `[[[[...` recurses until the JavaScript stack
|
|
8
|
+
* overflows, and in an environment that shares one stack across requests
|
|
9
|
+
* (a Cloudflare Worker isolate, say) that takes the whole runtime down rather
|
|
10
|
+
* than failing the one request. The check runs on raw text, before a single
|
|
11
|
+
* token is produced, so a hostile input costs one linear scan.
|
|
12
|
+
*
|
|
13
|
+
* The values mirror `MAX_KIP_*` in `anda_kip`'s parser: a command rejected by
|
|
14
|
+
* one KIP engine's budget must be rejected by every other engine's, or the
|
|
15
|
+
* same command succeeds on one deployment and fails on another.
|
|
16
|
+
*/
|
|
17
|
+
export const MAX_KIP_INPUT_LEN = 256 * 1024;
|
|
18
|
+
export const MAX_KIP_NESTING_DEPTH = 64;
|
|
19
|
+
export const MAX_KIP_BATCH_COMMANDS = 256;
|
|
20
|
+
/**
|
|
21
|
+
* Rejects source that exceeds a parser budget.
|
|
22
|
+
*
|
|
23
|
+
* The bracket scan must skip line comments exactly the way the lexer does.
|
|
24
|
+
* Counting a `"` inside a comment would latch the scanner into string mode
|
|
25
|
+
* for the rest of the input, after which every bracket goes uncounted and the
|
|
26
|
+
* depth ceiling silently stops existing — the failure mode is a guard that
|
|
27
|
+
* looks present and defends nothing.
|
|
28
|
+
*
|
|
29
|
+
* @throws {KipSyntaxError} `KIP_4002` when a budget is exceeded.
|
|
30
|
+
*/
|
|
31
|
+
export function checkBudget(source) {
|
|
32
|
+
if (source.length > MAX_KIP_INPUT_LEN) {
|
|
33
|
+
throw resourceExhausted(`KIP input length ${source.length} exceeds maximum ${MAX_KIP_INPUT_LEN}`);
|
|
34
|
+
}
|
|
35
|
+
let depth = 0;
|
|
36
|
+
const stack = [];
|
|
37
|
+
let inString = false;
|
|
38
|
+
let escaped = false;
|
|
39
|
+
let inLineComment = false;
|
|
40
|
+
let prevSlash = false;
|
|
41
|
+
for (let i = 0; i < source.length; i++) {
|
|
42
|
+
const ch = source[i];
|
|
43
|
+
if (inLineComment) {
|
|
44
|
+
if (ch === '\n')
|
|
45
|
+
inLineComment = false;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (inString) {
|
|
49
|
+
prevSlash = false;
|
|
50
|
+
if (escaped) {
|
|
51
|
+
escaped = false;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (ch === '\\')
|
|
55
|
+
escaped = true;
|
|
56
|
+
else if (ch === '"')
|
|
57
|
+
inString = false;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (ch === '/') {
|
|
61
|
+
if (prevSlash) {
|
|
62
|
+
inLineComment = true;
|
|
63
|
+
prevSlash = false;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
prevSlash = true;
|
|
67
|
+
}
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
prevSlash = false;
|
|
71
|
+
if (ch === '"') {
|
|
72
|
+
inString = true;
|
|
73
|
+
}
|
|
74
|
+
else if (ch === '(' || ch === '[' || ch === '{') {
|
|
75
|
+
stack.push(ch);
|
|
76
|
+
depth = stack.length;
|
|
77
|
+
if (depth > MAX_KIP_NESTING_DEPTH) {
|
|
78
|
+
throw resourceExhausted(`KIP input nesting exceeds maximum ${MAX_KIP_NESTING_DEPTH}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (ch === ')') {
|
|
82
|
+
if (stack[stack.length - 1] === '(')
|
|
83
|
+
stack.pop();
|
|
84
|
+
}
|
|
85
|
+
else if (ch === ']') {
|
|
86
|
+
if (stack[stack.length - 1] === '[')
|
|
87
|
+
stack.pop();
|
|
88
|
+
}
|
|
89
|
+
else if (ch === '}') {
|
|
90
|
+
if (stack[stack.length - 1] === '{')
|
|
91
|
+
stack.pop();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Rejects an over-long batch of commands.
|
|
97
|
+
*
|
|
98
|
+
* @throws {KipSyntaxError} `KIP_4002` when the batch is too large.
|
|
99
|
+
*/
|
|
100
|
+
export function checkBatchBudget(count) {
|
|
101
|
+
if (count > MAX_KIP_BATCH_COMMANDS) {
|
|
102
|
+
throw resourceExhausted(`KIP batch of ${count} commands exceeds maximum ${MAX_KIP_BATCH_COMMANDS}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.d.ts
CHANGED
|
@@ -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
|
|
11
|
-
*
|
|
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,
|
|
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"}
|
package/dist/diagnostics.js
CHANGED
|
@@ -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
|
|
8
|
-
*
|
|
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
|
-
|
|
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
|
}
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -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":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Range } from './token.js';
|
|
2
|
+
/**
|
|
3
|
+
* The subset of the KIP error taxonomy this package can produce.
|
|
4
|
+
*
|
|
5
|
+
* A KIP engine owns the full taxonomy (schema, logic and execution codes);
|
|
6
|
+
* a language toolkit only ever reaches the parse-time codes. The `hint` that
|
|
7
|
+
* accompanies each code on the wire is deliberately *not* duplicated here —
|
|
8
|
+
* it is engine-side wire contract, and a second copy that drifts is worse
|
|
9
|
+
* than no copy at all.
|
|
10
|
+
*/
|
|
11
|
+
export type KipSyntaxCode = 'KIP_1001' | 'KIP_1002' | 'KIP_4002';
|
|
12
|
+
/**
|
|
13
|
+
* A fatal, single-error view of a KIP source problem.
|
|
14
|
+
*
|
|
15
|
+
* `parse` reports every problem it can recover from as a `Diagnostic`, which
|
|
16
|
+
* is what an editor wants. An engine wants the opposite: the first thing that
|
|
17
|
+
* makes the command unexecutable, thrown, with a code it can put on the wire.
|
|
18
|
+
* `lower` and `checkBudget` therefore throw this instead of accumulating.
|
|
19
|
+
*/
|
|
20
|
+
export declare class KipSyntaxError extends Error {
|
|
21
|
+
readonly code: KipSyntaxCode;
|
|
22
|
+
readonly range: Range | undefined;
|
|
23
|
+
constructor(code: KipSyntaxCode, message: string, range?: Range);
|
|
24
|
+
}
|
|
25
|
+
/** `KIP_1001 InvalidSyntax` — the command does not parse, or violates a grammar rule. */
|
|
26
|
+
export declare function invalidSyntax(message: string, range?: Range): KipSyntaxError;
|
|
27
|
+
/** `KIP_4002 ResourceExhausted` — the input exceeds a parser budget. */
|
|
28
|
+
export declare function resourceExhausted(message: string): KipSyntaxError;
|
|
29
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAEhE;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAA;gBAErB,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAMhE;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,cAAc,CAE5E;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAEjE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A fatal, single-error view of a KIP source problem.
|
|
3
|
+
*
|
|
4
|
+
* `parse` reports every problem it can recover from as a `Diagnostic`, which
|
|
5
|
+
* is what an editor wants. An engine wants the opposite: the first thing that
|
|
6
|
+
* makes the command unexecutable, thrown, with a code it can put on the wire.
|
|
7
|
+
* `lower` and `checkBudget` therefore throw this instead of accumulating.
|
|
8
|
+
*/
|
|
9
|
+
export class KipSyntaxError extends Error {
|
|
10
|
+
code;
|
|
11
|
+
range;
|
|
12
|
+
constructor(code, message, range) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'KipSyntaxError';
|
|
15
|
+
this.code = code;
|
|
16
|
+
this.range = range;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** `KIP_1001 InvalidSyntax` — the command does not parse, or violates a grammar rule. */
|
|
20
|
+
export function invalidSyntax(message, range) {
|
|
21
|
+
return new KipSyntaxError('KIP_1001', message, range);
|
|
22
|
+
}
|
|
23
|
+
/** `KIP_4002 ResourceExhausted` — the input exceeds a parser budget. */
|
|
24
|
+
export function resourceExhausted(message) {
|
|
25
|
+
return new KipSyntaxError('KIP_4002', message);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAe;IACnB,KAAK,CAAmB;IAEjC,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF;AAED,yFAAyF;AACzF,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAa;IAC1D,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AACvD,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC"}
|