@abaplint/core
Version:
abaplint - Core API
22 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Loop = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
const version_1 = require("../../../version");
const loop_group_by_1 = require("../expressions/loop_group_by");
class Loop {
getMatcher() {
const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, expressions_1.Dynamic));
const group = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("GROUP BY", loop_group_by_1.LoopGroupBy));
const step = (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)("STEP", expressions_1.Source));
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
const to = (0, combi_1.seq)("TO", expressions_1.Source);
const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group, step);
const at = (0, combi_1.seq)("AT", (0, combi_1.opt)((0, combi_1.seq)("SCREEN", (0, combi_1.failCombinator)())), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp08, "GROUP")), expressions_1.LoopSource, (0, combi_1.opt)(options));
return (0, combi_1.seq)("LOOP", (0, combi_1.opt)(at));
}
}
exports.Loop = Loop;
//# sourceMappingURL=loop.js.map