@abaplint/core
Version:
abaplint - Core API
21 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Assign = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
const version_1 = require("../../../version");
class Assign {
getMatcher() {
const type = (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(expressions_1.Dynamic, expressions_1.TypeName));
const like = (0, combi_1.seq)("LIKE", (0, combi_1.altPrio)(expressions_1.Dynamic, expressions_1.Source));
const handle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source);
const range = (0, combi_1.seq)("RANGE", expressions_1.Source);
const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source);
const casting = (0, combi_1.seq)("CASTING", (0, combi_1.opt)((0, combi_1.alt)(like, handle, (0, combi_1.per)(type, decimals))));
const obsoleteType = (0, combi_1.seq)("TYPE", expressions_1.Source, (0, combi_1.optPrio)(decimals));
const ret = (0, combi_1.seq)("ASSIGN", (0, combi_1.opt)((0, combi_1.seq)(expressions_1.Target, "INCREMENT")), expressions_1.AssignSource, "TO", expressions_1.FSTarget, (0, combi_1.opt)((0, combi_1.altPrio)(casting, obsoleteType, decimals)), (0, combi_1.opt)(range), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v757, "ELSE UNASSIGN")));
return ret;
}
}
exports.Assign = Assign;
//# sourceMappingURL=assign.js.map