tla-ts 0.0.1 → 0.0.2

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 (57) hide show
  1. package/README.md +34 -41
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.d.cts +166 -30
  4. package/dist/index.d.ts +166 -30
  5. package/dist/index.js +1 -1
  6. package/dist/parallel-worker.cjs +2 -2
  7. package/dist/parallel-worker.js +2 -2
  8. package/dist/parallel.cjs +1 -1
  9. package/dist/parallel.js +2 -2
  10. package/dist/run-cli.cjs +2 -1
  11. package/dist/run-cli.js +2 -1
  12. package/dist/transfer.cjs +388 -39
  13. package/dist/transfer.js +388 -39
  14. package/package.json +4 -2
  15. package/src/ast.ts +82 -5
  16. package/src/bags.ts +161 -71
  17. package/src/builtins.ts +203 -23
  18. package/src/bundled-modules.ts +63 -32
  19. package/src/check.ts +904 -230
  20. package/src/codegen.ts +52 -18
  21. package/src/config.ts +39 -11
  22. package/src/environment.ts +485 -140
  23. package/src/errors.ts +22 -0
  24. package/src/evaluate.ts +486 -136
  25. package/src/exit-codes.ts +75 -0
  26. package/src/fingerprints.ts +2 -2
  27. package/src/index.ts +9 -4
  28. package/src/instances.ts +221 -66
  29. package/src/java-overrides.ts +241 -0
  30. package/src/json.ts +153 -72
  31. package/src/levels.ts +850 -0
  32. package/src/lexer.ts +97 -27
  33. package/src/liveness.ts +47 -91
  34. package/src/parallel-worker.ts +57 -28
  35. package/src/parallel.ts +116 -62
  36. package/src/parser.ts +703 -183
  37. package/src/pretty-print.ts +259 -0
  38. package/src/randomization.ts +24 -113
  39. package/src/resolve.ts +472 -41
  40. package/src/run-cli.ts +142 -44
  41. package/src/runtime.ts +63 -28
  42. package/src/spec-description.ts +509 -0
  43. package/src/standard-levels.ts +105 -0
  44. package/src/standard-modules.ts +223 -92
  45. package/src/subexpressions.ts +21 -35
  46. package/src/substitution-levels.ts +184 -0
  47. package/src/successors.ts +261 -46
  48. package/src/symmetry.ts +65 -21
  49. package/src/tableau.ts +43 -37
  50. package/src/tlc-ext.ts +120 -33
  51. package/src/tlc-module.ts +71 -47
  52. package/src/tlc-modules.ts +1022 -0
  53. package/src/tlc-order.ts +497 -0
  54. package/src/tlc-random.ts +411 -0
  55. package/src/tlc-summary.ts +109 -0
  56. package/src/transfer.ts +4 -4
  57. package/src/values.ts +1186 -164
package/src/errors.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { EXIT_STATUS, getExitCode, setModuleExitCode } from "./exit-codes";
2
+
1
3
  export class TlaError extends Error {
2
4
  constructor(message: string, cause?: unknown) {
3
5
  super(message, { cause });
@@ -26,9 +28,29 @@ export class TlaEvaluationError extends TlaError {
26
28
  }
27
29
  }
28
30
 
31
+ // An evaluation error that TLC raises as an EvalException from a standard module's Java code. It
32
+ // keeps the name TlaEvaluationError, and index.ts doesn't export it.
33
+ export class TlaModuleError extends TlaEvaluationError {
34
+ constructor(message: string, exitCode: number = EXIT_STATUS.error) {
35
+ super(message);
36
+ this.name = "TlaEvaluationError";
37
+ setModuleExitCode(this, exitCode);
38
+ }
39
+ }
40
+
29
41
  export class TlaUnsupportedError extends TlaError {
30
42
  constructor(message: string, cause?: unknown) {
31
43
  super(message, cause);
32
44
  this.name = "TlaUnsupportedError";
33
45
  }
34
46
  }
47
+
48
+ export const getErrorExitCode = (error: TlaError) =>
49
+ getExitCode(error) ??
50
+ (error instanceof TlaSyntaxError
51
+ ? EXIT_STATUS.specParseError
52
+ : error instanceof TlaConfigError
53
+ ? EXIT_STATUS.configParseError
54
+ : error instanceof TlaEvaluationError
55
+ ? EXIT_STATUS.specEvaluationFailure
56
+ : EXIT_STATUS.error);