@abaplint/transpiler
Version:
34 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComponentCondTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
class ComponentCondTranspiler {
transpile(node, traversal) {
let ret = "";
for (const c of node.getChildren()) {
if (c instanceof abaplint.Nodes.ExpressionNode) {
let cond = traversal.traverse(c).getCode();
cond = cond.replace(/^\(I\) => \{return /, "");
cond = cond.replace(/;\}$/, "");
ret += cond;
}
else if (c instanceof abaplint.Nodes.TokenNode) {
switch (c.get().getStr().toUpperCase()) {
case "AND":
ret += " && ";
break;
case "OR":
ret += " || ";
break;
default:
throw new Error("ComponentCondTranspiler, unexpected");
}
}
}
ret = `(I) => {return ${ret};}`;
return new chunk_1.Chunk(ret);
}
}
exports.ComponentCondTranspiler = ComponentCondTranspiler;
//# sourceMappingURL=component_cond.js.map