|
our $VERSION = version->declare( 'v0.40.0' );
use if $^V ge v5.12.0, feature => 'unicode_strings' ;
BEGIN {
die "Transliteration requires Perl 5.18 or above"
unless $^V ge v5.18.0;
}
no warnings 'experimental::regex_sets' ;
has 'transforms' => (
is => 'ro' ,
isa => ArrayRef,
init_arg => undef ,
default => sub { [
qr/(?^um:\G.)/ ,
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NFD) ,
},
],
},
{
type => 'conversion' ,
data => [
{
before => q([Νν]) ,
after => q([GKXCgkxc]) ,
replace => q(\') ,
result => q() ,
revisit => 0,
},
{
before => q([Ππ]) ,
after => q([Ss]) ,
replace => q(\') ,
result => q() ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(h) ,
result => q(̔) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(H) ,
result => q(̔) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(W) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(V) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q((?:[aeiouyAEIOUY]|(?:[αεηιουω]|[ΑΕΗΙΟΥΩ]) )),
replace => q(W) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q((?:[aeiouyAEIOUY]|(?:[αεηιουω]|[ΑΕΗΙΟΥΩ]) )),
replace => q(V) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(Q) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(J) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(F) ,
result => q() ,
revisit => 2,
},
{
before => q() ,
after => q() ,
replace => q(C) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(w) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(v) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q((?:[aeiouyAEIOUY]|(?:[αεηιουω]|[ΑΕΗΙΟΥΩ]) )),
replace => q(w) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q((?:[aeiouyAEIOUY]|(?:[αεηιουω]|[ΑΕΗΙΟΥΩ]) )),
replace => q(v) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(q) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(j) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(f) ,
result => q() ,
revisit => 2,
},
{
before => q() ,
after => q() ,
replace => q(c) ,
result => q() ,
revisit => 1,
},
{
before => q() ,
after => q() ,
replace => q(CH) ,
result => q(Χ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ch) ,
result => q(Χ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ch) ,
result => q(χ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Y) ,
result => q(Υ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(U) ,
result => q(Υ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(y) ,
result => q(υ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(u) ,
result => q(υ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(T) ,
result => q(Τ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t) ,
result => q(τ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(S) ,
result => q(Σ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(s) ,
result => q(σ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(s̱) ,
result => q(ς) ,
revisit => 0,
},
{
before => q(\p{L} [\p{M} \'] *) ,
after => q() ,
replace => q(s) ,
result => q(ς) ,
revisit => 0,
},
{
before => q(\p{L} [\p{M} \'] *) ,
after => q() ,
replace => q(s̱) ,
result => q(σ) ,
revisit => 0,
},
{
before => q() ,
after => q([\p{M} \'] * \p{L}) ,
replace => q(s) ,
result => q(σ) ,
revisit => 0,
},
{
before => q() ,
after => q([\p{M} \'] * \p{L}) ,
replace => q(s̱) ,
result => q(ς) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ŝ) ,
result => q(ϻ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ŝ) ,
result => q(Ϻ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(š) ,
result => q(ϸ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Š) ,
result => q(Ϸ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(R) ,
result => q(Ρ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(r) ,
result => q(ρ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(RH) ,
result => q(Ῥ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Rh) ,
result => q(Ῥ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(rh) ,
result => q(ῥ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(P) ,
result => q(Π) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(p) ,
result => q(π) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(O) ,
result => q(Ο) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(o) ,
result => q(ο) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(X) ,
result => q(Ξ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(x) ,
result => q(ξ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(N) ,
result => q(Ν) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(N\') ,
result => q(Ν) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(n) ,
result => q(ν) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(M) ,
result => q(Μ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(m) ,
result => q(μ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(L) ,
result => q(Λ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(l) ,
result => q(λ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(K) ,
result => q(Κ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(k) ,
result => q(κ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(I) ,
result => q(Ι) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(i) ,
result => q(ι) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(TH) ,
result => q(Θ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Th) ,
result => q(Θ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(th) ,
result => q(θ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Z) ,
result => q(Ζ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(z) ,
result => q(ζ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(E) ,
result => q(Ε) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(e) ,
result => q(ε) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(D) ,
result => q(Δ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d) ,
result => q(δ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(G) ,
result => q(Γ) ,
revisit => 0,
},
{
before => q() ,
after => q([GKXCgkxc]) ,
replace => q(N) ,
result => q(Γ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(g) ,
result => q(γ) ,
revisit => 0,
},
{
before => q() ,
after => q([GKXCgkxc]) ,
replace => q(n) ,
result => q(γ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(B) ,
result => q(Β) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(b) ,
result => q(β) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(A) ,
result => q(Α) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(a) ,
result => q(α) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ō) ,
result => q(Ω) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ō) ,
result => q(ω) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ps) ,
result => q(ψ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(PH) ,
result => q(Φ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ph) ,
result => q(Φ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(PS) ,
result => q(Ψ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ps) ,
result => q(Ψ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ph) ,
result => q(φ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ē) ,
result => q(Η) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ē) ,
result => q(η) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ā) ,
result => q(α) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(Ā) ,
result => q(Α) ,
revisit => 0,
},
{
before => q([^ \p{L} \p{M}]) ,
after => q((?:(?!(?:[iuyIUY]|[̓̔]) )(?s:.))),
replace => q(([aeiouyAEIOUY]̄?) ),
result => q() ,
revisit => 3,
},
{
before => q([^ \p{L} \p{M}]) ,
after => q([^̓̔]) ,
replace => q(([aeiouyAEIOUY]̄?[iuyIUY]̄?) ),
result => q() ,
revisit => 3,
},
{
before => q([^ \p{L} \p{M}]) ,
after => q([^hH̓̔]) ,
replace => q(([rR]) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(Hy(̄?̈?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hu(̄?̈?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Ho(̄?̈?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hi(̄?̈?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(He(̄?̈?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Ha(̄?̈?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hy(̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hu(̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Ho(̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hi(̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(He(̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Ha(̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hy(̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hu(̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Ho(̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Hi(̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(He(̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(Ha(̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 4,
},
{
before => q() ,
after => q() ,
replace => q(H([AEIOUY]̄?̈?) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(H([AEIOUY]̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(H([AEIOUY]̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(h([aeiouyAEIOUY]̄?̈?) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(h([aeiouyAEIOUY]̈?[iuyIUY]̄?) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(h([aeiouyAEIOUY]̄̈?[uyUY]̄?) ),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(([aeiouyAEIOUY]̄(?:(?![̸]) (?:(?=[\p{M}])[̀-ͅ]))*)I),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(([aeiouyAEIOUY]̄(?:(?![̸]) (?:(?=[\p{M}])[̀-ͅ]))*)i),
result => q() ,
revisit => 3,
},
{
before => q() ,
after => q() ,
replace => q(̂) ,
result => q(͂) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(\:) ,
result => q(·) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(\?̱) ,
result => q(\?) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(\:̱) ,
result => q(\:) ,
revisit => 0,
},
],
},
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NFC) ,
},
]
},
] },
);
no Moo;
1;
|