@dseict/psc-interpreter 1.0.1 → 1.1.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/events.d.ts CHANGED
@@ -46,11 +46,11 @@ type PSCEventParamsMap = {
46
46
  post_eval_expr: PostEvalExprParams;
47
47
  };
48
48
  export type PSCEventType = keyof PSCEventParamsMap;
49
- export type PSCEventCallback<T extends PSCEventType = PSCEventType> = (params: PSCEventParamsMap[T]) => void;
49
+ export type PSCEventCallback<T extends PSCEventType = PSCEventType> = (params: PSCEventParamsMap[T]) => Promise<void> | void;
50
50
  export declare class PSCEventBus {
51
51
  #private;
52
52
  on<T extends PSCEventType>(eventType: T, handler: PSCEventCallback<T>): () => void;
53
- emit<T extends PSCEventType>(eventType: T, params: PSCEventParamsMap[T]): void;
53
+ emit<T extends PSCEventType>(eventType: T, params: PSCEventParamsMap[T]): Promise<void>;
54
54
  }
55
55
  export {};
56
56
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAErD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,KAAK,iBAAiB,GAAG;IACvB,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;IACnC,mBAAmB,EAAE,iBAAiB,CAAC;IACvC,oBAAoB,EAAE,kBAAkB,CAAC;IACzC,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C,uBAAuB,EAAE,oBAAoB,CAAC;IAC9C,0BAA0B,EAAE,uBAAuB,CAAC;IACpD,2BAA2B,EAAE,wBAAwB,CAAC;IACtD,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CACpE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,KACzB,IAAI,CAAC;AAEV,qBAAa,WAAW;;IAKtB,EAAE,CAAC,CAAC,SAAS,YAAY,EACvB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC3B,MAAM,IAAI;IAWb,IAAI,CAAC,CAAC,SAAS,YAAY,EACzB,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,IAAI;CAQR"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAErD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,KAAK,iBAAiB,GAAG;IACvB,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;IACnC,mBAAmB,EAAE,iBAAiB,CAAC;IACvC,oBAAoB,EAAE,kBAAkB,CAAC;IACzC,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C,uBAAuB,EAAE,oBAAoB,CAAC;IAC9C,0BAA0B,EAAE,uBAAuB,CAAC;IACpD,2BAA2B,EAAE,wBAAwB,CAAC;IACtD,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CACpE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,KACzB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,qBAAa,WAAW;;IAKtB,EAAE,CAAC,CAAC,SAAS,YAAY,EACvB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC3B,MAAM,IAAI;IAWP,IAAI,CAAC,CAAC,SAAS,YAAY,EAC/B,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;CAQjB"}
package/dist/events.js CHANGED
@@ -10,11 +10,11 @@ export class PSCEventBus {
10
10
  set?.delete(handler);
11
11
  };
12
12
  }
