diff --git a/src/hb-ot-shape-complex-indic-machine.hh b/src/hb-ot-shape-complex-indic-machine.hh index 670b6bf48..be3ec9998 100644 --- a/src/hb-ot-shape-complex-indic-machine.hh +++ b/src/hb-ot-shape-complex-indic-machine.hh @@ -33,6 +33,26 @@ #line 36 "hb-ot-shape-complex-indic-machine.hh" +#define indic_syllable_machine_ex_A 10u +#define indic_syllable_machine_ex_C 1u +#define indic_syllable_machine_ex_CM 17u +#define indic_syllable_machine_ex_CS 19u +#define indic_syllable_machine_ex_DOTTEDCIRCLE 12u +#define indic_syllable_machine_ex_H 4u +#define indic_syllable_machine_ex_M 7u +#define indic_syllable_machine_ex_N 3u +#define indic_syllable_machine_ex_PLACEHOLDER 11u +#define indic_syllable_machine_ex_RS 13u +#define indic_syllable_machine_ex_Ra 16u +#define indic_syllable_machine_ex_Repha 15u +#define indic_syllable_machine_ex_SM 8u +#define indic_syllable_machine_ex_Symbol 18u +#define indic_syllable_machine_ex_V 2u +#define indic_syllable_machine_ex_ZWJ 6u +#define indic_syllable_machine_ex_ZWNJ 5u + + +#line 56 "hb-ot-shape-complex-indic-machine.hh" static const unsigned char _indic_syllable_machine_trans_keys[] = { 8u, 8u, 4u, 8u, 5u, 7u, 5u, 8u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 4u, 13u, 4u, 8u, 8u, 8u, 5u, 7u, 5u, 8u, 4u, 8u, 6u, 6u, 16u, 16u, @@ -384,7 +404,7 @@ static const int indic_syllable_machine_error = -1; static const int indic_syllable_machine_en_main = 39; -#line 36 "hb-ot-shape-complex-indic-machine.rl" +#line 37 "hb-ot-shape-complex-indic-machine.rl" @@ -407,7 +427,7 @@ find_syllables_indic (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 411 "hb-ot-shape-complex-indic-machine.hh" +#line 431 "hb-ot-shape-complex-indic-machine.hh" { cs = indic_syllable_machine_start; ts = 0; @@ -423,7 +443,7 @@ find_syllables_indic (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 427 "hb-ot-shape-complex-indic-machine.hh" +#line 447 "hb-ot-shape-complex-indic-machine.hh" { int _slen; int _trans; @@ -437,7 +457,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 441 "hb-ot-shape-complex-indic-machine.hh" +#line 461 "hb-ot-shape-complex-indic-machine.hh" } _keys = _indic_syllable_machine_trans_keys + (cs<<1); @@ -540,7 +560,7 @@ _eof_trans: #line 89 "hb-ot-shape-complex-indic-machine.rl" {act = 6;} break; -#line 544 "hb-ot-shape-complex-indic-machine.hh" +#line 564 "hb-ot-shape-complex-indic-machine.hh" } _again: @@ -549,7 +569,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 553 "hb-ot-shape-complex-indic-machine.hh" +#line 573 "hb-ot-shape-complex-indic-machine.hh" } if ( ++p != pe ) diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl index 1613548a5..e2e9800c4 100644 --- a/src/hb-ot-shape-complex-indic-machine.rl +++ b/src/hb-ot-shape-complex-indic-machine.rl @@ -32,29 +32,29 @@ %%{ machine indic_syllable_machine; alphtype unsigned char; + write exports; write data; }%% %%{ -# Same order as enum indic_category_t. Not sure how to avoid duplication. -C = 1; -V = 2; -N = 3; -H = 4; -ZWNJ = 5; -ZWJ = 6; -M = 7; -SM = 8; -A = 10; -PLACEHOLDER = 11; -DOTTEDCIRCLE = 12; -RS = 13; -Repha = 15; -Ra = 16; -CM = 17; -Symbol= 18; -CS = 19; +export C = 1; +export V = 2; +export N = 3; +export H = 4; +export ZWNJ = 5; +export ZWJ = 6; +export M = 7; +export SM = 8; +export A = 10; +export PLACEHOLDER = 11; +export DOTTEDCIRCLE = 12; +export RS = 13; +export Repha = 15; +export Ra = 16; +export CM = 17; +export Symbol= 18; +export CS = 19; c = (C | Ra); # is_consonant n = ((ZWNJ?.RS)? (N.N?)?); # is_consonant_modifier diff --git a/src/hb-ot-shape-complex-khmer-machine.hh b/src/hb-ot-shape-complex-khmer-machine.hh index a040318d3..f0b6107f4 100644 --- a/src/hb-ot-shape-complex-khmer-machine.hh +++ b/src/hb-ot-shape-complex-khmer-machine.hh @@ -33,6 +33,24 @@ #line 36 "hb-ot-shape-complex-khmer-machine.hh" +#define khmer_syllable_machine_ex_C 1u +#define khmer_syllable_machine_ex_Coeng 14u +#define khmer_syllable_machine_ex_DOTTEDCIRCLE 12u +#define khmer_syllable_machine_ex_PLACEHOLDER 11u +#define khmer_syllable_machine_ex_Ra 16u +#define khmer_syllable_machine_ex_Robatic 20u +#define khmer_syllable_machine_ex_V 2u +#define khmer_syllable_machine_ex_VAbv 26u +#define khmer_syllable_machine_ex_VBlw 27u +#define khmer_syllable_machine_ex_VPre 28u +#define khmer_syllable_machine_ex_VPst 29u +#define khmer_syllable_machine_ex_Xgroup 21u +#define khmer_syllable_machine_ex_Ygroup 22u +#define khmer_syllable_machine_ex_ZWJ 6u +#define khmer_syllable_machine_ex_ZWNJ 5u + + +#line 54 "hb-ot-shape-complex-khmer-machine.hh" static const unsigned char _khmer_syllable_machine_trans_keys[] = { 5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, @@ -215,7 +233,7 @@ static const int khmer_syllable_machine_error = -1; static const int khmer_syllable_machine_en_main = 20; -#line 36 "hb-ot-shape-complex-khmer-machine.rl" +#line 37 "hb-ot-shape-complex-khmer-machine.rl" @@ -238,7 +256,7 @@ find_syllables_khmer (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 242 "hb-ot-shape-complex-khmer-machine.hh" +#line 260 "hb-ot-shape-complex-khmer-machine.hh" { cs = khmer_syllable_machine_start; ts = 0; @@ -254,7 +272,7 @@ find_syllables_khmer (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 258 "hb-ot-shape-complex-khmer-machine.hh" +#line 276 "hb-ot-shape-complex-khmer-machine.hh" { int _slen; int _trans; @@ -268,7 +286,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 272 "hb-ot-shape-complex-khmer-machine.hh" +#line 290 "hb-ot-shape-complex-khmer-machine.hh" } _keys = _khmer_syllable_machine_trans_keys + (cs<<1); @@ -338,7 +356,7 @@ _eof_trans: #line 76 "hb-ot-shape-complex-khmer-machine.rl" {act = 3;} break; -#line 342 "hb-ot-shape-complex-khmer-machine.hh" +#line 360 "hb-ot-shape-complex-khmer-machine.hh" } _again: @@ -347,7 +365,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 351 "hb-ot-shape-complex-khmer-machine.hh" +#line 369 "hb-ot-shape-complex-khmer-machine.hh" } if ( ++p != pe ) diff --git a/src/hb-ot-shape-complex-khmer-machine.rl b/src/hb-ot-shape-complex-khmer-machine.rl index e7f14533d..1b023c95c 100644 --- a/src/hb-ot-shape-complex-khmer-machine.rl +++ b/src/hb-ot-shape-complex-khmer-machine.rl @@ -32,27 +32,27 @@ %%{ machine khmer_syllable_machine; alphtype unsigned char; + write exports; write data; }%% %%{ -# Same order as enum khmer_category_t. Not sure how to avoid duplication. -C = 1; -V = 2; -ZWNJ = 5; -ZWJ = 6; -PLACEHOLDER = 11; -DOTTEDCIRCLE = 12; -Coeng= 14; -Ra = 16; -Robatic = 20; -Xgroup = 21; -Ygroup = 22; -VAbv = 26; -VBlw = 27; -VPre = 28; -VPst = 29; +export C = 1; +export V = 2; +export ZWNJ = 5; +export ZWJ = 6; +export PLACEHOLDER = 11; +export DOTTEDCIRCLE = 12; +export Coeng= 14; +export Ra = 16; +export Robatic = 20; +export Xgroup = 21; +export Ygroup = 22; +export VAbv = 26; +export VBlw = 27; +export VPre = 28; +export VPst = 29; c = (C | Ra | V); cn = c.((ZWJ|ZWNJ)?.Robatic)?; diff --git a/src/hb-ot-shape-complex-myanmar-machine.hh b/src/hb-ot-shape-complex-myanmar-machine.hh index c2f4c0045..8ccf79063 100644 --- a/src/hb-ot-shape-complex-myanmar-machine.hh +++ b/src/hb-ot-shape-complex-myanmar-machine.hh @@ -33,6 +33,34 @@ #line 36 "hb-ot-shape-complex-myanmar-machine.hh" +#define myanmar_syllable_machine_ex_A 10u +#define myanmar_syllable_machine_ex_As 18u +#define myanmar_syllable_machine_ex_C 1u +#define myanmar_syllable_machine_ex_CS 19u +#define myanmar_syllable_machine_ex_D 32u +#define myanmar_syllable_machine_ex_D0 20u +#define myanmar_syllable_machine_ex_DB 3u +#define myanmar_syllable_machine_ex_GB 11u +#define myanmar_syllable_machine_ex_H 4u +#define myanmar_syllable_machine_ex_IV 2u +#define myanmar_syllable_machine_ex_MH 21u +#define myanmar_syllable_machine_ex_MR 22u +#define myanmar_syllable_machine_ex_MW 23u +#define myanmar_syllable_machine_ex_MY 24u +#define myanmar_syllable_machine_ex_P 31u +#define myanmar_syllable_machine_ex_PT 25u +#define myanmar_syllable_machine_ex_Ra 16u +#define myanmar_syllable_machine_ex_V 8u +#define myanmar_syllable_machine_ex_VAbv 26u +#define myanmar_syllable_machine_ex_VBlw 27u +#define myanmar_syllable_machine_ex_VPre 28u +#define myanmar_syllable_machine_ex_VPst 29u +#define myanmar_syllable_machine_ex_VS 30u +#define myanmar_syllable_machine_ex_ZWJ 6u +#define myanmar_syllable_machine_ex_ZWNJ 5u + + +#line 64 "hb-ot-shape-complex-myanmar-machine.hh" static const unsigned char _myanmar_syllable_machine_trans_keys[] = { 1u, 32u, 3u, 30u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 1u, 16u, 3u, 29u, 3u, 29u, 3u, 29u, @@ -293,7 +321,7 @@ static const int myanmar_syllable_machine_error = -1; static const int myanmar_syllable_machine_en_main = 0; -#line 36 "hb-ot-shape-complex-myanmar-machine.rl" +#line 37 "hb-ot-shape-complex-myanmar-machine.rl" @@ -316,7 +344,7 @@ find_syllables_myanmar (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 320 "hb-ot-shape-complex-myanmar-machine.hh" +#line 348 "hb-ot-shape-complex-myanmar-machine.hh" { cs = myanmar_syllable_machine_start; ts = 0; @@ -332,7 +360,7 @@ find_syllables_myanmar (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 336 "hb-ot-shape-complex-myanmar-machine.hh" +#line 364 "hb-ot-shape-complex-myanmar-machine.hh" { int _slen; int _trans; @@ -346,7 +374,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 350 "hb-ot-shape-complex-myanmar-machine.hh" +#line 378 "hb-ot-shape-complex-myanmar-machine.hh" } _keys = _myanmar_syllable_machine_trans_keys + (cs<<1); @@ -396,7 +424,7 @@ _eof_trans: #line 90 "hb-ot-shape-complex-myanmar-machine.rl" {te = p;p--;{ found_syllable (non_myanmar_cluster); }} break; -#line 400 "hb-ot-shape-complex-myanmar-machine.hh" +#line 428 "hb-ot-shape-complex-myanmar-machine.hh" } _again: @@ -405,7 +433,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 409 "hb-ot-shape-complex-myanmar-machine.hh" +#line 437 "hb-ot-shape-complex-myanmar-machine.hh" } if ( ++p != pe ) diff --git a/src/hb-ot-shape-complex-myanmar-machine.rl b/src/hb-ot-shape-complex-myanmar-machine.rl index 098a63e53..a92d1d709 100644 --- a/src/hb-ot-shape-complex-myanmar-machine.rl +++ b/src/hb-ot-shape-complex-myanmar-machine.rl @@ -32,37 +32,37 @@ %%{ machine myanmar_syllable_machine; alphtype unsigned char; + write exports; write data; }%% %%{ -# Same order as enum myanmar_category_t. Not sure how to avoid duplication. -A = 10; -As = 18; -C = 1; -D = 32; -D0 = 20; -DB = 3; -GB = 11; -H = 4; -IV = 2; -MH = 21; -MR = 22; -MW = 23; -MY = 24; -PT = 25; -V = 8; -VAbv = 26; -VBlw = 27; -VPre = 28; -VPst = 29; -VS = 30; -ZWJ = 6; -ZWNJ = 5; -Ra = 16; -P = 31; -CS = 19; +export A = 10; +export As = 18; +export C = 1; +export D = 32; +export D0 = 20; +export DB = 3; +export GB = 11; +export H = 4; +export IV = 2; +export MH = 21; +export MR = 22; +export MW = 23; +export MY = 24; +export PT = 25; +export V = 8; +export VAbv = 26; +export VBlw = 27; +export VPre = 28; +export VPst = 29; +export VS = 30; +export ZWJ = 6; +export ZWNJ = 5; +export Ra = 16; +export P = 31; +export CS = 19; j = ZWJ|ZWNJ; # Joiners k = (Ra As H); # Kinzi diff --git a/src/hb-ot-shape-complex-use-machine.hh b/src/hb-ot-shape-complex-use-machine.hh index 52a2ba91f..c8c392e08 100644 --- a/src/hb-ot-shape-complex-use-machine.hh +++ b/src/hb-ot-shape-complex-use-machine.hh @@ -35,6 +35,48 @@ #line 38 "hb-ot-shape-complex-use-machine.hh" +#define use_syllable_machine_ex_B 1u +#define use_syllable_machine_ex_CMAbv 31u +#define use_syllable_machine_ex_CMBlw 32u +#define use_syllable_machine_ex_CS 43u +#define use_syllable_machine_ex_FAbv 24u +#define use_syllable_machine_ex_FBlw 25u +#define use_syllable_machine_ex_FMAbv 45u +#define use_syllable_machine_ex_FMBlw 46u +#define use_syllable_machine_ex_FMPst 47u +#define use_syllable_machine_ex_FPst 26u +#define use_syllable_machine_ex_G 49u +#define use_syllable_machine_ex_GB 5u +#define use_syllable_machine_ex_H 12u +#define use_syllable_machine_ex_HN 13u +#define use_syllable_machine_ex_HVM 44u +#define use_syllable_machine_ex_J 50u +#define use_syllable_machine_ex_MAbv 27u +#define use_syllable_machine_ex_MBlw 28u +#define use_syllable_machine_ex_MPre 30u +#define use_syllable_machine_ex_MPst 29u +#define use_syllable_machine_ex_N 4u +#define use_syllable_machine_ex_O 0u +#define use_syllable_machine_ex_R 18u +#define use_syllable_machine_ex_S 19u +#define use_syllable_machine_ex_SB 51u +#define use_syllable_machine_ex_SE 52u +#define use_syllable_machine_ex_SMAbv 41u +#define use_syllable_machine_ex_SMBlw 42u +#define use_syllable_machine_ex_SUB 11u +#define use_syllable_machine_ex_Sk 48u +#define use_syllable_machine_ex_VAbv 33u +#define use_syllable_machine_ex_VBlw 34u +#define use_syllable_machine_ex_VMAbv 37u +#define use_syllable_machine_ex_VMBlw 38u +#define use_syllable_machine_ex_VMPre 23u +#define use_syllable_machine_ex_VMPst 39u +#define use_syllable_machine_ex_VPre 22u +#define use_syllable_machine_ex_VPst 35u +#define use_syllable_machine_ex_ZWNJ 14u + + +#line 80 "hb-ot-shape-complex-use-machine.hh" static const unsigned char _use_syllable_machine_trans_keys[] = { 1u, 1u, 1u, 1u, 0u, 51u, 11u, 48u, 11u, 48u, 1u, 1u, 22u, 48u, 23u, 48u, 24u, 47u, 25u, 47u, 26u, 47u, 45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, @@ -303,11 +345,11 @@ static const int use_syllable_machine_error = -1; static const int use_syllable_machine_en_main = 2; -#line 38 "hb-ot-shape-complex-use-machine.rl" +#line 39 "hb-ot-shape-complex-use-machine.rl" -#line 153 "hb-ot-shape-complex-use-machine.rl" +#line 152 "hb-ot-shape-complex-use-machine.rl" #define found_syllable(syllable_type) \ @@ -350,7 +392,7 @@ find_syllables_use (hb_buffer_t *buffer) unsigned int act HB_UNUSED; int cs; -#line 354 "hb-ot-shape-complex-use-machine.hh" +#line 396 "hb-ot-shape-complex-use-machine.hh" { cs = use_syllable_machine_start; ts = 0; @@ -358,12 +400,12 @@ find_syllables_use (hb_buffer_t *buffer) act = 0; } -#line 197 "hb-ot-shape-complex-use-machine.rl" +#line 196 "hb-ot-shape-complex-use-machine.rl" unsigned int syllable_serial = 1; -#line 367 "hb-ot-shape-complex-use-machine.hh" +#line 409 "hb-ot-shape-complex-use-machine.hh" { int _slen; int _trans; @@ -377,7 +419,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 381 "hb-ot-shape-complex-use-machine.hh" +#line 423 "hb-ot-shape-complex-use-machine.hh" } _keys = _use_syllable_machine_trans_keys + (cs<<1); @@ -400,62 +442,62 @@ _eof_trans: {te = p+1;} break; case 5: -#line 140 "hb-ot-shape-complex-use-machine.rl" +#line 139 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (independent_cluster); }} break; case 9: -#line 143 "hb-ot-shape-complex-use-machine.rl" +#line 142 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (standard_cluster); }} break; case 7: -#line 148 "hb-ot-shape-complex-use-machine.rl" +#line 147 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (broken_cluster); }} break; case 6: -#line 149 "hb-ot-shape-complex-use-machine.rl" +#line 148 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (non_cluster); }} break; case 10: -#line 141 "hb-ot-shape-complex-use-machine.rl" +#line 140 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (virama_terminated_cluster); }} break; case 11: -#line 142 "hb-ot-shape-complex-use-machine.rl" +#line 141 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (sakot_terminated_cluster); }} break; case 8: -#line 143 "hb-ot-shape-complex-use-machine.rl" +#line 142 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (standard_cluster); }} break; case 13: -#line 144 "hb-ot-shape-complex-use-machine.rl" +#line 143 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }} break; case 12: -#line 145 "hb-ot-shape-complex-use-machine.rl" +#line 144 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (numeral_cluster); }} break; case 14: -#line 146 "hb-ot-shape-complex-use-machine.rl" +#line 145 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (symbol_cluster); }} break; case 17: -#line 147 "hb-ot-shape-complex-use-machine.rl" +#line 146 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (hieroglyph_cluster); }} break; case 15: -#line 148 "hb-ot-shape-complex-use-machine.rl" +#line 147 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (broken_cluster); }} break; case 16: -#line 149 "hb-ot-shape-complex-use-machine.rl" +#line 148 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (non_cluster); }} break; case 1: -#line 148 "hb-ot-shape-complex-use-machine.rl" +#line 147 "hb-ot-shape-complex-use-machine.rl" {{p = ((te))-1;}{ found_syllable (broken_cluster); }} break; -#line 459 "hb-ot-shape-complex-use-machine.hh" +#line 501 "hb-ot-shape-complex-use-machine.hh" } _again: @@ -464,7 +506,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 468 "hb-ot-shape-complex-use-machine.hh" +#line 510 "hb-ot-shape-complex-use-machine.hh" } if ( ++p != pe ) @@ -480,7 +522,7 @@ _again: } -#line 202 "hb-ot-shape-complex-use-machine.rl" +#line 201 "hb-ot-shape-complex-use-machine.rl" } diff --git a/src/hb-ot-shape-complex-use-machine.rl b/src/hb-ot-shape-complex-use-machine.rl index aa86ac536..9f2a1834f 100644 --- a/src/hb-ot-shape-complex-use-machine.rl +++ b/src/hb-ot-shape-complex-use-machine.rl @@ -34,55 +34,54 @@ %%{ machine use_syllable_machine; alphtype unsigned char; + write exports; write data; }%% %%{ -# Same order as enum use_category_t. Not sure how to avoid duplication. +export O = 0; # OTHER -O = 0; # OTHER +export B = 1; # BASE +export N = 4; # BASE_NUM +export GB = 5; # BASE_OTHER +export SUB = 11; # CONS_SUB +export H = 12; # HALANT -B = 1; # BASE -N = 4; # BASE_NUM -GB = 5; # BASE_OTHER -SUB = 11; # CONS_SUB -H = 12; # HALANT +export HN = 13; # HALANT_NUM +export ZWNJ = 14; # Zero width non-joiner +export R = 18; # REPHA +export S = 19; # SYM +export CS = 43; # CONS_WITH_STACKER +export HVM = 44; # HALANT_OR_VOWEL_MODIFIER +export Sk = 48; # SAKOT +export G = 49; # HIEROGLYPH +export J = 50; # HIEROGLYPH_JOINER +export SB = 51; # HIEROGLYPH_SEGMENT_BEGIN +export SE = 52; # HIEROGLYPH_SEGMENT_END -HN = 13; # HALANT_NUM -ZWNJ = 14; # Zero width non-joiner -R = 18; # REPHA -S = 19; # SYM -CS = 43; # CONS_WITH_STACKER -HVM = 44; # HALANT_OR_VOWEL_MODIFIER -Sk = 48; # SAKOT -G = 49; # HIEROGLYPH -J = 50; # HIEROGLYPH_JOINER -SB = 51; # HIEROGLYPH_SEGMENT_BEGIN -SE = 52; # HIEROGLYPH_SEGMENT_END - -FAbv = 24; # CONS_FINAL_ABOVE -FBlw = 25; # CONS_FINAL_BELOW -FPst = 26; # CONS_FINAL_POST -MAbv = 27; # CONS_MED_ABOVE -MBlw = 28; # CONS_MED_BELOW -MPst = 29; # CONS_MED_POST -MPre = 30; # CONS_MED_PRE -CMAbv = 31; # CONS_MOD_ABOVE -CMBlw = 32; # CONS_MOD_BELOW -VAbv = 33; # VOWEL_ABOVE / VOWEL_ABOVE_BELOW / VOWEL_ABOVE_BELOW_POST / VOWEL_ABOVE_POST -VBlw = 34; # VOWEL_BELOW / VOWEL_BELOW_POST -VPst = 35; # VOWEL_POST UIPC = Right -VPre = 22; # VOWEL_PRE / VOWEL_PRE_ABOVE / VOWEL_PRE_ABOVE_POST / VOWEL_PRE_POST -VMAbv = 37; # VOWEL_MOD_ABOVE -VMBlw = 38; # VOWEL_MOD_BELOW -VMPst = 39; # VOWEL_MOD_POST -VMPre = 23; # VOWEL_MOD_PRE -SMAbv = 41; # SYM_MOD_ABOVE -SMBlw = 42; # SYM_MOD_BELOW -FMAbv = 45; # CONS_FINAL_MOD UIPC = Top -FMBlw = 46; # CONS_FINAL_MOD UIPC = Bottom -FMPst = 47; # CONS_FINAL_MOD UIPC = Not_Applicable +export FAbv = 24; # CONS_FINAL_ABOVE +export FBlw = 25; # CONS_FINAL_BELOW +export FPst = 26; # CONS_FINAL_POST +export MAbv = 27; # CONS_MED_ABOVE +export MBlw = 28; # CONS_MED_BELOW +export MPst = 29; # CONS_MED_POST +export MPre = 30; # CONS_MED_PRE +export CMAbv = 31; # CONS_MOD_ABOVE +export CMBlw = 32; # CONS_MOD_BELOW +export VAbv = 33; # VOWEL_ABOVE / VOWEL_ABOVE_BELOW / VOWEL_ABOVE_BELOW_POST / VOWEL_ABOVE_POST +export VBlw = 34; # VOWEL_BELOW / VOWEL_BELOW_POST +export VPst = 35; # VOWEL_POST UIPC = Right +export VPre = 22; # VOWEL_PRE / VOWEL_PRE_ABOVE / VOWEL_PRE_ABOVE_POST / VOWEL_PRE_POST +export VMAbv = 37; # VOWEL_MOD_ABOVE +export VMBlw = 38; # VOWEL_MOD_BELOW +export VMPst = 39; # VOWEL_MOD_POST +export VMPre = 23; # VOWEL_MOD_PRE +export SMAbv = 41; # SYM_MOD_ABOVE +export SMBlw = 42; # SYM_MOD_BELOW +export FMAbv = 45; # CONS_FINAL_MOD UIPC = Top +export FMBlw = 46; # CONS_FINAL_MOD UIPC = Bottom +export FMPst = 47; # CONS_FINAL_MOD UIPC = Not_Applicable h = H | HVM | Sk;