@abaplint/transpiler
Version:
30 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TranslateTranspiler = void 0;
const abaplint = require("@abaplint/core");
const expressions_1 = require("../expressions");
const chunk_1 = require("../chunk");
class TranslateTranspiler {
transpile(node, traversal) {
const target = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Target)).getCode();
let type = "";
if (node.findDirectTokenByText("UPPER")) {
type = `"UPPER"`;
}
else if (node.findDirectTokenByText("LOWER")) {
type = `"LOWER"`;
}
else {
const s = node.findDirectExpression(abaplint.Expressions.Source);
if (s) {
type = new expressions_1.SourceTranspiler(true).transpile(s, traversal).getCode();
}
else {
throw new Error("TranslateTranspiler, Source expression not found");
}
}
return new chunk_1.Chunk().append("abap.statements.translate(" + target + ", " + type + ");", node, traversal);
}
}
exports.TranslateTranspiler = TranslateTranspiler;
//# sourceMappingURL=translate.js.map