@abaplint/transpiler
Version:
37 lines • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DatabaseTableTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
class DatabaseTableTranspiler {
constructor(prefix = true) {
this.prefix = prefix;
}
transpile(node, traversal) {
const chunk = new chunk_1.Chunk();
const concat = node.concatTokens();
let val = "";
if (this.prefix === true) {
val = `abap.buildDbTableName(`;
}
const dyn = node.findDirectExpression(abaplint.Expressions.Dynamic);
if (dyn) {
if (concat.startsWith("('")) {
val += `"` + concat.substring(2, concat.length - 2).toLowerCase() + `"`;
}
else {
const foo = traversal.traverse(dyn.findDirectExpression(abaplint.Expressions.FieldChain));
val += foo.getCode() + ".get().trimEnd().toLowerCase()";
}
}
else {
val += `"` + concat.toLowerCase() + `"`;
}
if (this.prefix === true) {
val += `)`;
}
return chunk.appendString(val);
}
}
exports.DatabaseTableTranspiler = DatabaseTableTranspiler;
//# sourceMappingURL=database_table.js.map