UNPKG

@abaplint/core

Version:
28 lines 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateData = void 0; const combi_1 = require("../combi"); const expressions_1 = require("../expressions"); const version_1 = require("../../../version"); // todo, similar to DATA or TYPES? class CreateData { getMatcher() { const areaHandle = (0, combi_1.seq)("AREA HANDLE", expressions_1.Source); const typeHandle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source); const type = (0, combi_1.seq)((0, combi_1.alt)("TYPE", "TYPE REF TO", "TYPE TABLE OF", "TYPE TABLE OF REF TO", "TYPE SORTED TABLE OF", "TYPE HASHED TABLE OF", "TYPE STANDARD TABLE OF", "TYPE LINE OF"), (0, combi_1.alt)(expressions_1.TypeName, expressions_1.Dynamic)); const like = (0, combi_1.seq)((0, combi_1.alt)("LIKE", "LIKE HASHED TABLE OF", "LIKE LINE OF", "LIKE STANDARD TABLE OF", "LIKE SORTED TABLE OF", "LIKE TABLE OF"), (0, combi_1.alt)(expressions_1.Source, expressions_1.Dynamic)); const length = (0, combi_1.seq)("LENGTH", expressions_1.Source); const initial = (0, combi_1.seq)("INITIAL SIZE", expressions_1.Source); const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source); const uniq = (0, combi_1.alt)("UNIQUE", "NON-UNIQUE"); const emptyKey = (0, combi_1.ver)(version_1.Version.v740sp02, "EMPTY KEY"); const def = (0, combi_1.seq)((0, combi_1.opt)(uniq), (0, combi_1.alt)("DEFAULT KEY", emptyKey)); const kdef = (0, combi_1.seq)((0, combi_1.opt)(uniq), "KEY", (0, combi_1.alt)((0, combi_1.plus)(expressions_1.Field), expressions_1.Dynamic)); const key = (0, combi_1.seq)("WITH", (0, combi_1.alt)(def, kdef)); const specified = (0, combi_1.seq)((0, combi_1.alt)(type, like), (0, combi_1.opt)(key), (0, combi_1.opt)(initial), (0, combi_1.opt)(length), (0, combi_1.opt)(decimals)); const ret = (0, combi_1.seq)("CREATE DATA", expressions_1.Target, (0, combi_1.opt)((0, combi_1.alt)(typeHandle, (0, combi_1.seq)((0, combi_1.opt)(areaHandle), specified)))); return ret; } } exports.CreateData = CreateData; //# sourceMappingURL=create_data.js.map