greybel-interpreter 0.7.2 → 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 (137) hide show
  1. package/.editorconfig +15 -0
  2. package/.eslintrc +48 -0
  3. package/LICENSE +21 -21
  4. package/README.md +2 -2
  5. package/dist/context.d.ts +107 -98
  6. package/dist/context.js +358 -456
  7. package/dist/cps.d.ts +15 -17
  8. package/dist/cps.js +220 -872
  9. package/dist/handler/error.d.ts +6 -0
  10. package/dist/{operations/debugger.js → handler/error.js} +35 -32
  11. package/dist/handler/output.d.ts +6 -0
  12. package/dist/{operations/if.js → handler/output.js} +35 -31
  13. package/dist/handler/resource.d.ts +12 -0
  14. package/dist/handler/resource.js +51 -0
  15. package/dist/handler-container.d.ts +14 -0
  16. package/dist/handler-container.js +16 -0
  17. package/dist/index.d.ts +44 -36
  18. package/dist/index.js +129 -93
  19. package/dist/interpreter.d.ts +39 -29
  20. package/dist/interpreter.js +292 -210
  21. package/dist/intrinsics-container.d.ts +7 -0
  22. package/dist/intrinsics-container.js +19 -0
  23. package/dist/operations/assign.d.ts +13 -0
  24. package/dist/operations/assign.js +111 -0
  25. package/dist/operations/block.d.ts +12 -0
  26. package/dist/operations/{body.js → block.js} +108 -140
  27. package/dist/operations/break.d.ts +10 -7
  28. package/dist/operations/break.js +41 -34
  29. package/dist/operations/call.d.ts +13 -0
  30. package/dist/operations/call.js +124 -0
  31. package/dist/operations/chunk.d.ts +12 -0
  32. package/dist/operations/chunk.js +85 -0
  33. package/dist/operations/continue.d.ts +10 -7
  34. package/dist/operations/continue.js +41 -34
  35. package/dist/operations/debugger-statement.d.ts +10 -0
  36. package/dist/operations/{else-if.js → debugger-statement.js} +39 -31
  37. package/dist/operations/evaluate.d.ts +39 -0
  38. package/dist/operations/evaluate.js +366 -0
  39. package/dist/operations/for.d.ts +15 -16
  40. package/dist/operations/for.js +146 -143
  41. package/dist/operations/function-reference.d.ts +12 -0
  42. package/dist/operations/function-reference.js +103 -0
  43. package/dist/operations/function.d.ts +12 -26
  44. package/dist/operations/function.js +198 -145
  45. package/dist/operations/if-statement.d.ts +19 -8
  46. package/dist/operations/if-statement.js +181 -169
  47. package/dist/operations/import.d.ts +14 -0
  48. package/dist/{expressions/include.js → operations/import.js} +115 -132
  49. package/dist/operations/include.d.ts +13 -0
  50. package/dist/operations/include.js +95 -0
  51. package/dist/operations/list.d.ts +11 -0
  52. package/dist/{expressions → operations}/list.js +111 -142
  53. package/dist/operations/literal.d.ts +11 -0
  54. package/dist/operations/literal.js +58 -0
  55. package/dist/operations/map.d.ts +11 -0
  56. package/dist/operations/{argument.js → map.js} +167 -145
  57. package/dist/operations/negated-binary.d.ts +11 -0
  58. package/dist/{expressions/binary-negated-expression.js → operations/negated-binary.js} +109 -127
  59. package/dist/operations/new-instance.d.ts +11 -0
  60. package/dist/operations/{new.js → new-instance.js} +100 -97
  61. package/dist/operations/noop.d.ts +9 -0
  62. package/dist/operations/{else.js → noop.js} +36 -30
  63. package/dist/operations/not.d.ts +11 -11
  64. package/dist/operations/not.js +96 -96
  65. package/dist/operations/operation.d.ts +13 -0
  66. package/dist/operations/operation.js +11 -0
  67. package/dist/operations/reference.d.ts +9 -11
  68. package/dist/operations/reference.js +37 -103
  69. package/dist/operations/resolve.d.ts +38 -0
  70. package/dist/operations/resolve.js +330 -0
  71. package/dist/operations/return.d.ts +11 -11
  72. package/dist/operations/return.js +101 -106
  73. package/dist/operations/while.d.ts +13 -14
  74. package/dist/operations/while.js +129 -145
  75. package/dist/types/boolean.d.ts +11 -0
  76. package/dist/{custom-types → types}/boolean.js +46 -47
  77. package/dist/types/default.d.ts +11 -0
  78. package/dist/types/default.js +20 -0
  79. package/dist/types/function.d.ts +32 -0
  80. package/dist/types/function.js +174 -0
  81. package/dist/types/generics.d.ts +17 -0
  82. package/dist/types/{operation.js → generics.js} +40 -38
  83. package/dist/types/interface.d.ts +22 -0
  84. package/dist/types/interface.js +102 -0
  85. package/dist/types/list.d.ts +31 -0
  86. package/dist/types/list.js +227 -0
  87. package/dist/types/map.d.ts +30 -0
  88. package/dist/types/map.js +224 -0
  89. package/dist/types/nil.d.ts +9 -0
  90. package/dist/{custom-types → types}/nil.js +44 -44
  91. package/dist/types/number.d.ts +11 -0
  92. package/dist/{custom-types → types}/number.js +46 -47
  93. package/dist/types/string.d.ts +33 -0
  94. package/dist/types/string.js +149 -0
  95. package/dist/utils/path.d.ts +10 -0
  96. package/dist/utils/path.js +59 -0
  97. package/package.json +58 -44
  98. package/dist/custom-types/boolean.d.ts +0 -12
  99. package/dist/custom-types/list.d.ts +0 -26
  100. package/dist/custom-types/list.js +0 -236
  101. package/dist/custom-types/map.d.ts +0 -26
  102. package/dist/custom-types/map.js +0 -245
  103. package/dist/custom-types/nil.d.ts +0 -10
  104. package/dist/custom-types/number.d.ts +0 -12
  105. package/dist/custom-types/string.d.ts +0 -25
  106. package/dist/custom-types/string.js +0 -172
  107. package/dist/expressions/assign.d.ts +0 -13
  108. package/dist/expressions/assign.js +0 -174
  109. package/dist/expressions/binary-negated-expression.d.ts +0 -18
  110. package/dist/expressions/call.d.ts +0 -14
  111. package/dist/expressions/call.js +0 -209
  112. package/dist/expressions/import.d.ts +0 -14
  113. package/dist/expressions/import.js +0 -155
  114. package/dist/expressions/include.d.ts +0 -13
  115. package/dist/expressions/list.d.ts +0 -14
  116. package/dist/expressions/logical-and-binary.d.ts +0 -22
  117. package/dist/expressions/logical-and-binary.js +0 -222
  118. package/dist/expressions/map.d.ts +0 -19
  119. package/dist/expressions/map.js +0 -197
  120. package/dist/expressions/path.d.ts +0 -31
  121. package/dist/expressions/path.js +0 -384
  122. package/dist/operations/argument.d.ts +0 -8
  123. package/dist/operations/body.d.ts +0 -8
  124. package/dist/operations/debugger.d.ts +0 -7
  125. package/dist/operations/else-if.d.ts +0 -12
  126. package/dist/operations/else.d.ts +0 -10
  127. package/dist/operations/if.d.ts +0 -12
  128. package/dist/operations/new.d.ts +0 -11
  129. package/dist/resource.d.ts +0 -9
  130. package/dist/resource.js +0 -29
  131. package/dist/typer.d.ts +0 -6
  132. package/dist/typer.js +0 -95
  133. package/dist/types/custom-type.d.ts +0 -22
  134. package/dist/types/custom-type.js +0 -67
  135. package/dist/types/expression.d.ts +0 -7
  136. package/dist/types/expression.js +0 -9
  137. package/dist/types/operation.d.ts +0 -10
