UNPKG

@abaplint/runtime

Version:
54 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cp = cp; const types_1 = require("../types"); function cp(left, right) { let l = ""; if (typeof left === "number" || typeof left === "string") { l = left.toString(); } else if (left instanceof types_1.Structure) { l = left.getCharacter(); } else if (left instanceof types_1.FieldSymbol) { if (left.getPointer() === undefined) { throw new Error("GETWA_NOT_ASSIGNED"); } return cp(left.getPointer(), right); } else if (left instanceof types_1.Character) { l = left.getTrimEnd(); } else { l = left.get().toString(); } let r = ""; if (typeof right === "string") { r = right.toString(); } else if (right instanceof types_1.Character) { r = right.getTrimEnd(); } else { r = right.get().toString().trimEnd(); } r = r.replace(/\\/g, "\\\\"); r = r.replace(/\[/g, "\\["); r = r.replace(/\]/g, "\\]"); r = r.replace(/\}/g, "\\}"); r = r.replace(/\{/g, "\\{"); r = r.replace(/\?/g, "\\?"); r = r.replace(/\(/g, "\\("); r = r.replace(/\)/g, "\\)"); r = r.replace(/\./g, "\\."); r = r.replace(/\|/g, "\\|"); r = r.replace(/\$/g, "\\$"); r = r.replace(/\^/g, "\\^"); r = r.replace(/#\*/g, "\\u{002A}"); r = r.replace(/#\+/g, "\\u{002B}"); r = r.replace(/\*/g, "[\\s\\S]*"); r = r.replace(/\+/g, "[\\s\\S]"); const reg = new RegExp("^" + r + "$", "iu"); return l.match(reg) !== null; } //# sourceMappingURL=cp.js.map