glaemscribe 1.1.14 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +5 -5
  2. data/bin/glaemscribe +21 -17
  3. data/glaemresources/charsets/cirth_ds.cst +540 -0
  4. data/glaemresources/charsets/eldamar.cst +210 -0
  5. data/glaemresources/charsets/sarati_eldamar.cst +256 -0
  6. data/glaemresources/charsets/tengwar_ds_annatar.cst +2868 -0
  7. data/glaemresources/charsets/tengwar_ds_eldamar.cst +2729 -0
  8. data/glaemresources/charsets/tengwar_ds_elfica.cst +2742 -0
  9. data/glaemresources/charsets/tengwar_ds_parmaite.cst +2726 -0
  10. data/glaemresources/charsets/tengwar_ds_sindarin.cst +2722 -0
  11. data/glaemresources/charsets/tengwar_freemono.cst +217 -0
  12. data/glaemresources/charsets/tengwar_guni_annatar.cst +2948 -0
  13. data/glaemresources/charsets/tengwar_guni_eldamar.cst +2809 -0
  14. data/glaemresources/charsets/tengwar_guni_elfica.cst +2809 -0
  15. data/glaemresources/charsets/tengwar_guni_parmaite.cst +2813 -0
  16. data/glaemresources/charsets/tengwar_guni_sindarin.cst +2808 -0
  17. data/glaemresources/charsets/tengwar_telcontar.cst +225 -0
  18. data/glaemresources/charsets/unicode_gothic.cst +64 -0
  19. data/glaemresources/charsets/unicode_runes.cst +121 -0
  20. data/glaemresources/modes/{adunaic.glaem → adunaic-tengwar-glaemscrafu.glaem} +14 -2
  21. data/glaemresources/modes/{blackspeech.glaem → blackspeech-tengwar-general_use.glaem} +13 -3
  22. data/glaemresources/modes/english-cirth-espeak.glaem +687 -0
  23. data/glaemresources/modes/english-tengwar-espeak.glaem +814 -0
  24. data/glaemresources/modes/japanese-tengwar.glaem +776 -0
  25. data/glaemresources/modes/{khuzdul.glaem → khuzdul-cirth-moria.glaem} +4 -1
  26. data/glaemresources/modes/lang_belta-tengwar-dadef.glaem +248 -0
  27. data/glaemresources/modes/{futhorc.glaem → old_english-futhorc.glaem} +0 -0
  28. data/glaemresources/modes/{mercian.glaem → old_english-tengwar-mercian.glaem} +22 -12
  29. data/glaemresources/modes/{westsaxon.glaem → old_english-tengwar-westsaxon.glaem} +20 -11
  30. data/glaemresources/modes/{futhark-runicus.glaem → old_norse-futhark-runicus.glaem} +0 -0
  31. data/glaemresources/modes/{futhark-younger.glaem → old_norse-futhark-younger.glaem} +0 -0
  32. data/glaemresources/modes/{quenya.glaem → quenya-tengwar-classical.glaem} +32 -50
  33. data/glaemresources/modes/raw-cirth.glaem +154 -0
  34. data/glaemresources/modes/raw-tengwar.glaem +46 -23
  35. data/glaemresources/modes/{rlyehian.glaem → rlyehian-tengwar.glaem} +14 -3
  36. data/glaemresources/modes/{sindarin-daeron.glaem → sindarin-cirth-daeron.glaem} +55 -14
  37. data/glaemresources/modes/{sindarin-beleriand.glaem → sindarin-tengwar-beleriand.glaem} +154 -28
  38. data/glaemresources/modes/{sindarin.glaem → sindarin-tengwar-general_use.glaem} +86 -25
  39. data/glaemresources/modes/{telerin.glaem → telerin-tengwar-glaemscrafu.glaem} +16 -6
  40. data/glaemresources/modes/{westron.glaem → westron-tengwar-glaemscrafu.glaem} +18 -8
  41. data/lib/api/charset.rb +67 -7
  42. data/lib/api/charset_parser.rb +14 -1
  43. data/lib/api/constants.rb +3 -4
  44. data/lib/api/fragment.rb +26 -5
  45. data/lib/api/if_tree.rb +70 -8
  46. data/lib/api/macro.rb +40 -0
  47. data/lib/api/mode.rb +66 -19
  48. data/lib/api/mode_parser.rb +117 -14
  49. data/lib/api/object_additions.rb +23 -1
  50. data/lib/api/option.rb +17 -2
  51. data/lib/api/post_processor/outspace.rb +44 -0
  52. data/lib/api/post_processor/resolve_virtuals.rb +25 -9
  53. data/lib/api/resource_manager.rb +1 -0
  54. data/lib/api/rule_group.rb +170 -26
  55. data/lib/api/sheaf_chain_iterator.rb +1 -1
  56. data/lib/api/transcription_pre_post_processor.rb +8 -5
  57. data/lib/api/transcription_processor.rb +15 -12
  58. data/lib/api/tts.rb +51 -0
  59. data/lib/glaemscribe.rb +36 -31
  60. data/lib_espeak/espeakng.for.glaemscribe.nowasm.sync.js +35 -0
  61. data/lib_espeak/glaemscribe_tts.js +505 -0
  62. metadata +76 -24
