UNPKG

@abaplint/core

Version:
34 lines 3.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModifyEntities = void 0; const combi_1 = require("../combi"); const expressions_1 = require("../expressions"); const version_1 = require("../../../version"); class ModifyEntities { getMatcher() { const withh = (0, combi_1.seq)("WITH", expressions_1.Source); const fieldsWith = (0, combi_1.seq)("FIELDS (", (0, combi_1.plus)(expressions_1.SimpleName), ")", withh); const by = (0, combi_1.seq)("BY", expressions_1.AssociationName); const relating = (0, combi_1.seq)("RELATING TO", expressions_1.NamespaceSimpleName, "BY", expressions_1.NamespaceSimpleName); const execute = (0, combi_1.seq)("EXECUTE", expressions_1.NamespaceSimpleName, "FROM", expressions_1.Source); const create = (0, combi_1.seq)("CREATE", (0, combi_1.opt)(by), "FROM", expressions_1.Source, (0, combi_1.opt)(relating)); const updateFrom = (0, combi_1.seq)("UPDATE FROM", expressions_1.Source, (0, combi_1.opt)(relating)); const deleteFrom = (0, combi_1.seq)("DELETE FROM", expressions_1.Source); const updateFields = (0, combi_1.seq)("UPDATE", fieldsWith); const updateSetFields = (0, combi_1.seq)("UPDATE SET FIELDS WITH", expressions_1.Source); const operation = (0, combi_1.alt)(updateSetFields, (0, combi_1.seq)("CREATE SET FIELDS WITH", expressions_1.Source), updateFields, deleteFrom, updateFrom, create, execute, (0, combi_1.seq)("CREATE", (0, combi_1.opt)(by), (0, combi_1.optPrio)("AUTO FILL CID"), (0, combi_1.altPrio)(withh, fieldsWith))); const failed = (0, combi_1.seq)("FAILED", expressions_1.Target); const result = (0, combi_1.seq)("RESULT", expressions_1.Target); const mapped = (0, combi_1.seq)("MAPPED", expressions_1.Target); const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target); const end = (0, combi_1.optPrio)((0, combi_1.per)(failed, result, mapped, reported)); const entities = (0, combi_1.seq)((0, combi_1.optPrio)("AUGMENTING"), "ENTITIES OF", expressions_1.NamespaceSimpleName, (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.plusPrio)((0, combi_1.seq)("ENTITY", expressions_1.NamespaceSimpleName, (0, combi_1.plus)(operation)))); const create2 = (0, combi_1.seq)("CREATE", fieldsWith, (0, combi_1.opt)((0, combi_1.seq)("CREATE BY", expressions_1.AssociationName, fieldsWith))); const create3 = (0, combi_1.seq)("CREATE BY", expressions_1.AssociationName, fieldsWith); const create4 = (0, combi_1.seq)("CREATE FROM", expressions_1.Source, (0, combi_1.plus)((0, combi_1.seq)("CREATE BY", expressions_1.AssociationName, "FROM", expressions_1.Source))); const entity = (0, combi_1.seq)("ENTITY", (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.alt)(expressions_1.NamespaceSimpleName, expressions_1.EntityAssociation), (0, combi_1.alt)(execute, create, updateFields, deleteFrom, updateSetFields, updateFrom, create2, create3, create4)); return (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)("MODIFY", (0, combi_1.alt)(entities, entity), end)); } } exports.ModifyEntities = ModifyEntities; //# sourceMappingURL=modify_entities.js.map