transliteration_core library

Classes

EmbeddedExactSource
Invisible, self-validating exact-source metadata embedded at the end of a rendered Brahmic string.
TransliterationIssue
TransliterationResult
Exact Round-Trip envelope around any transliterated view.

Enums

TransliterationIssueSeverity
Severity of a diagnostic emitted while rendering a view.
TransliterationProfile
High-level standards/profile label carried in the exact round-trip envelope.
UnicodeNormalizationForm
Normalization applied to the parsing copy or rendered output.

Functions

embedExactSourceMetadata(String rendered, String originalSource) → String
Appends an invisible exact-source trailer to rendered.
hasEmbeddedExactSource(String text) → bool
isBrahmicFormatControl(int rune) → bool
Formatting characters tolerated explicitly by the Brahmic parser: ZWJ, ZWNJ (zero phonetic output, never create/delete an inherent schwa) and CGJ (ordering semantics only, no readable output).
isCommonIndicNumberForm(int rune) → bool
Common Indic Number Forms (U+A830..U+A839): historic fractions and marks for currency/weights/measures. No phonology; canonical output preserves them and Plain/Hunterian views carry them through untouched.
isDevanagariEditorialMark(int rune) → bool
Devanagari manuscript/editorial signs with no pronunciation (U+A8F8..U+A8FB) plus Devanagari Extended-A head/auspicious signs (U+11B00..U+11B09). Canonical output preserves them exactly; they must never participate in inherent-schwa parsing.
isDevanagariExtendedVowel(int rune) → bool
Devanagari Extended real vowels (U+A8FE independent AY, U+A8FF vowel-sign AY: the short-AI pair). Phonemic characters, never Vedic decorations.
isDevanagariNasalizationSign(int rune) → bool
Specialized Devanagari nasalization signs (U+A8F2..U+A8F7). These carry nasal pronunciation and enter nasal handling, not generic pass-through.
isEncodedVedicMark(int rune) → bool
Encoded Vedic tone/sign data (Unicode 18.0).
isGujaratiConsonantNukta(int rune) → bool
Consonant-modifying Gujarati nuktas (U+0AFD..U+0AFF): they change the consonant itself and need cluster mappings, not silent dropping.
isGujaratiTransliterationMark(int rune) → bool
Gujarati Arabic-transliteration marks (U+0AFA sukun, U+0AFB shadda, U+0AFC maddah, U+0AFD..U+0AFF consonant-modifying nuktas), used by Ismaili Khoja communities. They drive pronunciation and need cluster mappings.
isSamavedaCantillationMark(int rune) → bool
Samaveda combining cantillation digits/letters/avagraha (U+A8E0..U+A8F1). Canonical output preserves them as annotations; Plain/Hunterian views omit them by default. Never map them to ordinary digits/letters.
isUnicodeCombiningMark(int rune) → bool
True for every Unicode 17 mark category: Mn, Mc, or Me.
isVedicNasalMark(int rune) → bool
Vedic nasal/anusvara signs: genuine nasal pronunciation, never silently dropped by Plain/Hunterian views.
isVedicSegmentalSign(int rune) → bool
Vedic segmental signs with consonant-like pronunciation: ardhavisarga (U+1CF2/1CF3), jihvamuliya (U+1CF5, velar fricative) and upadhmāniya (U+1CF6, bilabial fricative). Unicode notes ardhavisarga is not limited to Vedic usage.
isVedicToneCantillationMark(int rune) → bool
Vedic pitch/cantillation marks: no segmental pronunciation of their own. Canonical output preserves them as annotations; Plain/Hunterian views omit them by default.
isVedicVisargaMark(int rune) → bool
Vedic visarga modifiers: keep the segmental visarga (h) contribution in every profile and drop only the tonal decoration.
normalizeUnicode(String input, UnicodeNormalizationForm form) → String
recoverEmbeddedExactSource(String text) → String?
Returns the exact original source when valid embedded metadata exists.
stripExactSourceMetadata(String text) → String
Removes a valid exact-source trailer while leaving unrecognized tag data untouched.
tryDecodeExactSourceMetadata(String text) → EmbeddedExactSource?
Decodes the final valid exact-source trailer, if present.