@abaplint/core
Version:
abaplint - Core API
31 lines • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Describe = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
const version_1 = require("../../../version");
class Describe {
getMatcher() {
const tlines = (0, combi_1.seq)("LINES", expressions_1.Target);
const kind = (0, combi_1.seq)("KIND", expressions_1.Target);
const occurs = (0, combi_1.seq)("OCCURS", expressions_1.Target);
const table = (0, combi_1.seq)("TABLE", expressions_1.FieldChain, (0, combi_1.opt)((0, combi_1.per)(tlines, kind, occurs)));
const mode = (0, combi_1.seq)("IN", (0, combi_1.alt)("BYTE", "CHARACTER"), "MODE");
const field = (0, combi_1.seq)("FIELD", expressions_1.Source, (0, combi_1.per)((0, combi_1.seq)("TYPE", expressions_1.Target), (0, combi_1.seq)("COMPONENTS", expressions_1.Target), (0, combi_1.seq)("LENGTH", expressions_1.Target, (0, combi_1.opt)(mode)), (0, combi_1.seq)("DECIMALS", expressions_1.Target), (0, combi_1.seq)("HELP-ID", expressions_1.Target), (0, combi_1.seq)("OUTPUT-LENGTH", expressions_1.Target), (0, combi_1.seq)("EDIT MASK", expressions_1.Target), (0, combi_1.seq)("INTO", expressions_1.Target)));
const distance = (0, combi_1.seq)("DISTANCE BETWEEN", expressions_1.Source, "AND", expressions_1.Source, "INTO", expressions_1.Target, (0, combi_1.opt)(mode));
const lines = (0, combi_1.seq)("NUMBER OF LINES", expressions_1.Target);
const pages = (0, combi_1.seq)("NUMBER OF PAGES", expressions_1.Target);
const line = (0, combi_1.seq)("LINE", expressions_1.Source);
const page = (0, combi_1.seq)("PAGE", expressions_1.Source);
const index = (0, combi_1.seq)("INDEX", expressions_1.Source);
const top = (0, combi_1.seq)("TOP-LINES", expressions_1.Target);
const lineSize = (0, combi_1.seq)("LINE-SIZE", expressions_1.Target);
const lineCount = (0, combi_1.seq)("LINE-COUNT", expressions_1.Target);
const first = (0, combi_1.seq)("FIRST-LINE", expressions_1.Target);
const list = (0, combi_1.seq)("LIST", (0, combi_1.per)(lines, pages, index, line, page, top, first, tlines, lineSize, lineCount));
const ret = (0, combi_1.seq)("DESCRIBE", (0, combi_1.altPrio)(table, field, distance, list));
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
}
}
exports.Describe = Describe;
//# sourceMappingURL=describe.js.map