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 +0,0 @@
1
- {"version":3,"file":"Fuse.js","sourceRoot":"","sources":["../../../src/fuse/Fuse.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // Print function
4
- function operationToStr(op) {
5
- switch (op.type) {
6
- case 'insert':
7
- return `insert "${op.str}" at ${op.position}`;
8
- case 'delete':
9
- return `delete "${op.str}" at ${op.position}`;
10
- case 'replace':
11
- return `replace "${op.str1}" with "${op.str2}" at ${op.position}`;
12
- case 'bulk':
13
- const bulkOps = op.operations.map(operationToStr).join(', ');
14
- return `bulk(${bulkOps})`;
15
- case 'id':
16
- return 'id';
17
- default:
18
- throw new Error(`Unhandled operation type: ${op.type}`);
19
- }
20
- }
21
- exports.operationToStr = operationToStr;
22
- //# sourceMappingURL=Print.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Print.js","sourceRoot":"","sources":["../../../src/fuse/Print.ts"],"names":[],"mappings":";;AAEA,iBAAiB;AACjB,SAAgB,cAAc,CAAC,EAAmB;IAChD,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,KAAK,QAAQ;YACX,OAAO,WAAW,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,WAAW,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAChD,KAAK,SAAS;YACZ,OAAO,YAAY,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpE,KAAK,MAAM;YACT,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO,QAAQ,OAAO,GAAG,CAAC;QAC5B,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd;YACE,MAAM,IAAI,KAAK,CAAC,6BAA8B,EAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;KAChF;AACH,CAAC;AAhBD,wCAgBC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Update.js","sourceRoot":"","sources":["../../../src/fuse/Update.ts"],"names":[],"mappings":""}
@@ -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/lambda/AST.ts"],"names":[],"mappings":""}
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function evaluateTermNode(node) {
4
- switch (node.type) {
5
- case 'const':
6
- return node.value;
7
- case 'sep':
8
- return node.value;
9
- case 'space':
10
- return ' '.repeat(node.width);
11
- case 'exp':
12
- return String(evaluateBinding(node.binding));
13
- case 'seq':
14
- return node.nodes.map(subNode => evaluateTermNode(subNode)).join('');
15
- case 'lambda':
16
- return evaluateTermNode(node.body);
17
- case 'branchstart':
18
- case 'branchend':
19
- case 'end':
20
- case 'bot':
21
- case 'nop':
22
- return ''; // 返回空字符串,表示这些节点在输出中没有表示
23
- case 'loopfront':
24
- case 'looprear':
25
- return node.value;
26
- default:
27
- throw new Error(`Unhandled term node type: ${node.type}`);
28
- }
29
- }
30
- exports.evaluateTermNode = evaluateTermNode;
31
- function evaluateConstant(constant) {
32
- const { value } = constant;
33
- if (value === null) {
34
- return 'null';
35
- }
36
- else if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'string') {
37
- return String(value);
38
- }
39
- else if (Array.isArray(value)) {
40
- return `[${value.map(item => String(item)).join(', ')}]`;
41
- }
42
- else if (typeof value === 'object' && value.type === 'object') {
43
- const fields = Object.entries(value.fields).map(([key, val]) => `${key}: ${evaluateConstant(val)}`);
44
- return `{ ${fields.join(', ')} }`;
45
- }
46
- else {
47
- throw new Error(`Unhandled constant value type: ${typeof value}`);
48
- }
49
- }
50
- function evaluateBinding(binding) {
51
- let value = binding[1];
52
- return printValue(value);
53
- }
54
- function printValue(value) {
55
- if (value === null) {
56
- return 'null';
57
- }
58
- else if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'string') {
59
- return value.toString();
60
- }
61
- else if (value.type === 'object') {
62
- const objectValue = value;
63
- let result = '{';
64
- for (const key in objectValue.fields) {
65
- if (objectValue.fields.hasOwnProperty(key)) {
66
- result += `${key}: ${printValue(objectValue.fields[key])}, `;
67
- }
68
- }
69
- if (result.length > 1) {
70
- result = result.slice(0, -2); // 移除最后的逗号和空格
71
- }
72
- result += '}';
73
- return result;
74
- }
75
- else if (Array.isArray(value)) {
76
- const arrayValue = value;
77
- let result = '[';
78
- for (const element of arrayValue) {
79
- result += `${printValue(element)}, `;
80
- }
81
- if (result.length > 1) {
82
- result = result.slice(0, -2); // 移除最后的逗号和空格
83
- }
84
- result += ']';
85
- return result;
86
- }
87
- else {
88
- throw new Error(`Unhandled value type: ${typeof value}`);
89
- }
90
- }
91
- exports.printValue = printValue;
92
- function isObjectValue(value) {
93
- return value.type === 'object';
94
- }
95
- function isArrayValue(value) {
96
- return Array.isArray(value);
97
- }
98
- //# sourceMappingURL=Evaluation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Evaluation.js","sourceRoot":"","sources":["../../../src/lambda/Evaluation.ts"],"names":[],"mappings":"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"}
@@ -1,31 +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 PartialPrint = __importStar(require("../partial/Print"));
11
- // Function to print LambdaAST nodes
12
- function printNode(node, indent = "") {
13
- switch (node.type) {
14
- case 'lambda':
15
- console.log(`${indent}LambdaAppNode:`);
16
- console.log(`${indent} Variable: ${node.variable.name}`);
17
- console.log(`${indent} Binding:`);
18
- PartialPrint.printBinding(node.binding, indent + " ");
19
- console.log(`${indent} Marker: ${node.marker.type}`);
20
- console.log(`${indent} Body:`);
21
- printNode(node.body, indent + " ");
22
- break;
23
- case 'seq':
24
- node.nodes.forEach(n => printNode(n, indent + ' '));
25
- break;
26
- default:
27
- PartialPrint.printNode(node, indent);
28
- }
29
- }
30
- exports.printNode = printNode;
31
- //# sourceMappingURL=Print.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Print.js","sourceRoot":"","sources":["../../../src/lambda/Print.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+DAAiD;AAGjD,oCAAoC;AACpC,SAAgB,SAAS,CAAC,IAAwB,EAAE,SAAiB,EAAE;IACrE,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC;YACnC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;YACtC,MAAM;QACR,KAAK,KAAK;YACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;YACrD,MAAM;QACR;YACE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACxC;AACH,CAAC;AAjBD,8BAiBC"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function lambdalize(partialAST) {
4
- let nodeType = partialAST.type;
5
- if (nodeType === 'seq') {
6
- let seqNode = partialAST;
7
- return lambdalizeSeq(seqNode);
8
- }
9
- else if (nodeType === "declare" || nodeType === 'assign') {
10
- throw new Error("declare|assign node shall not be visible here.");
11
- }
12
- else if (nodeType === 'lambda') {
13
- let lambdaAppNode = partialAST;
14
- let body = lambdaAppNode.body;
15
- let translatedBody = lambdalize(body);
16
- let newLambdaAppNode = {
17
- type: 'lambda',
18
- variable: lambdaAppNode.variable,
19
- body: translatedBody,
20
- binding: lambdaAppNode.binding,
21
- marker: lambdaAppNode.marker
22
- };
23
- return newLambdaAppNode;
24
- }
25
- else {
26
- // @ts-ignore
27
- return partialAST;
28
- }
29
- }
30
- exports.lambdalize = lambdalize;
31
- function lambdalizeSeq(seqNode) {
32
- let nodes = seqNode.nodes;
33
- let newNodes = [];
34
- for (let i = 0; i < nodes.length; i++) {
35
- let currentNode = nodes[i];
36
- if (currentNode.type === 'declare' || currentNode.type === 'assign') {
37
- let declareNode = currentNode;
38
- let [innerNodes, nextIndex] = extractNodesUntilBranchEndOrLast(nodes, i + 1);
39
- let { nodes: updatedInnerNodes } = lambdalizeSeq({ type: 'seq', nodes: innerNodes });
40
- let lastNode = updatedInnerNodes.pop();
41
- if (lastNode === undefined) {
42
- // 数组为空,没有最后一个元素
43
- throw new Error("Expected the last element to be a BranchEndNode, but the array was empty.");
44
- }
45
- else if ((lastNode === null || lastNode === void 0 ? void 0 : lastNode.type) !== 'branchend') {
46
- updatedInnerNodes.push(lastNode);
47
- }
48
- let lambdaNode = {
49
- type: 'lambda',
50
- variable: declareNode.name,
51
- body: { type: 'seq', nodes: updatedInnerNodes },
52
- binding: declareNode.value,
53
- marker: { type: currentNode.type }
54
- };
55
- newNodes.push(lambdaNode);
56
- if ((lastNode === null || lastNode === void 0 ? void 0 : lastNode.type) === 'branchend') {
57
- newNodes.push({ type: 'branchend' });
58
- }
59
- i = nextIndex; // Skip to the index after the matched BranchEndNode
60
- }
61
- else {
62
- newNodes.push(lambdalize(currentNode));
63
- }
64
- }
65
- return { type: 'seq', nodes: newNodes };
66
- }
67
- function extractNodesUntilBranchEndOrLast(nodes, startIndex) {
68
- let innerNodes = [];
69
- let branchStartCount = 0;
70
- for (let i = startIndex; i < nodes.length; i++) {
71
- // branch
72
- if (nodes[i].type === 'branchstart') {
73
- branchStartCount++;
74
- }
75
- else if (nodes[i].type === 'branchend') {
76
- if (branchStartCount === 0) {
77
- innerNodes.push(nodes[i]);
78
- return [innerNodes, i];
79
- }
80
- else {
81
- branchStartCount--;
82
- }
83
- }
84
- // program
85
- if (nodes[i].type === 'end') {
86
- innerNodes.push(nodes[i]);
87
- return [innerNodes, i];
88
- }
89
- // normal nodes, even till end of the sequence
90
- innerNodes.push(nodes[i]);
91
- }
92
- return [innerNodes, nodes.length - 1];
93
- }
94
- //# sourceMappingURL=lambdalize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lambdalize.js","sourceRoot":"","sources":["../../../src/lambdalize/lambdalize.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // Define the unLambdalize function
4
- function unLambdalize(lambdaNode) {
5
- switch (lambdaNode.type) {
6
- case 'lambda': {
7
- const { variable, body, binding, marker } = lambdaNode;
8
- let newBody;
9
- switch (marker.type) {
10
- case 'declare': {
11
- // Apply the [T-I-Declare] rule
12
- newBody = unLambdalize(body);
13
- return {
14
- type: 'seq',
15
- nodes: [
16
- {
17
- type: 'declare',
18
- name: variable,
19
- value: binding,
20
- },
21
- newBody,
22
- ],
23
- };
24
- }
25
- case 'assign': {
26
- // Apply the [T-I-Assign] rule
27
- newBody = unLambdalize(body);
28
- return {
29
- type: 'seq',
30
- nodes: [
31
- {
32
- type: 'assign',
33
- name: variable,
34
- value: binding,
35
- },
36
- newBody,
37
- ],
38
- };
39
- }
40
- default: {
41
- return { type: 'lambda', variable: variable, body: unLambdalize(body), binding: binding, marker: marker };
42
- }
43
- }
44
- }
45
- // Recursively handle other node types
46
- case 'seq': {
47
- return {
48
- type: 'seq',
49
- nodes: lambdaNode.nodes.map(unLambdalize),
50
- };
51
- }
52
- default: {
53
- // Return the node unchanged if it doesn't match any transformation rules
54
- return lambdaNode;
55
- }
56
- }
57
- }
58
- exports.unLambdalize = unLambdalize;
59
- //# sourceMappingURL=unLambdalize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unLambdalize.js","sourceRoot":"","sources":["../../../src/lambdalize/unLambdalize.ts"],"names":[],"mappings":";;AAGA,mCAAmC;AACnC,SAAgB,YAAY,CAAC,UAA8B;IACzD,QAAQ,UAAU,CAAC,IAAI,EAAE;QACvB,KAAK,QAAQ,CAAC,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;YACvD,IAAI,OAA4B,CAAC;YAEjC,QAAQ,MAAM,CAAC,IAAI,EAAE;gBACnB,KAAK,SAAS,CAAC,CAAC;oBACd,+BAA+B;oBAC/B,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO;wBACL,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BACL;gCACE,IAAI,EAAE,SAAS;gCACf,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,OAAO;6BACf;4BACD,OAAO;yBACR;qBACF,CAAC;iBACH;gBAED,KAAK,QAAQ,CAAC,CAAC;oBACb,8BAA8B;oBAC9B,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO;wBACL,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BACL;gCACE,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,OAAO;6BACf;4BACD,OAAO;yBACR;qBACF,CAAC;iBACH;gBAED,OAAO,CAAC,CAAC;oBACP,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,EAAE,CAAA;iBACrG;aACF;SACF;QAED,sCAAsC;QACtC,KAAK,KAAK,CAAC,CAAC;YACV,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;aAC1C,CAAC;SACH;QAED,OAAO,CAAC,CAAC;YACP,yEAAyE;YACzE,OAAO,UAAiC,CAAC;SAC1C;KACF;AACH,CAAC;AA1DD,oCA0DC"}
@@ -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/partial/AST.ts"],"names":[],"mappings":""}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Print_1 = require("../common/Print");
4
- // Function to print the AST nodes for testing purposes
5
- function printNode(node, indent = '') {
6
- console.log(indent + node.type);
7
- switch (node.type) {
8
- case 'const':
9
- console.log(indent + ' Value: ' + node.value);
10
- break;
11
- case 'space':
12
- console.log(indent + ' Width: ' + node.width);
13
- break;
14
- case 'declare':
15
- console.log(indent + ' Name: ' + node.name.name);
16
- printBinding(node.value, indent + ' ');
17
- break;
18
- case 'assign':
19
- console.log(indent + ' Name: ' + node.name.name);
20
- printBinding(node.value, indent + ' ');
21
- break;
22
- case 'exp':
23
- printBinding(node.binding, indent + ' ');
24
- break;
25
- case 'seq':
26
- node.nodes.forEach(n => printNode(n, indent + ' '));
27
- break;
28
- case 'branchstart':
29
- printBinding(node.condition, indent + ' ');
30
- break;
31
- case 'sep':
32
- console.log(indent + ' Value: ' + node.value);
33
- break;
34
- case 'loopfront':
35
- console.log(indent + ' front: ' + node.value);
36
- break;
37
- case 'looprear':
38
- console.log(indent + ' rear: ' + node.value);
39
- break;
40
- case 'lambda':
41
- console.log(indent + ' Variable: ' + node.variable.name);
42
- printNode(node.body, indent + ' ');
43
- printBinding(node.binding, indent + ' ');
44
- printMarker(node.marker, indent + ' ');
45
- break;
46
- case 'callstart':
47
- console.log(indent + ' Name: ' + node.name);
48
- break;
49
- case 'end':
50
- console.log(`${indent} End`);
51
- break;
52
- default:
53
- break;
54
- }
55
- }
56
- exports.printNode = printNode;
57
- function printBinding(binding, indent) {
58
- Print_1.printExpression(binding[0], indent);
59
- printValue(binding[1], indent);
60
- }
61
- exports.printBinding = printBinding;
62
- // Function to print Value with indent
63
- function printValue(value, indent) {
64
- if (value === null) {
65
- console.log(`${indent}null`);
66
- }
67
- else if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'string') {
68
- console.log(`${indent}${value}`);
69
- }
70
- else if (typeof value === 'object') {
71
- // Assume value is an ObjectLiteral
72
- console.log(`${indent}{`);
73
- const objectValue = value; // Type assertion to ensure correct indexing
74
- for (const key in objectValue) {
75
- if (objectValue.hasOwnProperty(key)) {
76
- const newIndent = indent + " ";
77
- console.log(`${newIndent}${key}:`);
78
- //@ts-ignore
79
- printValue(objectValue[key], newIndent + " ");
80
- }
81
- }
82
- console.log(`${indent}}`);
83
- }
84
- else {
85
- throw new Error(`Unhandled value type: ${typeof value}`);
86
- }
87
- }
88
- exports.printValue = printValue;
89
- function printMarker(marker, indent = '') {
90
- console.log(indent + marker.type);
91
- }
92
- exports.printMarker = printMarker;
93
- //# sourceMappingURL=Print.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Print.js","sourceRoot":"","sources":["../../../src/partial/Print.ts"],"names":[],"mappings":"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"}