@@ -24,12 +24,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24
24
 
25
25
  \beg changelog
26
26
  \entry "0.0.2", "Moved outspace character to general element"
27
+ \entry "0.0.3", "Adding missing long ô"
27
28
  \end
28
29
 
29
30
  \language "Khuzdul"
30
31
  \writing "Cirth"
31
32
  \mode "Khuzdul Cirth - Angerthas Moria"
32
- \version "0.0.2"
33
+ \version "0.0.3"
33
34
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
34
35
 
35
36
  \world arda
@@ -66,6 +67,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
66
67
  \beg rules litteral
67
68
  a --> CIRTH_48
68
69
  â --> CIRTH_49
70
+
69
71
  e --> CIRTH_46
70
72
  ê --> CIRTH_47
71
73
 
@@ -73,6 +75,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
73
75
  î --> CIRTH_39 CIRTH_39
74
76
 
75
77
  o --> CIRTH_50
78
+ ô --> CIRTH_51
76
79
 
77
80
  u --> CIRTH_42
78
81
  û --> CIRTH_43
@@ -0,0 +1,248 @@
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" "Ported from Westron"
27
+ \entry "0.0.2" "Simplified"
28
+ \entry "0.0.3" "Yaterash poetic forms"
29
+ \entry "0.0.4" "English numeric defaults, use lsd for nasal, poetic finals"
30
+ \entry "0.0.5" "Bikang option: beacon final hints"
31
+ \entry "0.0.6" "Lowng & kuwendi options"
32
+ \entry "0.1.0" "clean up pass"
33
+ \end
34
+ \version "0.1.0"
35
+
36
+ \** Lang Belta mode for glaemscribe **\
37
+ \language "Lang Belta"
38
+ \writing Tengwar
39
+ \mode "Lang Belta (The Expanse) Tengwar - G*"
40
+ \authors "Da Def, based on Talagan's Westron"
41
+
42
+ \world other_world
43
+ \invention experimental
44
+
45
+ \raw_mode "raw-tengwar"
46
+
47
+ \charset tengwar_ds_sindarin false
48
+ \charset tengwar_ds_parmaite false
49
+ \charset tengwar_ds_eldamar false
50
+ \charset tengwar_ds_annatar false
51
+ \charset tengwar_ds_elfica false
52
+
53
+ \charset tengwar_guni_sindarin false
54
+ \charset tengwar_guni_parmaite false
55
+ \charset tengwar_guni_eldamar false
56
+ \charset tengwar_guni_annatar true
57
+ \charset tengwar_guni_elfica false
58
+
59
+ \charset tengwar_freemono false
60
+ \charset tengwar_telcontar false
61
+
62
+ \beg options
63
+ \option wit_yaterash false
64
+
65
+ \beg option bikang true
66
+ \visible_when "wit_yaterash == true"
67
+ \end
68
+
69
+ \beg option lowng false
70
+ \visible_when "wit_yaterash == true"
71
+ \end
72
+
73
+ \beg option kuwendi false
74
+ \visible_when "wit_yaterash == true && lowng == false"
75
+ \end
76
+
77
+ \option implicit_a false
78
+ \option reverse_numbers false
79
+ \beg option numbers_base BASE_10
80
+ \value BASE_10 10
81
+ \value BASE_12 12
82
+ \end
83
+ \end
84
+
85
+ \beg preprocessor
86
+ \** Work exclusively downcase **\
87
+ \downcase
88
+
89
+ \** protect NOLDO and NWALME **\
90
+ \rxsubstitute "(ny)" "ɲ"
91
+ \rxsubstitute "(ng)" "ŋ"
92
+
93
+ \** Preprocess numbers **\
94
+ \elvish_numbers "\\eval numbers_base" "\\eval reverse_numbers"
95
+ \end
96
+
97
+ \beg processor
98
+ \beg rules literal
99
+
100
+ \if implicit_a
101
+ {_A_} === {NULL}
102
+ {_X_} === NO_VOWEL_DOT
103
+ \else
104
+ {_A_} === A_TEHTA
105
+ {_X_} === {NULL}
106
+ \endif
107
+
108
+ {PENNAR} === a * e * i * ow * o * u
109
+ {TEHTAR} === {_A_} * E_TEHTA * I_TEHTA * A_TEHTA_REVERSED * O_TEHTA * U_TEHTA
110
+
111
+ \** For now, shãsa is a hapax **\
112
+ {PENNAR} === {PENNAR} * ã
113
+ {TEHTAR} === {TEHTAR} * E_TEHTA_GRAVE
114
+
115
+ \** tentative
116
+ {PENNAR} === {PENNAR} * ẽ * ĩ * õw * õ * ũ
117
+ {TEHTAR} === {TEHTAR} * E_TEHTA_DOUBLE * I_TEHTA_DOUBLE * WA_TEHTA * O_TEHTA_DOUBLE * U_TEHTA_DOUBLE
118
+ **\
119
+
120
+ {L1_S} === t * p * ch * k
121
+ {L1_T} === TINCO * PARMA * CALMA * QUESSE
122
+ {L2_S} === d * b * dzh * g
123
+ {L2_T} === ANDO * UMBAR * ANGA * UNGWE
124
+ {L3_S} === f * sh * x
125
+ {L3_T} === FORMEN * AHA * HWESTA
126
+ {L4_S} === v
127
+ {L4_T} === AMPA
128
+ {L5_S} === n * m * ɲ * ŋ
129
+ {L5_T} === NUMEN * MALTA * NOLDO * NWALME
130
+ {L6_S} === w * y
131
+ {L6_T} === VALA * ANNA
132
+ {IR_S} === r * l * s * z
133
+ {IR_T} === ROMEN * LAMBE * SILME_NUQUERNA * ESSE_NUQUERNA
134
+
135
+ {TAPTAR} === {L1_S} * {L2_S} * {L3_S} * {L4_S} * {L5_S} * {L6_S} * {IR_S}
136
+ {TENGWAR} === {L1_T} * {L2_T} * {L3_T} * {L4_T} * {L5_T} * {L6_T} * {IR_T}
137
+
138
+ [{TAPTAR}] --> [{TENGWAR}] {_X_}
139
+ [{TAPTAR}][{PENNAR}] --> [{TENGWAR}][{TEHTAR}]
140
+ [{PENNAR}] --> TELCO [{TEHTAR}]
141
+
142
+ \if wit_yaterash
143
+
144
+ \if lowng
145
+ {TAPTARN} === nt * nd * mp * mb * nsh * ns
146
+ {TENGWARN} === TINCO_EXT * ANDO_EXT * PARMA_EXT * UMBAR_EXT * AHA_EXT * TW_HW_LOWDHAM
147
+
148
+ tn[{PENNAR}] --> TW_MH [{TEHTAR}]
149
+ lt[{PENNAR}] --> ALDA [{TEHTAR}]
150
+
151
+ [{TAPTARN}][{PENNAR}] --> [{TENGWARN}][{TEHTAR}]
152
+ \else
153
+ tn[{PENNAR}] --> NUMEN THINNAS [{TEHTAR}]
154
+ l[{TAPTAR}][{PENNAR}] --> [{TENGWAR}] PALATAL_SIGN [{TEHTAR}]
155
+
156
+ \if kuwendi
157
+ {NASAL} === NASALIZE_SIGN_TILD
158
+ \else
159
+ {NASAL} === CIRC_TEHTA_INF
160
+ \endif
161
+
162
+ (m,n)[{TAPTAR}][{PENNAR}] --> [{TENGWAR}] {NASAL} [{TEHTAR}]
163
+ \endif
164
+
165
+ \if bikang
166
+ (m,t)_ --> O_TEHTA_INF
167
+ (ŋ)_ --> E_TEHTA_DOUBLE_INF
168
+ (f,k,p)_ --> U_TEHTA_INF
169
+ (l,x,sh)_ --> E_TEHTA_INF
170
+ \else
171
+ (t,k,p,f,x,sh,m,ŋ,l)_ --> GEMINATE_SIGN_TILD
172
+ \endif
173
+
174
+ \endif
175
+
176
+ \end
177
+
178
+ \beg rules punctutation
179
+ . --> PUNCT_DDOT
180
+ .. --> PUNCT_DOT PUNCT_DDOT PUNCT_DOT
181
+ … --> PUNCT_TILD
182
+ ... --> PUNCT_TILD
183
+ .... --> PUNCT_TILD
184
+ ..... --> PUNCT_TILD
185
+ ...... --> PUNCT_TILD
186
+ ....... --> PUNCT_TILD
187
+
188
+ , --> PUNCT_DOT
189
+ : --> PUNCT_DOT
190
+ ; --> PUNCT_DOT
191
+ ! --> PUNCT_EXCLAM
192
+ ? --> PUNCT_INTERR
193
+ · --> PUNCT_DOT
194
+
195
+ \** Apostrophe **\
196
+
197
+ ' --> {NULL}
198
+ ’ --> {NULL}
199
+
200
+ \** NBSP **\
201
+ {NBSP} --> NBSP
202
+
203
+ \** Quotes **\
204
+
205
+ “ --> DQUOT_OPEN
206
+ ” --> DQUOT_CLOSE
207
+ « --> DQUOT_OPEN
208
+ » --> DQUOT_CLOSE
209
+
210
+ - --> PUNCT_DOT
211
+ – --> PUNCT_TILD
212
+ — --> PUNCT_DTILD
213
+
214
+ [ --> PUNCT_PAREN_L
215
+ ] --> PUNCT_PAREN_R
216
+ ( --> PUNCT_PAREN_L
217
+ ) --> PUNCT_PAREN_R
218
+ { --> PUNCT_PAREN_L
219
+ } --> PUNCT_PAREN_R
220
+ < --> PUNCT_PAREN_L
221
+ > --> PUNCT_PAREN_R
222
+
223
+ \** Not universal between fonts ... **\
224
+ $ --> ELVISH_PAREN
225
+ ≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
226
+ ≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
227
+ \end
228
+
229
+ \beg rules numbers
230
+ 0 --> NUM_0
231
+ 1 --> NUM_1
232
+ 2 --> NUM_2
233
+ 3 --> NUM_3
234
+ 4 --> NUM_4
235
+ 5 --> NUM_5
236
+ 6 --> NUM_6
237
+ 7 --> NUM_7
238
+ 8 --> NUM_8
239
+ 9 --> NUM_9
240
+ A --> NUM_10
241
+ B --> NUM_11
242
+ \end
243
+
244
+ \end
245
+
246
+ \beg postprocessor
247
+ \resolve_virtuals
248
+ \end
@@ -27,12 +27,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27
27
  \entry "0.1.1" "Added support for inlined raw tengwar"
