@abaplint/core
Version:
abaplint - Core API
27 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Message = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
const version_1 = require("../../../version");
class Message {
getMatcher() {
const like = (0, combi_1.seq)("DISPLAY LIKE", expressions_1.Source);
const into = (0, combi_1.seq)("INTO", expressions_1.Target);
const raising = (0, combi_1.seq)("RAISING", expressions_1.ExceptionName);
const options = (0, combi_1.per)(like, into, raising);
const type = (0, combi_1.seq)("TYPE", expressions_1.Source);
const sou = (0, combi_1.altPrio)(options, expressions_1.MessageSourceSource);
const sourc = (0, combi_1.alt)(sou, (0, combi_1.seq)(expressions_1.MessageSourceSource, sou), (0, combi_1.seq)(expressions_1.MessageSourceSource, expressions_1.MessageSourceSource, sou), (0, combi_1.seq)(expressions_1.MessageSourceSource, expressions_1.MessageSourceSource, expressions_1.MessageSourceSource, options));
const mwith = (0, combi_1.seq)("WITH", expressions_1.MessageSourceSource, (0, combi_1.opt)(sourc));
const foo = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.opt)(options), (0, combi_1.opt)(mwith));
const text = (0, combi_1.seq)(expressions_1.MessageSourceSource, type, (0, combi_1.optPrio)(like), (0, combi_1.optPrio)(raising));
const cloud1 = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))), (0, combi_1.altPrio)(into, raising));
const cloud2 = (0, combi_1.seq)((0, combi_1.altPrio)(into, raising), (0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))));
const cloud = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.alt)(cloud1, cloud2));
const ret = (0, combi_1.seq)("MESSAGE", (0, combi_1.altPrio)((0, combi_1.verNot)(version_1.Version.Cloud, foo), (0, combi_1.verNot)(version_1.Version.Cloud, text), (0, combi_1.ver)(version_1.Version.Cloud, cloud)));
return ret;
}
}
exports.Message = Message;
//# sourceMappingURL=message.js.map