use Unicode::Normalize qw( NFKD );
use Text::Unidecode qw( unidecode );
+my %g; # present group classes
{
rows => [0, 1],
def => {
: $v =~ /^\p{Latin}/ ? 5 # latin script
: 6
);
+ $g{$class} = 1;
$_ => "g$class"
} keys %rows
},
g5 => ['latin', "a different (accented) latin letter"],
g6 => ['symbol', "other character not directly deducible from key"],
g7 => ['punctuation', "(punctuation) mark"],
+ !$g{9} ? () : (
g8 => ['mark', "modifier letter or mark (spacing diacritic)"],
g9 => ['combining', "diacritical mark to be combined with a following character"],
+ ),
},
}