package/dist/cps.d.ts CHANGED
@@ -1,17 +1,15 @@
1
- import { ASTBase } from 'greybel-core';
2
- import { ResourceHandler } from './resource';
3
- export interface CPSMapType {
4
- [key: string]: (item: ASTBase) => any;
5
- }
6
- export interface CPSMapContext {
7
- target: string;
8
- resourceHandler: ResourceHandler;
9
- currentTarget?: string;
10
- }
11
- export declare const CPSMap: (visit: (o: ASTBase) => any, context: CPSMapContext) => CPSMapType;
12
- export default class CPS {
13
- cpsMap: CPSMapType;
14
- context: CPSMapContext;
15
- constructor(context: CPSMapContext);
16
- visit(o: ASTBase): Promise<any>;
17
- }
1
+ import { ASTBase } from 'greyscript-core';
2
+ import HandlerContainer from './handler-container';
3
+ import Operation from './operations/operation';
4
+ export declare class CPSContext {
5
+ readonly target: string;
6
+ readonly handler: HandlerContainer;
7
+ currentTarget: string;
8
+ constructor(target: string, handler: HandlerContainer, currentTarget?: string);
9
+ getCurrentTarget(): string;
10
+ }
11
+ export default class CPS {
12
+ private readonly context;
13
+ constructor(context: CPSContext);
14
+ visit(item: ASTBase): Promise<Operation>;
15
+ }