@abaplint/core
Version:
abaplint - Core API
28 lines • 2.15 kB
JavaScript
;
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