28
28
  \entry "0.1.2" "Doing some cleaning"
29
29
  \entry "0.1.3" "Added support for non-breaking spaces"
30
+ \entry "0.1.4" "Added support for new unicode charsets"
30
31
  \end
31
32
 
32
33
  \language "Old English"
33
34
  \writing "Tengwar"
34
35
  \mode "Old English Tengwar - 'Mercian' Usage"
35
- \version "0.1.3"
36
+ \version "0.1.4"
36
37
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
37
38
 
38
39
  \world primary_related_to_arda
@@ -46,9 +47,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46
47
  \charset tengwar_ds_annatar false
47
48
  \charset tengwar_ds_elfica false
48
49
 
50
+ \charset tengwar_guni_sindarin false
51
+ \charset tengwar_guni_parmaite false
52
+ \charset tengwar_guni_eldamar false
53
+ \charset tengwar_guni_annatar false
54
+ \charset tengwar_guni_elfica false
55
+
56
+
49
57
  \** List of features that would prevent use of other charsets
50
- \charset tengwar_freemono false
51
- Free Mono Tengwar : missing [OLD_ENGLISH_AND,SHOOK_BEAUTIFUL] / sa-rince management not accurate
58
+ \charset tengwar_freemono false
59
+ \charset tengwar_telcontar false
60
+
61
+ Free Mono Tengwar : missing [OLD_ENGLISH_AND,SARINCE_FLOURISHED] / sa-rince management not accurate
52
62
  **\