13
- emit(eventType, params) {
13
+ async emit(eventType, params) {
14
14
  const handlers = this.#handlers[eventType];
15
15
  if (handlers) {
16
16
  for (const handler of handlers) {
17
- handler(params);
17
+ await handler(params);
18
18
  }
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAmEA,MAAM,OAAO,WAAW;IACtB,SAAS,GAEL,EAAE,CAAC;IAEP,EAAE,CACA,SAAY,EACZ,OAA4B;QAE5B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CACF,SAAY,EACZ,MAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAmEA,MAAM,OAAO,WAAW;IACtB,SAAS,GAEL,EAAE,CAAC;IAEP,EAAE,CACA,SAAY,EACZ,OAA4B;QAE5B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAY,EACZ,MAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,6 @@ export declare class PSCInterpreter {
4
4
  #private;
5
5
  constructor(options?: Partial<PSCVisitorOptions>);
6
6
  interpret(code: string): Promise<void>;
7
- on(eventType: PSCEventType, handler: PSCEventCallback): void;
7
+ on<T extends PSCEventType>(eventType: T, handler: PSCEventCallback<T>): () => void;
8
8
  }
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,qBAAa,cAAc;;gBAGb,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAQ1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAG7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,qBAAa,cAAc;;gBAGb,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAQ1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,EAAE,CAAC,CAAC,SAAS,YAAY,EACvB,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC3B,MAAM,IAAI;CAGd"}
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ export class PSCInterpreter {
24
24
  await this.#visitor.visit(tree);
25
25
  }
26
26
  on(eventType, handler) {
27
- this.#visitor.on(eventType, handler);
27
+ return this.#visitor.on(eventType, handler);
28
28
  }
29
29
  }
30
30
  class PSCErrorListener extends ErrorListener {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAA0B,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,MAAM,OAAO,cAAc;IACzB,QAAQ,CAAsB;IAE9B,YAAY,OAAoC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC;YACtC,mBAAmB,EAAE,KAAK;YAC1B,eAAe,EAAE,CAAC;YAClB,GAAG,OAAO,EAAE,sDAAsD;SACnE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,KAAK,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,iCAAiC;QAChE,MAAM,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,EAAE,CAAC,SAAuB,EAAE,OAAyB;QACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,gBAAiB,SAAQ,aAAoB;IACxC,WAAW,CAClB,UAAiB,EACjB,eAAsB,EACtB,IAAY,EACZ,MAAc,EACd,GAAW;QAEX,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAA0B,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,MAAM,OAAO,cAAc;IACzB,QAAQ,CAAsB;IAE9B,YAAY,OAAoC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC;YACtC,mBAAmB,EAAE,KAAK;YAC1B,eAAe,EAAE,CAAC;YAClB,GAAG,OAAO,EAAE,sDAAsD;SACnE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,KAAK,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,iCAAiC;QAChE,MAAM,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,EAAE,CACA,SAAY,EACZ,OAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,gBAAiB,SAAQ,aAAoB;IACxC,WAAW,CAClB,UAAiB,EACjB,eAAsB,EACtB,IAAY,EACZ,MAAc,EACd,GAAW;QAEX,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveSequentially<T>(promises: Promise<T>[]): Promise<T[]>;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CAMd"}
package/dist/utils.js ADDED
@@ -0,0 +1,8 @@
1
+ export async function resolveSequentially(promises) {
2
+ const results = [];
3
+ for (const promise of promises) {
4
+ results.push(await promise);
5
+ }
6
+ return results;
7
+ }
8
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAsB;IAEtB,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/visitor.d.ts CHANGED
@@ -12,7 +12,7 @@ export type PSCTypes = string | number | boolean | PSCTypes[] | null | PSCSubpro
12
12
  export declare class PSCInterpretVisitor extends PSCParserVisitor<Promise<PSCTypes | Ref | void>> {
13
13
  #private;
14
14
  constructor(options: PSCVisitorOptions);
15
- on(eventType: PSCEventType, handler: PSCEventCallback): () => void;
15
+ on<T extends PSCEventType>(eventType: T, handler: PSCEventCallback<T>): () => void;
16
16
  visitProgram: (ctx: ProgramContext) => Promise<void>;
17
17
  visitExpr: (ctx: ExprContext) => Promise<PSCTypes>;
18
18
  visitOrExpr: (ctx: OrExprContext) => Promise<PSCTypes>;
@@ -1 +1 @@
1
- {"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
package/dist/visitor.js CHANGED
@@ -2,6 +2,7 @@ import PSCParser from "./_antlr/PSCParser";
2
2
  import PSCParserVisitor from "./_antlr/PSCParserVisitor";
3
3
  import { PSCAccessNonExistingVariableError, PSCArrayAccessNotArrayError, PSCConditionNotBooleanError, PSCForRangeNotIntegerError, PSCForVariableReuseError, PSCImpossibleError, PSCInvalidArrayIndexError, PSCOperationValueTypeMismatchError, PSCUnmatchedArgumentsError, } from "./error";
4
4
  import { PSCEventBus, } from "./events";
5
+ import { resolveSequentially } from "./utils";
5
6
  export class PSCInterpretVisitor extends PSCParserVisitor {
6
7
  #options;
7
8
  // Stack of variable scopes
@@ -146,9 +147,9 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
146
147
  ? ctx.stop.column + ctx.stop.stop - ctx.stop.start
147
148
  : undefined,
148
149
  };
149
- this.#eventBus.emit("pre_eval_expr", eventParams);
150
+ await this.#eventBus.emit("pre_eval_expr", { ...eventParams });
150
151
  const result = await this.visitOrExpr(ctx.orExpr());
151
- this.#eventBus.emit("post_eval_expr", { ...eventParams, result });
152
+ await this.#eventBus.emit("post_eval_expr", { ...eventParams, result });
152
153
  return result;
153
154
  };
154
155
  visitOrExpr = async (ctx) => {
@@ -335,7 +336,7 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
335
336
  };
336
337
  visitPrimaryExpr = async (ctx) => {
337
338
  if (ctx.LPAREN() && ctx.RPAREN()) {
338
- const args = await Promise.all(ctx.expr_list().map((expr) => this.visitExpr(expr)));
339
+ const args = await resolveSequentially(ctx.expr_list().map((expr) => this.visitExpr(expr)));
339
340
  const func = await this.visitPrimaryExpr(ctx.primaryExpr());
340
341
  if (typeof func !== "function") {
341
342
  throw new PSCOperationValueTypeMismatchError(ctx, "Function call", "function", this.#asString(ctx, func));
@@ -344,7 +345,7 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
344
345
  return await func(args);
345
346
  }
346
347
  else if (ctx.LSQUARE() && ctx.RSQUARE()) {
347
- const indices = await Promise.all(ctx.expr_list().map((expr) => this.visitExpr(expr)));
348
+ const indices = await resolveSequentially(ctx.expr_list().map((expr) => this.visitExpr(expr)));
348
349
  const leftArr = await this.visitPrimaryExpr(ctx.primaryExpr());
349
350
  return indices.reduce((arr, index) => {
350
351
  if (!Array.isArray(arr)) {
@@ -454,10 +455,10 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
454
455
  : undefined,
455
456
  stmtType: ruleName,
456
457
  };
457
- this.#eventBus.emit("pre_exec_stmt", eventParams);
458
+ await this.#eventBus.emit("pre_exec_stmt", { ...eventParams });
458
459
  // Dispatch appropriate visit method
459
460
  await this.visit(ctx.children[0]);
460
- this.#eventBus.emit("post_exec_stmt", eventParams);
461
+ await this.#eventBus.emit("post_exec_stmt", { ...eventParams });
461
462
  };
462
463
  visitBlock = async (ctx) => {
463
464
  if (this.#options.strictVariableScope) {
@@ -522,13 +523,13 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
522
523
  ? condition.stop.column + condition.stop.stop - condition.stop.start
523
524
  : undefined,
524
525
  };
525
- this.#eventBus.emit("pre_while_condition", eventParams);
526
+ await this.#eventBus.emit("pre_while_condition", { ...eventParams });
526
527
  const result = await this.visitExpr(condition);
527
528
  // Ensure the result is evaluated to a boolean value
528
529
  if (typeof result !== "boolean") {
529
530
  throw new PSCConditionNotBooleanError(ctx.expr(), `Condition must evaluate to a boolean value, got: ${result}`);
530
531
  }
531
- this.#eventBus.emit("post_while_condition", {
532
+ await this.#eventBus.emit("post_while_condition", {
532
533
  ...eventParams,
533
534
  shouldContinue: result,
534
535
  });
@@ -557,13 +558,13 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
557
558
  ? condition.stop.column + condition.stop.stop - condition.stop.start
558
559
  : undefined,
559
560
  };
560
- this.#eventBus.emit("pre_do_while_condition", eventParams);
561
+ await this.#eventBus.emit("pre_do_while_condition", { ...eventParams });
561
562
  result = await this.visitExpr(condition);
562
563
  // Ensure the result is evaluated to a boolean value
563
564
  if (typeof result !== "boolean") {
564
565
  throw new PSCConditionNotBooleanError(ctx.expr(), `Condition must evaluate to a boolean value, got: ${result}`);
565
566
  }
566
- this.#eventBus.emit("post_do_while_condition", {
567
+ await this.#eventBus.emit("post_do_while_condition", {
567
568
  ...eventParams,
568
569
  shouldContinue: result,
569
570
  });
@@ -588,13 +589,15 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
588
589
  ? condition.stop.column + condition.stop.stop - condition.stop.start
589
590
  : undefined,
590
591
  };
591
- this.#eventBus.emit("pre_repeat_until_condition", eventParams);
592
+ await this.#eventBus.emit("pre_repeat_until_condition", {
593
+ ...eventParams,
594
+ });
592
595
  result = await this.visitExpr(condition);
593
596
  // Ensure the result is evaluated to a boolean value
594
597
  if (typeof result !== "boolean") {
595
598
  throw new PSCConditionNotBooleanError(ctx.expr(), `Condition must evaluate to a boolean value, got: ${result}`);
596
599
  }
597
- this.#eventBus.emit("post_repeat_until_condition", {
600
+ await this.#eventBus.emit("post_repeat_until_condition", {
598
601
  ...eventParams,
599
602
  shouldContinue: !result,
600
603
  });
