simplex-lang 0.3.0 → 1.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 (51) hide show
  1. package/README.md +529 -12
  2. package/build/parser/index.js +1161 -479
  3. package/build/parser/index.js.map +1 -1
  4. package/build/src/compiler.d.ts +26 -18
  5. package/build/src/compiler.js +197 -463
  6. package/build/src/compiler.js.map +1 -1
  7. package/build/src/constants.d.ts +25 -0
  8. package/build/src/constants.js +29 -0
  9. package/build/src/constants.js.map +1 -0
  10. package/build/src/error-mapping.d.ts +31 -0
  11. package/build/src/error-mapping.js +72 -0
  12. package/build/src/error-mapping.js.map +1 -0
  13. package/build/src/errors.d.ts +8 -5
  14. package/build/src/errors.js +8 -10
  15. package/build/src/errors.js.map +1 -1
  16. package/build/src/index.d.ts +1 -0
  17. package/build/src/index.js +1 -0
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/simplex-tree.d.ts +25 -3
  20. package/build/src/simplex.peggy +120 -3
  21. package/build/src/tools/index.d.ts +17 -7
  22. package/build/src/tools/index.js +81 -17
  23. package/build/src/tools/index.js.map +1 -1
  24. package/build/src/version.js +1 -1
  25. package/build/src/visitors.d.ts +15 -0
  26. package/build/src/visitors.js +330 -0
  27. package/build/src/visitors.js.map +1 -0
  28. package/package.json +6 -5
  29. package/parser/index.js +1161 -479
  30. package/parser/index.js.map +1 -1
  31. package/src/compiler.ts +308 -610
  32. package/src/constants.ts +30 -0
  33. package/src/error-mapping.ts +112 -0
  34. package/src/errors.ts +8 -12
  35. package/src/index.ts +1 -0
  36. package/src/simplex-tree.ts +30 -2
  37. package/src/simplex.peggy +120 -3
  38. package/src/tools/index.ts +107 -22
  39. package/src/visitors.ts +491 -0
  40. package/build/src/tools/cast.d.ts +0 -2
  41. package/build/src/tools/cast.js +0 -20
  42. package/build/src/tools/cast.js.map +0 -1
  43. package/build/src/tools/ensure.d.ts +0 -3
  44. package/build/src/tools/ensure.js +0 -30
  45. package/build/src/tools/ensure.js.map +0 -1
  46. package/build/src/tools/guards.d.ts +0 -2
  47. package/build/src/tools/guards.js +0 -24
  48. package/build/src/tools/guards.js.map +0 -1
  49. package/src/tools/cast.ts +0 -26
  50. package/src/tools/ensure.ts +0 -41
  51. package/src/tools/guards.ts +0 -34
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare const TOPIC_TOKEN = "%";
2
+ export declare const GEN: {
3
+ readonly bool: "bool";
4
+ readonly bop: "bop";
5
+ readonly lop: "lop";
6
+ readonly uop: "uop";
7
+ readonly call: "call";
8
+ readonly getIdentifierValue: "getIdentifierValue";
9
+ readonly prop: "prop";
10
+ readonly pipe: "pipe";
11
+ readonly globals: "globals";
12
+ readonly get: "get";
13
+ readonly scope: "scope";
14
+ readonly _get: "_get";
15
+ readonly _scope: "_scope";
16
+ readonly _varNames: "_varNames";
17
+ readonly _varValues: "_varValues";
18
+ readonly ensObj: "ensObj";
19
+ readonly ensArr: "ensArr";
20
+ readonly str: "str";
21
+ readonly nna: "nna";
22
+ };
23
+ export declare const SCOPE_NAMES = 0;
24
+ export declare const SCOPE_VALUES = 1;
25
+ export declare const SCOPE_PARENT = 2;
@@ -0,0 +1,29 @@
1
+ // Topic reference token used in pipe expressions
2
+ export const TOPIC_TOKEN = '%';
3
+ // Generated variable names used in bootstrap code and visitors
4
+ export const GEN = {
5
+ bool: 'bool',
6
+ bop: 'bop',
7
+ lop: 'lop',
8
+ uop: 'uop',
9
+ call: 'call',
10
+ getIdentifierValue: 'getIdentifierValue',
11
+ prop: 'prop',
12
+ pipe: 'pipe',
13
+ globals: 'globals',
14
+ get: 'get',
15
+ scope: 'scope',
16
+ _get: '_get',
17
+ _scope: '_scope',
18
+ _varNames: '_varNames',
19
+ _varValues: '_varValues',
20
+ ensObj: 'ensObj',
21
+ ensArr: 'ensArr',
22
+ str: 'str',
23
+ nna: 'nna',
24
+ };
25
+ // Semantic indices into the scope array [names, values, parent]
26
+ export const SCOPE_NAMES = 0;
27
+ export const SCOPE_VALUES = 1;
28
+ export const SCOPE_PARENT = 2;
29
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAA;AAE9B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,kBAAkB,EAAE,oBAAoB;IACxC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACF,CAAA;AAEV,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { ExpressionError } from './errors.js';
2
+ import type { Location } from './simplex-tree.js';
3
+ import type { SourceLocation } from './visitors.js';
4
+ export type { SourceLocation };
5
+ export interface ErrorMapper {
6
+ /**
7
+ * Map a runtime error from generated code back to source expression location.
8
+ * Returns ExpressionError with source location, or null if unable to map.
9
+ *
10
+ * @param err — the caught runtime error
11
+ * @param expression — original SimplEx expression string
12
+ * @param offsets — source location mapping from code generation
13
+ * @param codeOffset — length of bootstrap code prepended before the expression
14
+ */
15
+ mapError(err: unknown, expression: string, offsets: SourceLocation[], codeOffset: number): ExpressionError | null;
16
+ /**
17
+ * Test if this mapper is compatible with the current JS engine.
18
+ * Called once during registration.
19
+ */
20
+ probe(): boolean;
21
+ }
22
+ /** Map a code column offset back to an AST Location via the offsets array. */
23
+ export declare function getExpressionErrorLocation(colOffset: number, locations: SourceLocation[]): Location | null;
24
+ export declare var v8ErrorMapper: ErrorMapper;
25
+ /**
26
+ * Register an ErrorMapper. If the mapper passes its probe(), it becomes
27
+ * the active mapper. Skips if the mapper is already active.
28
+ */
29
+ export declare function registerErrorMapper(mapper: ErrorMapper): void;
30
+ /** Get the currently active ErrorMapper (auto-detected or last registered). */
31
+ export declare function getActiveErrorMapper(): ErrorMapper | null;
@@ -0,0 +1,72 @@
1
+ import { ExpressionError } from './errors.js';
2
+ // --- Helper ---
3
+ /** Map a code column offset back to an AST Location via the offsets array. */
4
+ export function getExpressionErrorLocation(colOffset, locations) {
5
+ var curCol = 0;
6
+ for (const loc of locations) {
7
+ curCol += loc.len;
8
+ if (curCol >= colOffset)
9
+ return loc.location;
10
+ }
11
+ return null;
12
+ }
13
+ // --- V8 ErrorMapper ---
14
+ var V8_STACK_REGEX = /<anonymous>:(?<row>\d+):(?<col>\d+)/g;
15
+ export var v8ErrorMapper = {
16
+ probe() {
17
+ try {
18
+ new Function('throw new Error("__simplex_probe__")')();
19
+ }
20
+ catch (err) {
21
+ return /<anonymous>:\d+:\d+/.test(err.stack ?? '');
22
+ }
23
+ return false;
24
+ },
25
+ mapError(err, expression, offsets, codeOffset) {
26
+ if (!(err instanceof Error))
27
+ return null;
28
+ var evalRow = err.stack
29
+ ?.split('\n')
30
+ .map(r => r.trim())
31
+ .find(r => r.startsWith('at eval '));
32
+ if (!evalRow)
33
+ return null;
34
+ V8_STACK_REGEX.lastIndex = 0;
35
+ var match = V8_STACK_REGEX.exec(evalRow);
36
+ var rowStr = match?.groups?.['row'];
37
+ var colStr = match?.groups?.['col'];
38
+ if (!rowStr || !colStr)
39
+ return null;
40
+ var row = Number.parseInt(rowStr);
41
+ if (row !== 3)
42
+ return null;
43
+ var col = Number.parseInt(colStr);
44
+ var adjustedCol = col - codeOffset;
45
+ if (adjustedCol < 0)
46
+ return null;
47
+ var location = getExpressionErrorLocation(adjustedCol, offsets);
48
+ return new ExpressionError(err.message, expression, location, {
49
+ cause: err
50
+ });
51
+ }
52
+ };
53
+ // --- Registration ---
54
+ var activeErrorMapper = null;
55
+ /**
56
+ * Register an ErrorMapper. If the mapper passes its probe(), it becomes
57
+ * the active mapper. Skips if the mapper is already active.
58
+ */
59
+ export function registerErrorMapper(mapper) {
60
+ if (activeErrorMapper === mapper)
61
+ return;
62
+ if (mapper.probe()) {
63
+ activeErrorMapper = mapper;
64
+ }
65
+ }
66
+ /** Get the currently active ErrorMapper (auto-detected or last registered). */
67
+ export function getActiveErrorMapper() {
68
+ return activeErrorMapper;
69
+ }
70
+ // Auto-register V8 mapper at module load
71
+ registerErrorMapper(v8ErrorMapper);
72
+ //# sourceMappingURL=error-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapping.js","sourceRoot":"","sources":["../../src/error-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAgC7C,iBAAiB;AAEjB,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CACxC,SAAiB,EACjB,SAA2B;IAE3B,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAA;QACjB,IAAI,MAAM,IAAI,SAAS;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAA;IAC9C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yBAAyB;AAEzB,IAAI,cAAc,GAAG,sCAAsC,CAAA;AAE3D,MAAM,CAAC,IAAI,aAAa,GAAgB;IACtC,KAAK;QACH,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAA;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,qBAAqB,CAAC,IAAI,CAAE,GAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU;QAC3C,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAExC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK;YACrB,EAAE,KAAK,CAAC,IAAI,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAEzB,cAAc,CAAC,SAAS,GAAG,CAAC,CAAA;QAC5B,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAEnC,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,GAAG,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAE1B,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,WAAW,GAAG,GAAG,GAAG,UAAU,CAAA;QAClC,IAAI,WAAW,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAEhC,IAAI,QAAQ,GAAG,0BAA0B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC/D,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;YAC5D,KAAK,EAAE,GAAG;SACX,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,uBAAuB;AAEvB,IAAI,iBAAiB,GAAuB,IAAI,CAAA;AAEhD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,IAAI,iBAAiB,KAAK,MAAM;QAAE,OAAM;IACxC,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,iBAAiB,GAAG,MAAM,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB;IAClC,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,yCAAyC;AACzC,mBAAmB,CAAC,aAAa,CAAC,CAAA"}
@@ -1,14 +1,17 @@
1
1
  import { Location } from './simplex-tree.js';
