@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
21 lines (20 loc) • 879 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.replaceNativesAndReturnRoot = void 0;
var IRNative_1 = require("../../../IRNodes/IRNative/index.js");
var _modifyChildFromTo_1 = require("../../_internal/_modifyChildFromTo.js");
var iterTree_1 = require("../../_internal/iterTree.js");
var nativeToIR_1 = require("./nativeToIR.js");
function replaceNativesAndReturnRoot(tree) {
if (tree instanceof IRNative_1.IRNative) {
return (0, nativeToIR_1.nativeToIR)(tree);
}
(0, iterTree_1.iterTree)(tree, function (elem) {
if (elem instanceof IRNative_1.IRNative && elem.tag < 0) {
(0, _modifyChildFromTo_1._modifyChildFromTo)(elem.parent, elem, (0, nativeToIR_1.nativeToIR)(elem));
return true;
}
});
return tree;
}
exports.replaceNativesAndReturnRoot = replaceNativesAndReturnRoot;