@abaplint/core
Version:
abaplint - Core API
24 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Field = 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 Field {
getMatcher() {
const moduleOptions = (0, combi_1.alt)("ON INPUT", "ON REQUEST", "ON CHAIN-REQUEST", "ON CHAIN-INPUT", "AT CURSOR-SELECTION");
const module = (0, combi_1.seq)("MODULE", expressions_1.FormName, (0, combi_1.opt)(moduleOptions));
const moduleStrange = (0, combi_1.seq)(moduleOptions, "MODULE", expressions_1.FormName);
const values = (0, combi_1.seq)("VALUES", (0, combi_1.tok)(tokens_1.WParenLeft), "BETWEEN", expressions_1.Constant, "AND", expressions_1.Constant, (0, combi_1.tok)(tokens_1.ParenRightW));
const wit = (0, combi_1.seq)("WITH", (0, combi_1.altPrio)(expressions_1.FieldChain, expressions_1.Constant));
const cond = (0, combi_1.seq)(expressions_1.FieldChain, "=", expressions_1.FieldChain);
const where = (0, combi_1.seq)(cond, (0, combi_1.starPrio)((0, combi_1.seq)("AND", cond)));
const into = (0, combi_1.seq)("INTO", expressions_1.FieldChain);
const select = (0, combi_1.seq)("SELECT * FROM", expressions_1.FieldChain, "WHERE", where, (0, combi_1.opt)(into), (0, combi_1.opt)("WHENEVER NOT FOUND SEND ERRORMESSAGE"));
const ret = (0, combi_1.seq)("FIELD", expressions_1.FieldChain, (0, combi_1.opt)((0, combi_1.altPrio)(module, moduleStrange, values, wit, select)));
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
}
}
exports.Field = Field;
//# sourceMappingURL=field.js.map