UNPKG

antlr-ng

Version:

Next generation ANTLR Tool

43 lines (42 loc) 1.31 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); import { Character } from "../support/Character.js"; class UnicodeEscapes { static { __name(this, "UnicodeEscapes"); } static escapeCodePoint(codePoint, language) { let introducer = "\\u"; let text = ""; switch (language) { case "CSharp": case "Python3": case "Cpp": case "Go": case "PHP": { if (Character.isSupplementaryCodePoint(codePoint)) { introducer = "\\U"; text = codePoint.toString(16).padStart(8, "0"); } else { text = codePoint.toString(16).padStart(4, "0"); } break; } case "Swift": { text = `{${codePoint.toString(16).padStart(4, "0")}}`; break; } default: { if (Character.isSupplementaryCodePoint(codePoint)) { return introducer + Number(Character.highSurrogate(codePoint)).toString(16).toUpperCase().padStart(4, "0") + introducer + Number(Character.lowSurrogate(codePoint)).toString(16).toUpperCase().padStart(4, "0"); } else { text = codePoint.toString(16).padStart(4, "0"); } } } return introducer + text.toUpperCase(); } } export { UnicodeEscapes };