bit2 0.0.1 → 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.
- package/package.json +4 -2
- package/dist/src/bx/biEval.js +0 -59
- package/dist/src/bx/biEval.js.map +0 -1
- package/dist/src/common/Exp.js +0 -44
- package/dist/src/common/Exp.js.map +0 -1
- package/dist/src/common/PrettyPrint.js +0 -32
- package/dist/src/common/PrettyPrint.js.map +0 -1
- package/dist/src/common/Print.js +0 -73
- package/dist/src/common/Print.js.map +0 -1
- package/dist/src/core/AST.js +0 -47
- package/dist/src/core/AST.js.map +0 -1
- package/dist/src/core/PrettyPrint.js +0 -64
- package/dist/src/core/PrettyPrint.js.map +0 -1
- package/dist/src/core/Print.js +0 -77
- package/dist/src/core/Print.js.map +0 -1
- package/dist/src/fuse/Fuse.js +0 -1436
- package/dist/src/fuse/Fuse.js.map +0 -1
- package/dist/src/fuse/Print.js +0 -22
- package/dist/src/fuse/Print.js.map +0 -1
- package/dist/src/fuse/Update.js +0 -3
- package/dist/src/fuse/Update.js.map +0 -1
- package/dist/src/lambda/AST.js +0 -3
- package/dist/src/lambda/AST.js.map +0 -1
- package/dist/src/lambda/Evaluation.js +0 -98
- package/dist/src/lambda/Evaluation.js.map +0 -1
- package/dist/src/lambda/Print.js +0 -31
- package/dist/src/lambda/Print.js.map +0 -1
- package/dist/src/lambdalize/lambdalize.js +0 -94
- package/dist/src/lambdalize/lambdalize.js.map +0 -1
- package/dist/src/lambdalize/unLambdalize.js +0 -59
- package/dist/src/lambdalize/unLambdalize.js.map +0 -1
- package/dist/src/partial/AST.js +0 -3
- package/dist/src/partial/AST.js.map +0 -1
- package/dist/src/partial/Print.js +0 -93
- package/dist/src/partial/Print.js.map +0 -1
- package/dist/src/partialEval/peval.js +0 -322
- package/dist/src/partialEval/peval.js.map +0 -1
- package/dist/src/partialEval/unpeval.js +0 -360
- package/dist/src/partialEval/unpeval.js.map +0 -1
- package/dist/src/surface/AST.js +0 -3
- package/dist/src/surface/AST.js.map +0 -1
- package/dist/src/surface/Parser.js +0 -314
- package/dist/src/surface/Parser.js.map +0 -1
- package/dist/src/translate/Translate.js +0 -91
- package/dist/src/translate/Translate.js.map +0 -1
- package/dist/src/utils/Utils.js +0 -7
- package/dist/src/utils/Utils.js.map +0 -1
- package/dist/test/bx/biEval.test.d.ts +0 -1
- package/dist/test/bx/biEval.test.js +0 -41
- package/dist/test/bx/biEval.test.js.map +0 -1
- package/dist/test/bx/test.d.ts +0 -1
- package/dist/test/bx/test.js +0 -29
- package/dist/test/bx/test.js.map +0 -1
- package/dist/test/core/0.simple.test.d.ts +0 -4
- package/dist/test/core/0.simple.test.js +0 -68
- package/dist/test/core/0.simple.test.js.map +0 -1
- package/dist/test/core/1.core.test.d.ts +0 -2
- package/dist/test/core/1.core.test.js +0 -30
- package/dist/test/core/1.core.test.js.map +0 -1
- package/dist/test/core/core.test.d.ts +0 -1
- package/dist/test/core/core.test.js +0 -28
- package/dist/test/core/core.test.js.map +0 -1
- package/dist/test/fuse/branchnop.test.d.ts +0 -1
- package/dist/test/fuse/branchnop.test.js +0 -47
- package/dist/test/fuse/branchnop.test.js.map +0 -1
- package/dist/test/fuse/bulk.test.d.ts +0 -1
- package/dist/test/fuse/bulk.test.js +0 -111
- package/dist/test/fuse/bulk.test.js.map +0 -1
- package/dist/test/fuse/const.test.d.ts +0 -1
- package/dist/test/fuse/const.test.js +0 -118
- package/dist/test/fuse/const.test.js.map +0 -1
- package/dist/test/fuse/exp.test.d.ts +0 -1
- package/dist/test/fuse/exp.test.js +0 -225
- package/dist/test/fuse/exp.test.js.map +0 -1
- package/dist/test/fuse/lambda.test.d.ts +0 -1
- package/dist/test/fuse/lambda.test.js +0 -139
- package/dist/test/fuse/lambda.test.js.map +0 -1
- package/dist/test/fuse/loop.test.d.ts +0 -1
- package/dist/test/fuse/loop.test.js +0 -39
- package/dist/test/fuse/loop.test.js.map +0 -1
- package/dist/test/fuse/seq.test.d.ts +0 -1
- package/dist/test/fuse/seq.test.js +0 -64
- package/dist/test/fuse/seq.test.js.map +0 -1
- package/dist/test/fuse/space.test.d.ts +0 -1
- package/dist/test/fuse/space.test.js +0 -136
- package/dist/test/fuse/space.test.js.map +0 -1
- package/dist/test/lambda/evaluation.test.d.ts +0 -1
- package/dist/test/lambda/evaluation.test.js +0 -24
- package/dist/test/lambda/evaluation.test.js.map +0 -1
- package/dist/test/lambda/lambda.test.d.ts +0 -1
- package/dist/test/lambda/lambda.test.js +0 -45
- package/dist/test/lambda/lambda.test.js.map +0 -1
- package/dist/test/lambdalize/lambdalize.test.d.ts +0 -1
- package/dist/test/lambdalize/lambdalize.test.js +0 -23
- package/dist/test/lambdalize/lambdalize.test.js.map +0 -1
- package/dist/test/lambdalize/unLambdalize.test.d.ts +0 -1
- package/dist/test/lambdalize/unLambdalize.test.js +0 -35
- package/dist/test/lambdalize/unLambdalize.test.js.map +0 -1
- package/dist/test/partial/partial.test.d.ts +0 -1
- package/dist/test/partial/partial.test.js +0 -35
- package/dist/test/partial/partial.test.js.map +0 -1
- package/dist/test/partialEval/peval.test.d.ts +0 -1
- package/dist/test/partialEval/peval.test.js +0 -29
- package/dist/test/partialEval/peval.test.js.map +0 -1
- package/dist/test/partialEval/unPeval.test.d.ts +0 -1
- package/dist/test/partialEval/unPeval.test.js +0 -40
- package/dist/test/partialEval/unPeval.test.js.map +0 -1
- package/dist/test/surface/AST.test.d.ts +0 -1
- package/dist/test/surface/AST.test.js +0 -41
- package/dist/test/surface/AST.test.js.map +0 -1
- package/dist/test/translate/translate.test.d.ts +0 -1
- package/dist/test/translate/translate.test.js +0 -45
- 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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"}
|
package/dist/src/fuse/Print.js
DELETED
@@ -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"}
|
package/dist/src/fuse/Update.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Update.js","sourceRoot":"","sources":["../../../src/fuse/Update.ts"],"names":[],"mappings":""}
|
package/dist/src/lambda/AST.js
DELETED
@@ -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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"}
|
package/dist/src/lambda/Print.js
DELETED
@@ -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"}
|
package/dist/src/partial/AST.js
DELETED
@@ -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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"}
|