UNPKG

@abaplint/core

Version:
18 lines 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CDSComposition = void 0; const _1 = require("."); const combi_1 = require("../../abap/2_statements/combi"); const cds_cardinality_1 = require("./cds_cardinality"); class CDSComposition extends combi_1.Expression { getRunnable() { const num = (0, combi_1.altPrio)("ONE", "MANY"); // Text cardinality after OF: "of exact one to many", "of one to many", or bare "of many" / "of one" const textCardinality = (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.opt)("EXACT"), num, "TO", num), (0, combi_1.seq)((0, combi_1.opt)("EXACT"), num)); // Only numeric cardinality [0..*] may appear before OF; text cardinality goes after OF. const numericCardinality = (0, combi_1.seq)("[", (0, combi_1.altPrio)("0", "1", "*"), (0, combi_1.opt)((0, combi_1.seq)(".", ".", (0, combi_1.altPrio)("0", "1", "*"))), "]"); return (0, combi_1.seq)("COMPOSITION", (0, combi_1.opt)(numericCardinality), "OF", (0, combi_1.opt)((0, combi_1.altPrio)(cds_cardinality_1.CDSCardinality, textCardinality)), _1.CDSRelation); } } exports.CDSComposition = CDSComposition; //# sourceMappingURL=cds_composition.js.map