53
63
 
54
64
 
@@ -123,13 +133,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
123
133
  {S_VOWELS_WP_KERNEL} === {S_VOWELS_NP_KERNEL} * @
124
134
 
125
135
  \** UP TEHTAS **\
126
- {TEHTAR_UP_NP} === A_TEHTA * Y_TEHTA * E_TEHTA_DOUBLE * E_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA * SEV_TEHTA
136
+ {TEHTAR_UP_NP} === A_TEHTA * Y_TEHTA * E_TEHTA_DOUBLE * E_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA * WA_TEHTA
127
137
 
128
138
  {TEHTAR_UP} === {TEHTAR_UP_NP} * {NULL}
129
139
 
130
140
  \** FOR LONG VOWELS **\
131
141
  {LVOWELS} === {AA} * {AEAE} * {OEOE} * {EE} * {II} * {OO} * {UU} * {YY}
132
- {LTEHTAR} === ARA A_TEHTA * ARA Y_TEHTA * ARA E_TEHTA_DOUBLE * ARA E_TEHTA * ARA I_TEHTA * ARA O_TEHTA * ARA U_TEHTA * ARA SEV_TEHTA
142
+ {LTEHTAR} === ARA A_TEHTA * ARA Y_TEHTA * ARA E_TEHTA_DOUBLE * ARA E_TEHTA * ARA I_TEHTA * ARA O_TEHTA * ARA U_TEHTA * ARA WA_TEHTA
133
143
 
