glaemscribe 1.1.14 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/bin/glaemscribe +21 -17
- data/glaemresources/charsets/cirth_ds.cst +540 -0
- data/glaemresources/charsets/eldamar.cst +210 -0
- data/glaemresources/charsets/sarati_eldamar.cst +256 -0
- data/glaemresources/charsets/tengwar_ds_annatar.cst +2868 -0
- data/glaemresources/charsets/tengwar_ds_eldamar.cst +2729 -0
- data/glaemresources/charsets/tengwar_ds_elfica.cst +2742 -0
- data/glaemresources/charsets/tengwar_ds_parmaite.cst +2726 -0
- data/glaemresources/charsets/tengwar_ds_sindarin.cst +2722 -0
- data/glaemresources/charsets/tengwar_freemono.cst +217 -0
- data/glaemresources/charsets/tengwar_guni_annatar.cst +2948 -0
- data/glaemresources/charsets/tengwar_guni_eldamar.cst +2809 -0
- data/glaemresources/charsets/tengwar_guni_elfica.cst +2809 -0
- data/glaemresources/charsets/tengwar_guni_parmaite.cst +2813 -0
- data/glaemresources/charsets/tengwar_guni_sindarin.cst +2808 -0
- data/glaemresources/charsets/tengwar_telcontar.cst +225 -0
- data/glaemresources/charsets/unicode_gothic.cst +64 -0
- data/glaemresources/charsets/unicode_runes.cst +121 -0
- data/glaemresources/modes/{adunaic.glaem → adunaic-tengwar-glaemscrafu.glaem} +14 -2
- data/glaemresources/modes/{blackspeech.glaem → blackspeech-tengwar-general_use.glaem} +13 -3
- data/glaemresources/modes/english-cirth-espeak.glaem +687 -0
- data/glaemresources/modes/english-tengwar-espeak.glaem +814 -0
- data/glaemresources/modes/japanese-tengwar.glaem +776 -0
- data/glaemresources/modes/{khuzdul.glaem → khuzdul-cirth-moria.glaem} +4 -1
- data/glaemresources/modes/lang_belta-tengwar-dadef.glaem +248 -0
- data/glaemresources/modes/{futhorc.glaem → old_english-futhorc.glaem} +0 -0
- data/glaemresources/modes/{mercian.glaem → old_english-tengwar-mercian.glaem} +22 -12
- data/glaemresources/modes/{westsaxon.glaem → old_english-tengwar-westsaxon.glaem} +20 -11
- data/glaemresources/modes/{futhark-runicus.glaem → old_norse-futhark-runicus.glaem} +0 -0
- data/glaemresources/modes/{futhark-younger.glaem → old_norse-futhark-younger.glaem} +0 -0
- data/glaemresources/modes/{quenya.glaem → quenya-tengwar-classical.glaem} +32 -50
- data/glaemresources/modes/raw-cirth.glaem +154 -0
- data/glaemresources/modes/raw-tengwar.glaem +46 -23
- data/glaemresources/modes/{rlyehian.glaem → rlyehian-tengwar.glaem} +14 -3
- data/glaemresources/modes/{sindarin-daeron.glaem → sindarin-cirth-daeron.glaem} +55 -14
- data/glaemresources/modes/{sindarin-beleriand.glaem → sindarin-tengwar-beleriand.glaem} +154 -28
- data/glaemresources/modes/{sindarin.glaem → sindarin-tengwar-general_use.glaem} +86 -25
- data/glaemresources/modes/{telerin.glaem → telerin-tengwar-glaemscrafu.glaem} +16 -6
- data/glaemresources/modes/{westron.glaem → westron-tengwar-glaemscrafu.glaem} +18 -8
- data/lib/api/charset.rb +67 -7
- data/lib/api/charset_parser.rb +14 -1
- data/lib/api/constants.rb +3 -4
- data/lib/api/fragment.rb +26 -5
- data/lib/api/if_tree.rb +70 -8
- data/lib/api/macro.rb +40 -0
- data/lib/api/mode.rb +66 -19
- data/lib/api/mode_parser.rb +117 -14
- data/lib/api/object_additions.rb +23 -1
- data/lib/api/option.rb +17 -2
- data/lib/api/post_processor/outspace.rb +44 -0
- data/lib/api/post_processor/resolve_virtuals.rb +25 -9
- data/lib/api/resource_manager.rb +1 -0
- data/lib/api/rule_group.rb +170 -26
- data/lib/api/sheaf_chain_iterator.rb +1 -1
- data/lib/api/transcription_pre_post_processor.rb +8 -5
- data/lib/api/transcription_processor.rb +15 -12
- data/lib/api/tts.rb +51 -0
- data/lib/glaemscribe.rb +36 -31
- data/lib_espeak/espeakng.for.glaemscribe.nowasm.sync.js +35 -0
- data/lib_espeak/glaemscribe_tts.js +505 -0
- metadata +76 -24
@@ -0,0 +1,776 @@
|
|
1
|
+
\**
|
2
|
+
|
3
|
+
Glǽmscribe (also written Glaemscribe) is a software dedicated to
|
4
|
+
the transcription of texts between writing systems, and more
|
5
|
+
specifically dedicated to the transcription of J.R.R. Tolkien's
|
6
|
+
invented languages to some of his devised writing systems.
|
7
|
+
|
8
|
+
Copyright (C) 2015 Benjamin Babut (Talagan).
|
9
|
+
|
10
|
+
This program is free software: you can redistribute it and/or modify
|
11
|
+
it under the terms of the GNU Affero General Public License as published by
|
12
|
+
the Free Software Foundation, either version 3 of the License, or
|
13
|
+
any later version.
|
14
|
+
|
15
|
+
This program is distributed in the hope that it will be useful,
|
16
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
18
|
+
GNU Affero General Public License for more details.
|
19
|
+
|
20
|
+
You should have received a copy of the GNU Affero General Public License
|
21
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
22
|
+
|
23
|
+
**\
|
24
|
+
|
25
|
+
\beg changelog
|
26
|
+
\entry "0.0.1" "Initial version"
|
27
|
+
\entry "0.0.2" "Corrected 億 to 10^8, added support for セィ and ゼィ. Thanks to Roman Rausch for this feedback!"
|
28
|
+
\end
|
29
|
+
|
30
|
+
\language "Japanese"
|
31
|
+
\writing "Tengwar"
|
32
|
+
\mode "Japanese Tengwar - G*"
|
33
|
+
\authors "Talagan (Benjamin Babut)"
|
34
|
+
\version "0.0.2"
|
35
|
+
|
36
|
+
\world primary
|
37
|
+
\invention experimental
|
38
|
+
|
39
|
+
\raw_mode "raw-tengwar"
|
40
|
+
|
41
|
+
\charset tengwar_ds_sindarin false
|
42
|
+
\charset tengwar_ds_parmaite false
|
43
|
+
\charset tengwar_ds_eldamar false
|
44
|
+
\charset tengwar_ds_annatar true
|
45
|
+
\charset tengwar_ds_elfica false
|
46
|
+
|
47
|
+
\charset tengwar_guni_sindarin false
|
48
|
+
\charset tengwar_guni_parmaite false
|
49
|
+
\charset tengwar_guni_eldamar false
|
50
|
+
\charset tengwar_guni_annatar false
|
51
|
+
\charset tengwar_guni_elfica false
|
52
|
+
|
53
|
+
\charset tengwar_freemono false
|
54
|
+
\charset tengwar_telcontar false
|
55
|
+
|
56
|
+
\beg options
|
57
|
+
|
58
|
+
\** Vowel options **\
|
59
|
+
\beg option choon_long_vowels CHOON_CONFLATE
|
60
|
+
\value CHOON_CONFLATE 0
|
61
|
+
\value CHOON_KEEP_SEPARATE 1
|
62
|
+
\end
|
63
|
+
\** Yoon options **\
|
64
|
+
\beg option palatal_sign PALATAL_SIGN_UNUTIXE
|
65
|
+
\value PALATAL_SIGN_UNUTIXE 0
|
66
|
+
\value PALATAL_SIGN_DOUBLE_UNUTIXE 1
|
67
|
+
\end
|
68
|
+
|
69
|
+
\** Palatal **\
|
70
|
+
\beg option gojuon_y GOJUON_Y_USE_YANTA
|
71
|
+
\value GOJUON_Y_USE_TELCO 0
|
72
|
+
\value GOJUON_Y_USE_YANTA 1
|
73
|
+
\end
|
74
|
+
|
75
|
+
\** labial **\
|
76
|
+
\beg option gojuon_w GOJUON_W_USE_URE
|
77
|
+
\value GOJUON_W_USE_TELCO 0
|
78
|
+
\value GOJUON_W_USE_URE 1
|
79
|
+
\end
|
80
|
+
|
81
|
+
\** Consonant options **\
|
82
|
+
\beg option isolated_n ISOLATED_N_USE_NOLDO
|
83
|
+
\value ISOLATED_N_USE_NOLDO 0
|
84
|
+
\value ISOLATED_N_USE_MODIFIER 1
|
85
|
+
\end
|
86
|
+
|
87
|
+
\beg option geminates GEMINATES_USE_HALLA
|
88
|
+
\value GEMINATES_USE_HALLA 0
|
89
|
+
\value GEMINATES_USE_MODIFIER 1
|
90
|
+
\value GEMINATES_DOUBLE_TENGWA 2
|
91
|
+
\end
|
92
|
+
|
93
|
+
\beg option dakuten_h_p_b DAKUTEN_THK
|
94
|
+
\value DAKUTEN_THK 0 \** JP STYLE **\
|
95
|
+
\value DAKUTEN_TPK 1 \** ELVISH STYLE **\
|
96
|
+
\end
|
97
|
+
|
98
|
+
\** Foreign otpions **\
|
99
|
+
\beg option foreign_labialized FOREIGN_LABIALIZED_DOWN_TEHTA
|
100
|
+
\value FOREIGN_LABIALIZED_DOWN_TEHTA 0
|
101
|
+
\value FOREIGN_LABIALIZED_QUESSETEMA 1
|
102
|
+
\end
|
103
|
+
|
104
|
+
\beg option foreign_f_v FOREIGN_F_V_XTD
|
105
|
+
\value FOREIGN_F_V_XTD 0
|
106
|
+
\value FOREIGN_F_V_OVERSTEM 1
|
107
|
+
\end
|
108
|
+
|
109
|
+
\** Graphical style options **\
|
110
|
+
\beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_WAVE
|
111
|
+
\value CONSONANT_MODIFICATION_STYLE_WAVE 0
|
112
|
+
\value CONSONANT_MODIFICATION_STYLE_BAR 1
|
113
|
+
\end
|
114
|
+
|
115
|
+
\end
|
116
|
+
|
117
|
+
\beg preprocessor
|
118
|
+
|
119
|
+
\downcase
|
120
|
+
|
121
|
+
\** Normalize explicitly written long vowels **\
|
122
|
+
\rxsubstitute "[āâàá]" "aー"
|
123
|
+
\rxsubstitute "[īîíì]" "iー"
|
124
|
+
\rxsubstitute "[ūûúù]" "uー"
|
125
|
+
\rxsubstitute "[ēêéè]" "eー"
|
126
|
+
\rxsubstitute "[ōôóò]" "oー"
|
127
|
+
|
128
|
+
\** Normalize elvish bizarrerie **\
|
129
|
+
\substitute "ä" "a"
|
130
|
+
\substitute "ï" "i"
|
131
|
+
\substitute "ü" "u"
|
132
|
+
\substitute "ë" "e"
|
133
|
+
\substitute "ö" "o"
|
134
|
+
|
135
|
+
\if "choon_long_vowels == CHOON_CONFLATE"
|
136
|
+
|
137
|
+
\** ================== **\
|
138
|
+
\** Gojûon **\
|
139
|
+
\** ================== **\
|
140
|
+
|
141
|
+
\rxsubstitute "([あアカかさサたタなナはハまマらラがガざザだダばバぱパやヤわワ])[あアー]" "\\1ー"
|
142
|
+
\rxsubstitute "([いイきキしシちチにニひヒみミりリぎギじジぢヂびビぴピゐヰ])[いイー]" "\\1ー"
|
143
|
+
\rxsubstitute "([うウくクすスつツぬヌふフむムるルぐグずズづヅぶブぷプゆユ])[うウー]" "\\1ー"
|
144
|
+
\rxsubstitute "([えエけケせセてテねネへヘめメれレげゲぜゼでデべベぺペゑヱ])[いイー]" "\\1ー"
|
145
|
+
\rxsubstitute "([おオこコそソとトのノほホもモろロごゴぞゾどドぼボぽポよヨをヲ])[うウー]" "\\1ー"
|
146
|
+
|
147
|
+
\** too, oo . E.G. ookami, too **\
|
148
|
+
\rxsubstitute "([とトおオ])[おオ]" "\\1ー"
|
149
|
+
\** nee, ee . E.G. oneesan, nee, ee **\
|
150
|
+
\rxsubstitute "([ねネえエ])[えエ]" "\\1ー"
|
151
|
+
|
152
|
+
\** ================== **\
|
153
|
+
\** Yôon **\
|
154
|
+
\** ================== **\
|
155
|
+
|
156
|
+
\** Normalization of long vowels : yoon .yâ, .yû, .yô **\
|
157
|
+
\rxsubstitute "([ゃャ])[あアー]" "\\1ー"
|
158
|
+
\rxsubstitute "([ゅュ])[うウー]" "\\1ー"
|
159
|
+
\rxsubstitute "([ょョ])[うウー]" "\\1ー"
|
160
|
+
|
161
|
+
\** ================== **\
|
162
|
+
\** Rômaji equivalents **\
|
163
|
+
\** ================== **\
|
164
|
+
|
165
|
+
\**
|
166
|
+
a ka sa ta na ha ma ra ga za da ba pa ya wa + a = .â (k|s|t|n|h|m|r|g|z|d|b|p|y|w)
|
167
|
+
i ki shi chi ni hi mi ri gi ji dji bi pi - wi + i = .î (k|sh|ch|n|h|m|r|g|j|dj|b|p|w)
|
168
|
+
u ku su tsu nu fu mu ru gu ju dju bu pu yu - + u = .û (k|s|ts|n|f|m|r|g|j|dj|b|p|y)
|
169
|
+
e ke se te ne he me re ge ze de be pe - we + i = .ê (k|s|t|n|h|m|r|g|z|d|b|p|w)
|
170
|
+
o ko so to no ho mo ro go zo do bo po yo wo + u = .ô (k|s|t|n|h|m|r|g|z|d|b|p|y|w)
|
171
|
+
**\
|
172
|
+
|
173
|
+
\** Note : this additionally does handle the Yôon through y **\
|
174
|
+
\rxsubstitute "aa" "aー"
|
175
|
+
\rxsubstitute "ii" "iー"
|
176
|
+
\rxsubstitute "uu" "uー"
|
177
|
+
\rxsubstitute "ei" "eー"
|
178
|
+
\rxsubstitute "ou" "oー"
|
179
|
+
|
180
|
+
\** nee, ee . E.G. oneesan, nee, ee. Avoid breaking things like kee. **\
|
181
|
+
\rxsubstitute "(k|s|t|h|m|r|g|z|d|b|p|w)ee" "\\1e'e" \** Removed n for nee **\
|
182
|
+
\rxsubstitute "(k|s|n|h|m|r|g|z|d|b|p|y|w)oo" "\\1o'o" \** Removed t for too **\
|
183
|
+
\rxsubstitute "oo" "oー"
|
184
|
+
\rxsubstitute "ee" "eー"
|
185
|
+
|
186
|
+
\** Foreign additional stuff should always use macrons or accents to denote long vowels **\
|
187
|
+
\endif
|
188
|
+
|
189
|
+
\** Normalization of geminates. Simply introduce っ in romanisation ;) **\
|
190
|
+
\rxsubstitute "([tpkcs])\\1" "っ\\1"
|
191
|
+
\rxsubstitute "tch" "っch"
|
192
|
+
|
193
|
+
\** Far less common, maybe even impossible **\
|
194
|
+
\rxsubstitute "([h])\\1" "っ\\1"
|
195
|
+
\rxsubstitute "([dbgz])\\1" "っ\\1"
|
196
|
+
\rxsubstitute "([fvl])\\1" "っ\\1"
|
197
|
+
\rxsubstitute "([rwy])\\1" "っ\\1"
|
198
|
+
|
199
|
+
\** Normalization of isolated nasalizer n (&m). Simply introduce ん in romanisation :) **\
|
200
|
+
\rxsubstitute "(n|m)([^aeiouy]|$)" "ん\\2"
|
201
|
+
|
202
|
+
\end
|
203
|
+
|
204
|
+
\beg processor
|
205
|
+
\beg rules litteral
|
206
|
+
|
207
|
+
\** ================================ **\
|
208
|
+
\** PREREQUISITES **\
|
209
|
+
\** ================================ **\
|
210
|
+
|
211
|
+
\if "consonant_modification_style == CONSONANT_MODIFICATION_STYLE_WAVE"
|
212
|
+
{GEMINATE} === GEMINATE_SIGN_TILD
|
213
|
+
{NASAL} === NASALIZE_SIGN_TILD
|
214
|
+
\else
|
215
|
+
{GEMINATE} === GEMINATE_SIGN
|
216
|
+
{NASAL} === NASALIZE_SIGN
|
217
|
+
\endif
|
218
|
+
|
219
|
+
\** Dakuten / Handakuten resolution **\
|
220
|
+
\if "dakuten_h_p_b == DAKUTEN_THK"
|
221
|
+
{_P_TENGWA_} === VALA
|
222
|
+
{_H_TENGWA_} === PARMA
|
223
|
+
\else
|
224
|
+
{_P_TENGWA_} === PARMA
|
225
|
+
{_H_TENGWA_} === VALA
|
226
|
+
\endif
|
227
|
+
|
228
|
+
{MORAIC_NASAL} === (ん,ン)
|
229
|
+
{SOKUON} === (っ,ッ)
|
230
|
+
|
231
|
+
{_A_} === A_TEHTA
|
232
|
+
{_I_} === I_TEHTA
|
233
|
+
{_U_} === U_TEHTA
|
234
|
+
{_E_} === E_TEHTA
|
235
|
+
{_O_} === O_TEHTA
|
236
|
+
|
237
|
+
{_AA_} === A_TEHTA_REVERSED
|
238
|
+
{_II_} === I_TEHTA_DOUBLE
|
239
|
+
{_UU_} === U_TEHTA_DOUBLE
|
240
|
+
{_EE_} === E_TEHTA_DOUBLE
|
241
|
+
{_OO_} === O_TEHTA_DOUBLE
|
242
|
+
|
243
|
+
{_SHORT_VOWELS_} === [{_A_} * {_I_} * {_U_} * {_E_} * {_O_}]
|
244
|
+
{_LONG_VOWELS_} === [{_AA_} * {_II_} * {_UU_} * {_EE_} * {_OO_}]
|
245
|
+
|
246
|
+
{_SHORT_VOWELS_YON_} === [{_A_} * {_U_} * {_O_}]
|
247
|
+
{_LONG_VOWELS_YON_} === [{_AA_} * {_UU_} * {_OO_}]
|
248
|
+
|
249
|
+
{NASAL_OR_NOT} === [{NULL} * {MORAIC_NASAL}]
|
250
|
+
{GEMINATE_OR_NOT} === [{NULL} * {SOKUON}]
|
251
|
+
{MODS} === {NASAL_OR_NOT} {GEMINATE_OR_NOT}
|
252
|
+
|
253
|
+
\if "palatal_sign == PALATAL_SIGN_UNUTIXE"
|
254
|
+
{_PALATAL_} === UNUTIXE
|
255
|
+
\else
|
256
|
+
{_PALATAL_} === I_TEHTA_DOUBLE_INF
|
257
|
+
\endif
|
258
|
+
|
259
|
+
{_NASAL_} === {NASAL}
|
260
|
+
{_GEMINATE_} === {GEMINATE}
|
261
|
+
{_LABIAL_} === U_TEHTA_INF
|
262
|
+
{_CANCELLER_} === THINNAS
|
263
|
+
{_SIBILANT_} === SARINCE
|
264
|
+
{_CANCEL_THEN_PALATAL_} === CIRC_TEHTA_INF
|
265
|
+
|
266
|
+
\** THIS IS OUR GENERAL MACRO FOR JAPANESE. Will be used almost everywhere **\
|
267
|
+
\beg macro serie ARG_SERIE _ARG_MAIN_TENGWA_ _ARG_SERIE_MODIFIERS_ _ARG_SHORT_VOWELS_ _ARG_LONG_VOWELS_ _ARG_SIB_
|
268
|
+
{_PREMODS_} === {NULL}
|
269
|
+
{_POSTMODS_} === {NULL}
|
270
|
+
{__X__} === identity
|
271
|
+
\if "isolated_n == ISOLATED_N_USE_NOLDO"
|
272
|
+
\if "geminates == GEMINATES_USE_HALLA"
|
273
|
+
{_PREMODS_} === [{NULL} * NOLDO][{NULL} * HALLA]
|
274
|
+
\elsif "geminates == GEMINATES_DOUBLE_TENGWA"
|
275
|
+
{_PREMODS_} === [{NULL} * NOLDO][{NULL} * {_ARG_MAIN_TENGWA_}]
|
276
|
+
\else
|
277
|
+
{_PREMODS_} === [{NULL} * NOLDO]
|
278
|
+
{_POSTMODS_} === [{NULL} * {_GEMINATE_}]
|
279
|
+
\endif
|
280
|
+
\else
|
281
|
+
\if "geminates == GEMINATES_USE_HALLA"
|
282
|
+
{_PREMODS_} === [{NULL} * HALLA]
|
283
|
+
{_POSTMODS_} === [{NULL} * {_NASAL_}]
|
284
|
+
\** The nasal mark is before the geminate, but their position is reversed at the arrival, so cross rule here **\
|
285
|
+
{__X__} === 2,1,3
|
286
|
+
\elsif "geminates == GEMINATES_DOUBLE_TENGWA"
|
287
|
+
\** This case is the most complex because we want : (Teng Nasal) Teng **/
|
288
|
+
\** But it can be factorized by cheating because ; **\
|
289
|
+
\** (Teng Nasal) Teng = Teng (Nasal Teng) **\
|
290
|
+
{_POSTMODS_} === [{NULL} * {_NASAL_}][{NULL} * {_ARG_MAIN_TENGWA_}]
|
291
|
+
\else
|
292
|
+
{_POSTMODS_} === [{NULL} * {_NASAL_}][{NULL} * {_GEMINATE_}]
|
293
|
+
\endif
|
294
|
+
\endif
|
295
|
+
{MODS}{ARG_SERIE} --> {__X__} --> {_PREMODS_} {_ARG_MAIN_TENGWA_} {_POSTMODS_} {_ARG_SERIE_MODIFIERS_} {_ARG_SHORT_VOWELS_} {_ARG_SIB_}
|
296
|
+
{MODS}{ARG_SERIE}ー --> {__X__} --> {_PREMODS_} {_ARG_MAIN_TENGWA_} {_POSTMODS_} {_ARG_SERIE_MODIFIERS_} {_ARG_LONG_VOWELS_} {_ARG_SIB_}
|
297
|
+
\end
|
298
|
+
|
299
|
+
\** ================================ **\
|
300
|
+
\** START OF RULES **\
|
301
|
+
\** ================================ **\
|
302
|
+
|
303
|
+
\** Isolated vowels **\
|
304
|
+
{GOJUON} === [(あ,ア,a) * (い,イ,i) * (う,ウ,u) * (え,エ,e) * (お,オ,o)]
|
305
|
+
{YOON} === [(や,ヤ,ya) * (ゆ,ユ,yu) * (よ,ヨ,yo)]
|
306
|
+
{GOJUON} --> TELCO {_SHORT_VOWELS_}
|
307
|
+
{GOJUON}ー --> TELCO {_LONG_VOWELS_}
|
308
|
+
|
309
|
+
\** Isolated Y serie **\
|
310
|
+
\if "gojuon_y == GOJUON_Y_USE_YANTA"
|
311
|
+
{TENGWA} === YANTA
|
312
|
+
\else
|
313
|
+
{TENGWA} === TELCO {_PALATAL_}
|
314
|
+
\endif
|
315
|
+
{YOON} --> {TENGWA} {_SHORT_VOWELS_YON_}
|
316
|
+
{YOON}ー --> {TENGWA} {_LONG_VOWELS_YON_}
|
317
|
+
|
318
|
+
\** T serie **\
|
319
|
+
{GOJUON} === [(た,タ,ta) * (ち,チ,chi) * (つ,ツ,tsu) * (て,テ,te) * (と,ト,to)]
|
320
|
+
{YOON} === [(ちゃ,チャ,cha) * (ちゅ,チュ,chu) * (ちょ,チョ,cho)]
|
321
|
+
{TENGWA} === TINCO
|
322
|
+
|
323
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
324
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
325
|
+
|
326
|
+
\** P serie **\
|
327
|
+
{GOJUON} === [(ぱ,パ,pa) * (ぴ,ピ,pi) * (ぷ,プ,pu) * (ぺ,ペ,pe) * (ぽ,ポ,po)]
|
328
|
+
{YOON} === [(ぴゃ,ピャ,pya) * (ぴゅ,ピュ,pyu) * (ぴょ,ピョ,pyo)]
|
329
|
+
{TENGWA} === {_P_TENGWA_}
|
330
|
+
|
331
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
332
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
333
|
+
|
334
|
+
\** K serie **\
|
335
|
+
{GOJUON} === [(か,カ,ka) * (き,キ,ki) * (く,ク,ku) * (け,ケ,ke) * (こ,コ,ko)]
|
336
|
+
{YOON} === [(きゃ,キャ,kya) * (きゅ,キュ,kyu) * (きょ,キョ,kyo)]
|
337
|
+
{TENGWA} === CALMA
|
338
|
+
|
339
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
340
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
341
|
+
|
342
|
+
\** D serie **\
|
343
|
+
{GOJUON} === [(だ,ダ,da) * (ぢ,ヂ,dji) * (づ,ヅ,dzu) * (で,デ,de) * (ど,ド,do)]
|
344
|
+
{YOON} === [(ぢゃ,ヂャ,dja) * (ぢゅ,ヂュ,dju) * (ぢょ,ヂョ,djo)]
|
345
|
+
{TENGWA} === ANDO
|
346
|
+
|
347
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
348
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
349
|
+
|
350
|
+
\** B serie **\
|
351
|
+
{GOJUON} === [(ば,バ,ba) * (び,ビ,bi) * (ぶ,ブ,bu) * (べ,ベ,be) * (ぼ,ボ,bo)]
|
352
|
+
{YOON} === [(びゃ,ビャ,bya) * (びゅ,ビュ,byu) * (びょ,ビョ,byo)]
|
353
|
+
{TENGWA} === UMBAR
|
354
|
+
|
355
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
356
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
357
|
+
|
358
|
+
\** G Serie **\
|
359
|
+
{GOJUON} === [(が,ガ,ga) * (ぎ,ギ,gi) * (ぐ,グ,gu) * (げ,ゲ,ge) * (ご,ゴ,go)]
|
360
|
+
{YOON} === [(ぎゃ,ギャ,gya) * (ぎゅ,ギュ,gyu) * (ぎょ,ギョ,gyo)]
|
361
|
+
{TENGWA} === ANGA
|
362
|
+
|
363
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
364
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
365
|
+
|
366
|
+
\** N serie **\
|
367
|
+
{GOJUON} === [(な,ナ,na) * (に,ニ,ni) * (ぬ,ヌ,nu) * (ね,ネ,ne) * (の,ノ,no)]
|
368
|
+
{YOON} === [(にゃ,ニャ,nya) * (にゅ,ニュ,nyu) * (にょ,ニョ,nyo)]
|
369
|
+
{TENGWA} === NUMEN
|
370
|
+
|
371
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
372
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
373
|
+
{MORAIC_NASAL} --> NOLDO
|
374
|
+
|
375
|
+
\** M serie **\
|
376
|
+
{GOJUON} === [(ま,マ,ma) * (み,ミ,mi) * (む,ム,mu) * (め,メ,me) * (も,モ,mo)]
|
377
|
+
{YOON} === [(みゃ,ミャ,mya) * (みゅ,ミュ,myu) * (みょ,ミョ,myo)]
|
378
|
+
{TENGWA} === MALTA
|
379
|
+
|
380
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
381
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
382
|
+
|
383
|
+
\** H serie **\
|
384
|
+
{GOJUON} === [(は,ハ,ha) * (ひ,ヒ,hi) * (ふ,フ,fu) * (へ,ヘ,he) * (ほ,ホ,ho)]
|
385
|
+
{YOON} === [(ひゃ,ヒャ,hya) * (ひゅ,ヒュ,hyu) * (ひょ,ヒョ,hyo)]
|
386
|
+
{TENGWA} === {_H_TENGWA_}
|
387
|
+
|
388
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
389
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
390
|
+
|
391
|
+
\** S serie **\
|
392
|
+
{GOJUON} === [(さ,サ,sa) * (し,シ,shi) * (す,ス,su) * (せ,セ,se) * (そ,ソ,so)]
|
393
|
+
{YOON} === [(しゃ,シャ,sha) * (しゅ,シュ,shu) * (しょ,ショ,sho)]
|
394
|
+
{TENGWA} === SILME_NUQUERNA
|
395
|
+
|
396
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
397
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
398
|
+
|
399
|
+
\** Z serie **\
|
400
|
+
{GOJUON} === [(ざ,ザ,za) * (じ,ジ,ji) * (ず,ズ,zu) * (ぜ,ゼ,ze) * (ぞ,ゾ,zo)]
|
401
|
+
{YOON} === [(じゃ,ジャ,ja) * (じゅ,ジュ,ju) * (じょ,ジョ,jo)]
|
402
|
+
{TENGWA} === ESSE_NUQUERNA
|
403
|
+
|
404
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
405
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
406
|
+
|
407
|
+
\** R serie **\
|
408
|
+
{GOJUON} === [(ら,ラ,ra) * (り,リ,ri) * (る,ル,ru) * (れ,レ,re) * (ろ,ロ,ro)]
|
409
|
+
{YOON} === [(りゃ,リャ,rya) * (りゅ,リュ,ryu) * (りょ,リョ,ryo)]
|
410
|
+
{TENGWA} === ROMEN
|
411
|
+
|
412
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
413
|
+
\deploy serie {YOON} {TENGWA} {_PALATAL_} {_SHORT_VOWELS_YON_} {_LONG_VOWELS_YON_} {NULL}
|
414
|
+
|
415
|
+
\** W serie **\
|
416
|
+
{GOJUON} === [(わ,ワ,wa) * (ゐ,ヰ,wi) * (ゑ,ヱ,we) ]
|
417
|
+
\if "gojuon_w == GOJUON_W_USE_URE"
|
418
|
+
{TENGWA} === URE
|
419
|
+
\else
|
420
|
+
{TENGWA} === TELCO {_LABIAL_}
|
421
|
+
\endif
|
422
|
+
|
423
|
+
{__SV__} === [{_A_} * {_I_} * {_E_}]
|
424
|
+
{__LV__} === [{_AA_} * {_II_} * {_EE_}]
|
425
|
+
\deploy serie {GOJUON} {TENGWA} {NULL} {__SV__} {__LV__} {NULL}
|
426
|
+
|
427
|
+
\** SPECIALS **\
|
428
|
+
(へ,he,e){ASTERISK} --> NUM_12
|
429
|
+
(は,ha,wa){ASTERISK} --> HWESTA_SINDARINWA
|
430
|
+
(を,ヲ,wo,を{ASTERISK},ヲ{ASTERISK},wo{ASTERISK},o{ASTERISK}) --> VAIA
|
431
|
+
{ASTERISK} --> {NULL}
|
432
|
+
|
433
|
+
\** ***************** **\
|
434
|
+
\** Extended katakana **\
|
435
|
+
\** ***************** **\
|
436
|
+
|
437
|
+
\if "foreign_f_v == FOREIGN_F_V_XTD"
|
438
|
+
{_FOREIGN_F_} === TW_EXT_12
|
439
|
+
{_FOREIGN_V_} === TW_EXT_22
|
440
|
+
\else
|
441
|
+
{_FOREIGN_F_} === FORMEN
|
442
|
+
{_FOREIGN_V_} === AMPA
|
443
|
+
\endif
|
444
|
+
|
445
|
+
{SERIE} === [(イィ,yi) * (イェ,ye)]
|
446
|
+
\if "gojuon_y == GOJUON_Y_USE_YANTA"
|
447
|
+
{TENGWA} === YANTA
|
448
|
+
\else
|
449
|
+
{TENGWA} === TELCO {_PALATAL_}
|
450
|
+
\endif
|
451
|
+
{SERIE} --> {TENGWA} [{_I_} * {_E_}]
|
452
|
+
{SERIE}ー --> {TENGWA} [{_II_} * {_EE_}]
|
453
|
+
|
454
|
+
\** wa, wi, wu, we, wo **\
|
455
|
+
\** wa, wi, we - these latin combinations where already defined above **\
|
456
|
+
{SERIE} === [(ウァ,wa) * (ウィ,wi) * (ウゥ,wu) * (ウェ,we) * (ウォ,wo)]
|
457
|
+
\if "gojuon_w == GOJUON_W_USE_URE"
|
458
|
+
{TENGWA} === URE
|
459
|
+
\else
|
460
|
+
{TENGWA} === TELCO {_LABIAL_}
|
461
|
+
\endif
|
462
|
+
|
463
|
+
\deploy serie {SERIE} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
464
|
+
|
465
|
+
{SERIE} === [(ウュ,wyu)]
|
466
|
+
{TENGWA} === URE \** only possibility : palatal + labial interfere so telco + labial + palatal will not work **\
|
467
|
+
{__SV__} === [{_U_}]
|
468
|
+
{__LV__} === [{_UU_}]
|
469
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
470
|
+
|
471
|
+
\** va vi vu ve vo **\
|
472
|
+
{SERIE} === [(ヴァ,ヷ,va) * (ヴィ,ヸ,vi) * (ヴ,vu) * (ヴェ,ヹ,ve) * (ヴォ,ヺ,vo)]
|
473
|
+
{TENGWA} === {_FOREIGN_V_}
|
474
|
+
\deploy serie {SERIE} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
475
|
+
|
476
|
+
|
477
|
+
\** v yon : vya vyu vye vyo **\
|
478
|
+
{SERIE} === [(ヴャ,vya) * (ヴュ,vyu) * (ヴィェ,vye) * (ヴョ,vyo)]
|
479
|
+
{TENGWA} === {_FOREIGN_V_}
|
480
|
+
{__SV__} === [{_A_} * {_U_} * {_E_} * {_O_}]
|
481
|
+
{__LV__} === [{_AA_} * {_UU_} * {_EE_} * {_OO_}]
|
482
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
483
|
+
|
484
|
+
\** kye **\
|
485
|
+
{SERIE} === [(キェ,kye)]
|
486
|
+
{TENGWA} === CALMA
|
487
|
+
{__SV__} === [{_E_}]
|
488
|
+
{__LV__} === [{_EE_}]
|
489
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
490
|
+
|
491
|
+
\** gye **\
|
492
|
+
{SERIE} === [(ギェ,gye)]
|
493
|
+
{TENGWA} === ANGA
|
494
|
+
{__SV__} === [{_E_}]
|
495
|
+
{__LV__} === [{_EE_}]
|
496
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
497
|
+
|
498
|
+
\if "foreign_labialized == FOREIGN_LABIALIZED_DOWN_TEHTA"
|
499
|
+
{_FOREIGN_KW_} === CALMA
|
500
|
+
{_FOREIGN_GW_} === ANGA
|
501
|
+
{_FOREIGN_LABIALIZED_DIACRITIC_} === {_LABIAL_}
|
502
|
+
\else
|
503
|
+
{_FOREIGN_KW_} === QUESSE
|
504
|
+
{_FOREIGN_GW_} === UNGWE
|
505
|
+
{_FOREIGN_LABIALIZED_DIACRITIC_} === {NULL}
|
506
|
+
\endif
|
507
|
+
|
508
|
+
\** kWa, kWa, kwi, kwe, kwo **\
|
509
|
+
{SERIE} === [(クァ,クヮ,kwa) * (クィ,kwi) * (クェ,kwe) * (クォ,kwo)]
|
510
|
+
{TENGWA} === {_FOREIGN_KW_}
|
511
|
+
{__SV__} === [{_A_} * {_I_} * {_E_} * {_O_}]
|
512
|
+
{__LV__} === [{_AA_} * {_II_} * {_EE_} * {_OO_}]
|
513
|
+
\deploy serie {SERIE} {TENGWA} {_FOREIGN_LABIALIZED_DIACRITIC_} {__SV__} {__LV__} {NULL}
|
514
|
+
|
515
|
+
|
516
|
+
\** gwa, gWa, gwi, gwe, gwo **\
|
517
|
+
{SERIE} === [(グァ,グヮ,gwa) * (グィ,gwi) * (グェ,gwe) * (グォ,gwo)]
|
518
|
+
{TENGWA} === {_FOREIGN_GW_}
|
519
|
+
{__SV__} === [{_A_} * {_I_} * {_E_} * {_O_}]
|
520
|
+
{__LV__} === [{_AA_} * {_II_} * {_EE_} * {_OO_}]
|
521
|
+
\deploy serie {SERIE} {TENGWA} {_FOREIGN_LABIALIZED_DIACRITIC_} {__SV__} {__LV__} {NULL}
|
522
|
+
|
523
|
+
\** she **\
|
524
|
+
{SERIE} === [(シェ,she)]
|
525
|
+
{TENGWA} === SILME_NUQUERNA
|
526
|
+
{__SV__} === [{_E_}]
|
527
|
+
{__LV__} === [{_EE_}]
|
528
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
529
|
+
|
530
|
+
|
531
|
+
\** je **\
|
532
|
+
{SERIE} === [(ジェ,je)]
|
533
|
+
{TENGWA} === ESSE_NUQUERNA
|
534
|
+
{__SV__} === [{_E_}]
|
535
|
+
{__LV__} === [{_EE_}]
|
536
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
537
|
+
|
538
|
+
\** si **\
|
539
|
+
{SERIE} === [(スィ,セィ,si)]
|
540
|
+
{TENGWA} === SILME_NUQUERNA
|
541
|
+
{__SV__} === [{_I_}]
|
542
|
+
{__LV__} === [{_II_}]
|
543
|
+
\deploy serie {SERIE} {TENGWA} {_CANCELLER_} {__SV__} {__LV__} {NULL}
|
544
|
+
|
545
|
+
\** zi **\
|
546
|
+
{SERIE} === [(ズィ,ゼィ,zi)]
|
547
|
+
{TENGWA} === ESSE_NUQUERNA
|
548
|
+
{__SV__} === [{_I_}]
|
549
|
+
{__LV__} === [{_II_}]
|
550
|
+
\deploy serie {SERIE} {TENGWA} {_CANCELLER_} {__SV__} {__LV__} {NULL}
|
551
|
+
|
552
|
+
\** che **\
|
553
|
+
{SERIE} === [(チェ,che)]
|
554
|
+
{TENGWA} === TINCO
|
555
|
+
{__SV__} === [{_E_}]
|
556
|
+
{__LV__} === [{_EE_}]
|
557
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
558
|
+
|
559
|
+
\** tsa, tsi, tse, tso **\
|
560
|
+
{SERIE} === [(ツァ,tsa) * (ツィ,tsi) * (ツェ,tse) * (ツォ,tso)]
|
561
|
+
{TENGWA} === TINCO
|
562
|
+
{__SV__} === [{_A_} * {_I_} * {_E_} * {_O_}]
|
563
|
+
{__LV__} === [{_AA_} * {_II_} * {_EE_} * {_OO_}]
|
564
|
+
\deploy serie {SERIE} {TENGWA} {NULL} {__SV__} {__LV__} {_SIBILANT_}
|
565
|
+
|
566
|
+
\** tsyu = t sibilant + palatale + u **\
|
567
|
+
{SERIE} === [(ツュ,tsyu)]
|
568
|
+
{TENGWA} === TINCO
|
569
|
+
{__SV__} === [{_U_}]
|
570
|
+
{__LV__} === [{_UU_}]
|
571
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {_SIBILANT_}
|
572
|
+
|
573
|
+
|
574
|
+
\** ti, tu **\
|
575
|
+
{SERIE} === [(ティ,ti) * (トゥ,tu)]
|
576
|
+
{TENGWA} === TINCO
|
577
|
+
{__SV__} === [{_I_} * {_U_}]
|
578
|
+
{__LV__} === [{_II_} * {_UU_}]
|
579
|
+
\deploy serie {SERIE} {TENGWA} {_CANCELLER_} {__SV__} {__LV__} {NULL}
|
580
|
+
|
581
|
+
\** tyu **\
|
582
|
+
{SERIE} === [(テュ,tyu)]
|
583
|
+
{TENGWA} === TINCO
|
584
|
+
{__SV__} === [{_U_}]
|
585
|
+
{__LV__} === [{_UU_}]
|
586
|
+
\deploy serie {SERIE} {TENGWA} {_CANCEL_THEN_PALATAL_} {__SV__} {__LV__} {NULL}
|
587
|
+
|
588
|
+
\** di, du **\
|
589
|
+
{SERIE} === [(ディ,di) * (ドゥ,du)]
|
590
|
+
{TENGWA} === ANDO
|
591
|
+
{__SV__} === [{_I_} * {_U_}]
|
592
|
+
{__LV__} === [{_II_} * {_UU_}]
|
593
|
+
\deploy serie {SERIE} {TENGWA} {_CANCELLER_} {__SV__} {__LV__} {NULL}
|
594
|
+
|
595
|
+
\** dyu **\
|
596
|
+
{SERIE} === [(デュ,dyu)]
|
597
|
+
{TENGWA} === ANDO
|
598
|
+
{__SV__} === [{_U_}]
|
599
|
+
{__LV__} === [{_UU_}]
|
600
|
+
\deploy serie {SERIE} {TENGWA} {_CANCEL_THEN_PALATAL_} {__SV__} {__LV__} {NULL}
|
601
|
+
|
602
|
+
\** nye **\
|
603
|
+
{SERIE} === [(ニェ,nye)]
|
604
|
+
{TENGWA} === NUMEN
|
605
|
+
{__SV__} === [{_E_}]
|
606
|
+
{__LV__} === [{_EE_}]
|
607
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
608
|
+
|
609
|
+
\** hye **\
|
610
|
+
{SERIE} === [(ヒェ,hye)]
|
611
|
+
{TENGWA} === {_H_TENGWA_}
|
612
|
+
{__SV__} === [{_E_}]
|
613
|
+
{__LV__} === [{_EE_}]
|
614
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
615
|
+
|
616
|
+
\** bye **\
|
617
|
+
{SERIE} === [(ビェ,bye)]
|
618
|
+
{TENGWA} === UMBAR
|
619
|
+
{__SV__} === [{_E_}]
|
620
|
+
{__LV__} === [{_EE_}]
|
621
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
622
|
+
|
623
|
+
\** pye **\
|
624
|
+
{SERIE} === [(ピェ,pye)]
|
625
|
+
{TENGWA} === {_P_TENGWA_}
|
626
|
+
{__SV__} === [{_E_}]
|
627
|
+
{__LV__} === [{_EE_}]
|
628
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
629
|
+
|
630
|
+
\** fa, fi, fu, fe, fo **\
|
631
|
+
{SERIE} === [(ファ,fa) * (フィ,fi) * (フェ,fe) * (フォ,fo)]
|
632
|
+
{TENGWA} === {_FOREIGN_F_}
|
633
|
+
{__SV__} === [{_A_} * {_I_} * {_E_} * {_O_}]
|
634
|
+
{__LV__} === [{_AA_} * {_II_} * {_EE_} * {_OO_}]
|
635
|
+
\deploy serie {SERIE} {TENGWA} {NULL} {__SV__} {__LV__} {NULL}
|
636
|
+
|
637
|
+
\** fya, fyu, fye, fyo **\
|
638
|
+
{SERIE} === [(フャ,fya) * (フュ,fyu) * (フィェ,fye) * (フョ,fyo)]
|
639
|
+
{TENGWA} === {_FOREIGN_F_}
|
640
|
+
{__SV__} === [{_A_} * {_U_} * {_E_} * {_O_}]
|
641
|
+
{__LV__} === [{_AA_} * {_UU_} * {_EE_} * {_OO_}]
|
642
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
643
|
+
|
644
|
+
\** hu **\
|
645
|
+
{SERIE} === [(ホゥ,hu)]
|
646
|
+
{TENGWA} === {_H_TENGWA_}
|
647
|
+
{__SV__} === [{_U_}]
|
648
|
+
{__LV__} === [{_UU_}]
|
649
|
+
\deploy serie {SERIE} {TENGWA} {_CANCELLER_} {__SV__} {__LV__} {NULL}
|
650
|
+
|
651
|
+
\** mye **\
|
652
|
+
{SERIE} === [(ミェ,mye)]
|
653
|
+
{TENGWA} === MALTA
|
654
|
+
{__SV__} === [{_E_}]
|
655
|
+
{__LV__} === [{_EE_}]
|
656
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
657
|
+
|
658
|
+
\** rye **\
|
659
|
+
{SERIE} === [(リェ,rye)]
|
660
|
+
{TENGWA} === ROMEN
|
661
|
+
{__SV__} === [{_E_}]
|
662
|
+
{__LV__} === [{_EE_}]
|
663
|
+
\deploy serie {SERIE} {TENGWA} {_PALATAL_} {__SV__} {__LV__} {NULL}
|
664
|
+
|
665
|
+
\** la, li, lu, le, lo / sons of the patriots **\
|
666
|
+
{SERIE} === [(ラ゜,la) * (リ゜,li) * (ル゜ ,lu) * (レ゜,le) * (ロ゜,lo)]
|
667
|
+
{TENGWA} === LAMBE
|
668
|
+
\deploy serie {SERIE} {TENGWA} {NULL} {_SHORT_VOWELS_} {_LONG_VOWELS_} {NULL}
|
669
|
+
|
670
|
+
\end
|
671
|
+
|
672
|
+
\beg rules punctuation
|
673
|
+
. --> PUNCT_DDOT
|
674
|
+
。 --> PUNCT_DDOT
|
675
|
+
.. --> PUNCT_DOT PUNCT_DDOT PUNCT_DOT
|
676
|
+
… --> PUNCT_TILD
|
677
|
+
‥ --> PUNCT_TILD \** JP tensen **\
|
678
|
+
... --> PUNCT_TILD
|
679
|
+
.... --> PUNCT_TILD
|
680
|
+
..... --> PUNCT_TILD
|
681
|
+
...... --> PUNCT_TILD
|
682
|
+
....... --> PUNCT_TILD
|
683
|
+
|
684
|
+
, --> PUNCT_DOT
|
685
|
+
、 --> PUNCT_DOT
|
686
|
+
: --> PUNCT_DOT
|
687
|
+
; --> PUNCT_DOT
|
688
|
+
! --> PUNCT_EXCLAM
|
689
|
+
? --> PUNCT_INTERR
|
690
|
+
· --> PUNCT_DOT
|
691
|
+
・ --> {NULL} \** JP middle dot **\
|
692
|
+
゠ --> {NULL} \** JP daburu haifun **\
|
693
|
+
|
694
|
+
\** Apostrophe **\
|
695
|
+
|
696
|
+
' --> {NULL}
|
697
|
+
’ --> {NULL}
|
698
|
+
|
699
|
+
\** NBSP **\
|
700
|
+
{NBSP} --> NBSP
|
701
|
+
|
702
|
+
\** Quotes **\
|
703
|
+
|
704
|
+
“ --> DQUOT_OPEN
|
705
|
+
” --> DQUOT_CLOSE
|
706
|
+
« --> DQUOT_OPEN
|
707
|
+
» --> DQUOT_CLOSE
|
708
|
+
|
709
|
+
\** JP Quotes **\
|
710
|
+
「 --> DQUOT_OPEN
|
711
|
+
」 --> DQUOT_CLOSE
|
712
|
+
|
713
|
+
- --> {NULL}
|
714
|
+
– --> PUNCT_TILD
|
715
|
+
— --> PUNCT_TILD
|
716
|
+
|
717
|
+
〜 --> PUNCT_TILD \** JP Tild **\
|
718
|
+
~ --> PUNCT_TILD \** JP Tild **\
|
719
|
+
|
720
|
+
[ --> PUNCT_PAREN_L
|
721
|
+
] --> PUNCT_PAREN_R
|
722
|
+
( --> PUNCT_PAREN_L
|
723
|
+
) --> PUNCT_PAREN_R
|
724
|
+
{ --> PUNCT_PAREN_L
|
725
|
+
} --> PUNCT_PAREN_R
|
726
|
+
< --> PUNCT_PAREN_L
|
727
|
+
> --> PUNCT_PAREN_R
|
728
|
+
|
729
|
+
\** JP Paren **\
|
730
|
+
( --> PUNCT_PAREN_L
|
731
|
+
) --> PUNCT_PAREN_R
|
732
|
+
([,〔,{,⦅,〈,《,【,〖,〘,〚) --> PUNCT_PAREN_L
|
733
|
+
(],〕,},⦆,〉,》,】,〗,〙,〛) --> PUNCT_PAREN_R
|
734
|
+
|
735
|
+
\** Not universal between fonts ... **\
|
736
|
+
$ --> ELVISH_PAREN
|
737
|
+
≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
|
738
|
+
≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
|
739
|
+
|
740
|
+
\end
|
741
|
+
|
742
|
+
\beg rules "numbers"
|
743
|
+
(〇,零) --> NUM_0
|
744
|
+
一 --> NUM_1
|
745
|
+
二 --> NUM_2
|
746
|
+
三 --> NUM_3
|
747
|
+
四 --> NUM_4
|
748
|
+
五 --> NUM_5
|
749
|
+
六 --> NUM_6
|
750
|
+
七 --> NUM_7
|
751
|
+
八 --> NUM_8
|
752
|
+
九 --> NUM_9
|
753
|
+
十 --> NUM_1 CIRC_TEHTA_INF
|
754
|
+
百 --> NUM_2 CIRC_TEHTA_INF
|
755
|
+
千 --> NUM_3 CIRC_TEHTA_INF
|
756
|
+
万 --> NUM_4 CIRC_TEHTA_INF
|
757
|
+
億 --> NUM_8 CIRC_TEHTA_INF
|
758
|
+
0 --> NUM_0
|
759
|
+
1 --> NUM_1
|
760
|
+
2 --> NUM_2
|
761
|
+
3 --> NUM_3
|
762
|
+
4 --> NUM_4
|
763
|
+
5 --> NUM_5
|
764
|
+
6 --> NUM_6
|
765
|
+
7 --> NUM_7
|
766
|
+
8 --> NUM_8
|
767
|
+
9 --> NUM_9
|
768
|
+
\end
|
769
|
+
|
770
|
+
\end
|
771
|
+
|
772
|
+
|
773
|
+
|
774
|
+
\beg postprocessor
|
775
|
+
\resolve_virtuals
|
776
|
+
\end
|