UNPKG

@abaplint/core

Version:
21 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CDSCondition = void 0; const _1 = require("."); const combi_1 = require("../../abap/2_statements/combi"); const cds_integer_1 = require("./cds_integer"); class CDSCondition extends combi_1.Expression { getRunnable() { const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.optPrio)((0, combi_1.seq)(".", (0, combi_1.altPrio)(_1.CDSString, _1.CDSName)))); const left = (0, combi_1.altPrio)(_1.CDSString, _1.CDSFunction, _1.CDSAggregate, name); const operators = (0, combi_1.altPrio)("=", (0, combi_1.seq)("!", "="), (0, combi_1.seq)("<", ">"), (0, combi_1.seq)(">", "="), (0, combi_1.seq)("<", "="), "<", ">", "LIKE", "NOT LIKE"); const compare = (0, combi_1.seq)(operators, (0, combi_1.altPrio)(left, cds_integer_1.CDSInteger)); const is = (0, combi_1.seq)("IS", (0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)("INITIAL", "NULL")); const between = (0, combi_1.seq)("BETWEEN", left, "AND", left); const condition = (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), left, (0, combi_1.altPrio)(compare, is, between)); const paren = (0, combi_1.seq)("(", CDSCondition, ")"); return (0, combi_1.seq)((0, combi_1.altPrio)(condition, paren), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.altPrio)("AND", "OR"), (0, combi_1.altPrio)(condition, paren)))); } } exports.CDSCondition = CDSCondition; //# sourceMappingURL=cds_condition.js.map