134
144
  {LVOWEL_MARKER} === THINNAS
135
145
 
@@ -324,7 +334,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
324
334
  [l * ll * ld] {S_VOWELS_WN} --> [LAMBE * LAMBE {_GEMINATE_} * ALDA] {_S_VOWELS_UP_WN_}
325
335
 
326
336
  \** ========== **\
327
- \** Alveolar (sifflantes) **\
337
+ \** sibilant (sifflantes) **\
328
338
 
329
339
  {L8_KER} === s * z
330
340
  {L8_IMG} === SILME_NUQUERNA * ESSE_NUQUERNA
@@ -339,9 +349,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
339
349
  [{L8_KER_GEMS}]{S_VOWELS_WN} --> [{L8_IMG_GEMS}]{_S_VOWELS_UP_WN_}
340
350
 
341
351
  \** Final s (Challenging!) **\
342
- s_ --> SHOOK_BEAUTIFUL \** Final rule for s **\
352
+ s_ --> SARINCE_FLOURISHED \** Final rule for s **\
343
353
  {S_VOWELS}s_ --> TELCO {_S_VOWELS_UP_} SILME_NUQUERNA \** Rule es_ **\
344
- [{LVOWELS}]s_ --> [{LTEHTAR}] SILME_NUQUERNA \** Rule és_ **\
354
+ [{LVOWELS}]s_ --> [{LTEHTAR}] SILME_NUQUERNA \** Rule és_ **\
345
355
 
346
356
  s --> SILME \** Overload lonely s **\
347
357
  z --> ESSE \** Overload lonely z **\
@@ -377,9 +387,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
377
387
  \** X **\
378
388
  \** For x, due to the cedilla, we cannot put tehtas under the tengwa (so no need to treat diphthongs or long vowels) **\
379
389
 
380
- x{S_VOWELS_WN} --> QUESSE ALVEOLAR_SIGN {_S_VOWELS_UP_WN_}
381
- xx{S_VOWELS_WN} --> QUESSE ALVEOLAR_SIGN {_GEMINATE_} {_S_VOWELS_UP_WN_}
382
- nx{S_VOWELS_WN} --> QUESSE ALVEOLAR_SIGN {_NASAL_} {_S_VOWELS_UP_WN_}
390
+ x{S_VOWELS_WN} --> QUESSE SARINCE {_S_VOWELS_UP_WN_}
391
+ xx{S_VOWELS_WN} --> QUESSE SARINCE {_GEMINATE_} {_S_VOWELS_UP_WN_}
392
+ nx{S_VOWELS_WN} --> QUESSE SARINCE {_NASAL_} {_S_VOWELS_UP_WN_}
383
393
 
384
394
 
385
395
  \end
@@ -432,7 +442,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
432
442
  > --> PUNCT_PAREN_R
433
443
 
434
444
  \** Not universal between fonts ... **\
435
- $ --> BOOKMARK_SIGN
445
+ $ --> ELVISH_PAREN
436
446
  ≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
437
447
  ≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
438
448
  \end
@@ -27,12 +27,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27
27
  \entry "0.1.1" "Added support for inlined raw tengwar"
28
28
  \entry "0.1.2" "Doing some cleaning"
29
29
  \entry "0.1.3" "Added support for non-breaking spaces"
30
+ \entry "0.1.4" "Added support for new unicode charsets"
30
31
  \end
31
32
 
32
33
  \language "Old English"
33
34
  \writing "Tengwar"
34
35
  \mode "Old English Tengwar - 'West Saxon' Usage"
35
- \version "0.1.3"
36
+ \version "0.1.4"
36
37
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
37
38
 
38
39
  \world primary_related_to_arda
@@ -46,9 +47,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46
47
  \charset tengwar_ds_annatar false
47
48
  \charset tengwar_ds_elfica false
48
49
 
50
+ \charset tengwar_guni_sindarin false
51
+ \charset tengwar_guni_parmaite false
52
+ \charset tengwar_guni_eldamar false
53
+ \charset tengwar_guni_annatar false
54
+ \charset tengwar_guni_elfica false
55
+
49
56
  \** List of features that would prevent use of other charsets
50
- \charset tengwar_freemono false
51
- Free Mono Tengwar : missing [OLD_ENGLISH_AND,SHOOK_BEAUTIFUL] / sa-rince management not accurate
57
+ \charset tengwar_freemono false
58
+ \charset tengwar_telcontar false
59
+
60
+ Free Mono Tengwar : missing [OLD_ENGLISH_AND,SARINCE_FLOURISHED] / sa-rince management not accurate
52
61
  **\
53
62
 
54
63
  \beg options
