@abaplint/runtime
Version:
Transpiler - Runtime
54 lines • 1.62 kB
JavaScript
;
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