usp10: Correct indic vowel marker name.

This commit is contained in:
Aric Stewart 2011-06-06 07:28:54 -05:00 committed by Alexandre Julliard
parent 61f51eb47e
commit 7ab744d3c7
3 changed files with 87 additions and 87 deletions

View file

@ -52,10 +52,10 @@ static void debug_output_string(LPCWSTR str, int cChar, lexical_function f)
case lex_Halant: TRACE("H"); break;
case lex_ZWNJ: TRACE("Zwnj"); break;
case lex_ZWJ: TRACE("Zwj"); break;
case lex_Mantra_post: TRACE("Mp");break;
case lex_Mantra_above: TRACE("Ma");break;
case lex_Mantra_below: TRACE("Mb");break;
case lex_Mantra_pre: TRACE("Mm");break;
case lex_Matra_post: TRACE("Mp");break;
case lex_Matra_above: TRACE("Ma");break;
case lex_Matra_below: TRACE("Mb");break;
case lex_Matra_pre: TRACE("Mm");break;
case lex_Modifier: TRACE("Sm"); break;
case lex_Vedic: TRACE("Vd"); break;
case lex_Anudatta: TRACE("A"); break;
@ -73,10 +73,10 @@ static inline BOOL is_consonant( int type )
return (type == lex_Ra || type == lex_Consonant);
}
static inline BOOL is_mantra( int type )
static inline BOOL is_matra( int type )
{
return (type == lex_Mantra_above || type == lex_Mantra_below ||
type == lex_Mantra_pre || type == lex_Mantra_post);
return (type == lex_Matra_above || type == lex_Matra_below ||
type == lex_Matra_pre || type == lex_Matra_post);
}
static inline BOOL is_joiner( int type )
@ -142,7 +142,7 @@ static INT parse_consonant_syllable(LPCWSTR input, INT cChar, INT start,
}
else if (next < cChar)
{
while((next < cChar) && is_mantra( lex(input[next]) ))
while((next < cChar) && is_matra( lex(input[next]) ))
next++;
if ((next < cChar) && lex(input[next]) == lex_Nukta)
next++;
@ -168,9 +168,9 @@ static INT parse_vowel_syllable(LPCWSTR input, INT cChar, INT start,
else if ((next < cChar) && lex(input[next])==lex_ZWJ && is_consonant( lex(input[next+1]) ))
next+=2;
if (is_mantra( lex(input[next]) ))
if (is_matra( lex(input[next]) ))
{
while((next < cChar) && is_mantra( lex(input[next]) ))
while((next < cChar) && is_matra( lex(input[next]) ))
next++;
if ((next < cChar) && lex(input[next]) == lex_Nukta)
next++;

View file

@ -1856,7 +1856,7 @@ static void Reorder_Ra_follows_base(LPWSTR pwChar, INT start, INT main, INT end,
}
}
static void Reorder_Ra_follows_mantra_post(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
static void Reorder_Ra_follows_matra_post(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
{
if (start != main && end > start+1 && lexical(pwChar[start]) == lex_Ra && lexical(pwChar[start+1]) == lex_Halant)
{
@ -1864,7 +1864,7 @@ static void Reorder_Ra_follows_mantra_post(LPWSTR pwChar, INT start, INT main, I
WORD Ra = pwChar[start];
WORD H = pwChar[start+1];
for (loc = main; loc > end; loc++)
if (lexical(pwChar[loc]) == lex_Mantra_post)
if (lexical(pwChar[loc]) == lex_Matra_post)
break;
if (loc == end) loc = main;
@ -1892,16 +1892,16 @@ static void Reorder_Ra_follows_syllable(LPWSTR pwChar, INT start, INT main, INT
}
}
static void Reorder_Mantra_precede_base(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
static void Reorder_Matra_precede_base(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
{
int i;
/* reorder Mantras */
/* reorder Matras */
if (end > main)
{
for (i = 1; i <= end-main; i++)
{
if (lexical(pwChar[main+i]) == lex_Mantra_pre)
if (lexical(pwChar[main+i]) == lex_Matra_pre)
{
int j;
WCHAR c = pwChar[main+i];
@ -1914,16 +1914,16 @@ static void Reorder_Mantra_precede_base(LPWSTR pwChar, INT start, INT main, INT
}
}
static void Reorder_Mantra_precede_syllable(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
static void Reorder_Matra_precede_syllable(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
{
int i;
/* reorder Mantras */
/* reorder Matras */
if (end > main)
{
for (i = 1; i <= end-main; i++)
{
if (lexical(pwChar[main+i]) == lex_Mantra_pre)
if (lexical(pwChar[main+i]) == lex_Matra_pre)
{
int j;
WCHAR c = pwChar[main+i];
@ -1945,7 +1945,7 @@ static void Reorder_Like_Sinhala(LPWSTR pwChar, INT start, INT main, INT end, le
if (lexical(pwChar[main]) == lex_Vowel) return;
Reorder_Ra_follows_base(pwChar, start, main, end, lexical);
Reorder_Mantra_precede_base(pwChar, start, main, end, lexical);
Reorder_Matra_precede_base(pwChar, start, main, end, lexical);
}
static void Reorder_Like_Devanagari(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
@ -1956,8 +1956,8 @@ static void Reorder_Like_Devanagari(LPWSTR pwChar, INT start, INT main, INT end,
main = Indic_FindBaseConsonant(pwChar, start, main, end, lexical);
if (lexical(pwChar[main]) == lex_Vowel) return;
Reorder_Ra_follows_mantra_post(pwChar, start, main, end, lexical);
Reorder_Mantra_precede_syllable(pwChar, start, main, end, lexical);
Reorder_Ra_follows_matra_post(pwChar, start, main, end, lexical);
Reorder_Matra_precede_syllable(pwChar, start, main, end, lexical);
}
static void Reorder_Like_Bengali(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
@ -1969,7 +1969,7 @@ static void Reorder_Like_Bengali(LPWSTR pwChar, INT start, INT main, INT end, le
if (lexical(pwChar[main]) == lex_Vowel) return;
Reorder_Ra_follows_base(pwChar, start, main, end, lexical);
Reorder_Mantra_precede_syllable(pwChar, start, main, end, lexical);
Reorder_Matra_precede_syllable(pwChar, start, main, end, lexical);
}
static void Reorder_Like_Kannada(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
@ -1981,7 +1981,7 @@ static void Reorder_Like_Kannada(LPWSTR pwChar, INT start, INT main, INT end, le
if (lexical(pwChar[main]) == lex_Vowel) return;
Reorder_Ra_follows_syllable(pwChar, start, main, end, lexical);
Reorder_Mantra_precede_syllable(pwChar, start, main, end, lexical);
Reorder_Matra_precede_syllable(pwChar, start, main, end, lexical);
}
static void Reorder_Like_Malayalam(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lexical)
@ -1992,8 +1992,8 @@ static void Reorder_Like_Malayalam(LPWSTR pwChar, INT start, INT main, INT end,
main = Indic_FindBaseConsonant(pwChar, start, main, end, lexical);
if (lexical(pwChar[main]) == lex_Vowel) return;
Reorder_Ra_follows_mantra_post(pwChar, start, main, end, lexical);
Reorder_Mantra_precede_base(pwChar, start, main, end, lexical);
Reorder_Ra_follows_matra_post(pwChar, start, main, end, lexical);
Reorder_Matra_precede_base(pwChar, start, main, end, lexical);
}
static int sinhala_lex(WCHAR c)
@ -2003,9 +2003,9 @@ static int sinhala_lex(WCHAR c)
case 0x0DCA: return lex_Halant;
case 0x0DCF:
case 0x0DDF:
case 0x0DD8: return lex_Mantra_post;
case 0x0DD8: return lex_Matra_post;
case 0x0DD9:
case 0x0DDB: return lex_Mantra_pre;
case 0x0DDB: return lex_Matra_pre;
case 0x0DDA:
case 0x0DDC: return lex_Composed_Vowel;
case 0x200D: return lex_ZWJ;
@ -2015,11 +2015,11 @@ static int sinhala_lex(WCHAR c)
if (c>=0x0D82 && c <=0x0D83) return lex_Modifier;
else if (c>=0x0D85 && c <=0x0D96) return lex_Vowel;
else if (c>=0x0D96 && c <=0x0DC6) return lex_Consonant;
else if (c>=0x0DD0 && c <=0x0DD1) return lex_Mantra_post;
else if (c>=0x0DD2 && c <=0x0DD3) return lex_Mantra_above;
else if (c>=0x0DD4 && c <=0x0DD6) return lex_Mantra_below;
else if (c>=0x0DD0 && c <=0x0DD1) return lex_Matra_post;
else if (c>=0x0DD2 && c <=0x0DD3) return lex_Matra_above;
else if (c>=0x0DD4 && c <=0x0DD6) return lex_Matra_below;
else if (c>=0x0DDD && c <=0x0DDE) return lex_Composed_Vowel;
else if (c>=0x0DF2 && c <=0x0DF3) return lex_Mantra_post;
else if (c>=0x0DF2 && c <=0x0DF3) return lex_Matra_post;
else return lex_Generic;
}
}
@ -2072,23 +2072,23 @@ static int devanagari_lex(WCHAR c)
case 0x0930: return lex_Ra;
case 0x093C: return lex_Nukta;
case 0x0940:
case 0x093E: return lex_Mantra_post;
case 0x093F: return lex_Mantra_pre;
case 0x093E: return lex_Matra_post;
case 0x093F: return lex_Matra_pre;
case 0x094D: return lex_Halant;
case 0x0972: return lex_Vowel;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
default:
if (c>=0x0901 && c<=0x0902) return lex_Mantra_above;
if (c>=0x0901 && c<=0x0902) return lex_Matra_above;
else if (c>=0x0904 && c<=0x0914) return lex_Vowel;
else if (c>=0x0915 && c<=0x0939) return lex_Consonant;
else if (c>=0x0941 && c<=0x0944) return lex_Mantra_below;
else if (c>=0x0945 && c<=0x0948) return lex_Mantra_above;
else if (c>=0x0949 && c<=0x094C) return lex_Mantra_post;
else if (c>=0x0941 && c<=0x0944) return lex_Matra_below;
else if (c>=0x0945 && c<=0x0948) return lex_Matra_above;
else if (c>=0x0949 && c<=0x094C) return lex_Matra_post;
else if (c>=0x0953 && c<=0x0954) return lex_Modifier;
else if (c>=0x0958 && c<=0x095F) return lex_Consonant;
else if (c>=0x0960 && c<=0x0961) return lex_Vowel;
else if (c>=0x0962 && c<=0x0963) return lex_Mantra_below;
else if (c>=0x0962 && c<=0x0963) return lex_Matra_below;
else if (c>=0x097B && c<=0x097C) return lex_Consonant;
else if (c>=0x097E && c<=0x097F) return lex_Consonant;
else return lex_Generic;
@ -2145,22 +2145,22 @@ static int bengali_lex(WCHAR c)
case 0x09CE: return lex_Consonant;
case 0x09B0: return lex_Ra;
case 0x09BC: return lex_Nukta;
case 0x09BF: return lex_Mantra_pre;
case 0x09BF: return lex_Matra_pre;
case 0x09D7:
case 0x09BE:
case 0x09C0: return lex_Mantra_post;
case 0x09C0: return lex_Matra_post;
case 0x09CD: return lex_Halant;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
default:
if (c>=0x0982 && c<=0x0983) return lex_Mantra_post;
if (c>=0x0982 && c<=0x0983) return lex_Matra_post;
else if (c>=0x0985 && c<=0x0994) return lex_Vowel;
else if (c>=0x0995 && c<=0x09B9) return lex_Consonant;
else if (c>=0x09C1 && c<=0x09C4) return lex_Mantra_below;
else if (c>=0x09C7 && c<=0x09C8) return lex_Mantra_pre;
else if (c>=0x09C1 && c<=0x09C4) return lex_Matra_below;
else if (c>=0x09C7 && c<=0x09C8) return lex_Matra_pre;
else if (c>=0x09DC && c<=0x09DF) return lex_Consonant;
else if (c>=0x09E0 && c<=0x09E1) return lex_Vowel;
else if (c>=0x09E2 && c<=0x09E3) return lex_Mantra_below;
else if (c>=0x09E2 && c<=0x09E3) return lex_Matra_below;
else if (c>=0x09F0 && c<=0x09F1) return lex_Consonant;
else return lex_Generic;
}
@ -2215,10 +2215,10 @@ static int gurmukhi_lex(WCHAR c)
case 0x0A35:
case 0x0A39: return lex_Ra;
case 0x0A3C: return lex_Nukta;
case 0x0A3F: return lex_Mantra_pre;
case 0x0A3F: return lex_Matra_pre;
case 0x0A03:
case 0x0A3E:
case 0x0A40: return lex_Mantra_post;
case 0x0A40: return lex_Matra_post;
case 0x0A4D: return lex_Halant;
case 0x0A70:
case 0x0A71: return lex_Modifier;
@ -2228,8 +2228,8 @@ static int gurmukhi_lex(WCHAR c)
if (c>=0x0A01 && c<=0x0A02) return lex_Modifier;
else if (c>=0x0A05 && c<=0x0A14) return lex_Vowel;
else if (c>=0x0A15 && c<=0x0A38) return lex_Consonant;
else if (c>=0x0A41 && c<=0x0A42) return lex_Mantra_below;
else if (c>=0x0A47 && c<=0x0A4C) return lex_Mantra_above;
else if (c>=0x0A41 && c<=0x0A42) return lex_Matra_below;
else if (c>=0x0A47 && c<=0x0A4C) return lex_Matra_above;
else if (c>=0x0A59 && c<=0x0A5E) return lex_Consonant;
else return lex_Generic;
}
@ -2278,9 +2278,9 @@ static int gujarati_lex(WCHAR c)
case 0x0A83: return lex_Modifier;
case 0x0AB0: return lex_Ra;
case 0x0ABC: return lex_Nukta;
case 0x0ABF: return lex_Mantra_pre;
case 0x0ABF: return lex_Matra_pre;
case 0x0ABE:
case 0x0AC0: return lex_Mantra_post;
case 0x0AC0: return lex_Matra_post;
case 0x0ACD: return lex_Halant;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
@ -2288,11 +2288,11 @@ static int gujarati_lex(WCHAR c)
if (c>=0x0A81 && c<=0x0A82) return lex_Modifier;
else if (c>=0x0A85 && c<=0x0A94) return lex_Vowel;
else if (c>=0x0A95 && c<=0x0AB9) return lex_Consonant;
else if (c>=0x0AC1 && c<=0x0AC4) return lex_Mantra_below;
else if (c>=0x0AC5 && c<=0x0AC8) return lex_Mantra_above;
else if (c>=0x0AC9 && c<=0x0ACC) return lex_Mantra_post;
else if (c>=0x0AC1 && c<=0x0AC4) return lex_Matra_below;
else if (c>=0x0AC5 && c<=0x0AC8) return lex_Matra_above;
else if (c>=0x0AC9 && c<=0x0ACC) return lex_Matra_post;
else if (c>=0x0AE0 && c<=0x0AE1) return lex_Vowel;
else if (c>=0x0AE2 && c<=0x0AE3) return lex_Mantra_below;
else if (c>=0x0AE2 && c<=0x0AE3) return lex_Matra_below;
else return lex_Generic;
}
}
@ -2333,11 +2333,11 @@ static int oriya_lex(WCHAR c)
case 0x0B30: return lex_Ra;
case 0x0B3C: return lex_Nukta;
case 0x0B3F:
case 0x0B56: return lex_Mantra_above;
case 0x0B56: return lex_Matra_above;
case 0x0B3E:
case 0x0B40: return lex_Mantra_post;
case 0x0B40: return lex_Matra_post;
case 0x0B47:
case 0x0B57: return lex_Mantra_pre;
case 0x0B57: return lex_Matra_pre;
case 0x0B4D: return lex_Halant;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
@ -2347,11 +2347,11 @@ static int oriya_lex(WCHAR c)
else if (c>=0x0B15 && c<=0x0B39) return lex_Consonant;
else if (c>=0x0B2C && c<=0x0B2E) return lex_Consonant;
else if (c>=0x0B32 && c<=0x0B33) return lex_Consonant;
else if (c>=0x0B41 && c<=0x0B44) return lex_Mantra_below;
else if (c>=0x0B41 && c<=0x0B44) return lex_Matra_below;
else if (c>=0x0B48 && c<=0x0B4C) return lex_Composed_Vowel;
else if (c>=0x0B5C && c<=0x0B5D) return lex_Consonant;
else if (c>=0x0B60 && c<=0x0B61) return lex_Vowel;
else if (c>=0x0B62 && c<=0x0B63) return lex_Mantra_below;
else if (c>=0x0B62 && c<=0x0B63) return lex_Matra_below;
else return lex_Generic;
}
}
@ -2399,16 +2399,16 @@ static int tamil_lex(WCHAR c)
{
switch (c)
{
case 0x0BC0: return lex_Mantra_above;
case 0x0BC0: return lex_Matra_above;
case 0x0BCD: return lex_Halant;
case 0x0BD7: return lex_Mantra_post;
case 0x0BD7: return lex_Matra_post;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
default:
if (c>=0x0B95 && c<=0x0BB9) return lex_Consonant;
else if (c>=0x0BBE && c<=0x0BBF) return lex_Mantra_post;
else if (c>=0x0BC1 && c<=0x0BC2) return lex_Mantra_below;
else if (c>=0x0BC6 && c<=0x0BC8) return lex_Mantra_pre;
else if (c>=0x0BBE && c<=0x0BBF) return lex_Matra_post;
else if (c>=0x0BC1 && c<=0x0BC2) return lex_Matra_below;
else if (c>=0x0BC6 && c<=0x0BC8) return lex_Matra_pre;
else return lex_Generic;
}
}
@ -2456,21 +2456,21 @@ static int telugu_lex(WCHAR c)
switch (c)
{
case 0x0C4D: return lex_Halant;
case 0x0C55: return lex_Mantra_above;
case 0x0C56: return lex_Mantra_below;
case 0x0C55: return lex_Matra_above;
case 0x0C56: return lex_Matra_below;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
default:
if (c>=0x0C01 && c<=0x0C03) return lex_Mantra_post;
if (c>=0x0C01 && c<=0x0C03) return lex_Matra_post;
else if (c>=0x0C05 && c<=0x0C14) return lex_Vowel;
else if (c>=0x0C15 && c<=0x0C39) return lex_Consonant;
else if (c>=0x0C3E && c<=0x0C40) return lex_Mantra_above;
else if (c>=0x0C41 && c<=0x0C44) return lex_Mantra_post;
else if (c>=0x0C46 && c<=0x0C47) return lex_Mantra_above;
else if (c>=0x0C4A && c<=0x0C4C) return lex_Mantra_above;
else if (c>=0x0C3E && c<=0x0C40) return lex_Matra_above;
else if (c>=0x0C41 && c<=0x0C44) return lex_Matra_post;
else if (c>=0x0C46 && c<=0x0C47) return lex_Matra_above;
else if (c>=0x0C4A && c<=0x0C4C) return lex_Matra_above;
else if (c>=0x0C58 && c<=0x0C59) return lex_Consonant;
else if (c>=0x0C60 && c<=0x0C61) return lex_Vowel;
else if (c>=0x0C62 && c<=0x0C63) return lex_Mantra_below;
else if (c>=0x0C62 && c<=0x0C63) return lex_Matra_below;
else return lex_Generic;
}
}
@ -2512,10 +2512,10 @@ static int kannada_lex(WCHAR c)
{
case 0x0CB0: return lex_Ra;
case 0x0CBC: return lex_Nukta;
case 0x0CBE: return lex_Mantra_post;
case 0x0CBF: return lex_Mantra_above;
case 0x0CC6: return lex_Mantra_above;
case 0x0CCC: return lex_Mantra_above;
case 0x0CBE: return lex_Matra_post;
case 0x0CBF: return lex_Matra_above;
case 0x0CC6: return lex_Matra_above;
case 0x0CCC: return lex_Matra_above;
case 0x0CCD: return lex_Halant;
case 0x0CCE: return lex_Consonant;
case 0x200C: return lex_ZWNJ;
@ -2524,10 +2524,10 @@ static int kannada_lex(WCHAR c)
if (c>=0x0C82 && c<=0x0C83) return lex_Modifier;
else if (c>=0x0C85 && c<=0x0C94) return lex_Vowel;
else if (c>=0x0C95 && c<=0x0CB9) return lex_Consonant;
else if (c>=0x0CC1 && c<=0x0CC4) return lex_Mantra_post;
else if (c>=0x0CC1 && c<=0x0CC4) return lex_Matra_post;
else if (c>=0x0CD5 && c<=0x0CD6) return lex_Modifier;
else if (c>=0x0CE0 && c<=0x0CE1) return lex_Vowel;
else if (c>=0x0CE2 && c<=0x0CE3) return lex_Mantra_below;
else if (c>=0x0CE2 && c<=0x0CE3) return lex_Matra_below;
else return lex_Generic;
}
}
@ -2573,17 +2573,17 @@ static int malayalam_lex(WCHAR c)
{
case 0x0D35: return lex_Consonant;
case 0x0D4D: return lex_Halant;
case 0x0D57: return lex_Mantra_post;
case 0x0D57: return lex_Matra_post;
case 0x200C: return lex_ZWNJ;
case 0x200D: return lex_ZWJ;
default:
if (c>=0x0D02 && c<=0x0D03) return lex_Modifier;
else if (c>=0x0D05 && c<=0x0D14) return lex_Vowel;
else if (c>=0x0D15 && c<=0x0D39) return lex_Consonant;
else if (c>=0x0D3E && c<=0x0D44) return lex_Mantra_post;
else if (c>=0x0D46 && c<=0x0D48) return lex_Mantra_pre;
else if (c>=0x0D3E && c<=0x0D44) return lex_Matra_post;
else if (c>=0x0D46 && c<=0x0D48) return lex_Matra_pre;
else if (c>=0x0D60 && c<=0x0D61) return lex_Vowel;
else if (c>=0x0D62 && c<=0x0D63) return lex_Mantra_below;
else if (c>=0x0D62 && c<=0x0D63) return lex_Matra_below;
else return lex_Generic;
}
}
@ -2965,10 +2965,10 @@ static void ShapeCharGlyphProp_BaseIndic( HDC hdc, ScriptCache *psc, SCRIPT_ANAL
for (k = 0; k < char_count && !pGlyphProp[i].sva.fClusterStart; k++)
switch (lexical(pwcChars[char_index[k]]))
{
case lex_Mantra_pre:
case lex_Mantra_post:
case lex_Mantra_above:
case lex_Mantra_below:
case lex_Matra_pre:
case lex_Matra_post:
case lex_Matra_above:
case lex_Matra_below:
case lex_Modifier:
break;
default:

View file

@ -95,7 +95,7 @@ typedef struct {
OPENTYPE_TAG userLang;
} ScriptCache;
enum {lex_Halant, lex_Composed_Vowel, lex_Mantra_post, lex_Mantra_pre, lex_Mantra_above, lex_Mantra_below, lex_ZWJ, lex_ZWNJ, lex_NBSP, lex_Modifier, lex_Vowel, lex_Consonant, lex_Generic, lex_Ra, lex_Vedic, lex_Anudatta, lex_Nukta};
enum {lex_Halant, lex_Composed_Vowel, lex_Matra_post, lex_Matra_pre, lex_Matra_above, lex_Matra_below, lex_ZWJ, lex_ZWNJ, lex_NBSP, lex_Modifier, lex_Vowel, lex_Consonant, lex_Generic, lex_Ra, lex_Vedic, lex_Anudatta, lex_Nukta};
typedef int (*lexical_function)(WCHAR c);
typedef void (*reorder_function)(LPWSTR pwChar, INT start, INT main, INT end, lexical_function lex);