@abaplint/core
Version:
abaplint - Core API
21 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComponentCompare = void 0;
const combi_1 = require("../combi");
const _1 = require(".");
const tokens_1 = require("../../1_lexer/tokens");
const version_1 = require("../../../version");
class ComponentCompare extends combi_1.Expression {
getRunnable() {
const val = (0, combi_1.alt)(_1.FieldSub, _1.Constant);
const list = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeft), val, (0, combi_1.plus)((0, combi_1.seq)(",", val)), (0, combi_1.tok)(tokens_1.ParenRightW));
const inn = (0, combi_1.seq)((0, combi_1.opt)("NOT"), "IN", (0, combi_1.altPrio)(_1.Source, list));
const sopt = (0, combi_1.seq)("IS", (0, combi_1.opt)("NOT"), (0, combi_1.altPrio)("SUPPLIED", "BOUND", (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("INSTANCE OF", _1.Source)), "REQUESTED", "ASSIGNED", "INITIAL"));
const between = (0, combi_1.seq)((0, combi_1.opt)("NOT"), "BETWEEN", _1.Source, "AND", _1.Source);
const rett = (0, combi_1.seq)(_1.ComponentChainSimple, (0, combi_1.altPrio)((0, combi_1.seq)(_1.CompareOperator, _1.Source), inn, between, sopt));
const ret = (0, combi_1.seq)((0, combi_1.opt)("NOT"), rett);
return ret;
}
}
exports.ComponentCompare = ComponentCompare;
//# sourceMappingURL=component_compare.js.map