# ***************************************************************************
# *
-# * Copyright (C) 2004-2008, International Business Machines
+# * Copyright (C) 2004-2013, International Business Machines
# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
# *
# ***************************************************************************
$beforeLower = $accent * $lower ;
$notLetter = [^[:L:][:M:]] ;
$under = \u0331;
-\: <> \: $under ;
-\? <> \? $under ;
-\; <> \? ;
-· <> \: ;
-\u0342 <> \u0302 ;
+\: ↔ \: $under ;
+\? ↔ \? $under ;
+\; ↔ \? ;
+· ↔ \: ;
+\u0342 ↔ \u0302 ;
$accent_minus = [[$accent]-[$iotasub$macron]];
-Α } $accent_minus * $iotasub > | Α $macron ;
-α } $accent_minus * $iotasub > | α $macron ;
-$upper $accent * { $iotasub > I ;
-$iotasub > i ;
-| $1 $iotasub < ($evowel $macron $accentMinus *) i ;
-| $1 $iotasub < ($evowel $macron $accentMinus *) I ;
-Α ($macron?) $rough } $beforeLower > H | α $1;
-Ε $rough } $beforeLower > H | ε;
-Η $rough } $beforeLower > H | η ;
-Ι ($ddot?) $rough } $beforeLower > H | ι $1;
-Ο $rough } $beforeLower > H | ο ;
-Υ $rough } $beforeLower > H | υ ;
-Ω ($ddot?) $rough } $beforeLower > H | ω $1;
-Α ($glower $macron?) $rough > H | α $1 ;
-Ε ($glower) $rough > H | ε $1 ;
-Η ($glower) $rough > H | η $1 ;
-Ι ($glower $ddot?) $rough > H | ι $1 ;
-Ο ($glower) $rough > H | ο $1 ;
-Υ ($glower) $rough > H | υ $1 ;
-Ω ($glower $ddot?) $rough > H | ω $1 ;
-($lcgvowel + $ddotmac? ) $rough > h | $1 ;
-($gvowel + $ddotmac? ) $rough > H | $1 ;
-| $1 $rough < h ($evowel $macron $ddot? $evowel2_i $macron?) ;
-| $1 $rough < h ($evowel $ddot? $evowel2 $macron?) ;
-| $1 $rough < h ($evowel $macron? $ddot?) ;
-| $1 $rough < H ([AEIOUY] $macron $ddot? $evowel2_i $macron?) ;
-| $1 $rough < H ([AEIOUY] $ddot? $evowel2 $macron?) ;
-| $1 $rough < H ([AEIOUY] $macron? $ddot?) ;
-| A $1 $rough < H a ($macron $ddot? $evowel2_i $macron?) ;
-| E $1 $rough < H e ($macron $ddot? $evowel2_i $macron?) ;
-| I $1 $rough < H i ($macron $ddot? $evowel2_i $macron?) ;
-| O $1 $rough < H o ($macron $ddot? $evowel2_i $macron?) ;
-| U $1 $rough < H u ($macron $ddot? $evowel2_i $macron?) ;
-| Y $1 $rough < H y ($macron $ddot? $evowel2_i $macron?) ;
-| A $1 $rough < H a ($ddot? $evowel2 $macron?) ;
-| E $1 $rough < H e ($ddot? $evowel2 $macron?) ;
-| I $1 $rough < H i ($ddot? $evowel2 $macron?) ;
-| O $1 $rough < H o ($ddot? $evowel2 $macron?) ;
-| U $1 $rough < H u ($ddot? $evowel2 $macron?) ;
-| Y $1 $rough < H y ($ddot? $evowel2 $macron?) ;
-| A $1 $rough < H a ($macron? $ddot? ) ;
-| E $1 $rough < H e ($macron? $ddot? ) ;
-| I $1 $rough < H i ($macron? $ddot? ) ;
-| O $1 $rough < H o ($macron? $ddot? ) ;
-| U $1 $rough < H u ($macron? $ddot? ) ;
-| Y $1 $rough < H y ($macron? $ddot? ) ;
-$smooth > ;
-| $1 $smooth < $notLetter { ([rR]) } [^hH$smooth$rough] ;
-| $1 $smooth < $notLetter { ($evowel $macron? $evowel2 $macron?) } [^$smooth$rough] ;
-| $1 $smooth < $notLetter { ($evowel $macron?) } [^$evowel2$smooth$rough] ;
-Α < A $macron ;
-α < a $macron ;
-η <> e $macron ;
-Η <> E $macron ;
-φ <> ph ;
-Ψ } $beforeLower <> Ps ;
-Ψ <> PS ;
-Φ } $beforeLower <> Ph ;
-Φ <> PH ;
-ψ <> ps ;
-ω <> o $macron ;
-Ω <> O $macron;
-α <> a ;
-Α <> A ;
-β <> b ;
-Β <> B ;
-γ } $gammaLike <> n } $egammaLike ;
-γ <> g ;
-Γ } $gammaLike <> N } $egammaLike ;
-Γ <> G ;
-δ <> d ;
-Δ <> D ;
-ε <> e ;
-Ε <> E ;
-ζ <> z ;
-Ζ <> Z ;
-θ <> th ;
-Θ } $beforeLower <> Th ;
-Θ <> TH ;
-ι <> i ;
-Ι <> I ;
-κ <> k ;
-Κ <> K ;
-λ <> l ;
-Λ <> L ;
-μ <> m ;
-Μ <> M ;
-ν } $gammaLike > n\' ;
-ν <> n ;
-Ν } $gammaLike <> N\' ;
-Ν <> N ;
-ξ <> x ;
-Ξ <> X ;
-ο <> o ;
-Ο <> O ;
-π <> p ;
-Π <> P ;
-ρ $rough <> rh;
-Ρ $rough } $beforeLower <> Rh ;
-Ρ $rough <> RH ;
-ρ <> r ;
-Ρ <> R ;
-[Pp] { } [ςσΣϷϸϺϻ] > \' ;
-Ϸ <> S\u030C ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
-ϸ <> s\u030C ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
-Ϻ <> S\u0302 ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
-ϻ <> s\u0302 ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
-ς } $beforeLetter <> s $underbar } $beforeLetter;
-σ } $beforeLetter <> s } $beforeLetter;
-$afterLetter { σ <> $afterLetter { s $underbar;
-$afterLetter { ς <> $afterLetter { s ;
-ς <> s $underbar;
-σ <> s ;
-Σ <> S ;
-τ <> t ;
-Τ <> T ;
-$vowel {υ } <> u ;
-υ <> y ;
-$vowel { Υ <> U ;
-Υ <> Y ;
-χ <> ch ;
-Χ } $beforeLower <> Ch ;
-Χ <> CH ;
+Α } $accent_minus * $iotasub → | Α $macron ;
+α } $accent_minus * $iotasub → | α $macron ;
+$upper $accent * { $iotasub → I ;
+$iotasub → i ;
+| $1 $iotasub ← ($evowel $macron $accentMinus *) i ;
+| $1 $iotasub ← ($evowel $macron $accentMinus *) I ;
+Α ($macron?) $rough } $beforeLower → H | α $1;
+Ε $rough } $beforeLower → H | ε;
+Η $rough } $beforeLower → H | η ;
+Ι ($ddot?) $rough } $beforeLower → H | ι $1;
+Ο $rough } $beforeLower → H | ο ;
+Υ $rough } $beforeLower → H | υ ;
+Ω ($ddot?) $rough } $beforeLower → H | ω $1;
+Α ($glower $macron?) $rough → H | α $1 ;
+Ε ($glower) $rough → H | ε $1 ;
+Η ($glower) $rough → H | η $1 ;
+Ι ($glower $ddot?) $rough → H | ι $1 ;
+Ο ($glower) $rough → H | ο $1 ;
+Υ ($glower) $rough → H | υ $1 ;
+Ω ($glower $ddot?) $rough → H | ω $1 ;
+($lcgvowel + $ddotmac? ) $rough → h | $1 ;
+($gvowel + $ddotmac? ) $rough → H | $1 ;
+| $1 $rough ← h ($evowel $macron $ddot? $evowel2_i $macron?) ;
+| $1 $rough ← h ($evowel $ddot? $evowel2 $macron?) ;
+| $1 $rough ← h ($evowel $macron? $ddot?) ;
+| $1 $rough ← H ([AEIOUY] $macron $ddot? $evowel2_i $macron?) ;
+| $1 $rough ← H ([AEIOUY] $ddot? $evowel2 $macron?) ;
+| $1 $rough ← H ([AEIOUY] $macron? $ddot?) ;
+| A $1 $rough ← H a ($macron $ddot? $evowel2_i $macron?) ;
+| E $1 $rough ← H e ($macron $ddot? $evowel2_i $macron?) ;
+| I $1 $rough ← H i ($macron $ddot? $evowel2_i $macron?) ;
+| O $1 $rough ← H o ($macron $ddot? $evowel2_i $macron?) ;
+| U $1 $rough ← H u ($macron $ddot? $evowel2_i $macron?) ;
+| Y $1 $rough ← H y ($macron $ddot? $evowel2_i $macron?) ;
+| A $1 $rough ← H a ($ddot? $evowel2 $macron?) ;
+| E $1 $rough ← H e ($ddot? $evowel2 $macron?) ;
+| I $1 $rough ← H i ($ddot? $evowel2 $macron?) ;
+| O $1 $rough ← H o ($ddot? $evowel2 $macron?) ;
+| U $1 $rough ← H u ($ddot? $evowel2 $macron?) ;
+| Y $1 $rough ← H y ($ddot? $evowel2 $macron?) ;
+| A $1 $rough ← H a ($macron? $ddot? ) ;
+| E $1 $rough ← H e ($macron? $ddot? ) ;
+| I $1 $rough ← H i ($macron? $ddot? ) ;
+| O $1 $rough ← H o ($macron? $ddot? ) ;
+| U $1 $rough ← H u ($macron? $ddot? ) ;
+| Y $1 $rough ← H y ($macron? $ddot? ) ;
+$smooth → ;
+| $1 $smooth ← $notLetter { ([rR]) } [^hH$smooth$rough] ;
+| $1 $smooth ← $notLetter { ($evowel $macron? $evowel2 $macron?) } [^$smooth$rough] ;
+| $1 $smooth ← $notLetter { ($evowel $macron?) } [^$evowel2$smooth$rough] ;
+Α ← A $macron ;
+α ← a $macron ;
+η ↔ e $macron ;
+Η ↔ E $macron ;
+φ ↔ ph ;
+Ψ } $beforeLower ↔ Ps ;
+Ψ ↔ PS ;
+Φ } $beforeLower ↔ Ph ;
+Φ ↔ PH ;
+ψ ↔ ps ;
+ω ↔ o $macron ;
+Ω ↔ O $macron;
+α ↔ a ;
+Α ↔ A ;
+β ↔ b ;
+Β ↔ B ;
+γ } $gammaLike ↔ n } $egammaLike ;
+γ ↔ g ;
+Γ } $gammaLike ↔ N } $egammaLike ;
+Γ ↔ G ;
+δ ↔ d ;
+Δ ↔ D ;
+ε ↔ e ;
+Ε ↔ E ;
+ζ ↔ z ;
+Ζ ↔ Z ;
+θ ↔ th ;
+Θ } $beforeLower ↔ Th ;
+Θ ↔ TH ;
+ι ↔ i ;
+Ι ↔ I ;
+κ ↔ k ;
+Κ ↔ K ;
+λ ↔ l ;
+Λ ↔ L ;
+μ ↔ m ;
+Μ ↔ M ;
+ν } $gammaLike → n\' ;
+ν ↔ n ;
+Ν } $gammaLike ↔ N\' ;
+Ν ↔ N ;
+ξ ↔ x ;
+Ξ ↔ X ;
+ο ↔ o ;
+Ο ↔ O ;
+π ↔ p ;
+Π ↔ P ;
+ρ $rough ↔ rh;
+Ρ $rough } $beforeLower ↔ Rh ;
+Ρ $rough ↔ RH ;
+ρ ↔ r ;
+Ρ ↔ R ;
+[Pp] { } [ςσΣϷϸϺϻ] → \' ;
+Ϸ ↔ S\u030C ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
+ϸ ↔ s\u030C ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
+Ϻ ↔ S\u0302 ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
+ϻ ↔ s\u0302 ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
+ς } $beforeLetter ↔ s $underbar } $beforeLetter;
+σ } $beforeLetter ↔ s } $beforeLetter;
+$afterLetter { σ ↔ $afterLetter { s $underbar;
+$afterLetter { ς ↔ $afterLetter { s ;
+ς ↔ s $underbar;
+σ ↔ s ;
+Σ ↔ S ;
+τ ↔ t ;
+Τ ↔ T ;
+$vowel {υ } ↔ u ;
+υ ↔ y ;
+$vowel { Υ ↔ U ;
+Υ ↔ Y ;
+χ ↔ ch ;
+Χ } $beforeLower ↔ Ch ;
+Χ ↔ CH ;
$ignore = [[:Mark:]''] * ;
-| k < c ;
-| ph < f ;
-| i < j ;
-| k < q ;
-| b < v } $vowel ;
-| b < w } $vowel;
-| u < v ;
-| u < w;
-| K < C ;
-| Ph < F ;
-| I < J ;
-| K < Q ;
-| B < V } $vowel ;
-| B < W } $vowel ;
-| U < V ;
-| U < W ;
-$rough } $ignore [:UppercaseLetter:] > H ;
-$ignore [:UppercaseLetter:] { $rough > H ;
-$rough < H ;
-$rough <> h ;
-ϐ > | β ;
-ϑ > | θ ;
-ϒ > | Υ ;
-ϕ > | φ ;
-ϖ > | π ;
-ϰ > | κ ;
-ϱ > | ρ ;
-ϲ > | σ ;
-Ϲ > | Σ; #U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL
-ϳ > j ;
-ϴ > | Θ ;
-ϵ > | ε ;
-µ > | μ ;
-ͺ > i;
-< [Ππ] { \' } [Ss] ;
-< [Νν] { \' } $egammaLike ;
+| k ← c ;
+| ph ← f ;
+| i ← j ;
+| k ← q ;
+| b ← v } $vowel ;
+| b ← w } $vowel;
+| u ← v ;
+| u ← w;
+| K ← C ;
+| Ph ← F ;
+| I ← J ;
+| K ← Q ;
+| B ← V } $vowel ;
+| B ← W } $vowel ;
+| U ← V ;
+| U ← W ;
+$rough } $ignore [:UppercaseLetter:] → H ;
+$ignore [:UppercaseLetter:] { $rough → H ;
+$rough ← H ;
+$rough ↔ h ;
+ϐ → | β ;
+ϑ → | θ ;
+ϒ → | Υ ;
+ϕ → | φ ;
+ϖ → | π ;
+ϰ → | κ ;
+ϱ → | ρ ;
+ϲ → | σ ;
+Ϲ → | Σ; #U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL
+ϳ → j ;
+ϴ → | Θ ;
+ϵ → | ε ;
+µ → | μ ;
+ͺ → i;
+← [Ππ] { \' } [Ss] ;
+← [Νν] { \' } $egammaLike ;
::NFC (NFD) ;
:: ( [':?A-Za-zÀ-ÅÇ-ÏÑ-ÖÙ-Ýà-åç-ïñ-öù-ýÿ-ďĒ-ĥĨ-İĴ-ķĹ-ľŃ-ňŌ-őŔ-ťŨ-žƠ-ơƯ-ưǍ-ǜǞ-ǣǦ-ǰǴ-ǵǸ-țȞ-ȟȦ-ȳ\u0300-\u0337\u0339-\u0345΅-ΆΈ-ΊΌΎ-ΐΪ-ΰϊ-ώϓ-ϔЀ-ЁЃЇЌ-ЎЙйѐ-ёѓїќ-ўѶ-ѷӁ-ӂӐ-ӓӖ-ӗӚ-ӟӢ-ӧӪ-ӵӸ-ӹḀ-ẙẛẠ-ỹἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼ῁-ῄῆ-ΐῖ-Ί῝-΅ῲ-ῴῶ-ῼK-Å] ) ;