2
- export declare class ExpressionError extends Error {
2
+ /** Base error with source expression and location info. */
3
+ export declare class SimplexError extends Error {
3
4
  expression: string;
4
5
  location: Location | null;
5
6
  constructor(message: string, expression: string, location: Location | null, options?: ErrorOptions);
6
7
  }
7
- export declare class CompileError extends Error {
8
- expression: string;
9
- location: Location | null;
10
- constructor(message: string, expression: string, location: Location | null, options?: ErrorOptions);
8
+ /** Runtime error thrown when expression evaluation fails (e.g. unknown identifier). */
9
+ export declare class ExpressionError extends SimplexError {
10
+ }
11
+ /** Error thrown during compilation (e.g. duplicate let bindings, invalid keys). */
12
+ export declare class CompileError extends SimplexError {
11
13
  }
14
+ /** TypeError with expected-vs-actual type info (e.g. "Expected number, but got string"). */
12
15
  export declare class UnexpectedTypeError extends TypeError {
13
16
  expectedTypes: string[];
14
17
  receivedValue: unknown;
@@ -1,5 +1,6 @@
1
1
  import { typeOf } from './tools/index.js';
2
- export class ExpressionError extends Error {
2
+ /** Base error with source expression and location info. */
3
+ export class SimplexError extends Error {
3
4
  expression;
4
5
  location;
5
6
  constructor(message, expression, location, options) {
@@ -9,16 +10,13 @@ export class ExpressionError extends Error {
9
10
  this.name = this.constructor.name;
10
11
  }
11
12
  }
12
- export class CompileError extends Error {
13
- expression;
14
- location;
15
- constructor(message, expression, location, options) {
16
- super(message, options);
17
- this.expression = expression;
18
- this.location = location;
19
- this.name = this.constructor.name;
20
- }
13
+ /** Runtime error thrown when expression evaluation fails (e.g. unknown identifier). */
14
+ export class ExpressionError extends SimplexError {
15
+ }
16
+ /** Error thrown during compilation (e.g. duplicate let bindings, invalid keys). */
17
+ export class CompileError extends SimplexError {
21
18
  }
19
+ /** TypeError with expected-vs-actual type info (e.g. "Expected number, but got string"). */
22
20
  export class UnexpectedTypeError extends TypeError {
23
21
  expectedTypes;
24
22
  receivedValue;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAG/B;IACA;IAHT,YACE,OAAe,EACR,UAAkB,EAClB,QAAyB,EAChC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAJhB,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAiB;QAIhC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG5B;IACA;IAHT,YACE,OAAe,EACR,UAAkB,EAClB,QAAyB,EAChC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAJhB,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAiB;QAIhC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAIvC;IACA;IAJT,WAAW,GAAG,iBAAiB,CAAA;IAE/B,YACS,aAAuB,EACvB,aAAsB;QAE7B,KAAK,CACH,YAAY,aAAa,CAAC,MAAM,KAAK,CAAC;YACpC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,aAAa;iBACZ,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACpB,OAAO,CAAC,CAAC,EAAE,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACZ,IAAI,CAAC,EAAE,CACZ,aAAa,MAAM,CAAC,aAAa,CAAC,UAAU,CAC7C,CAAA;QAbM,kBAAa,GAAb,aAAa,CAAU;QACvB,kBAAa,GAAb,aAAa,CAAS;QAa7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,2DAA2D;AAC3D,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG5B;IACA;IAHT,YACE,OAAe,EACR,UAAkB,EAClB,QAAyB,EAChC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAJhB,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAiB;QAIhC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF;AAED,uFAAuF;AACvF,MAAM,OAAO,eAAgB,SAAQ,YAAY;CAAG;AAEpD,mFAAmF;AACnF,MAAM,OAAO,YAAa,SAAQ,YAAY;CAAG;AAEjD,4FAA4F;AAC5F,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAIvC;IACA;IAJT,WAAW,GAAG,iBAAiB,CAAA;IAE/B,YACS,aAAuB,EACvB,aAAsB;QAE7B,KAAK,CACH,YAAY,aAAa,CAAC,MAAM,KAAK,CAAC;YACpC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,aAAa;iBACZ,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACpB,OAAO,CAAC,CAAC,EAAE,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACZ,IAAI,CAAC,EAAE,CACZ,aAAa,MAAM,CAAC,aAAa,CAAC,UAAU,CAC7C,CAAA;QAbM,kBAAa,GAAb,aAAa,CAAU;QACvB,kBAAa,GAAb,aAAa,CAAS;QAa7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  export * from './compiler.js';
2
+ export * from './error-mapping.js';
2
3
  export * from './errors.js';
3
4
  export * from './simplex-tree.js';
4
5
  export * from './tools/index.js';
@@ -1,4 +1,5 @@
1
1
  export * from './compiler.js';
2
+ export * from './error-mapping.js';
2
3
  export * from './errors.js';
3
4
  export * from './simplex-tree.js';
4
5
  export * from './tools/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA"}
@@ -1,4 +1,4 @@
1
- export type Expression = ArrayExpression | BinaryExpression | CallExpression | ConditionalExpression | IdentifierExpression | LogicalExpression | LiteralExpression | MemberExpression | ObjectExpression | NullishCoalescingExpression | PipeSequence | TopicReference | UnaryExpression | LambdaExpression | LetExpression;
1
+ export type Expression = ArrayExpression | BinaryExpression | CallExpression | ConditionalExpression | IdentifierExpression | LogicalExpression | LiteralExpression | MemberExpression | NonNullAssertExpression | ObjectExpression | NullishCoalescingExpression | PipeSequence | TemplateLiteralExpression | TopicReference | UnaryExpression | LambdaExpression | LetExpression;
2
2
  export type ExpressionType = Expression['type'];
3
3
  export type ExpressionByType = {
4
4
  [P in ExpressionType]: Extract<Expression, {
@@ -33,17 +33,23 @@ export interface PropertyAssignment {
33
33
  type: 'Property';
34
34
  key: Expression;
35
35
  value: Expression;
36
+ computed: boolean;
36
37
  kind: 'init';
37
38
  location: Location;
38
39
  }
40
+ export interface SpreadElement {
41
+ type: 'SpreadElement';
42
+ argument: Expression;
43
+ location: Location;
44
+ }
39
45
  export interface ObjectExpression {
40
46
  type: 'ObjectExpression';
41
- properties: PropertyAssignment[];
47
+ properties: (PropertyAssignment | SpreadElement)[];
42
48
  location: Location;
43
49
  }
44
50
  export interface ArrayExpression {
45
51
  type: 'ArrayExpression';
46
- elements: (Expression | null)[];
52
+ elements: (Expression | SpreadElement | null)[];
47
53
  location: Location;
48
54
  }
49
55
  export type MemberExpression = {
@@ -136,3 +142,19 @@ export interface LetExpression {
136
142
  expression: Expression;
137
143
  location: Location;
138
144
  }
145
+ export interface TemplateElement {
146
+ value: string;
147
+ location: Location;
148
+ }
149
+ export interface NonNullAssertExpression {
150
+ type: 'NonNullAssertExpression';
151
+ expression: Expression;
152
+ location: Location;
153
+ }
154
+ export interface TemplateLiteralExpression {
155
+ type: 'TemplateLiteral';
156
+ tag: Expression | null;
157
+ quasis: TemplateElement[];
158
+ expressions: Expression[];
159
+ location: Location;
160
+ }
@@ -271,6 +271,47 @@ SingleStringCharacter
271
271
  / "\\" sequence:EscapeSequence { return sequence; }
272
272
  / LineContinuation
273
273
 
274
+ TemplateLiteral "template literal"
275
+ = "`" head:TemplateCharacter* parts:TemplatePart* "`" {
276
+ var quasis = [];
277
+ var expressions = [];
278
+
279
+ quasis.push({
280
+ value: head.join(""),
281
+ location: getLocation(location())
282
+ });
283
+
284
+ for (var i = 0; i < parts.length; i++) {
285
+ expressions.push(parts[i].expression);
286
+ quasis.push({
287
+ value: (parts[i].suffix || []).join(""),
288
+ location: getLocation(location())
289
+ });
290
+ }
291
+
292
+ return {
293
+ type: "TemplateLiteral",
294
+ tag: null,
295
+ quasis: quasis,
296
+ expressions: expressions,
297
+ location: getLocation(location())
298
+ };
299
+ }
300
+
301
+ TemplatePart
302
+ = "${" __ expression:Expression __ "}" suffix:TemplateCharacter* {
303
+ return { expression: expression, suffix: suffix };
304
+ }
305
+
306
+ TemplateCharacter
307
+ = "\\" sequence:TemplateEscapeSequence { return sequence; }
308
+ / !("`" / "${" / "\\") SourceCharacter { return text(); }
309
+
310
+ TemplateEscapeSequence
311
+ = "`" { return "`"; }
312
+ / "$" { return "$"; }
313
+ / EscapeSequence
314
+
274
315
  LineContinuation
275
316
  = "\\" LineTerminatorSequence { return ""; }
276
317
 
@@ -381,6 +422,7 @@ PrimaryExpression
381
422
  = Identifier
382
423
  / Literal
383
424
  / TopicReference
425
+ / TemplateLiteral
384
426
  / ArrayLiteral
385
427
  / ObjectLiteral
386
428
  / "(" __ expression:Expression __ ")" { return expression; }
@@ -410,12 +452,12 @@ ArrayLiteral
410
452
 
411
453
  ElementList
412
454
  = head:(
413
- elision:(Elision __)? element:Expression {
455
+ elision:(Elision __)? element:(SpreadElement / Expression) {
414
456
  return optionalList(extractOptional(elision, 0)).concat(element);
415
457
  }
416
458
  )
417
459
  tail:(
418
- __ "," __ elision:(Elision __)? element:Expression {
460
+ __ "," __ elision:(Elision __)? element:(SpreadElement / Expression) {
419
461
  return optionalList(extractOptional(elision, 0)).concat(element);
420
462
  }
421
463
  )*
@@ -452,12 +494,33 @@ PropertyNameAndValueList
452
494
  return buildList(head, tail, 3);
453
495
  }
454
496
 
497
+ SpreadElement
498
+ = "..." __ argument:Expression {
499
+ return {
500
+ type: "SpreadElement",
501
+ argument: argument,
502
+ location: getLocation(location())
503
+ };
504
+ }
505
+
455
506
  PropertyAssignment
456
- = key:PropertyName __ ":" __ value:Expression {
507
+ = SpreadElement
508
+ / key:PropertyName __ ":" __ value:Expression {
509
+ return {
510
+ type: "Property",
511
+ key: key,
512
+ value: value,
513
+ computed: false,
514
+ kind: "init",
515
+ location: getLocation(location())
516
+ };
517
+ }
518
+ / "[" __ key:Expression __ "]" __ ":" __ value:Expression {
457
519
  return {
458
520
  type: "Property",
459
521
  key: key,
460
522
  value: value,
523
+ computed: true,
461
524
  kind: "init",
462
525
  location: getLocation(location())
463
526
  };
@@ -488,9 +551,31 @@ MemberExpression
488
551
  property: property, computed: false, extension: true, location: getLocation(location())
489
552
  };
490
553
  }
554
+ / __ template:TemplateLiteral {
555
+ return {
556
+ tagged: true, template: template, location: getLocation(location())
557
+ };
558
+ }
559
+ / "!" !"=" {
560
+ return {
561
+ nonNullAssert: true, location: getLocation(location())
562
+ };
563
+ }
491
564
  )*
492
565
  {
493
566
  return tail.reduce(function(result, element) {
567
+ if (element.tagged) {
568
+ element.template.tag = result;
569
+ element.template.location = getLocation(location());
570
+ return element.template;
571
+ }
572
+ if (element.nonNullAssert) {
573
+ return {
574
+ type: "NonNullAssertExpression",
575
+ expression: result,
576
+ location: element.location
577
+ };
578
+ }
494
579
  return {
495
580
  type: "MemberExpression",
496
581
  object: result,
@@ -534,12 +619,44 @@ CallExpression
534
619
  type: "MemberExpression",
535
620
  property: property,
536
621
  computed: false,
622
+ extension: false,
623
+ location: getLocation(location())
624
+ };
625
+ }
626
+ / __ "::" __ property:IdentifierName {
627
+ return {
628
+ type: "MemberExpression",
629
+ property: property,
630
+ computed: false,
631
+ extension: true,
537
632
  location: getLocation(location())
538
633
  };
539
634
  }
635
+ / __ template:TemplateLiteral {
636
+ return {
637
+ tagged: true, template: template, location: getLocation(location())
638
+ };
639
+ }
640
+ / "!" !"=" {
641
+ return {
642
+ nonNullAssert: true, location: getLocation(location())
643
+ };
644
+ }
540
645
  )*
541
646
  {
542
647
  return tail.reduce(function(result, element) {
648
+ if (element.tagged) {
649
+ element.template.tag = result;
650
+ element.template.location = getLocation(location());
651
+ return element.template;
652
+ }
653
+ if (element.nonNullAssert) {
654
+ return {
655
+ type: "NonNullAssertExpression",
656
+ expression: result,
657
+ location: element.location
658
+ };
659
+ }
543
660
  element[TYPES_TO_PROPERTY_NAMES[element.type]] = result;
544
661
 
545
662
  return element;
@@ -1,14 +1,7 @@
1
- export * from './cast.js';
2
- export * from './ensure.js';
3
- export * from './guards.js';
4
1
  /**
5
2
  * Alias for `Object.prototype.toString`
6
3
  */
7
4
  export declare const objToStringAlias: () => string;
8
- /**
9
- * Converts instances of Number, String and Boolean to primitives
10
- */
11
- export declare function unbox(val: unknown): unknown;
12
5
  /**
13
6
  * The method is needed to obtain the most specific readable data type.
14
7
  *
@@ -18,3 +11,20 @@ export declare function unbox(val: unknown): unknown;
18
11
  * `typeOf(some) === "FiniteNumber"`.
19
12
  */
20
13
  export declare function typeOf(val: unknown): string;
14
+ /** Check if value is a plain object (not Array, Map, etc.). */
15
+ export declare function isObject(val: unknown): val is object;
16
+ export declare function isSimpleValue(val: unknown): val is number | string | boolean | bigint | null | undefined;
17
+ /** Coerce any value to boolean (standard JS truthiness). */
18
+ export declare function castToBoolean(val: unknown): boolean;
19
+ /** Coerce value to string; objects use Object.prototype.toString. */
20
+ export declare function castToString(val: unknown): string;
21
+ /** Validate that value is a finite number or bigint; throw UnexpectedTypeError otherwise. */
22
+ export declare function ensureNumber(val: unknown): number | bigint;
23
+ /** Validate that value is a function; throw UnexpectedTypeError otherwise. */
24
+ export declare function ensureFunction(val: unknown): Function;
25
+ /** Validate that value is a plain object; throw UnexpectedTypeError otherwise. */
26
+ export declare function ensureObject(val: unknown): object;
27
+ /** Validate that value is an array; throw UnexpectedTypeError otherwise. */
28
+ export declare function ensureArray(val: unknown): unknown[];
29
+ /** Validate that value is comparable (<, >, <=, >=); must be number, bigint, or string. */
30
+ export declare function ensureRelationalComparable(val: unknown): number | string | bigint;