@@ -627,7 +630,7 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
627
630
  }
628
631
  let oldValue = undefined;
629
632
  for (let i = fromValue; isDown ? i >= toValue : i <= toValue; isDown ? i-- : i++) {
630
- this.#eventBus.emit("for_variable_change", {
633
+ await this.#eventBus.emit("for_variable_change", {
631
634
  startLine: ctx.FOR().symbol.line,
632
635
  startCol: ctx.FOR().symbol.column,
633
636
  endLine: toExpr.stop?.line,
@@ -662,7 +665,7 @@ export class PSCInterpretVisitor extends PSCParserVisitor {
662
665
  else if (ctx.lvalue() && ctx.LSQUARE() && ctx.RSQUARE()) {
663
666
  const leftRef = await this.visitLvalue(ctx.lvalue());
664
667
  const leftVal = leftRef.get();
665
- const unnormalizedIndices = await Promise.all(ctx.expr_list().map((expr) => this.visitExpr(expr)));
668
+ const unnormalizedIndices = await resolveSequentially(ctx.expr_list().map((expr) => this.visitExpr(expr)));
666
669
  return {
667
670
  get: () => {
668
671
  // In lvalue array access, since we allow implicit array creation,
@@ -1 +1 @@
1
- {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dseict/psc-interpreter",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "A DSE-style pseudocode interpreter written in TypeScript.",
5
5
  "keywords": [
6
6
  "dse",