@abaplint/transpiler
Version:
37 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComponentCondSubTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
class ComponentCondSubTranspiler {
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 "(":
ret += "(";
break;
case ")":
ret += ")";
break;
case "NOT":
ret += "!";
break;
default:
throw new Error("ComponentCondSubTranspiler, unexpected: " + node.concatTokens());
}
}
}
ret = `(I) => {return ${ret};}`;
return new chunk_1.Chunk(ret);
}
}
exports.ComponentCondSubTranspiler = ComponentCondSubTranspiler;
//# sourceMappingURL=component_cond_sub.js.map