@abaplint/transpiler
Version:
29 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModifyDatabaseTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
const expressions_1 = require("../expressions");
class ModifyDatabaseTranspiler {
transpile(node, traversal) {
const dbtab = node.findFirstExpression(abaplint.Expressions.DatabaseTable);
if (dbtab === undefined) {
throw new Error("internal error, ModifyDatabaseTranspiler");
}
const table = new expressions_1.DatabaseTableTranspiler(false).transpile(dbtab, traversal);
const options = [];
const tab = node.findExpressionAfterToken("TABLE");
if (tab) {
const ttab = traversal.traverse(tab);
options.push(`"table": ` + ttab.getCode());
}
const from = node.findExpressionAfterToken("FROM");
if (from && from.get() instanceof abaplint.Expressions.SQLSource) {
const tvalues = traversal.traverse(from);
options.push(`"values": ` + tvalues.getCode());
}
return new chunk_1.Chunk(`await abap.statements.modifyDatabase(${table.getCode()}, {${options.join(", ")}});`);
}
}
exports.ModifyDatabaseTranspiler = ModifyDatabaseTranspiler;
//# sourceMappingURL=modify_database.js.map