@@ -124,12 +133,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
124
133
  {S_VOWELS_WP_KERNEL} === {S_VOWELS_NP_KERNEL} * @
125
134
 
126
135
  \** UP TEHTAS **\
127
- {TEHTAR_UP_NP} === E_TEHTA * A_TEHTA * E_TEHTA_DOUBLE * Y_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA * SEV_TEHTA * VILYA
136
+ {TEHTAR_UP_NP} === E_TEHTA * A_TEHTA * E_TEHTA_DOUBLE * Y_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA * WA_TEHTA * VILYA
128
137
  {TEHTAR_UP} === {TEHTAR_UP_NP} * {NULL}
129
138
 
130
139
  \** FOR LONG VOWELS **\
131
140
  {L_VOWELS} === {AA} * {AEAE} * {OEOE} * {EE} * {II} * {OO} * {UU} * {YY}
132
- {L_TEHTAR} === ARA E_TEHTA * ARA A_TEHTA * ARA E_TEHTA_DOUBLE * ARA Y_TEHTA * ARA I_TEHTA * ARA O_TEHTA * ARA U_TEHTA * ARA SEV_TEHTA
141
+ {L_TEHTAR} === ARA E_TEHTA * ARA A_TEHTA * ARA E_TEHTA_DOUBLE * ARA Y_TEHTA * ARA I_TEHTA * ARA O_TEHTA * ARA U_TEHTA * ARA WA_TEHTA
133
142
 
134
143
  \** DOWN TEHTAS **\
135
144
  {TEHTAR_DN} === E_TEHTA_INF * A_TEHTA_INF * CIRC_TEHTA_INF * Y_TEHTA_INF * I_TEHTA_INF * TELCO O_TEHTA * TELCO U_TEHTA * THINNAS * VILYA * {NULL}
@@ -260,7 +269,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
260
269
  {S_VOWELS_WN}ld --> ALDA {_S_VOWELS_UP_WN_}
261
270
 
262
271
 
263
- \** ## Alveolar (sifflantes) **\
272
+ \** ## Sibilant (sifflantes) **\
264
273
  \** ## **\
265
274
  {L8_KER} === s * z
266
275
  {L8_IMG} === SILME_NUQUERNA * ESSE_NUQUERNA
@@ -272,7 +281,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
272
281
 
273
282
 
274
283
  \** ## FINAL S (Challenging!) **\
275
- {S_VOWELS_WN}s_ --> SHOOK_BEAUTIFUL {_S_VOWELS_UP_WN_} \** # Final rule for s **\
284
+ {S_VOWELS_WN}s_ --> SARINCE_FLOURISHED {_S_VOWELS_UP_WN_} \** # Final rule for s **\
276
285
  _{S_VOWELS_WN}s_ --> SILME_NUQUERNA {_S_VOWELS_UP_WN_} \** # Rule _es_ **\
277
286
  [{L_VOWELS} * _ ]{S_VOWELS_WN}s_ --> [{L_TEHTAR} * {NULL} ] SILME_NUQUERNA {_S_VOWELS_UP_WN_} \** # Rule for éis_, és_ **\
278
287
  {NULL}[ {S_VOWELS_NP_KERNEL} ]{S_VOWELS}s_ --> TELCO [ {TEHTAR_UP_NP} ] SILME_NUQUERNA {_S_VOWELS_UP_} \** # Rule for ies_ **\
@@ -295,9 +304,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
295
304
 
296
305
  \** ## X **\
297
306
  \** ## For x, due to the cedilla, we cannot put tehtas under the tengwa. **\
298
- {S_VOWELS_WN}x --> QUESSE SHOOK_LEFT_L {_S_VOWELS_UP_WN_}
299
- {S_VOWELS_WN}xx --> QUESSE SHOOK_LEFT_L {_GEMINATE_} {_S_VOWELS_UP_WN_}
300
- {S_VOWELS_WN}nx --> QUESSE SHOOK_LEFT_L {_NASAL_} {_S_VOWELS_UP_WN_}
307
+ {S_VOWELS_WN}x --> QUESSE SARINCE {_S_VOWELS_UP_WN_}
308
+ {S_VOWELS_WN}xx --> QUESSE SARINCE {_GEMINATE_} {_S_VOWELS_UP_WN_}
309
+ {S_VOWELS_WN}nx --> QUESSE SARINCE {_NASAL_} {_S_VOWELS_UP_WN_}
301
310
  \end
302
311
 
303
312
  \beg rules punctuation
@@ -348,7 +357,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
348
357
  > --> PUNCT_PAREN_R
349
358
 
350
359
  \** Not universal between fonts ... **\
351
- $ --> BOOKMARK_SIGN
360
+ $ --> ELVISH_PAREN
352
361
  ≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
