bit2 0.0.2 → 0.0.3

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 (113) hide show
  1. package/package.json +4 -2
  2. package/dist/src/bx/biEval.js +0 -59
  3. package/dist/src/bx/biEval.js.map +0 -1
  4. package/dist/src/common/Exp.js +0 -44
  5. package/dist/src/common/Exp.js.map +0 -1
  6. package/dist/src/common/PrettyPrint.js +0 -32
  7. package/dist/src/common/PrettyPrint.js.map +0 -1
  8. package/dist/src/common/Print.js +0 -73
  9. package/dist/src/common/Print.js.map +0 -1
  10. package/dist/src/core/AST.js +0 -47
  11. package/dist/src/core/AST.js.map +0 -1
  12. package/dist/src/core/PrettyPrint.js +0 -64
  13. package/dist/src/core/PrettyPrint.js.map +0 -1
  14. package/dist/src/core/Print.js +0 -77
  15. package/dist/src/core/Print.js.map +0 -1
  16. package/dist/src/fuse/Fuse.js +0 -1436
  17. package/dist/src/fuse/Fuse.js.map +0 -1
  18. package/dist/src/fuse/Print.js +0 -22
  19. package/dist/src/fuse/Print.js.map +0 -1
  20. package/dist/src/fuse/Update.js +0 -3
  21. package/dist/src/fuse/Update.js.map +0 -1
  22. package/dist/src/lambda/AST.js +0 -3
  23. package/dist/src/lambda/AST.js.map +0 -1
  24. package/dist/src/lambda/Evaluation.js +0 -98
  25. package/dist/src/lambda/Evaluation.js.map +0 -1
  26. package/dist/src/lambda/Print.js +0 -31
  27. package/dist/src/lambda/Print.js.map +0 -1
  28. package/dist/src/lambdalize/lambdalize.js +0 -94
  29. package/dist/src/lambdalize/lambdalize.js.map +0 -1
  30. package/dist/src/lambdalize/unLambdalize.js +0 -59
  31. package/dist/src/lambdalize/unLambdalize.js.map +0 -1
  32. package/dist/src/partial/AST.js +0 -3
  33. package/dist/src/partial/AST.js.map +0 -1
  34. package/dist/src/partial/Print.js +0 -93
  35. package/dist/src/partial/Print.js.map +0 -1
  36. package/dist/src/partialEval/peval.js +0 -322
  37. package/dist/src/partialEval/peval.js.map +0 -1
  38. package/dist/src/partialEval/unpeval.js +0 -360
  39. package/dist/src/partialEval/unpeval.js.map +0 -1
  40. package/dist/src/surface/AST.js +0 -3
  41. package/dist/src/surface/AST.js.map +0 -1
  42. package/dist/src/surface/Parser.js +0 -314
  43. package/dist/src/surface/Parser.js.map +0 -1
  44. package/dist/src/translate/Translate.js +0 -91
  45. package/dist/src/translate/Translate.js.map +0 -1
  46. package/dist/src/utils/Utils.js +0 -7
  47. package/dist/src/utils/Utils.js.map +0 -1
  48. package/dist/test/bx/biEval.test.d.ts +0 -1
  49. package/dist/test/bx/biEval.test.js +0 -41
  50. package/dist/test/bx/biEval.test.js.map +0 -1
  51. package/dist/test/bx/test.d.ts +0 -1
  52. package/dist/test/bx/test.js +0 -29
  53. package/dist/test/bx/test.js.map +0 -1
  54. package/dist/test/core/0.simple.test.d.ts +0 -4
  55. package/dist/test/core/0.simple.test.js +0 -68
  56. package/dist/test/core/0.simple.test.js.map +0 -1
  57. package/dist/test/core/1.core.test.d.ts +0 -2
  58. package/dist/test/core/1.core.test.js +0 -30
  59. package/dist/test/core/1.core.test.js.map +0 -1
  60. package/dist/test/core/core.test.d.ts +0 -1
  61. package/dist/test/core/core.test.js +0 -28
  62. package/dist/test/core/core.test.js.map +0 -1
  63. package/dist/test/fuse/branchnop.test.d.ts +0 -1
  64. package/dist/test/fuse/branchnop.test.js +0 -47
  65. package/dist/test/fuse/branchnop.test.js.map +0 -1
  66. package/dist/test/fuse/bulk.test.d.ts +0 -1
  67. package/dist/test/fuse/bulk.test.js +0 -111
  68. package/dist/test/fuse/bulk.test.js.map +0 -1
  69. package/dist/test/fuse/const.test.d.ts +0 -1
  70. package/dist/test/fuse/const.test.js +0 -118
  71. package/dist/test/fuse/const.test.js.map +0 -1
  72. package/dist/test/fuse/exp.test.d.ts +0 -1
  73. package/dist/test/fuse/exp.test.js +0 -225
  74. package/dist/test/fuse/exp.test.js.map +0 -1
  75. package/dist/test/fuse/lambda.test.d.ts +0 -1
  76. package/dist/test/fuse/lambda.test.js +0 -139
  77. package/dist/test/fuse/lambda.test.js.map +0 -1
  78. package/dist/test/fuse/loop.test.d.ts +0 -1
  79. package/dist/test/fuse/loop.test.js +0 -39
  80. package/dist/test/fuse/loop.test.js.map +0 -1
  81. package/dist/test/fuse/seq.test.d.ts +0 -1
  82. package/dist/test/fuse/seq.test.js +0 -64
  83. package/dist/test/fuse/seq.test.js.map +0 -1
  84. package/dist/test/fuse/space.test.d.ts +0 -1
  85. package/dist/test/fuse/space.test.js +0 -136
  86. package/dist/test/fuse/space.test.js.map +0 -1
  87. package/dist/test/lambda/evaluation.test.d.ts +0 -1
  88. package/dist/test/lambda/evaluation.test.js +0 -24
  89. package/dist/test/lambda/evaluation.test.js.map +0 -1
  90. package/dist/test/lambda/lambda.test.d.ts +0 -1
  91. package/dist/test/lambda/lambda.test.js +0 -45
  92. package/dist/test/lambda/lambda.test.js.map +0 -1
  93. package/dist/test/lambdalize/lambdalize.test.d.ts +0 -1
  94. package/dist/test/lambdalize/lambdalize.test.js +0 -23
  95. package/dist/test/lambdalize/lambdalize.test.js.map +0 -1
  96. package/dist/test/lambdalize/unLambdalize.test.d.ts +0 -1
  97. package/dist/test/lambdalize/unLambdalize.test.js +0 -35
  98. package/dist/test/lambdalize/unLambdalize.test.js.map +0 -1
  99. package/dist/test/partial/partial.test.d.ts +0 -1
  100. package/dist/test/partial/partial.test.js +0 -35
  101. package/dist/test/partial/partial.test.js.map +0 -1
  102. package/dist/test/partialEval/peval.test.d.ts +0 -1
  103. package/dist/test/partialEval/peval.test.js +0 -29
  104. package/dist/test/partialEval/peval.test.js.map +0 -1
  105. package/dist/test/partialEval/unPeval.test.d.ts +0 -1
  106. package/dist/test/partialEval/unPeval.test.js +0 -40
  107. package/dist/test/partialEval/unPeval.test.js.map +0 -1
  108. package/dist/test/surface/AST.test.d.ts +0 -1
  109. package/dist/test/surface/AST.test.js +0 -41
  110. package/dist/test/surface/AST.test.js.map +0 -1
  111. package/dist/test/translate/translate.test.d.ts +0 -1
  112. package/dist/test/translate/translate.test.js +0 -45
  113. package/dist/test/translate/translate.test.js.map +0 -1
