@abaplint/core
Version:
abaplint - Core API
23 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModifyInternal = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
class ModifyInternal {
getMatcher() {
const index = (0, combi_1.seq)("INDEX", expressions_1.Source);
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
const transporting = (0, combi_1.seq)("TRANSPORTING", (0, combi_1.plus)((0, combi_1.alt)(expressions_1.ComponentChainSimple, expressions_1.Dynamic)));
const where = (0, combi_1.seq)("WHERE", expressions_1.ComponentCond);
const assigning = (0, combi_1.seq)("ASSIGNING", expressions_1.FSTarget);
const using = (0, combi_1.seq)("USING KEY", expressions_1.SimpleName);
const additions = (0, combi_1.per)(where, assigning, using);
const target = (0, combi_1.alt)(expressions_1.Target, expressions_1.Dynamic);
const options = (0, combi_1.alt)((0, combi_1.per)(index, transporting), (0, combi_1.seq)(from, (0, combi_1.opt)((0, combi_1.per)(index, transporting, using))), (0, combi_1.seq)((0, combi_1.per)(index, transporting), from, (0, combi_1.opt)((0, combi_1.per)(index, transporting))));
const long = (0, combi_1.seq)("MODIFY", (0, combi_1.opt)("TABLE"), target, (0, combi_1.opt)(options), (0, combi_1.opt)(additions));
const simple = (0, combi_1.seq)("MODIFY TABLE", target, (0, combi_1.per)(from, using));
return (0, combi_1.alt)(long, simple);
}
}
exports.ModifyInternal = ModifyInternal;
//# sourceMappingURL=modify_internal.js.map