353
362
  ≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
354
363
 
@@ -52,8 +52,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52
52
  \entry "0.9.7" "Correcting visibility options to conform to new glaeml args strict syntax"
53
53
  \entry "0.9.8" "Adding palatalized geminates (requested)"
54
54
  \entry "0.9.9" "Hotfix on 0.9.8"
55
+ \entry "0.9.10" "Removing option on palatalized geminates (always accumulate)"
56
+ \entry "0.9.11" "Added support for new unicode charsets"
57
+ \entry "0.9.12" "Added support for the Tengwar Telcontar font"
55
58
  \end
56
- \version "0.9.9"
59
+ \version "0.9.12"
57
60
 
58
61
  \language "Quenya"
59
62
  \writing "Tengwar"
@@ -68,7 +71,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
68
71
  \charset tengwar_ds_eldamar false
69
72
  \charset tengwar_ds_annatar false
70
73
  \charset tengwar_ds_elfica false
74
+
75
+ \charset tengwar_guni_sindarin false
76
+ \charset tengwar_guni_parmaite false
77
+ \charset tengwar_guni_eldamar false
78
+ \charset tengwar_guni_annatar false
79
+ \charset tengwar_guni_elfica false
80
+
71
81
  \charset tengwar_freemono false
82
+ \charset tengwar_telcontar false
72
83
 
73
84
  \raw_mode "raw-tengwar"
74
85
 
@@ -118,12 +129,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
118
129
  \value ST_PT_HT_SEPARATED 1
119
130
  \value ST_PT_HT_WITH_XTD 2
120
131
  \end
121
-
122
- \beg option palatalized_geminates PALATALIZED_GEMINATES_SPLIT
123
- \value PALATALIZED_GEMINATES_SPLIT 0
124
- \value PALATALIZED_GEMINATES_CUMULATE 1
125
- \end
126
-
132
+
127
133
  \beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_BAR
128
134
  \value CONSONANT_MODIFICATION_STYLE_WAVE 0
129
135
  \value CONSONANT_MODIFICATION_STYLE_BAR 1
@@ -158,25 +164,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
158
164
 
159
165
  \** Dis-ambiguate qu **\
160
166
  \substitute "qu" "q"
161
-
162
- \if "palatalized_geminates == PALATALIZED_GEMINATES_SPLIT"
163
- \substitute "ppy" "p|py"
164
- \substitute "tty" "t|ty"
165
- \rxsubstitute "[ck][ck]y" "k|ky"
166
-
167
- \substitute "nny" "n|ny"
168
- \substitute "mmy" "m|my"
169
-
170
- \substitute "nnty" "n|nty"
171
- \substitute "nndy" "n|ndy"
172
167
 
173
- \substitute "rry" "r|ry"
174
- \substitute "rrdy" "r|rdy"
175
-
176
- \substitute "lly" "l|ly"
177
- \substitute "lldy" "l|ldy"
178
- \endif
179
-
180
168
  \elvish_numbers "\\eval numbers_base" "\\eval reverse_numbers"
181
169
  \end
182
170
 
@@ -330,18 +318,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
330
318
 
331
319
  \** PALATAL **\
332
320
  [t * p * {K}] y {V_D_WN} --> [TINCO * PARMA * CALMA] {PALATAL} {_V_D_WN_}
321
+
322
+ \** PALATAL GEMINATES **\
323
+ [tt * pp * {K}{K}] y {V_D_WN} --> [TINCO * PARMA * CALMA] {GEMINATE} {PALATAL} {_V_D_WN_}
333
324
 
334
- \if "palatalized_geminates == PALATALIZED_GEMINATES_CUMULATE"
335
- [tt * pp * {K}{K}] y {V_D_WN} --> [TINCO * PARMA * CALMA] {GEMINATE} {PALATAL} {_V_D_WN_}
336
- \endif
337
-
338
- \** For alveolarized consonants, we must put the alveolar_sign just after the tengwa
325
+ \** For alveolarized consonants, we must put the SARINCE just after the tengwa
339
326
  because else, FreeMonoTengwar will not handle well the ligature. Anyway, this is
340
327
  more logical, but the tehta placement will not be perfect for older fonts **\
341
- ts{V_D_WN} --> TINCO ALVEOLAR_SIGN {_V_D_WN_}
342
- ps{V_D_WN} --> PARMA ALVEOLAR_SIGN {_V_D_WN_}
343
- {K}s{V_D_WN} --> CALMA ALVEOLAR_SIGN {_V_D_WN_}
344
- x{V_D_WN} --> CALMA ALVEOLAR_SIGN {_V_D_WN_} \** render ks for x **\
328
+ ts{V_D_WN} --> TINCO SARINCE {_V_D_WN_}
329
+ ps{V_D_WN} --> PARMA SARINCE {_V_D_WN_}
330
+ {K}s{V_D_WN} --> CALMA SARINCE {_V_D_WN_}
331
+ x{V_D_WN} --> CALMA SARINCE {_V_D_WN_} \** render ks for x **\
345
332
 