@@ -1,360 +0,0 @@
1
- "use strict";
2
- var __importStar = (this && this.__importStar) || function (mod) {
3
- if (mod && mod.__esModule) return mod;
4
- var result = {};
5
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
- result["default"] = mod;
7
- return result;
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const CoreAST = __importStar(require("../core/AST"));
11
- // Helper function to extract the expression from the binding
12
- function getExpr(binding) {
13
- return binding[0];
14
- }
15
- function unPartialEval(node) {
16
- switch (node.type) {
17
- case 'const':
18
- return CoreAST.constNode(node.value);
19
- case 'space':
20
- return CoreAST.space(node.width);
21
- case 'declare':
22
- return CoreAST.declare(node.name, getExpr(node.value));
23
- case 'assign':
24
- return CoreAST.assign(node.name, getExpr(node.value));
25
- case 'exp':
26
- return CoreAST.exp(getExpr(node.binding));
27
- case 'nop':
28
- return CoreAST.nop();
29
- case 'end':
30
- return CoreAST.end();
31
- case 'bot':
32
- return CoreAST.bot();
33
- case 'seq':
34
- return unSeq(node);
35
- case 'lambda':
36
- return unPartialEvalLambdaApp(node);
37
- default:
38
- throw new Error(`Unknown node type: ${node.type}`);
39
- }
40
- }
41
- exports.unPartialEval = unPartialEval;
42
- // 2 branchstart()...
43
- // 4 loopstart()
44
- function unSeq(node) {
45
- const nodes = node.nodes;
46
- const newNodes = [];
47
- for (let i = 0; i < nodes.length; i++) {
48
- const current = nodes[i];
49
- if (current.type === 'branchstart') {
50
- const condition = current.condition[0];
51
- const conditionValue = current.condition[1];
52
- const trueBranch = current.trueBranch;
53
- const falseBranch = current.falseBranch;
54
- const updatedBranchSeq = [];
55
- for (let j = i + 1; j < nodes.length; j++) {
56
- const next = nodes[j];
57
- if (next.type === 'branchend') {
58
- break;
59
- }
60
- else {
61
- updatedBranchSeq.push(unPartialEval(nodes[j]));
62
- }
63
- }
64
- if (condition) {
65
- newNodes.push(CoreAST.ite(condition, { type: 'seq', nodes: updatedBranchSeq }, falseBranch));
66
- }
67
- else {
68
- newNodes.push(CoreAST.ite(condition, trueBranch, { type: 'seq', nodes: updatedBranchSeq }));
69
- }
70
- i += updatedBranchSeq.length + 1;
71
- }
72
- else if (current.type === 'loopfront') {
73
- let loopfrontNode = current;
74
- let looprearNode = { type: 'looprear', value: '' };
75
- const updatedLoopSeq = [];
76
- for (let j = i + 1; j < nodes.length; j++) {
77
- const next = nodes[j];
78
- if (next.type === 'looprear') {
79
- looprearNode = next;
80
- break;
81
- }
82
- else {
83
- updatedLoopSeq.push(unPartialEval(nodes[j]));
84
- }
85
- }
86
- // case 1: all deleted, including front/rear
87
- if (loopfrontNode.value === "" && looprearNode.value === "" && (updatedLoopSeq.length == 0 || isAllBot(updatedLoopSeq))) {
88
- newNodes.push(CoreAST.bot());
89
- }
90
- else if (updatedLoopSeq.length == 0 || isAllBot(updatedLoopSeq)) {
91
- // case 2: emtpy list
92
- newNodes.push(CoreAST.loop(loopfrontNode.lst, loopfrontNode.separator, { type: 'front', value: current.value }, { type: 'rear', value: looprearNode.value }, loopfrontNode.body));
93
- }
94
- else if (updatedLoopSeq.length == 1) {
95
- // case 3: one in list
96
- let body = updatedLoopSeq[0];
97
- if (body.type === "lambdawithexpr") {
98
- newNodes.push(CoreAST.loop(loopfrontNode.lst, loopfrontNode.separator, { type: 'front', value: current.value }, { type: 'rear', value: looprearNode.value }, constructLambda(body)));
99
- }
100
- else {
101
- throw new Error("Must be lambda in loopitem");
102
- }
103
- }
104
- else {
105
- // case 4 and case 5
106
- let filteredUpdatedLoopSeq = filterBotNodesFromTermNodes(updatedLoopSeq);
107
- if (areAllLambdaWithExprsEqual(filteredUpdatedLoopSeq)) {
108
- newNodes.push(CoreAST.loop(loopfrontNode.lst, loopfrontNode.separator, { type: 'front', value: current.value }, { type: 'rear', value: looprearNode.value }, constructLambda(filteredUpdatedLoopSeq[0])));
109
- }
110
- else {
111
- throw new Error("\ x.t in loop seq, ts are not equal");
112
- }
113
- }
114
- i += updatedLoopSeq.length + 1;
115
- }
116
- else {
117
- newNodes.push(unPartialEval(current));
118
- }
119
- }
120
- return CoreAST.seq(...newNodes);
121
- }
122
- function unPartialEvalLambdaApp(node) {
123
- let { variable, body, binding, marker } = node;
124
- let newBody = unPartialEval(body);
125
- return {
126
- type: 'lambdawithexpr',
127
- variable: variable,
128
- body: newBody,
129
- exp: convertToArrayLiteral(binding[1])
130
- };
131
- }
132
- // Function to check if a given node is a BotNode
133
- function isBotNode(node) {
134
- return node.type === 'bot';
135
- }
136
- // Function to check whether all elements in a list are BotNode
137
- function isAllBot(nodes) {
138
- return nodes.every(isBotNode);
139
- }
140
- // Function to convert a single Value to an Expr
141
- function valueToExpr(value) {
142
- if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'string' || value === null) {
143
- return { type: 'constant', value };
144
- }
145
- else if (Array.isArray(value)) {
146
- return { type: 'array', elements: value.map(valueToExpr) };
147
- }
148
- else if (value.type === 'object') {
149
- const fields = {};
150
- for (const key in value.fields) {
151
- if (value.fields.hasOwnProperty(key)) {
152
- const fieldValue = value.fields[key];
153
- fields[key] = { type: 'constant', value: fieldValue };
154
- }
155
- }
156
- return { type: 'object', fields };
157
- }
158
- else {
159
- throw new Error("Unsupported Value type");
160
- }
161
- }
162
- // Function to convert a single Value to an ArrayLiteral
163
- function singleValueToArrayLiteral(value) {
164
- const element = valueToExpr(value);
165
- return { type: 'array', elements: [element] };
166
- }
167
- // Function to convert a list of Values to an ArrayLiteral
168
- function valuesToArrayLiteral(values) {
169
- const elements = values.map(valueToExpr);
170
- return { type: 'array', elements };
171
- }
172
- // Function to convert a Value or Value[] to an ArrayLiteral
173
- function convertToArrayLiteral(valueOrValues) {
174
- if (Array.isArray(valueOrValues)) {
175
- return valuesToArrayLiteral(valueOrValues);
176
- }
177
- else {
178
- return singleValueToArrayLiteral(valueOrValues);
179
- }
180
- }
181
- // Function to construct a Lambda from a LambdaWithExpr
182
- function constructLambda(lambdaWithExpr) {
183
- return {
184
- type: 'lambda',
185
- variable: lambdaWithExpr.variable,
186
- body: lambdaWithExpr.body
187
- };
188
- }
189
- // Type guard to check if a TermNode is a LambdaWithExpr
190
- function isLambdaWithExpr(node) {
191
- return node.type === 'lambdawithexpr';
192
- }
193
- // Function to filter TermNodes which are LambdaWithExpr and do not have a BotNode as body
194
- function filterBotNodesFromTermNodes(nodes) {
195
- return nodes.filter(isLambdaWithExpr).filter(lambda => !isBotNode(lambda.body));
196
- }
197
- // Function to check if two Variables are equal
198
- function areVariablesEqual(var1, var2) {
199
- return var1.name === var2.name;
200
- }
201
- // Function to check if two Expr objects are equal
202
- function areExprEqual(expr1, expr2) {
203
- if (expr1.type !== expr2.type) {
204
- return false;
205
- }
206
- switch (expr1.type) {
207
- case 'constant':
208
- const constant1 = expr1;
209
- const constant2 = expr2;
210
- if (typeof constant1.value === 'object' && typeof constant2.value === 'object') {
211
- return areExprEqual(constant1.value, constant2.value);
212
- }
213
- return constant1.value === constant2.value;
214
- case 'variable':
215
- return expr1.name === expr2.name;
216
- case 'binary':
217
- const binary1 = expr1;
218
- const binary2 = expr2;
219
- return binary1.operator === binary2.operator &&
220
- areExprEqual(binary1.left, binary2.left) &&
221
- areExprEqual(binary1.right, binary2.right);
222
- case 'unary':
223
- const unary1 = expr1;
224
- const unary2 = expr2;
225
- return unary1.operator === unary2.operator &&
226
- areExprEqual(unary1.operand, unary2.operand);
227
- case 'field':
228
- const field1 = expr1;
229
- const field2 = expr2;
230
- return field1.field === field2.field &&
231
- areExprEqual(field1.object, field2.object);
232
- case 'array':
233
- const array1 = expr1;
234
- const array2 = expr2;
235
- if (array1.elements.length !== array2.elements.length) {
236
- return false;
237
- }
238
- return array1.elements.every((element, index) => areExprEqual(element, array2.elements[index]));
239
- case 'object':
240
- const object1 = expr1;
241
- const object2 = expr2;
242
- const fields1 = Object.keys(object1.fields);
243
- const fields2 = Object.keys(object2.fields);
244
- if (fields1.length !== fields2.length) {
245
- return false;
246
- }
247
- return fields1.every(field => object2.fields.hasOwnProperty(field) && areExprEqual(object1.fields[field], object2.fields[field]));
248
- case 'freeze':
249
- return areExprEqual(expr1.expression, expr2.expression);
250
- default:
251
- return false;
252
- }
253
- }
254
- // Recursive function to check if two TermNodes are equal
255
- function areTermNodesEqual(node1, node2) {
256
- if (node1.type !== node2.type) {
257
- return false;
258
- }
259
- switch (node1.type) {
260
- case 'const':
261
- return node1.value === node2.value;
262
- case 'space':
263
- return node1.width === node2.width;
264
- case 'declare':
265
- const declare1 = node1;
266
- const declare2 = node2;
267
- return areVariablesEqual(declare1.name, declare2.name) && areExprEqual(declare1.value, declare2.value);
268
- case 'assign':
269
- const assign1 = node1;
270
- const assign2 = node2;
271
- return areVariablesEqual(assign1.name, assign2.name) && areExprEqual(assign1.value, assign2.value);
272
- case 'exp':
273
- return areExprEqual(node1.expression, node2.expression);
274
- case 'seq':
275
- const seq1 = node1.nodes;
276
- const seq2 = node2.nodes;
277
- if (seq1.length !== seq2.length) {
278
- return false;
279
- }
280
- return seq1.every((subNode, index) => areTermNodesEqual(subNode, seq2[index]));
281
- case 'ite':
282
- const ite1 = node1;
283
- const ite2 = node2;
284
- return areExprEqual(ite1.condition, ite2.condition) &&
285
- areTermNodesEqual(ite1.trueBranch, ite2.trueBranch) &&
286
- areTermNodesEqual(ite1.falseBranch, ite2.falseBranch);
287
- case 'loop':
288
- const loop1 = node1;
289
- const loop2 = node2;
290
- return areExprEqual(loop1.lst, loop2.lst) &&
291
- loop1.separator.value === loop2.separator.value &&
292
- loop1.front.value === loop2.front.value &&
293
- loop1.rear.value === loop2.rear.value &&
294
- areLambdasEqual(loop1.body, loop2.body);
295
- case 'nop':
296
- return true;
297
- case 'bot':
298
- return true;
299
- case 'end':
300
- return true;
301
- case 'call':
302
- const call1 = node1;
303
- const call2 = node2;
304
- return areTermNodesEqual(call1.func, call2.func) &&
305
- Object.keys(call1.args).length === Object.keys(call2.args).length &&
306
- Object.keys(call1.args).every(key => areExprEqual(call1.args[key], call2.args[key]));
307
- case 'lambdawithexpr':
308
- const lambda1 = node1;
309
- const lambda2 = node2;
310
- return areVariablesEqual(lambda1.variable, lambda2.variable) &&
311
- areTermNodesEqual(lambda1.body, lambda2.body);
312
- default:
313
- return false;
314
- }
315
- }
316
- // Function to check if two LambdaWithExpr are equal
317
- function areLambdasEqual(lambda1, lambda2) {
318
- return areVariablesEqual(lambda1.variable, lambda2.variable) &&
319
- areTermNodesEqual(lambda1.body, lambda2.body);
320
- }
321
- // Function to check if two LambdaWithExpr are equal
322
- function areLambdaWithExprsEqual(lambda1, lambda2) {
323
- return areVariablesEqual(lambda1.variable, lambda2.variable) &&
324
- areTermNodesEqual(lambda1.body, lambda2.body);
325
- }
326
- // Function to check if all elements in a list of LambdaWithExpr are equal
327
- function areAllLambdaWithExprsEqual(lambdas) {
328
- if (lambdas.length === 0) {
329
- return true;
330
- }
331
- const firstLambda = lambdas[0];
332
- return lambdas.every(lambda => areLambdaWithExprsEqual(lambda, firstLambda));
333
- }
334
- // 定义 flatten 函数
335
- function flatten(termNode) {
336
- if (termNode.type === 'seq') {
337
- // 如果 termNode 是 seq 类型,则递归处理每个元素,并返回新的 seq 节点
338
- const flattenedElements = termNode.nodes.map(element => flatten(element));
339
- return { type: 'seq', nodes: flattenedElements.flatMap(seqNode => {
340
- if (seqNode.type === 'seq') {
341
- return seqNode.nodes;
342
- }
343
- else {
344
- return [seqNode];
345
- }
346
- }) };
347
- }
348
- else if (termNode.type === "ite") {
349
- return Object.assign(Object.assign({}, termNode), { trueBranch: flatten(termNode.trueBranch), falseBranch: flatten(termNode.falseBranch) });
350
- }
351
- else if (termNode.type === "loop") {
352
- return Object.assign(Object.assign({}, termNode), { body: Object.assign(Object.assign({}, termNode.body), { body: flatten(termNode.body.body) }) });
353
- }
354
- else {
355
- // 其他情况下,直接返回
356
- return termNode;
357
- }
358
- }
359
- exports.flatten = flatten;
360
- //# sourceMappingURL=unpeval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unpeval.js","sourceRoot":"","sources":["../../../src/partialEval/unpeval.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=AST.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AST.js","sourceRoot":"","sources":["../../../src/surface/AST.ts"],"names":[],"mappings":""}