UNPKG

@abaplint/core

Version:
22 lines 1.43 kB
"use strict"; 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