bit2 0.0.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.
Files changed (138) hide show
  1. package/dist/bit2.d.ts +229 -0
  2. package/dist/bit2.js +1 -0
  3. package/dist/src/bx/biEval.d.ts +6 -0
  4. package/dist/src/bx/biEval.js +59 -0
  5. package/dist/src/bx/biEval.js.map +1 -0
  6. package/dist/src/common/Exp.d.ts +53 -0
  7. package/dist/src/common/Exp.js +44 -0
  8. package/dist/src/common/Exp.js.map +1 -0
  9. package/dist/src/common/PrettyPrint.d.ts +4 -0
  10. package/dist/src/common/PrettyPrint.js +32 -0
  11. package/dist/src/common/PrettyPrint.js.map +1 -0
  12. package/dist/src/common/Print.d.ts +3 -0
  13. package/dist/src/common/Print.js +73 -0
  14. package/dist/src/common/Print.js.map +1 -0
  15. package/dist/src/core/AST.d.ts +92 -0
  16. package/dist/src/core/AST.js +47 -0
  17. package/dist/src/core/AST.js.map +1 -0
  18. package/dist/src/core/PrettyPrint.d.ts +2 -0
  19. package/dist/src/core/PrettyPrint.js +64 -0
  20. package/dist/src/core/PrettyPrint.js.map +1 -0
  21. package/dist/src/core/Print.d.ts +3 -0
  22. package/dist/src/core/Print.js +77 -0
  23. package/dist/src/core/Print.js.map +1 -0
  24. package/dist/src/fuse/Fuse.d.ts +23 -0
  25. package/dist/src/fuse/Fuse.js +1436 -0
  26. package/dist/src/fuse/Fuse.js.map +1 -0
  27. package/dist/src/fuse/Print.d.ts +2 -0
  28. package/dist/src/fuse/Print.js +22 -0
  29. package/dist/src/fuse/Print.js.map +1 -0
  30. package/dist/src/fuse/Update.d.ts +19 -0
  31. package/dist/src/fuse/Update.js +3 -0
  32. package/dist/src/fuse/Update.js.map +1 -0
  33. package/dist/src/lambda/AST.d.ts +23 -0
  34. package/dist/src/lambda/AST.js +3 -0
  35. package/dist/src/lambda/AST.js.map +1 -0
  36. package/dist/src/lambda/Evaluation.d.ts +4 -0
  37. package/dist/src/lambda/Evaluation.js +98 -0
  38. package/dist/src/lambda/Evaluation.js.map +1 -0
  39. package/dist/src/lambda/Print.d.ts +2 -0
  40. package/dist/src/lambda/Print.js +31 -0
  41. package/dist/src/lambda/Print.js.map +1 -0
  42. package/dist/src/lambdalize/lambdalize.d.ts +3 -0
  43. package/dist/src/lambdalize/lambdalize.js +94 -0
  44. package/dist/src/lambdalize/lambdalize.js.map +1 -0
  45. package/dist/src/lambdalize/unLambdalize.d.ts +3 -0
  46. package/dist/src/lambdalize/unLambdalize.js +59 -0
  47. package/dist/src/lambdalize/unLambdalize.js.map +1 -0
  48. package/dist/src/partial/AST.d.ts +86 -0
  49. package/dist/src/partial/AST.js +3 -0
  50. package/dist/src/partial/AST.js.map +1 -0
  51. package/dist/src/partial/Print.d.ts +6 -0
  52. package/dist/src/partial/Print.js +93 -0
  53. package/dist/src/partial/Print.js.map +1 -0
  54. package/dist/src/partialEval/peval.d.ts +11 -0
  55. package/dist/src/partialEval/peval.js +322 -0
  56. package/dist/src/partialEval/peval.js.map +1 -0
  57. package/dist/src/partialEval/unpeval.d.ts +4 -0
  58. package/dist/src/partialEval/unpeval.js +360 -0
  59. package/dist/src/partialEval/unpeval.js.map +1 -0
  60. package/dist/src/surface/AST.d.ts +57 -0
  61. package/dist/src/surface/AST.js +3 -0
  62. package/dist/src/surface/AST.js.map +1 -0
  63. package/dist/src/surface/Parser.d.ts +4 -0
  64. package/dist/src/surface/Parser.js +314 -0
  65. package/dist/src/surface/Parser.js.map +1 -0
  66. package/dist/src/translate/Translate.d.ts +3 -0
  67. package/dist/src/translate/Translate.js +91 -0
  68. package/dist/src/translate/Translate.js.map +1 -0
  69. package/dist/src/utils/Utils.d.ts +2 -0
  70. package/dist/src/utils/Utils.js +7 -0
  71. package/dist/src/utils/Utils.js.map +1 -0
  72. package/dist/test/bx/biEval.test.d.ts +1 -0
  73. package/dist/test/bx/biEval.test.js +41 -0
  74. package/dist/test/bx/biEval.test.js.map +1 -0
  75. package/dist/test/bx/test.d.ts +1 -0
  76. package/dist/test/bx/test.js +29 -0
  77. package/dist/test/bx/test.js.map +1 -0
  78. package/dist/test/core/0.simple.test.d.ts +4 -0
  79. package/dist/test/core/0.simple.test.js +68 -0
  80. package/dist/test/core/0.simple.test.js.map +1 -0
  81. package/dist/test/core/1.core.test.d.ts +2 -0
  82. package/dist/test/core/1.core.test.js +30 -0
  83. package/dist/test/core/1.core.test.js.map +1 -0
  84. package/dist/test/core/core.test.d.ts +1 -0
  85. package/dist/test/core/core.test.js +28 -0
  86. package/dist/test/core/core.test.js.map +1 -0
  87. package/dist/test/fuse/branchnop.test.d.ts +1 -0
  88. package/dist/test/fuse/branchnop.test.js +47 -0
  89. package/dist/test/fuse/branchnop.test.js.map +1 -0
  90. package/dist/test/fuse/bulk.test.d.ts +1 -0
  91. package/dist/test/fuse/bulk.test.js +111 -0
  92. package/dist/test/fuse/bulk.test.js.map +1 -0
  93. package/dist/test/fuse/const.test.d.ts +1 -0
  94. package/dist/test/fuse/const.test.js +118 -0
  95. package/dist/test/fuse/const.test.js.map +1 -0
  96. package/dist/test/fuse/exp.test.d.ts +1 -0
  97. package/dist/test/fuse/exp.test.js +225 -0
  98. package/dist/test/fuse/exp.test.js.map +1 -0
  99. package/dist/test/fuse/lambda.test.d.ts +1 -0
  100. package/dist/test/fuse/lambda.test.js +139 -0
  101. package/dist/test/fuse/lambda.test.js.map +1 -0
  102. package/dist/test/fuse/loop.test.d.ts +1 -0
  103. package/dist/test/fuse/loop.test.js +39 -0
  104. package/dist/test/fuse/loop.test.js.map +1 -0
  105. package/dist/test/fuse/seq.test.d.ts +1 -0
  106. package/dist/test/fuse/seq.test.js +64 -0
  107. package/dist/test/fuse/seq.test.js.map +1 -0
  108. package/dist/test/fuse/space.test.d.ts +1 -0
  109. package/dist/test/fuse/space.test.js +136 -0
  110. package/dist/test/fuse/space.test.js.map +1 -0
  111. package/dist/test/lambda/evaluation.test.d.ts +1 -0
  112. package/dist/test/lambda/evaluation.test.js +24 -0
  113. package/dist/test/lambda/evaluation.test.js.map +1 -0
  114. package/dist/test/lambda/lambda.test.d.ts +1 -0
  115. package/dist/test/lambda/lambda.test.js +45 -0
  116. package/dist/test/lambda/lambda.test.js.map +1 -0
  117. package/dist/test/lambdalize/lambdalize.test.d.ts +1 -0
  118. package/dist/test/lambdalize/lambdalize.test.js +23 -0
  119. package/dist/test/lambdalize/lambdalize.test.js.map +1 -0
  120. package/dist/test/lambdalize/unLambdalize.test.d.ts +1 -0
  121. package/dist/test/lambdalize/unLambdalize.test.js +35 -0
  122. package/dist/test/lambdalize/unLambdalize.test.js.map +1 -0
  123. package/dist/test/partial/partial.test.d.ts +1 -0
  124. package/dist/test/partial/partial.test.js +35 -0
  125. package/dist/test/partial/partial.test.js.map +1 -0
  126. package/dist/test/partialEval/peval.test.d.ts +1 -0
  127. package/dist/test/partialEval/peval.test.js +29 -0
  128. package/dist/test/partialEval/peval.test.js.map +1 -0
  129. package/dist/test/partialEval/unPeval.test.d.ts +1 -0
  130. package/dist/test/partialEval/unPeval.test.js +40 -0
  131. package/dist/test/partialEval/unPeval.test.js.map +1 -0
  132. package/dist/test/surface/AST.test.d.ts +1 -0
  133. package/dist/test/surface/AST.test.js +41 -0
  134. package/dist/test/surface/AST.test.js.map +1 -0
  135. package/dist/test/translate/translate.test.d.ts +1 -0
  136. package/dist/test/translate/translate.test.js +45 -0
  137. package/dist/test/translate/translate.test.js.map +1 -0
  138. package/package.json +49 -0
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Print_1 = require("../../src/fuse/Print");
4
+ const Fuse_1 = require("../../src/fuse/Fuse");
5
+ const Print_2 = require("../../src/lambda/Print");
6
+ let env = {};
7
+ /**
8
+ * insert
9
+ */
10
+ console.log('=============Insertion======================');
11
+ console.log('1. insert "Hello " at 0 |> exp(const("world!"))');
12
+ Fuse_1.fuse(env, { type: 'insert', str: "Hello ", position: 0 }, { type: 'exp', binding: [{ type: 'constant', value: "world!" }, "world!"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
13
+ console.log('------');
14
+ Print_2.printNode(newTerm);
15
+ console.log('U: ' + Print_1.operationToStr(newOp));
16
+ });
17
+ console.log('===================================');
18
+ console.log('2. insert "Hello " at 0 |> exp(const(17))');
19
+ Fuse_1.fuse(env, { type: 'insert', str: "Hello ", position: 0 }, { type: 'exp', binding: [{ type: 'constant', value: 17 }, 17] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
20
+ console.log('------');
21
+ Print_2.printNode(newTerm);
22
+ console.log('U: ' + Print_1.operationToStr(newOp));
23
+ });
24
+ console.log('===================================');
25
+ console.log('3. insert "Hello " at 0 |> exp(const(true))');
26
+ Fuse_1.fuse(env, { type: 'insert', str: "Hello ", position: 0 }, { type: 'exp', binding: [{ type: 'constant', value: true }, true] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
27
+ console.log('------');
28
+ Print_2.printNode(newTerm);
29
+ console.log('U: ' + Print_1.operationToStr(newOp));
30
+ });
31
+ console.log('===================================');
32
+ console.log('4. insert " " at 5 |> exp(const("Helloworld!"))');
33
+ Fuse_1.fuse(env, { type: 'insert', str: " ", position: 5 }, { type: 'exp', binding: [{ type: 'constant', value: "Helloworld" }, "Helloworld"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
34
+ console.log('------');
35
+ Print_2.printNode(newTerm);
36
+ console.log('U: ' + Print_1.operationToStr(newOp));
37
+ });
38
+ console.log('===================================');
39
+ console.log('4. insert "0" at 1 |> exp(const(15))');
40
+ Fuse_1.fuse(env, { type: 'insert', str: "0", position: 1 }, { type: 'exp', binding: [{ type: 'constant', value: 15 }, 15] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
41
+ console.log('------');
42
+ Print_2.printNode(newTerm);
43
+ console.log('U: ' + Print_1.operationToStr(newOp));
44
+ });
45
+ console.log('===================================');
46
+ console.log('4. insert "0" at 2 |> exp(const(15))');
47
+ Fuse_1.fuse(env, { type: 'insert', str: "0", position: 2 }, { type: 'exp', binding: [{ type: 'constant', value: 15 }, 15] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
48
+ console.log('------');
49
+ Print_2.printNode(newTerm);
50
+ console.log('U: ' + Print_1.operationToStr(newOp));
51
+ });
52
+ console.log('===================================');
53
+ console.log('4. insert "!" at 2 |> exp(const("Hi"))');
54
+ Fuse_1.fuse(env, { type: 'insert', str: "!", position: 2 }, { type: 'exp', binding: [{ type: 'constant', value: "Hi" }, "Hi"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
55
+ console.log('------');
56
+ Print_2.printNode(newTerm);
57
+ console.log('U: ' + Print_1.operationToStr(newOp));
58
+ });
59
+ console.log('===================================');
60
+ console.log('4. insert "Mr.You" at 2 |> exp(const("Hi!"))');
61
+ Fuse_1.fuse(env, { type: 'insert', str: "Mr.You", position: 4 }, { type: 'exp', binding: [{ type: 'constant', value: "Hi!" }, "Hi!"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
62
+ console.log('------');
63
+ Print_2.printNode(newTerm);
64
+ console.log('U: ' + Print_1.operationToStr(newOp));
65
+ });
66
+ /**
67
+ * replace
68
+ */
69
+ console.log('=============Replacement======================');
70
+ console.log('1. replace "Hello" with "Hi" at 0 |> exp(const("Hello"))');
71
+ Fuse_1.fuse(env, { type: 'replace', str1: "Hello", str2: "Hi", position: 0 }, { type: 'exp', binding: [{ type: 'constant', value: "Hello" }, "Hello"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
72
+ console.log('------');
73
+ Print_2.printNode(newTerm);
74
+ console.log('U: ' + Print_1.operationToStr(newOp));
75
+ });
76
+ console.log('2. replace "Hello" with "Hi" at 0 |> exp(const("Hello, Mr.Bin")');
77
+ Fuse_1.fuse(env, { type: 'replace', str1: "Hello", str2: "Hi", position: 0 }, { type: 'exp', binding: [{ type: 'constant', value: "Hello, Mr.Bin" }, "Hello, Mr.Bin"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
78
+ console.log('------');
79
+ Print_2.printNode(newTerm);
80
+ console.log('U: ' + Print_1.operationToStr(newOp));
81
+ });
82
+ console.log('3. replace "you" with "they" at 0 |> exp(const("how are")');
83
+ Fuse_1.fuse(env, { type: 'replace', str1: "you", str2: "they", position: 8 }, { type: 'exp', binding: [{ type: 'constant', value: "how are" }, "how are"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
84
+ console.log('------');
85
+ Print_2.printNode(newTerm);
86
+ console.log('U: ' + Print_1.operationToStr(newOp));
87
+ });
88
+ console.log('4. replace "fine" with "nice" at 0 |> exp(x)');
89
+ env['x'] = [17, []];
90
+ Fuse_1.fuse(env, { type: 'replace', str1: "fine", str2: "nice", position: 3 }, { type: 'exp', binding: [{ type: 'variable', name: "x" }, 17] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
91
+ console.log('------');
92
+ console.log(newEnv);
93
+ Print_2.printNode(newTerm);
94
+ console.log('U: ' + Print_1.operationToStr(newOp));
95
+ });
96
+ // reset env
97
+ env = {};
98
+ /**
99
+ * Delete
100
+ */
101
+ console.log('=============Deletion======================');
102
+ console.log('1. delete "Hello " at 0 |> exp(const("Hello Mr.Bin"))');
103
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello ", position: 0 }, { type: 'exp', binding: [{ type: 'constant', value: "Hello Mr.Bin" }, "Hello Mr.Bin"] }).forEach(({ newTermNode: newTerm, remainingOperation: newOp }) => {
104
+ console.log('------');
105
+ Print_2.printNode(newTerm);
106
+ console.log('U: ' + Print_1.operationToStr(newOp));
107
+ });
108
+ console.log('2. delete "Hello " at 0 |> exp(x)');
109
+ env['x'] = ["Hello Mr.Bin", []];
110
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello ", position: 0 }, { type: 'exp', binding: [{ type: 'variable', name: "x" }, "Hello Mr.Bin"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
111
+ console.log('------');
112
+ console.log(newEnv);
113
+ Print_2.printNode(newTerm);
114
+ console.log('U: ' + Print_1.operationToStr(newOp));
115
+ });
116
+ env = {};
117
+ console.log('3. delete "Hello " at 0 |> exp(x.greeting)');
118
+ env['x'] = [{ type: 'object', fields: { greeting: "Hello Mr.Bin", age: 18 } }, [{ type: 'object', fields: { greeting: [], age: [] } }]];
119
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello ", position: 0 }, { type: 'exp', binding: [{ type: 'field', field: 'greeting', object: { type: "variable", name: "x" } }, "Hello Mr.Bin"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
120
+ console.log('------');
121
+ Fuse_1.printEnvironment(newEnv);
122
+ Print_2.printNode(newTerm);
123
+ console.log('U: ' + Print_1.operationToStr(newOp));
124
+ });
125
+ env = {};
126
+ console.log('4. delete "Hello" at 0 |> exp(x.greeting)');
127
+ env['x'] = [{ type: 'object', fields: { greeting: "Hello", age: 18 } }, [{ type: 'object', fields: { greeting: [], age: [] } }]];
128
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello", position: 0 }, { type: 'exp', binding: [{ type: 'field', field: 'greeting', object: { type: "variable", name: "x" } }, "Hello"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
129
+ console.log('------');
130
+ Fuse_1.printEnvironment(newEnv);
131
+ Print_2.printNode(newTerm);
132
+ console.log('U: ' + Print_1.operationToStr(newOp));
133
+ });
134
+ env = {};
135
+ console.log('5. delete "Hello" at 0 |> exp(greeting)');
136
+ env['greeting'] = ["Hello", []];
137
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello", position: 0 }, { type: 'exp', binding: [{ type: 'variable', name: 'greeting' }, "Hello"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
138
+ console.log('------');
139
+ Fuse_1.printEnvironment(newEnv);
140
+ Print_2.printNode(newTerm);
141
+ console.log('U: ' + Print_1.operationToStr(newOp));
142
+ });
143
+ env = {};
144
+ console.log('6. delete "15" at 0 |> exp(age)');
145
+ env['age'] = [15, []];
146
+ Fuse_1.fuse(env, { type: 'delete', str: "15", position: 0 }, { type: 'exp', binding: [{ type: 'variable', name: 'age' }, 15] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
147
+ console.log('------');
148
+ Fuse_1.printEnvironment(newEnv);
149
+ Print_2.printNode(newTerm);
150
+ console.log('U: ' + Print_1.operationToStr(newOp));
151
+ });
152
+ env = {};
153
+ console.log('7. delete "Hello Mr.Bin" at 0 |> exp(x.greeting)');
154
+ env['x'] = [{ type: 'object', fields: { greeting: "Hello", age: 18 } }, [{ type: 'object', fields: { greeting: [], age: [] } }]];
155
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello Mr.Bin", position: 0 }, { type: 'exp', binding: [{ type: 'field', field: 'greeting', object: { type: "variable", name: "x" } }, "Hello"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
156
+ console.log('------');
157
+ Fuse_1.printEnvironment(newEnv);
158
+ Print_2.printNode(newTerm);
159
+ console.log('U: ' + Print_1.operationToStr(newOp));
160
+ });
161
+ env = {};
162
+ console.log('8. delete "Mr." at 6 |> exp(x.greeting)');
163
+ env['x'] = [{ type: 'object', fields: { greeting: "Hello Mr.Bin", age: 18 } }, [{ type: 'object', fields: { greeting: [], age: [] } }]];
164
+ Fuse_1.fuse(env, { type: 'delete', str: "Mr.", position: 6 }, { type: 'exp', binding: [{ type: 'field', field: 'greeting', object: { type: "variable", name: "x" } }, "Hello Mr.Bin"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
165
+ console.log('------');
166
+ Fuse_1.printEnvironment(newEnv);
167
+ Print_2.printNode(newTerm);
168
+ console.log('U: ' + Print_1.operationToStr(newOp));
169
+ });
170
+ env = {};
171
+ console.log('9. delete "1" at 1 |> exp(age)');
172
+ env['age'] = [115, []];
173
+ Fuse_1.fuse(env, { type: 'delete', str: "1", position: 1 }, { type: 'exp', binding: [{ type: 'variable', name: 'age' }, 115] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
174
+ console.log('------');
175
+ Fuse_1.printEnvironment(newEnv);
176
+ Print_2.printNode(newTerm);
177
+ console.log('U: ' + Print_1.operationToStr(newOp));
178
+ });
179
+ env = {};
180
+ console.log('10. delete "Mr.Bin" at 6 |> exp(x.greeting)');
181
+ env['x'] = [{ type: 'object', fields: { greeting: "Hello Mr.", age: 18 } }, [{ type: 'object', fields: { greeting: [], age: [] } }]];
182
+ Fuse_1.fuse(env, { type: 'delete', str: "Mr.Bin", position: 6 }, { type: 'exp', binding: [{ type: 'field', field: 'greeting', object: { type: "variable", name: "x" } }, "Hello Mr."] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
183
+ console.log('------');
184
+ Fuse_1.printEnvironment(newEnv);
185
+ Print_2.printNode(newTerm);
186
+ console.log('U: ' + Print_1.operationToStr(newOp));
187
+ });
188
+ env = {};
189
+ console.log('11. delete "15 Hello" at 1 |> exp(age)');
190
+ env['age'] = [115, []];
191
+ Fuse_1.fuse(env, { type: 'delete', str: "15 Hello", position: 1 }, { type: 'exp', binding: [{ type: 'variable', name: 'age' }, 115] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
192
+ console.log('------');
193
+ Fuse_1.printEnvironment(newEnv);
194
+ Print_2.printNode(newTerm);
195
+ console.log('U: ' + Print_1.operationToStr(newOp));
196
+ });
197
+ env = {};
198
+ console.log('12. delete "Hello" at 5 |> exp(age)');
199
+ env['age'] = [115, []];
200
+ Fuse_1.fuse(env, { type: 'delete', str: "Hello", position: 5 }, { type: 'exp', binding: [{ type: 'variable', name: 'age' }, 115] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
201
+ console.log('------');
202
+ Fuse_1.printEnvironment(newEnv);
203
+ Print_2.printNode(newTerm);
204
+ console.log('U: ' + Print_1.operationToStr(newOp));
205
+ });
206
+ env = {};
207
+ console.log('13. id |> exp(x.greeting)');
208
+ env['x'] = [{ type: 'object', fields: { greeting: "Hello Mr.Bin", age: 18 } }, [{ type: 'object', fields: { greeting: [], age: [] } }]];
209
+ Fuse_1.fuse(env, { type: 'id' }, { type: 'exp', binding: [{ type: 'field', field: 'greeting', object: { type: "variable", name: "x" } }, "Hello Mr.Bin"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
210
+ console.log('------');
211
+ Fuse_1.printEnvironment(newEnv);
212
+ Print_2.printNode(newTerm);
213
+ console.log('U: ' + Print_1.operationToStr(newOp));
214
+ });
215
+ env = {};
216
+ console.log('14. id |> exp(greeting)');
217
+ env['greeting'] = ["Hello", []];
218
+ Fuse_1.fuse(env, { type: 'id' }, { type: 'exp', binding: [{ type: 'variable', name: 'greeting' }, "Hello"] }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
219
+ console.log('------');
220
+ Fuse_1.printEnvironment(newEnv);
221
+ Print_2.printNode(newTerm);
222
+ console.log('U: ' + Print_1.operationToStr(newOp));
223
+ });
224
+ env = {};
225
+ //# sourceMappingURL=exp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exp.test.js","sourceRoot":"","sources":["../../../test/fuse/exp.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Print_1 = require("../../src/fuse/Print");
4
+ const Fuse_1 = require("../../src/fuse/Fuse");
5
+ const Print_2 = require("../../src/lambda/Print");
6
+ let env = {};
7
+ /**
8
+ * Declare/Assign
9
+ */
10
+ console.log('===================================');
11
+ // let x = 1; <x>
12
+ console.log('1. replace "1" with "2" at 0 |> \ x.x 1');
13
+ let lambdaAppDeclare = {
14
+ type: 'lambda',
15
+ variable: { type: 'variable', name: 'x' },
16
+ body: { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 1] },
17
+ binding: [{ type: 'constant', value: 1 }, 1],
18
+ marker: { type: 'declare' }
19
+ };
20
+ Fuse_1.fuse(env, { type: 'replace', str1: "1", str2: "2", position: 0 }, lambdaAppDeclare).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
21
+ console.log('------');
22
+ Fuse_1.printEnvironment(newEnv);
23
+ Print_2.printNode(newTerm);
24
+ console.log('U: ' + Print_1.operationToStr(newOp));
25
+ });
26
+ env = {};
27
+ console.log('===================================');
28
+ // x = y+10; <x>
29
+ env['y'] = [1, [1]];
30
+ console.log('2. replace "11" with "12" at 0 |> \ x.x (y+10)');
31
+ let lambdaAppAssign = {
32
+ type: 'lambda',
33
+ variable: { type: 'variable', name: 'x' },
34
+ body: { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 11] },
35
+ binding: [{ type: 'binary', operator: "+", left: { type: 'variable', name: 'y' }, right: { type: 'constant', value: 10 } }, 11],
36
+ marker: { type: 'assign' }
37
+ };
38
+ Fuse_1.fuse(env, { type: 'replace', str1: "11", str2: "12", position: 0 }, lambdaAppAssign).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
39
+ console.log('------');
40
+ Fuse_1.printEnvironment(newEnv);
41
+ Print_2.printNode(newTerm);
42
+ console.log('U: ' + Print_1.operationToStr(newOp));
43
+ });
44
+ env = {};
45
+ console.log('===================================');
46
+ // x = 10+y; <x>
47
+ env['y'] = [1, []];
48
+ console.log('3. replace "11" with "12" at 0 |> \ x.x (10+y)');
49
+ let lambdaAppAssign2 = {
50
+ type: 'lambda',
51
+ variable: { type: 'variable', name: 'x' },
52
+ body: { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 11] },
53
+ binding: [{ type: 'binary', operator: "+", right: { type: 'variable', name: 'y' }, left: { type: 'constant', value: 10 } }, 11],
54
+ marker: { type: 'assign' }
55
+ };
56
+ Fuse_1.fuse(env, { type: 'replace', str1: "11", str2: "12", position: 0 }, lambdaAppAssign2).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
57
+ console.log('------');
58
+ Fuse_1.printEnvironment(newEnv);
59
+ Print_2.printNode(newTerm);
60
+ console.log('U: ' + Print_1.operationToStr(newOp));
61
+ });
62
+ env = {};
63
+ console.log('===================================');
64
+ // let x = 1; <x>
65
+ console.log('4. replace "2" with "1" at 2 |> (\\x.x (\\x.x (1+x))) 1');
66
+ let lambdaAppDeclareAssign = {
67
+ type: 'lambda',
68
+ variable: { type: 'variable', name: 'x' },
69
+ body: { type: 'seq', nodes: [
70
+ { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 1] },
71
+ { type: 'space', width: 1 },
72
+ { type: 'lambda',
73
+ variable: { type: 'variable', name: 'x' },
74
+ body: { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 2] },
75
+ binding: [{ type: 'binary', operator: "+", left: { type: 'variable', name: 'x' }, right: { type: 'constant', value: 1 } }, 2],
76
+ marker: { type: 'assign' }
77
+ }
78
+ ] },
79
+ binding: [{ type: 'constant', value: 1 }, 1],
80
+ marker: { type: 'declare' }
81
+ };
82
+ Fuse_1.fuse(env, { type: 'replace', str1: "2", str2: "1", position: 2 }, lambdaAppDeclareAssign).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
83
+ console.log('------');
84
+ Fuse_1.printEnvironment(newEnv);
85
+ Print_2.printNode(newTerm);
86
+ console.log('U: ' + Print_1.operationToStr(newOp));
87
+ });
88
+ env = {};
89
+ console.log('===================================');
90
+ // let x = 1; <x>; x = x+1; x
91
+ console.log('5. replace "1" with "2" at 0 |> (\\x.x (\\x.x (1+x))) 1');
92
+ let lambdaAppDeclareAssign2 = {
93
+ type: 'lambda',
94
+ variable: { type: 'variable', name: 'x' },
95
+ body: { type: 'seq', nodes: [
96
+ { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 1] },
97
+ { type: 'space', width: 1 },
98
+ { type: 'lambda',
99
+ variable: { type: 'variable', name: 'x' },
100
+ body: { type: 'exp', binding: [{ type: 'variable', name: 'x' }, 2] },
101
+ binding: [{ type: 'binary', operator: "+", left: { type: 'variable', name: 'x' }, right: { type: 'constant', value: 1 } }, 2],
102
+ marker: { type: 'assign' }
103
+ }
104
+ ] },
105
+ binding: [{ type: 'constant', value: 1 }, 1],
106
+ marker: { type: 'declare' }
107
+ };
108
+ Fuse_1.fuse(env, { type: 'replace', str1: "1", str2: "2", position: 0 }, lambdaAppDeclareAssign2).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
109
+ console.log('------');
110
+ Fuse_1.printEnvironment(newEnv);
111
+ Print_2.printNode(newTerm);
112
+ console.log('U: ' + Print_1.operationToStr(newOp));
113
+ });
114
+ env = {};
115
+ // /**
116
+ // * Loopitem
117
+ // */
118
+ // console.log('==============Loopitem=====================')
119
+ // env['lst'] = [[1,2,3],[]];
120
+ // env['lst_new']=[[10],[]];
121
+ // console.log('1. replace "2" with "20" at 0 |> \ x.x 2');
122
+ // let lambdaAppLoopitem: LambdaAppNode = {
123
+ // type:'lambda',
124
+ // variable: {type:'variable', name:'x'},
125
+ // body:{type:'exp', binding:[{type:'variable',name:'x'}, 2]},
126
+ // binding:[{type:'constant', value:2},2],
127
+ // marker: {type:'loopitem', lst:{type:'variable', name:'lst'}} as LoopItemMarker
128
+ // }
129
+ // fuse(env
130
+ // , {type:'replace',str1: "2", str2:"20", position:0}
131
+ // , lambdaAppLoopitem
132
+ // ).forEach(({newEnv:newEnv, newTermNode: newTerm, remainingOperation: newOp}) => {
133
+ // console.log('------')
134
+ // printEnvironment(newEnv);
135
+ // printNode(newTerm);
136
+ // console.log('U: ' + operationToStr(newOp));
137
+ // });
138
+ // env={};
139
+ //# sourceMappingURL=lambda.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda.test.js","sourceRoot":"","sources":["../../../test/fuse/lambda.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Print_1 = require("../../src/fuse/Print");
4
+ const Fuse_1 = require("../../src/fuse/Fuse");
5
+ const Print_2 = require("../../src/lambda/Print");
6
+ let env = {};
7
+ /**
8
+ * insert
9
+ */
10
+ console.log('=============Insertion======================');
11
+ console.log('1. insert "Hello " at 0 |> loopfront(lst,"[")');
12
+ env['lst'] = [[1, 2, 3], []];
13
+ Fuse_1.fuse(env, { type: 'insert', str: "Hello ", position: 0 }, { type: 'loopfront', value: '[', lst: { type: 'variable', name: 'lst' } }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
14
+ console.log('------');
15
+ Fuse_1.printEnvironment(newEnv);
16
+ Print_2.printNode(newTerm);
17
+ console.log('U: ' + Print_1.operationToStr(newOp));
18
+ });
19
+ env = {};
20
+ console.log('===================================');
21
+ console.log('2. insert "Hello " at 10 |> loopfront(lst,"[")');
22
+ env['lst'] = [[1, 2, 3], []];
23
+ Fuse_1.fuse(env, { type: 'insert', str: "Hello ", position: 10 }, { type: 'loopfront', value: '[', lst: { type: 'variable', name: 'lst' } }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
24
+ console.log('------');
25
+ Fuse_1.printEnvironment(newEnv);
26
+ Print_2.printNode(newTerm);
27
+ console.log('U: ' + Print_1.operationToStr(newOp));
28
+ });
29
+ env = {};
30
+ console.log('3. insert "Hello " at 10 |> looprear(lst,"]")');
31
+ env['lst'] = [[1, 2, 3], []];
32
+ env['lst_new'] = [[10, 20, 30], [10, 20, 30]];
33
+ Fuse_1.fuse(env, { type: 'insert', str: "Hello ", position: 10 }, { type: 'looprear', value: ']', lst: { type: 'variable', name: 'lst' } }).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
34
+ console.log('------');
35
+ Fuse_1.printEnvironment(newEnv);
36
+ Print_2.printNode(newTerm);
37
+ console.log('U: ' + Print_1.operationToStr(newOp));
38
+ });
39
+ //# sourceMappingURL=loop.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop.test.js","sourceRoot":"","sources":["../../../test/fuse/loop.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Print_1 = require("../../src/fuse/Print");
4
+ const Fuse_1 = require("../../src/fuse/Fuse");
5
+ const Print_2 = require("../../src/lambda/Print");
6
+ let env = {};
7
+ // console.log('===================================')
8
+ // // hello stefan!
9
+ // // seq(const("hello"), space(1), exp(name), const("!"))
10
+ // // replace "stefan" with "tao" at 6
11
+ // console.log('1. replace "stefan" with "tao" at 6 |> seq(const("hello"), space(1), exp(name), const("!"))');
12
+ // let seq: SeqNode = {
13
+ // type:'seq',
14
+ // nodes:[
15
+ // {type:'const', value:"hello"},
16
+ // {type:'space', width:1},
17
+ // {type:'exp', binding:[{type:'variable', name:'name'},"stefan"]},
18
+ // {type:'const', value:"!"}
19
+ // ]
20
+ // }
21
+ // env['name']=["stefan",[]];
22
+ // fuse(env
23
+ // , {type:'replace',str1: "stefan", str2:"tao", position:6}
24
+ // , seq
25
+ // ).forEach(({newEnv:newEnv, newTermNode: newTerm, remainingOperation: newOp}) => {
26
+ // console.log('------')
27
+ // printEnvironment(newEnv);
28
+ // printNode(newTerm);
29
+ // console.log('U: ' + operationToStr(newOp));
30
+ // });
31
+ // env={};
32
+ console.log('===================================');
33
+ console.log('2. insert " " at 1 |> seq(declare(no, 1), exp(no), assign(no, no+1), exp(no))');
34
+ let seq2 = {
35
+ type: 'seq',
36
+ nodes: [
37
+ {
38
+ type: 'lambda',
39
+ variable: { type: 'variable', name: 'no' },
40
+ body: { type: 'seq', nodes: [
41
+ { type: 'exp', binding: [{ type: 'variable', name: 'no' }, 1] },
42
+ {
43
+ type: 'lambda',
44
+ variable: { type: 'variable', name: 'no' },
45
+ body: { type: 'seq', nodes: [
46
+ { type: 'exp', binding: [{ type: 'variable', name: 'no' }, 2] },
47
+ ] },
48
+ binding: [{ type: 'binary', operator: "+", left: { type: 'variable', name: 'no' }, right: { type: 'constant', value: 1 } }, 2],
49
+ marker: { type: 'assign' }
50
+ }
51
+ ] },
52
+ binding: [{ type: 'constant', value: 1 }, 1],
53
+ marker: { type: 'declare' }
54
+ }
55
+ ]
56
+ };
57
+ Fuse_1.fuse(env, { type: 'insert', str: " ", position: 1 }, seq2).forEach(({ newEnv: newEnv, newTermNode: newTerm, remainingOperation: newOp }) => {
58
+ console.log('------');
59
+ Fuse_1.printEnvironment(newEnv);
60
+ Print_2.printNode(newTerm);
61
+ console.log('U: ' + Print_1.operationToStr(newOp));
62
+ });
63
+ env = {};
64
+ //# sourceMappingURL=seq.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seq.test.js","sourceRoot":"","sources":["../../../test/fuse/seq.test.ts"],"names":[],"mappings":";;AAEA,gDAAsD;AACtD,8CAA0E;AAE1E,kDAAmD;AAGnD,IAAI,GAAG,GAAgB,EAAE,CAAC;AAG1B,qDAAqD;AACrD,mBAAmB;AACnB,0DAA0D;AAC1D,sCAAsC;AACtC,8GAA8G;AAC9G,uBAAuB;AACvB,gBAAgB;AAChB,YAAY;AACZ,qCAAqC;AACrC,+BAA+B;AAC/B,uEAAuE;AACvE,gCAAgC;AAChC,MAAM;AACN,IAAI;AACJ,6BAA6B;AAE7B,WAAW;AACX,8DAA8D;AAC9D,UAAU;AACV,oFAAoF;AACpF,0BAA0B;AAC1B,8BAA8B;AAC9B,wBAAwB;AACxB,gDAAgD;AAChD,MAAM;AACN,UAAU;AAGV,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;AAClD,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;AAC7F,IAAI,IAAI,GAAY;IAClB,IAAI,EAAC,KAAK;IACV,KAAK,EAAC;QACJ;YACE,IAAI,EAAC,QAAQ;YACb,QAAQ,EAAE,EAAC,IAAI,EAAC,UAAU,EAAE,IAAI,EAAC,IAAI,EAAC;YACtC,IAAI,EAAC,EAAC,IAAI,EAAC,KAAK,EAAE,KAAK,EAAC;oBACtB,EAAC,IAAI,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,UAAU,EAAE,IAAI,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,EAAC;oBACvD;wBACE,IAAI,EAAC,QAAQ;wBACb,QAAQ,EAAE,EAAC,IAAI,EAAC,UAAU,EAAE,IAAI,EAAC,IAAI,EAAC;wBACtC,IAAI,EAAC,EAAC,IAAI,EAAC,KAAK,EAAE,KAAK,EAAC;gCACtB,EAAC,IAAI,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,UAAU,EAAE,IAAI,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,EAAC;6BACxD,EAAC;wBACF,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,EAAE,IAAI,EAAC,EAAC,IAAI,EAAC,UAAU,EAAE,IAAI,EAAC,IAAI,EAAC,EAAE,KAAK,EAAC,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC,EAAC,EAAC,EAAE,CAAC,CAAC;wBAC/G,MAAM,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAiB;qBACxC;iBACF,EAAC;YACF,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,EAAC,IAAI,EAAC,SAAS,EAAkB;SAC1C;KACF;CACF,CAAA;AAED,WAAI,CAAC,GAAG,EACJ,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC,EAAC,EACpC,IAAI,CACP,CAAC,OAAO,CAAC,CAAC,EAAC,MAAM,EAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAC,EAAE,EAAE;IAC7E,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrB,uBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAS,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,sBAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AACH,GAAG,GAAC,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};