unicode-shaper
Version:
Shape unicode text so that renderers like WebGL and WebGPU can properly display the glyphs.
34 lines • 2.21 kB
TypeScript
/**
* Check if a character is a "Myanmar" unicode character
* @param c - input unicode character
* @returns - True if Myanmar
*/
export declare function isMyanmar(c: number): boolean;
/**
* Shape/Reordering characters
* Once the Myanmar shaping engine has analyzed the run as described above,
* it creates a buffer of appropriately reordered elements (glyphs) representing the
* cluster according to the rules given:
*
* 1) Kinzi sequences (K) are reordered directly after the cluster base
* 2) The medial ra (MR) is reordered before the base consonant
* 3) Pre-base vowels (VPre) are reordered to the start of the syllable cluster.
* A sequence of multiple prebase vowels is permitted. Such sequences are moved
* as a block to the beginning of the cluster.
* 4) Anusvara (A) coming immediately after one or more below-base vowels (VBlw)
* will reorder immediately before them.
*
* Cases:
* 1) Simple non-compounding cluster: <P | S | R | WJ| WS | O | D0 >
* 2) MType terminating in Halant: [K] <C | IV | D | GB>[VS] (H <C | IV> [VS])* H
* 3) Complex cluster: [K] <C | IV | D | GB>[VS] (H <C | IV> [VS]) (As) [MY [As]] [MR] [<MW [As] | [MW] MH [As]>] (VPre) (VAbv)* (VBlw) (A) [DB [As]] (VPst [MH] (As)* (VAbv)* (A)* [DB [As]]) (PT < [A] [DB] [As] | [As] [A] > ) (V)* [J]
*
* Ex. င်္က္ကျြွှေို့်ာှီ့ၤဲံ့းႍ
* INPUT - 1004 103A 1039 1000 1039 1000 103B 103C 103D 1031 1031 102D 102F 1036 102C 1036
* I-EXPLAINED - ([K] 1004 103A 1039) - ([C] 1000) - ([H] 1039) - ([C] 1000) - ([MY] 103B) - ([MR] 103C) - ([MW] 103D) - ([VPre] 1031) - ([VPre] 1031) - ([VAbv] 102D) - ([VBlw] 102F) - ([A] 1036) - ([VPst] 102C) - ([A] 1036)
* REORDERED - 1031 1031 103C 1000 1004 103A 1039 1039 1000 103B 103D 102D 1036 102F 102C 1036
* R-EXPLAINED - ([VPre] 1031) - ([VPre] 1031) - ([MR] 103C) - ([C] 1000) - ([K] 1004 103A 1039) - ([H] 1039) - ([C] 1000) - ([MY] 103B) - ([MW] 103D) - ([VAbv] 102D) - ([A] 1036) - ([VPst] 102F) - ([VPst] 102C) - ([A] 1036)
* @param input - input unicode buffer to be modified/shaped
*/
export declare function shapeMyanmar(input: number[]): void;
//# sourceMappingURL=myanmar.d.ts.map