@abaplint/transpiler
Version:
36 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CallTransformationParametersTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
class CallTransformationParametersTranspiler {
transpile(node, traversal) {
if (node.getFirstChild()?.get() instanceof abaplint.Expressions.Dynamic) {
return new chunk_1.Chunk().append(node.concatTokens(), node, traversal);
}
else {
const res = new chunk_1.Chunk().appendString("{");
for (const c of node.getChildren()) {
if (c.get() instanceof abaplint.Expressions.Field || c.get() instanceof abaplint.Expressions.Integer) {
if (res.getCode() !== "{") {
res.appendString(",");
}
res.appendString(c.concatTokens());
}
else if (c.get() instanceof abaplint.Expressions.SimpleSource3) {
res.appendChunk(traversal.traverse(c));
}
else if (c.concatTokens() === "=") {
res.appendString(":");
}
else {
throw new Error("CallTransformationParametersTranspiler, unexpected node");
}
}
res.appendString("}");
return res;
}
}
}
exports.CallTransformationParametersTranspiler = CallTransformationParametersTranspiler;
//# sourceMappingURL=call_transformation_parameters.js.map