@abaplint/core
Version:
abaplint - Core API
27 lines • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReadEntities = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
const version_1 = require("../../../version");
const tokens_1 = require("../../1_lexer/tokens");
class ReadEntities {
getMatcher() {
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
const fields = (0, combi_1.seq)("FIELDS", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.plus)(expressions_1.SimpleName), (0, combi_1.tok)(tokens_1.WParenRightW), "WITH", expressions_1.Source);
const all = (0, combi_1.seq)("ALL FIELDS WITH", expressions_1.Source);
const result = (0, combi_1.seq)("RESULT", expressions_1.Target);
const failed = (0, combi_1.seq)("FAILED", expressions_1.Target);
const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
const foo = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("BY", expressions_1.AssociationName)), (0, combi_1.alt)(fields, from, all), (0, combi_1.optPrio)(result));
const entity = (0, combi_1.seq)("ENTITY", expressions_1.NamespaceSimpleName, (0, combi_1.plus)(foo));
const s = (0, combi_1.seq)("ENTITIES OF", expressions_1.NamespaceSimpleName, (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.plus)(entity), (0, combi_1.optPrio)((0, combi_1.seq)("LINK", expressions_1.Target)), (0, combi_1.optPrio)((0, combi_1.per)(failed, reported)));
const byall = (0, combi_1.seq)("BY", expressions_1.AssociationName, all);
const by = (0, combi_1.seq)("BY", expressions_1.AssociationName, fields);
const sub = (0, combi_1.seq)((0, combi_1.alt)(all, fields, from, by, byall), result);
const single = (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.plus)(sub), (0, combi_1.optPrio)(failed), (0, combi_1.optPrio)(reported));
return (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)("READ", (0, combi_1.alt)(s, single)));
}
}
exports.ReadEntities = ReadEntities;
//# sourceMappingURL=read_entities.js.map