UNPKG

@abaplint/core

Version:
29 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Export = void 0; const combi_1 = require("../combi"); const tokens_1 = require("../../1_lexer/tokens"); const expressions_1 = require("../expressions"); // todo, cloud, split? class Export { getMatcher() { const from = (0, combi_1.seq)((0, combi_1.altPrio)("FROM", "="), expressions_1.Source); const client = (0, combi_1.seq)("CLIENT", expressions_1.Source); const id = (0, combi_1.seq)("ID", expressions_1.Source); const using = (0, combi_1.seq)("USING", expressions_1.Source); const cluster = (0, combi_1.seq)(expressions_1.NamespaceSimpleName, (0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.regex)(/^[\w$%\^~]{2}$/), (0, combi_1.tok)(tokens_1.ParenRightW)); const buffer = (0, combi_1.seq)("DATA BUFFER", expressions_1.Target); const memory = (0, combi_1.seq)("MEMORY", (0, combi_1.opt)((0, combi_1.seq)("ID", expressions_1.Source))); const table = (0, combi_1.seq)("INTERNAL TABLE", expressions_1.Target); const shared = (0, combi_1.seq)((0, combi_1.alt)("SHARED MEMORY", "SHARED BUFFER"), cluster, (0, combi_1.per)(from, client, id)); const database = (0, combi_1.seq)("DATABASE", cluster, (0, combi_1.per)(from, client, id, using)); const target = (0, combi_1.alt)(buffer, memory, database, table, shared); const left = (0, combi_1.alt)(expressions_1.FieldSub, expressions_1.FieldSymbol); const source = (0, combi_1.alt)((0, combi_1.plus)((0, combi_1.altPrio)((0, combi_1.seq)(left, from), left)), expressions_1.Dynamic, expressions_1.Constant); const compression = (0, combi_1.seq)("COMPRESSION", (0, combi_1.alt)("ON", "OFF")); const hint = (0, combi_1.seq)("CODE PAGE HINT", expressions_1.Source); return (0, combi_1.seq)("EXPORT", source, "TO", target, (0, combi_1.opt)(compression), (0, combi_1.opt)(hint)); } } exports.Export = Export; //# sourceMappingURL=export.js.map