blob: 1cacd3d8ff2c91bb557668ad12700d6dfb281ecd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
//--------------------------------------------------------------------
// Copyright (c) 2001, CrossWire Bible Society
//--------------------------------------------------------------------
// BGreek-Greek
translit_BGreek_Greek {
Rule {
":: NFD (NFC) ;"
":: [abgdezqklmnxofyprtucw] upper();"
// Extra English Letters. Mapped for completeness
"J>I;"
"V>U;"
"<[:Mn:];"
// ==============================================
// Variables, used to make the rules more comprehensible
// and for conditionals.
// ==============================================
// Greek Letters
"$ALPHA=\u0391;"
"$BETA=\u0392;"
"$GAMMA=\u0393;"
"$DELTA=\u0394;"
"$EPSILON=\u0395;"
"$ZETA=\u0396;"
"$ETA=\u0397;"
"$THETA=\u0398;"
"$IOTA=\u0399;"
"$KAPPA=\u039A;"
"$LAMBDA=\u039B;"
"$MU=\u039C;"
"$NU=\u039D;"
"$XI=\u039E;"
"$OMICRON=\u039F;"
"$PI=\u03A0;"
"$RHO=\u03A1;"
"$SIGMA=\u03A3;"
"$TAU=\u03A4;"
"$YPSILON=\u03A5;"
"$PHI=\u03A6;"
"$CHI=\u03A7;"
"$PSI=\u03A8;"
"$OMEGA=\u03A9;"
"$alpha=\u03B1;"
"$beta=\u03B2;"
"$gamma=\u03B3;"
"$delta=\u03B4;"
"$epsilon=\u03B5;"
"$zeta=\u03B6;"
"$eta=\u03B7;"
"$theta=\u03B8;"
"$iota=\u03B9;"
"$kappa=\u03BA;"
"$lambda=\u03BB;"
"$mu=\u03BC;"
"$nu=\u03BD;"
"$xi=\u03BE;"
"$omicron=\u03BF;"
"$pi=\u03C0;"
"$rho=\u03C1;"
"$sigma=\u03C3;"
"$tau=\u03C4;"
"$ypsilon=\u03C5;"
"$phi=\u03C6;"
"$chi=\u03C7;"
"$psi=\u03C8;"
"$omega=\u03C9;"
"$sigma2=\u03C2;"
"$iota_subscript=\u037A;"
"$comb_rough_breathing=\u0314;"
"$rough_breathing=\u02BD;"
// Variables for conditional mappings
// ==============================================
// Rules
// ==============================================
// The following are special titlecases, and should
// not be copied when duplicating the lowercase
// ==============================================
// Because there is no uppercase forms for final sigma,
// we had to move all the sigma rules up here.
// Remember to insert ' to preserve round trip, for double letters
// don't need to do this for the digraphs with h,
// since it is not created when mapping back from greek
// use special form for s
"S}[[:L:] & [:Latin:]]>$sigma2;"
"S <> $SIGMA;"
// The following are a bit tricky. 's' takes two forms in greek
// final or non final.
// We use ~s to represent the abnormal form: final before letter
// or non-final before non-letter.
// We use 's to separate p and s (otherwise ps is one letter)
// so, we break out the following forms:
"S < $sigma;"
"S < $sigma2;"
// ==============================================
// Uppercase Forms.
// To make lowercase forms, just copy and lowercase below
// ==============================================
// Basic Letters
"A<>$ALPHA;"
"B<>$BETA;"
"G<>$GAMMA;"
"D<>$DELTA;"
"E<>$EPSILON;"
"Z<>$ZETA;"
"H<>$ETA;"
"Q<>$THETA;"
"I<>$IOTA;"
"K<>$KAPPA;"
"L<>$LAMBDA;"
"M<>$MU;"
"N<>$NU;"
"X<>$XI;"
"O<>$OMICRON;"
"F<>$PHI;" // needs ordering before P
"Y<>$PSI;" // needs ordering before P
"P<>$PI;"
"R<>$RHO;"
"T<>$TAU;"
"U<>$YPSILON;"
"C<>$CHI;"
"W<>$OMEGA;"
// Non-letter characters
"i<>$iota_subscript;"
"h<>$comb_rough_breathing;"
"h<$rough_breathing;"
":: [[:Ll:] & [:Greek:]] upper;"
":: NFC (NFD) ;"
}
}
|