346
333
  \** ===================== **\
347
334
  \** 2ND LINE RULES **\
@@ -355,9 +342,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
355
342
  \** Palatalized **\
356
343
  ndy{V_D_WN} --> ANDO {PALATAL} {_V_D_WN_}
357
344
 
358
- \if "palatalized_geminates == PALATALIZED_GEMINATES_CUMULATE"
359
- [nnd] y {V_D_WN} --> [ANDO] {GEMINATE} {PALATAL} {_V_D_WN_}
360
- \endif
345
+ \** PALATAL GEMINATES **\
346
+ [nnd] y {V_D_WN} --> [ANDO] {GEMINATE} {PALATAL} {_V_D_WN_}
361
347
 
362
348
  \** Have some rules for d,b,g,gw although there are not theoritically possible, aldudénie e.g needs it **\
363
349
  {L2_UN} === d * b * g * gw
@@ -413,9 +399,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
413
399
  \** PALATAL **\
414
400
  nty {V_D_WN} --> ANTO {PALATAL} {_V_D_WN_}
415
401
 
416
- \if "palatalized_geminates == PALATALIZED_GEMINATES_CUMULATE"
417
- [nnt] y {V_D_WN} --> [ANTO] {GEMINATE} {PALATAL} {_V_D_WN_}
418
- \endif
402
+ \** PALATAL GEMINATES **\
403
+ [nnt] y {V_D_WN} --> [ANTO] {GEMINATE} {PALATAL} {_V_D_WN_}
419
404
 
420
405
  \** ===================== **\
421
406
  \** 5TH LINE RULES **\
@@ -431,9 +416,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
431
416
  ny{V_D_WN} --> NUMEN {PALATAL} {_V_D_WN_}
432
417
  my{V_D_WN} --> MALTA {PALATAL} {_V_D_WN_}
433
418
 
434
- \if "palatalized_geminates == PALATALIZED_GEMINATES_CUMULATE"
435
- [nn * mm] y {V_D_WN} --> [NUMEN * MALTA] {GEMINATE} {PALATAL} {_V_D_WN_}
436
- \endif
419
+ \** PALATAL GEMINATES **\
420
+ [nn * mm] y {V_D_WN} --> [NUMEN * MALTA] {GEMINATE} {PALATAL} {_V_D_WN_}
437
421
 
438
422
  \** ===================== **\
439
423
  \** 6TH LINE RULES **\
@@ -465,9 +449,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
465
449
  ry{V_D_WN} --> ROMEN {PALATAL} {_V_D_WN_}
466
450
  rdy{V_D_WN} --> ARDA {PALATAL} {_V_D_WN_}
467
451
 
468
- \if "palatalized_geminates == PALATALIZED_GEMINATES_CUMULATE"
469
- [rr * rrd] y {V_D_WN} --> [ROMEN * ARDA] {GEMINATE} {PALATAL} {_V_D_WN_}
470
- \endif
452
+ \** PALATAL GEMINATES **\
453
+ [rr * rrd] y {V_D_WN} --> [ROMEN * ARDA] {GEMINATE} {PALATAL} {_V_D_WN_}
471
454
 
472
455
  \** ===================== **\
473
456
  \** L LINE RULES **\
@@ -480,9 +463,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
480
463
  ly{V_D_WN} --> LAMBE {PALATAL} {_V_D_WN_}
481
464
  ldy{V_D_WN} --> ALDA {PALATAL} {_V_D_WN_}
482
465
 
483
- \if "palatalized_geminates == PALATALIZED_GEMINATES_CUMULATE"
484
- [ll * lld] y {V_D_WN} --> [LAMBE * ALDA] {GEMINATE} {PALATAL} {_V_D_WN_}
485
- \endif
466
+ \** PALATAL GEMINATES **\
467
+ [ll * lld] y {V_D_WN} --> [LAMBE * ALDA] {GEMINATE} {PALATAL} {_V_D_WN_}
486
468
 
487
469
  hl{V_D_WN} --> HALLA LAMBE {_V_D_WN_}
488
470
  hr{V_D_WN} --> HALLA ROMEN {_V_D_WN_}
@@ -550,7 +532,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
550
532
  > --> PUNCT_PAREN_R
551
533
 
552
534
  \** Not universal between fonts ... **\
553
- $ --> BOOKMARK_SIGN
535
+ $ --> ELVISH_PAREN
554
536
  ≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
555
537
  ≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
556
538