glaemscribe 1.0.19 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/glaemresources/charsets/tengwar_ds_annatar.cst +509 -0
  3. data/glaemresources/charsets/tengwar_ds_eldamar.cst +22 -16
  4. data/glaemresources/charsets/tengwar_ds_elfica.cst +461 -0
  5. data/glaemresources/charsets/tengwar_ds_parmaite.cst +500 -0
  6. data/glaemresources/charsets/{tengwar_ds.cst → tengwar_ds_sindarin.cst} +59 -62
  7. data/glaemresources/charsets/tengwar_freemono.cst +176 -0
  8. data/glaemresources/charsets/unicode_runes.cst +1 -0
  9. data/glaemresources/modes/adunaic.glaem +50 -28
  10. data/glaemresources/modes/blackspeech.glaem +156 -82
  11. data/glaemresources/modes/english-ipa.glaem +49 -0
  12. data/glaemresources/modes/french-ipa.glaem +49 -0
  13. data/glaemresources/modes/{oldnorse-medieval.glaem → futhark-runicus.glaem} +4 -4
  14. data/glaemresources/modes/futhark-younger.glaem +129 -0
  15. data/glaemresources/modes/{futhorc.glaem.disabled → futhorc.glaem} +76 -38
  16. data/glaemresources/modes/gothic.glaem +1 -1
  17. data/glaemresources/modes/khuzdul.glaem +1 -1
  18. data/glaemresources/modes/mercian.glaem +31 -16
  19. data/glaemresources/modes/quenya-sarati.glaem +5 -3
  20. data/glaemresources/modes/quenya.glaem +168 -77
  21. data/glaemresources/modes/rlyehian.glaem +41 -43
  22. data/glaemresources/modes/sindarin-beleriand.glaem +39 -17
  23. data/glaemresources/modes/sindarin-daeron.glaem +1 -1
  24. data/glaemresources/modes/{sindarin-classical.glaem → sindarin.glaem} +73 -37
  25. data/glaemresources/modes/telerin.glaem +161 -64
  26. data/glaemresources/modes/valarin-sarati.glaem +1 -1
  27. data/glaemresources/modes/westron.glaem +83 -44
  28. data/glaemresources/modes/westsaxon.glaem +30 -13
  29. data/lib/api/charset.rb +29 -11
  30. data/lib/api/charset_parser.rb +15 -3
  31. data/lib/api/mode.rb +15 -3
  32. data/lib/api/mode_parser.rb +7 -2
  33. data/lib/api/option.rb +15 -1
  34. data/lib/api/post_processor/resolve_virtuals.rb +35 -24
  35. data/lib/api/transcription_pre_post_processor.rb +2 -1
  36. metadata +15 -11
  37. data/glaemresources/modes/blackspeech-annatar.glaem +0 -320
  38. data/glaemresources/modes/futhark-long-branch.glaem.disabled +0 -101
  39. data/glaemresources/modes/futhark-short-twig.glaem.disabled +0 -101
@@ -33,10 +33,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
33
33
  \language "R'lyehian"
34
34
  \writing Tengwar
35
35
  \mode Glaemscrafu
36
- \version 0.0.1
37
- \authors "Fthalagn"
36
+ \version 0.0.3
37
+ \authors "H.P.Lovecraft & The Great Ancient Gods, impl. Fthalagn"
38
38
 
39
- \charset tengwar_ds true
39
+ \beg changelog
40
+ \entry "0.0.1" "First version"
41
+ \entry 0.0.2 "Ported to virtual chars"
42
+ \entry 0.0.3 "Ported to various charsets"
43
+ \end
44
+
45
+ \charset tengwar_ds_sindarin true
46
+ \charset tengwar_ds_parmaite false
47
+ \charset tengwar_ds_eldamar false
48
+ \charset tengwar_ds_annatar false
49
+ \charset tengwar_ds_elfica false
50
+ \charset tengwar_freemono false
40
51
 
41
52
  \beg options
42
53
  \end
@@ -158,38 +169,21 @@ y palatal semi vowel ?
158
169
  \beg rules litteral
159
170
  {VOWELS} === a * e * i * o * u * w
160
171
 
161
- {O_LOOP_XS} === U_TEHTA_XS
162
- {O_LOOP_S} === U_TEHTA_S
163
- {O_LOOP_L} === U_TEHTA_L
164
- {O_LOOP_XL} === U_TEHTA_XL
165
- {U_LOOP_XS} === O_TEHTA_XS
166
- {U_LOOP_S} === O_TEHTA_S
167
- {U_LOOP_L} === O_TEHTA_L
168
- {U_LOOP_XL} === O_TEHTA_XL
169
-
170
- {TEHTA_XS} === A_TEHTA_XS * E_TEHTA_XS * I_TEHTA_XS * {O_LOOP_XS} * {U_LOOP_XS} * THSUP_SEV_XS
171
- {TEHTA__S} === A_TEHTA_S * E_TEHTA_S * I_TEHTA_S * {O_LOOP_S} * {U_LOOP_S} * THSUP_SEV_S
172
- {TEHTA__L} === A_TEHTA_L * E_TEHTA_L * I_TEHTA_L * {O_LOOP_L} * {U_LOOP_L} * THSUP_SEV_L
173
- {TEHTA_XL} === A_TEHTA_XL * E_TEHTA_XL * I_TEHTA_XL * {O_LOOP_XL} * {U_LOOP_XL} * THSUP_SEV_XL
174
-
175
- [{VOWELS}] --> TELCO [{TEHTA_XS}] \** Replace isolated short vowels **\
172
+ {O_LOOP} === O_TEHTA
173
+ {U_LOOP} === U_TEHTA
174
+
175
+ {TEHTAR} === A_TEHTA * E_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA * SEV_TEHTA
176
+
177
+ [{VOWELS}] --> TELCO [{TEHTAR}] \** Replace isolated short vowels **\
176
178
 
177
-
178
179
  {WDIPHTHONGS} === {NULL}
179
180
  {WDIPHTHENGS} === {NULL}
180
181
 
181
182
  {V_D_KER} === [ {VOWELS} {WDIPHTHONGS} ]
182
183
  {V_D_KER_WN} === [ {VOWELS} {WDIPHTHONGS} * {NULL} ]
183
184
 
184
- {V_D_IMG_XS} === [ {TEHTA_XS} {WDIPHTHENGS} ]
185
- {V_D_IMG__S} === [ {TEHTA__L} {WDIPHTHENGS} ]
186
- {V_D_IMG__L} === [ {TEHTA__S} {WDIPHTHENGS} ]
187
- {V_D_IMG_XL} === [ {TEHTA_XL} {WDIPHTHENGS} ]
188
- {V_D_IMG_XS_WN} === [ {TEHTA_XS} {WDIPHTHENGS} * {NULL} ]
189
- {V_D_IMG__S_WN} === [ {TEHTA__L} {WDIPHTHENGS} * {NULL} ]
190
- {V_D_IMG__L_WN} === [ {TEHTA__S} {WDIPHTHENGS} * {NULL} ]
191
- {V_D_IMG_XL_WN} === [ {TEHTA_XL} {WDIPHTHENGS} * {NULL} ]
192
-
185
+ {V_D_IMG} === [ {TEHTAR} {WDIPHTHENGS} ]
186
+ {V_D_IMG_WN} === [ {TEHTAR} {WDIPHTHENGS} * {NULL} ]
193
187
 
194
188
  {L1_KER_1} === t * p
195
189
  {L1_IMG_1} === TINCO * PARMA
@@ -197,30 +191,30 @@ y palatal semi vowel ?
197
191
  {L1_IMG_2} === CALMA
198
192
 
199
193
  \** NORMAL **\
200
- [ {L1_KER_1} ] [{NULL} * h] {V_D_KER_WN} --> [ {L1_IMG_1} ] [{NULL} * TILD_INF_S] {V_D_IMG__S_WN}
201
- [ {L1_KER_2} ] [{NULL} * h] {V_D_KER_WN} --> [ {L1_IMG_2} ] [{NULL} * TILD_INF_S] {V_D_IMG__S_WN}
194
+ [ {L1_KER_1} ] [{NULL} * h] {V_D_KER_WN} --> [ {L1_IMG_1} ] [{NULL} * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
195
+ [ {L1_KER_2} ] [{NULL} * h] {V_D_KER_WN} --> [ {L1_IMG_2} ] [{NULL} * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
202
196
 
203
197
  {L2_KER} === d * b * g
204
198
  {L2_IMG} === ANDO * UMBAR * ANGA
205
- [ {L2_KER} ] [{NULL} * h] {V_D_KER_WN} --> [ {L2_IMG} ] [{NULL} * TILD_INF_L] {V_D_IMG_XL_WN}
199
+ [ {L2_KER} ] [{NULL} * h] {V_D_KER_WN} --> [ {L2_IMG} ] [{NULL} * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
206
200
 
207
201
  {L3_KER} === f
208
202
  {L3_IMG} === FORMEN
209
- [ {L3_KER} ] [{NULL} * h] {V_D_KER_WN} --> [ {L3_IMG} ] [{NULL} * TILD_INF_S] {V_D_IMG_XL_WN}
203
+ [ {L3_KER} ] [{NULL} * h] {V_D_KER_WN} --> [ {L3_IMG} ] [{NULL} * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
210
204
 
211
205
  {L5_KER} === n * m
212
206
  {L5_IMG} === NUMEN * MALTA
213
- [ {L5_KER} ] [{NULL} * h] {V_D_KER_WN} --> [ {L5_IMG} ] [{NULL} * TILD_INF_L] {V_D_IMG_XL_WN}
207
+ [ {L5_KER} ] [{NULL} * h] {V_D_KER_WN} --> [ {L5_IMG} ] [{NULL} * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
214
208
 
215
- r [{NULL} * y * h] {V_D_KER_WN} --> ROMEN [{NULL} * THINF_DDOT_S * LAMBE_MARK_TILD] {V_D_IMG__L_WN}
216
- s {V_D_KER_WN} --> SILME_NUQUERNA {V_D_IMG__L_WN}
217
- z {V_D_KER_WN} --> ESSE_NUQUERNA {V_D_IMG__L_WN}
209
+ r [{NULL} * y * h] {V_D_KER_WN} --> ROMEN [{NULL} * PALATAL_SIGN * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
210
+ s {V_D_KER_WN} --> SILME_NUQUERNA {V_D_IMG_WN}
211
+ z {V_D_KER_WN} --> ESSE_NUQUERNA {V_D_IMG_WN}
218
212
 
219
- l [{NULL} * y * h] {V_D_KER_WN} --> LAMBE [{NULL} * LAMBE_MARK_DDOT * LAMBE_MARK_TILD] {V_D_IMG__L_WN}
220
- h [{NULL} * y * h] {V_D_KER_WN} --> AHA [{NULL} * THINF_DDOT_L * LAMBE_MARK_TILD] {V_D_IMG_XL_WN}
221
- v [{NULL} * y * h] {V_D_KER_WN} --> VALA [{NULL} * THINF_DDOT_L * LAMBE_MARK_TILD] {V_D_IMG__S_WN}
213
+ l [{NULL} * y * h] {V_D_KER_WN} --> LAMBE [{NULL} * PALATAL_SIGN * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
214
+ h [{NULL} * y * h] {V_D_KER_WN} --> AHA [{NULL} * PALATAL_SIGN * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
215
+ v [{NULL} * y * h] {V_D_KER_WN} --> VALA [{NULL} * PALATAL_SIGN * GEMINATE_SIGN_TILD] {V_D_IMG_WN}
222
216
 
223
- y {V_D_KER_WN} --> VILYA {V_D_IMG__L_WN}
217
+ y {V_D_KER_WN} --> VILYA {V_D_IMG_WN}
224
218
 
225
219
  ' --> HARP_SHAPED
226
220
  ’ --> HARP_SHAPED
@@ -252,8 +246,8 @@ y palatal semi vowel ?
252
246
  » --> DQUOT_CLOSE
253
247
 
254
248
  - --> PUNCT_DOT
255
- – --> WAVE_MED_SIMPLE
256
- — --> WAVE_MED_DOUBLE
249
+ – --> PUNCT_TILD
250
+ — --> PUNCT_DTILD
257
251
 
258
252
  [ --> PUNCT_PAREN_L
259
253
  ] --> PUNCT_PAREN_R
@@ -284,6 +278,10 @@ y palatal semi vowel ?
284
278
  A --> NUM_10
285
279
  B --> NUM_11
286
280
  \end
287
-
281
+
288
282
  \end
289
283
 
284
+
285
+ \beg postprocessor
286
+ \resolve_virtuals
287
+ \end
@@ -24,21 +24,34 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24
24
 
25
25
  \** Sindarin Beleriand mode for glaemscribe (MAY BE INCOMPLETE) **\
26
26
  \beg changelog
27
- \entry 0.0.2 "Added lw"
28
- \entry 0.0.3 "Added thorn as equivalent for th"
29
- \entry 0.0.4 "Porting to virtual chars to simplify and beautify"
27
+ \entry "0.0.2" "Added lw"
28
+ \entry "0.0.3" "Added thorn as equivalent for th"
29
+ \entry "0.0.4" "Porting to virtual chars to simplify and beautify"
30
+ \entry "0.0.5" "Added charset support for Annatar"
31
+ \entry "0.0.6" "Added support for the FreeMonoTengwar font"
32
+ \entry "0.1.0" "Added support for the Tengwar Elfica font"
30
33
  \end
31
34
 
32
35
  \language "Sindarin"
33
36
  \writing "Tengwar"
34
37
  \mode "Beleriand"
35
- \version "0.0.4"
36
- \authors "Talagan (Benjamin Babut)"
38
+ \version "0.1.0"
39
+ \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
37
40
 
38
- \charset tengwar_ds true
39
- \charset tengwar_ds_eldamar false
41
+ \charset tengwar_ds_sindarin true
42
+ \charset tengwar_ds_parmaite false
43
+ \charset tengwar_ds_eldamar false
44
+ \charset tengwar_ds_annatar false
45
+ \charset tengwar_ds_elfica false
46
+ \charset tengwar_freemono false
40
47
 
41
48
  \beg options
49
+
50
+ \beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_BAR
51
+ \value CONSONANT_MODIFICATION_STYLE_WAVE 0
52
+ \value CONSONANT_MODIFICATION_STYLE_BAR 1
53
+ \end
54
+
42
55
  \option reverse_numbers true
43
56
  \beg option numbers_base BASE_12
44
57
  \value BASE_10 10
@@ -79,6 +92,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
79
92
  \beg processor
80
93
 
81
94
  \beg rules litteral
95
+
96
+ \if "consonant_modification_style == CONSONANT_MODIFICATION_STYLE_WAVE"
97
+ {GEMINATE} === GEMINATE_SIGN_TILD
98
+ {NASAL} === NASALIZE_SIGN_TILD
99
+ \else
100
+ {GEMINATE} === GEMINATE_SIGN
101
+ {NASAL} === NASALIZE_SIGN
102
+ \endif
103
+
82
104
  {A} === a
83
105
  {AA} === á
84
106
  {E} === e
@@ -134,9 +156,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
134
156
 
135
157
  [{L1}] --> [{_L1_}]
136
158
 
137
- nt --> TINCO NASALIZE_SIGN
138
- mp --> PARMA NASALIZE_SIGN
139
- n{K} --> CALMA NASALIZE_SIGN
159
+ nt --> TINCO {NASAL}
160
+ mp --> PARMA {NASAL}
161
+ n{K} --> CALMA {NASAL}
140
162
 
141
163
  \** ======== **\
142
164
  \** 2ND LINE **\
@@ -146,8 +168,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
146
168
 
147
169
  [{L2}] --> [{_L2_}]
148
170
 
149
- mb --> UMBAR NASALIZE_SIGN
150
- nd --> ANDO NASALIZE_SIGN
171
+ mb --> UMBAR {NASAL}
172
+ nd --> ANDO {NASAL}
151
173
 
152
174
  \** ======== **\
153
175
  \** 3RD LINE **\
@@ -157,10 +179,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
157
179
 
158
180
  [{L3}] --> [{_L3_}]
159
181
 
160
- nth --> SULE NASALIZE_SIGN
161
- mph --> FORMEN NASALIZE_SIGN
162
- nf --> FORMEN NASALIZE_SIGN
163
- nch --> AHA NASALIZE_SIGN
182
+ nth --> SULE {NASAL}
183
+ mph --> FORMEN {NASAL}
184
+ nf --> FORMEN {NASAL}
185
+ nch --> AHA {NASAL}
164
186
 
165
187
  \** ======== **\
166
188
  \** 4TH LINE **\
@@ -202,7 +224,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
202
224
 
203
225
  [{S_LINE}] --> [{_S_LINE_}]
204
226
 
205
- ns --> SILME_NUQUERNA NASALIZE_SIGN
227
+ ns --> SILME_NUQUERNA {NASAL}
206
228
 
207
229
  \** ======== **\
208
230
  \** OTHERS **\
@@ -34,7 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
34
34
  \writing "Cirth"
35
35
  \mode "Angerthas Daeron"
36
36
  \version "0.0.4"
37
- \authors "Talagan (Benjamin Babut)"
37
+ \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
38
38
 
39
39
  \charset cirth_ds true
40
40
 
@@ -25,34 +25,54 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25
25
  \** Sindarin Classical mode for glaemscribe (MAY BE INCOMPLETE) **\
26
26
 
27
27
  \beg changelog
28
- \entry 0.0.2 "Fixed some tehtar versions which did not look quite nice for ch, dh, v, mb. Reworked the problem of labialized consonnants (+w), adding an option for treating the u-curl + tehta combination."
29
- \entry 0.0.3 "Extended the labialized consonnants option."
30
- \entry 0.0.4 "Fixed nw (BUG : was using ORE from the beleriand mode), added lw"
31
- \entry 0.0.5 "Added thorn as equivalent for th"
32
- \entry 0.0.6 "Porting to virtual chars to simplify and beautify"
28
+ \entry "0.0.2" "Fixed some tehtar versions which did not look quite nice for ch, dh, v, mb. Reworked the problem of labialized consonnants (+w), adding an option for treating the u-curl + tehta combination."
29
+ \entry "0.0.3" "Extended the labialized consonnants option."
30
+ \entry "0.0.4" "Fixed nw (BUG : was using ORE from the beleriand mode), added lw"
31
+ \entry "0.0.5" "Added thorn as equivalent for th"
32
+ \entry "0.0.6" "Porting to virtual chars to simplify and beautify"
33
+ \entry "0.0.7" "Added charset support for Annatar"
34
+ \entry "0.0.8" "Added support for the FreeMonoTengwar font"
35
+ \entry "0.1.0" "Added support for the Tengwar Elfica font"
33
36
  \end
34
37
 
35
38
 
36
39
  \language "Sindarin"
37
40
  \writing "Tengwar"
38
- \mode "Classical"
39
- \version "0.0.6"
40
- \authors "Talagan (Benjamin Babut)"
41
+ \mode "General Use"
42
+ \version "0.1.0"
43
+ \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
41
44
 
42
- \charset tengwar_ds true
43
- \charset tengwar_ds_eldamar false
45
+ \charset tengwar_ds_sindarin true
46
+ \charset tengwar_ds_parmaite false
47
+ \charset tengwar_ds_eldamar false
48
+ \charset tengwar_ds_annatar false
49
+ \charset tengwar_ds_elfica false
50
+ \charset tengwar_freemono false
44
51
 
45
52
  \beg options
46
- \option reverse_numbers true
47
- \beg option numbers_base BASE_12
48
- \value BASE_10 10
49
- \value BASE_12 12
53
+
54
+ \beg option reverse_o_u_tehtar U_UP_O_DOWN
55
+ \value O_UP_U_DOWN 1
56
+ \value U_UP_O_DOWN 2
50
57
  \end
58
+
59
+ \beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_BAR
60
+ \value CONSONANT_MODIFICATION_STYLE_WAVE 0
61
+ \value CONSONANT_MODIFICATION_STYLE_BAR 1
62
+ \end
63
+
51
64
  \beg option labialized_consonants_u_curl LABIALIZED_U_CURL_ALWAYS
52
65
  \value LABIALIZED_U_CURL_NONE 1
53
66
  \value LABIALIZED_U_CURL_NO_TEHTAR 2
54
67
  \value LABIALIZED_U_CURL_ALWAYS 3
55
68
  \end
69
+
70
+ \option reverse_numbers true
71
+ \beg option numbers_base BASE_12
72
+ \value BASE_10 10
73
+ \value BASE_12 12
74
+ \end
75
+
56
76
  \end
57
77
 
58
78
  \beg preprocessor
@@ -89,6 +109,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
89
109
 
90
110
  \beg rules litteral
91
111
 
112
+ \if "consonant_modification_style == CONSONANT_MODIFICATION_STYLE_WAVE"
113
+ {GEMINATE} === GEMINATE_SIGN_TILD
114
+ {NASAL} === NASALIZE_SIGN_TILD
115
+ \else
116
+ {GEMINATE} === GEMINATE_SIGN
117
+ {NASAL} === NASALIZE_SIGN
118
+ \endif
119
+
120
+ \if "reverse_o_u_tehtar == U_UP_O_DOWN"
121
+ {O_LOOP} === O_TEHTA
122
+ {U_LOOP} === U_TEHTA
123
+ \else
124
+ {O_LOOP} === U_TEHTA
125
+ {U_LOOP} === O_TEHTA
126
+ \endif
127
+
92
128
  \** VOWELS **\
93
129
  {A} === a
94
130
  {AA} === á
@@ -117,12 +153,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
117
153
  {VOWELS} === {A} * {E} * {I} * {O} * {U} * {Y}
118
154
  {LVOWELS} === {AA} * {EE} * {II} * {OO} * {UU} * {YY}
119
155
 
120
- {TEHTAR} === A_TEHTA * E_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA * Y_TEHTA
156
+ {TEHTAR} === A_TEHTA * E_TEHTA * I_TEHTA * {O_LOOP} * {U_LOOP} * Y_TEHTA
121
157
 
122
- {_LTEHTAR_} === ARA A_TEHTA * ARA E_TEHTA * ARA I_TEHTA * ARA O_TEHTA * ARA U_TEHTA * ARA Y_TEHTA
158
+ {_LTEHTAR_} === ARA A_TEHTA * ARA E_TEHTA * ARA I_TEHTA * ARA {O_LOOP} * ARA {U_LOOP} * ARA Y_TEHTA
123
159
 
124
160
  {DIPHTHONGS} === {AI} * {AU} * {AW} * {EI} * {UI} * {AE} * {OE}
125
- {_DIPHTHONGS_} === ANNA A_TEHTA * VALA A_TEHTA * VALA A_TEHTA * ANNA E_TEHTA * ANNA U_TEHTA * YANTA A_TEHTA * YANTA O_TEHTA
161
+ {_DIPHTHONGS_} === ANNA A_TEHTA * VALA A_TEHTA * VALA A_TEHTA * ANNA E_TEHTA * ANNA {U_LOOP} * YANTA A_TEHTA * YANTA {O_LOOP}
126
162
 
127
163
  \** Consonants + Vowels, we will often need these ones **\
128
164
  {V_D} === [ {VOWELS} ]
@@ -142,18 +178,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
142
178
 
143
179
  {V_D_WN}[{L1}] --> 2,1 --> [{_L1_}]{_V_D_WN_}
144
180
 
145
- {V_D_WN}nt --> TINCO NASALIZE_SIGN {_V_D_WN_}
146
- {V_D_WN}mp --> PARMA NASALIZE_SIGN {_V_D_WN_}
147
- {V_D_WN}n{K} --> CALMA NASALIZE_SIGN {_V_D_WN_}
181
+ {V_D_WN}nt --> TINCO {NASAL} {_V_D_WN_}
182
+ {V_D_WN}mp --> PARMA {NASAL} {_V_D_WN_}
183
+ {V_D_WN}n{K} --> CALMA {NASAL} {_V_D_WN_}
148
184
 
149
185
  \** 2ND LINE **\
150
186
  {L2} === d * b * g * ng \** * g **\
151
- {_L2_} === ANDO * UMBAR * UNGWE * UNGWE NASALIZE_SIGN \** * s **\
187
+ {_L2_} === ANDO * UMBAR * UNGWE * UNGWE {NASAL} \** * s **\
152
188
 
153
189
  {V_D_WN}[{L2}] --> 2,1 --> [{_L2_}]{_V_D_WN_}
154
190
 
155
- {V_D_WN}mb --> UMBAR NASALIZE_SIGN {_V_D_WN_}
156
- {V_D_WN}nd --> ANDO NASALIZE_SIGN {_V_D_WN_}
191
+ {V_D_WN}mb --> UMBAR {NASAL} {_V_D_WN_}
192
+ {V_D_WN}nd --> ANDO {NASAL} {_V_D_WN_}
157
193
 
158
194
  \** 3RD LINE **\
159
195
  {L3} === (þ,th) * (f,ph,ff) * ch
@@ -161,10 +197,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
161
197
 
162
198
  {V_D_WN}[{L3}] --> 2,1 --> [{_L3_}]{_V_D_WN_}
163
199
 
164
- {V_D_WN}nth --> SULE NASALIZE_SIGN {_V_D_WN_}
165
- {V_D_WN}mph --> FORMEN NASALIZE_SIGN {_V_D_WN_}
166
- {V_D_WN}nf --> FORMEN NASALIZE_SIGN {_V_D_WN_}
167
- {V_D_WN}nch --> HWESTA NASALIZE_SIGN {_V_D_WN_}
200
+ {V_D_WN}nth --> SULE {NASAL} {_V_D_WN_}
201
+ {V_D_WN}mph --> FORMEN {NASAL} {_V_D_WN_}
202
+ {V_D_WN}nf --> FORMEN {NASAL} {_V_D_WN_}
203
+ {V_D_WN}nch --> HWESTA {NASAL} {_V_D_WN_}
168
204
 
169
205
  \** 4TH LINE **\
170
206
  {L4} === (đ,ð,ðh,dh) * (v,bh,f_) \** Some noldorin variants here ... **\
@@ -178,14 +214,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
178
214
 
179
215
  {V_D_WN}[{L5}] --> 2,1 --> [{_L5_}]{_V_D_WN_}
180
216
 
181
- {V_D_WN}nn --> NUMEN NASALIZE_SIGN {_V_D_WN_}
182
- {V_D_WN}mm --> MALTA NASALIZE_SIGN {_V_D_WN_}
217
+ {V_D_WN}nn --> NUMEN {NASAL} {_V_D_WN_}
218
+ {V_D_WN}mm --> MALTA {NASAL} {_V_D_WN_}
183
219
 
184
220
  \** 6TH LINE **\
185
221
 
186
222
  \** 7TH LINE **\
187
223
  {L7} === r_ * r * l * ll * w
188
- {_L7_} === ORE * ROMEN * LAMBE * LAMBE LAMBE_MARK_TILD * VALA
224
+ {_L7_} === ORE * ROMEN * LAMBE * LAMBE {GEMINATE} * VALA
189
225
 
190
226
  {V_D_WN}[{L7}] --> 2,1 --> [{_L7_}]{_V_D_WN_}
191
227
 
@@ -198,7 +234,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
198
234
 
199
235
  {V_D_WN}[{L8}] --> 2,1 --> [{_L8_}]{_V_D_WN_}
200
236
 
201
- {V_D_WN}ns --> SILME_NUQUERNA NASALIZE_SIGN {_V_D_WN_}
237
+ {V_D_WN}ns --> SILME_NUQUERNA {NASAL} {_V_D_WN_}
202
238
 
203
239
  s --> SILME
204
240
 
@@ -226,12 +262,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
226
262
  rw --> ROMEN SEV_TEHTA
227
263
  \endif
228
264
 
229
- \if "labialized_consonants_u_curl == LABIALIZED_U_CURL_ALWAYS"
230
- {V_D}dw --> ANDO SEV_TEHTA {_V_D_}
231
- {V_D}gw --> UNGWE SEV_TEHTA {_V_D_}
232
- {V_D}lw --> LAMBE SEV_TEHTA {_V_D_}
233
- {V_D}nw --> NUMEN SEV_TEHTA {_V_D_}
234
- {V_D}rw --> ROMEN SEV_TEHTA {_V_D_}
265
+ \if "labialized_consonants_u_curl == LABIALIZED_U_CURL_ALWAYS"
266
+ {V_D}dw --> ANDO SEV_TEHTA {_V_D_}
267
+ {V_D}gw --> UNGWE SEV_TEHTA {_V_D_}
268
+ {V_D}lw --> LAMBE SEV_TEHTA {_V_D_}
269
+ {V_D}nw --> NUMEN SEV_TEHTA {_V_D_}
270
+ {V_D}rw --> ROMEN SEV_TEHTA {_V_D_}
235
271
  \endif
236
272
  \end
237
273
 
@@ -25,20 +25,58 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25
25
  \** Telerin mode for glaemscribe (MAY BE INCOMPLETE) - Derived from Quenya **\
26
26
 
27
27
  \beg changelog
28
- \entry 0.0.2 "Correcting ts/ps sequences to work better with eldamar"
29
- \entry 0.0.3 "Porting to virtual chars"
28
+ \entry "0.0.2" "Correcting ts/ps sequences to work better with eldamar"
29
+ \entry "0.0.3" "Porting to virtual chars"
30
+ \entry "0.0.4" "Added charset support for Annatar"
31
+ \entry "0.0.5" "Added support for the FreeMonoTengwar font"
32
+ \entry "0.0.6" "Ported some options from the quenya mode"
33
+ \entry "0.1.0" "Added support for the Tengwar Elfica font"
30
34
  \end
31
35
 
32
36
  \language "Telerin"
33
37
  \writing "Tengwar"
34
38
  \mode "Glaemscrafu"
35
- \version "0.0.3"
36
- \authors "Talagan (Benjamin Babut)"
39
+ \version "0.1.0"
40
+ \authors "Talagan (Benjamin Babut), based on J.R.R Tolkien"
41
+
42
+ \charset tengwar_ds_sindarin true
43
+ \charset tengwar_ds_parmaite false
44
+ \charset tengwar_ds_eldamar false
45
+ \charset tengwar_ds_annatar false
46
+ \charset tengwar_ds_elfica false
47
+ \charset tengwar_freemono false
37
48
 
38
- \charset tengwar_ds true
39
- \charset tengwar_ds_eldamar false
40
49
 
41
50
  \beg options
51
+
52
+ \beg option reverse_o_u_tehtar U_UP_O_DOWN
53
+ \value O_UP_U_DOWN 1
54
+ \value U_UP_O_DOWN 2
55
+ \end
56
+
57
+ \beg option long_vowels_format LONG_VOWELS_USE_LONG_CARRIER
58
+ \value LONG_VOWELS_USE_LONG_CARRIER 1
59
+ \value LONG_VOWELS_USE_DOUBLE_TEHTAR 2
60
+ \end
61
+
62
+ \beg option double_tehta_e false
63
+ \visible_when 'long_vowels_format == LONG_VOWELS_USE_DOUBLE_TEHTAR'
64
+ \end
65
+ \beg option double_tehta_i false
66
+ \visible_when 'long_vowels_format == LONG_VOWELS_USE_DOUBLE_TEHTAR'
67
+ \end
68
+ \beg option double_tehta_o true
69
+ \visible_when 'long_vowels_format == LONG_VOWELS_USE_DOUBLE_TEHTAR'
70
+ \end
71
+ \beg option double_tehta_u true
72
+ \visible_when 'long_vowels_format == LONG_VOWELS_USE_DOUBLE_TEHTAR'
73
+ \end
74
+
75
+ \beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_BAR
76
+ \value CONSONANT_MODIFICATION_STYLE_WAVE 0
77
+ \value CONSONANT_MODIFICATION_STYLE_BAR 1
78
+ \end
79
+
42
80
  \option reverse_numbers true
43
81
  \beg option numbers_base BASE_12
44
82
  \value BASE_10 10
@@ -74,52 +112,109 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
74
112
  \beg processor
75
113
 
76
114
  \beg rules litteral
77
- {A} === a
78
- {AA} === á
79
- {E} === e
80
- {EE} === é
81
- {I} === i
82
- {II} === í
83
- {O} === o
84
- {OO} === ó
85
- {U} === u
86
- {UU} === ú
87
-
88
- {AI} === {A}{I}
89
- {AU} === {A}{U}
90
- {EU} === {E}{U}
91
- {IU} === {I}{U}
92
- {OI} === {O}{I}
93
- {UI} === {U}{I}
94
-
95
-
115
+
96
116
  {K} === (c,k)
97
117
  {W} === (v,w)
98
118
  {SS} === (z,ss)
99
119
 
100
- \** {MB} === (b,mb) **\
101
- \** {SS} === (z,ss) **\
102
-
103
- {VOWELS} === {A} * {E} * {I} * {O} * {U}
104
- {LVOWELS} === {AA} * {EE} * {II} * {OO} * {UU}
120
+ \if "consonant_modification_style == CONSONANT_MODIFICATION_STYLE_WAVE"
121
+ {GEMINATE} === GEMINATE_SIGN_TILD
122
+ \else
123
+ {GEMINATE} === GEMINATE_SIGN
124
+ \endif
105
125
 
106
- {TEHTAR} === A_TEHTA * E_TEHTA * I_TEHTA * O_TEHTA * U_TEHTA
107
-
108
- {DIPHTHONGS} === {AI} * {AU} * {EU} * {IU} * {OI} * {UI}
109
- {_DIPHTHONGS_} === YANTA A_TEHTA * URE A_TEHTA * URE E_TEHTA * URE I_TEHTA * YANTA O_TEHTA * YANTA U_TEHTA
110
-
126
+ {VOWELS} === a * e * i * o * u
127
+ {LVOWELS} === á * é * í * ó * ú
128
+
129
+ \if "reverse_o_u_tehtar == U_UP_O_DOWN"
130
+ {O_LOOP} === O_TEHTA
131
+ {O_LOOP_DOUBLE} === O_TEHTA_DOUBLE
132
+ {U_LOOP} === U_TEHTA
133
+ {U_LOOP_DOUBLE} === U_TEHTA_DOUBLE
134
+ \else
135
+ {O_LOOP} === U_TEHTA
136
+ {O_LOOP_DOUBLE} === U_TEHTA_DOUBLE
137
+ {U_LOOP} === O_TEHTA
138
+ {U_LOOP_DOUBLE} === O_TEHTA_DOUBLE
139
+ \endif
140
+
141
+ \** Shape of the a, option removed from quenya, may be readded later **\
142
+ {A_SHAPE} === A_TEHTA
143
+
144
+ \** Implicit a, option removed from quenya, may be readded later **\
145
+ {_A_} === {A_SHAPE}
146
+ {_NVOWEL_} === {NULL}
147
+
148
+ {_TEHTAR_} === {_A_} * E_TEHTA * I_TEHTA * {O_LOOP} * {U_LOOP}
111
149
 
112
- {V_D} === [ {VOWELS} * {DIPHTHONGS} ]
113
- {_V_D_} === [ {TEHTAR} * {_DIPHTHONGS_} ]
150
+ \** Split diphtongs option removed from quenya, may be readded later **\
151
+ {DIPHTHONGS} === ai * au * eu * iu * oi * ui
152
+ {_DIPHTHONGS_} === YANTA {_A_} * URE {_A_} * URE E_TEHTA * URE I_TEHTA * YANTA {O_LOOP} * YANTA {U_LOOP}
153
+ {WDIPHTHONGS} === * {DIPHTHONGS} \** groovy! **\
154
+ {_WDIPHTHONGS_} === * {_DIPHTHONGS_} \** same thing **\
114
155
 
115
- {V_D_WN} === [ {VOWELS} * {DIPHTHONGS} * {NULL} ]
116
- {_V_D_WN_} === [ {TEHTAR} * {_DIPHTHONGS_} * {NULL} ]
117
-
118
- \** VOWEL RULES **\
119
- [{VOWELS}] --> TELCO[{TEHTAR}] \** Replace isolated short vowels **\
120
- [{LVOWELS}] --> ARA[{TEHTAR}] \** Replace long vowels **\
121
- [{DIPHTHONGS}] --> [{_DIPHTHONGS_}] \** Replace diphthongs **\
156
+ {_LONG_A_} === ARA {A_SHAPE}
157
+ {_LONG_E_} === ARA E_TEHTA
158
+ {_LONG_I_} === ARA I_TEHTA
159
+ {_LONG_O_} === ARA {O_LOOP}
160
+ {_LONG_U_} === ARA {U_LOOP}
161
+ {_LONE_LONG_A_} === {_LONG_A_}
162
+ {_LONE_LONG_E_} === {_LONG_E_}
163
+ {_LONE_LONG_I_} === {_LONG_I_}
164
+ {_LONE_LONG_O_} === {_LONG_O_}
165
+ {_LONE_LONG_U_} === {_LONG_U_}
166
+
167
+ {LTEHTAR} === {NULL}
168
+ {_LTEHTAR_} === {NULL}
169
+
170
+ \if "long_vowels_format == LONG_VOWELS_USE_DOUBLE_TEHTAR"
171
+ \if double_tehta_e
172
+ {_LONG_E_} === E_TEHTA_DOUBLE
173
+ {_LONE_LONG_E_} === TELCO {_LONG_E_}
174
+ {LTEHTAR} === {LTEHTAR} * é
175
+ {_LTEHTAR_} === {_LTEHTAR_} * {_LONG_E_}
176
+ \endif
177
+ \if double_tehta_i
178
+ {_LONG_I_} === I_TEHTA_DOUBLE
179
+ {_LONE_LONG_I_} === TELCO {_LONG_I_}
180
+ {LTEHTAR} === {LTEHTAR} * í
181
+ {_LTEHTAR_} === {_LTEHTAR_} * {_LONG_I_}
182
+ \endif
183
+ \if double_tehta_o
184
+ {_LONG_O_} === {O_LOOP_DOUBLE}
185
+ {_LONE_LONG_O_} === TELCO {_LONG_O_}
186
+ {LTEHTAR} === {LTEHTAR} * ó
187
+ {_LTEHTAR_} === {_LTEHTAR_} * {_LONG_O_}
188
+ \endif
189
+ \if double_tehta_u
190
+ {_LONG_U_} === {U_LOOP_DOUBLE}
191
+ {_LONE_LONG_U_} === TELCO {_LONG_U_}
192
+ {LTEHTAR} === {LTEHTAR} * ú
193
+ {_LTEHTAR_} === {_LTEHTAR_} * {_LONG_U_}
194
+ \endif
195
+ \endif
196
+
197
+ \** images of long vowels, either tehtar or ara versions **\
198
+ {_LVOWELS_} === {_LONG_A_} * {_LONG_E_} * {_LONG_I_} * {_LONG_O_} * {_LONG_U_}
199
+
200
+ {WLONG} === * {LVOWELS}
201
+ {_WLONG_} === * {_LVOWELS_}
202
+
203
+ {V_D} === [ {VOWELS} {WLONG} {WDIPHTHONGS} ]
204
+ {V_D_WN} === [ {VOWELS} {WLONG} {WDIPHTHONGS} * {NULL} ]
205
+
206
+ {_V_D_} === [ {_TEHTAR_} {_WLONG_} {_WDIPHTHONGS_} ]
207
+ {_V_D_WN_} === [ {_TEHTAR_} {_WLONG_} {_WDIPHTHONGS_} * {_NVOWEL_} ]
208
+
209
+ \** LONE SHORT VOWELS **\
210
+ [{VOWELS}] --> TELCO [{_TEHTAR_}] \** Replace isolated short vowels **\
211
+
212
+ \** LONE LONG VOWELS **\
213
+ [{LVOWELS}] --> [{_LONE_LONG_A_} * {_LONE_LONG_E_} * {_LONE_LONG_I_} * {_LONE_LONG_O_} * {_LONE_LONG_U_}]
122
214
 
215
+ [{DIPHTHONGS}] --> [{_DIPHTHONGS_}] \** Replace diphthongs **\
216
+
217
+
123
218
  \** TELERIN: changed v/w, removed all y rules **\
124
219
 
125
220
  \** ===================== **\
@@ -129,14 +224,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
129
224
  {_L1_} === CALMA * QUESSE * TINCO * PARMA
130
225
 
131
226
  {L1_GEMS} === {K}{K} * tt * pp
132
- {_L1_GEMS_} === CALMA GEMINATE_SIGN * TINCO GEMINATE_SIGN * PARMA GEMINATE_SIGN
227
+ {_L1_GEMS_} === CALMA {GEMINATE} * TINCO {GEMINATE} * PARMA {GEMINATE}
133
228
 
134
229
  \** NORMAL **\
135
230
  [ {L1} ] {V_D_WN} --> [ {_L1_} ] {_V_D_WN_}
136
231
  [ {L1_GEMS} ] {V_D_WN} --> [ {_L1_GEMS_} ] {_V_D_WN_}
137
232
 
138
- ts{V_D_WN} --> TINCO {_V_D_WN_} ALVEOLAR_SIGN
139
- ps{V_D_WN} --> PARMA {_V_D_WN_} ALVEOLAR_SIGN
233
+ ts{V_D_WN} --> TINCO ALVEOLAR_SIGN {_V_D_WN_}
234
+ ps{V_D_WN} --> PARMA ALVEOLAR_SIGN {_V_D_WN_}
140
235
  {K}s{V_D_WN} --> CALMA ALVEOLAR_SIGN {_V_D_WN_}
141
236
  x{V_D_WN} --> CALMA ALVEOLAR_SIGN {_V_D_WN_} \** render ks for x **\
142
237
 
@@ -159,9 +254,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
159
254
  [{L3}]{V_D_WN} --> [{_L3_}]{_V_D_WN_}
160
255
 
161
256
  \** Override h with vowels (descendent) **\
162
- _h{V_D} --> HYARMEN {_V_D_}
163
- h[{LVOWELS}] --> HYARMEN ARA [{TEHTAR}]
164
- h --> AHA
257
+ _h{V_D} --> HYARMEN {_V_D_}
258
+ \** Starting voiced h before long vowels **\
259
+ _h[{LVOWELS}] --> HYARMEN [{_LVOWELS_}]
260
+
261
+ (h,χ) --> AHA
165
262
 
166
263
  \** ===================== **\
167
264
  \** 4TH LINE RULES **\
@@ -180,8 +277,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
180
277
 
181
278
  [{L5}]{V_D_WN} --> [{_L5_}]{_V_D_WN_}
182
279
 
183
- nn{V_D_WN} --> NUMEN GEMINATE_SIGN {_V_D_WN_}
184
- mm{V_D_WN} --> MALTA GEMINATE_SIGN {_V_D_WN_}
280
+ nn{V_D_WN} --> NUMEN {GEMINATE} {_V_D_WN_}
281
+ mm{V_D_WN} --> MALTA {GEMINATE} {_V_D_WN_}
185
282
 
186
283
  \** ===================== **\
187
284
  \** 6TH LINE RULES **\
@@ -191,32 +288,32 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
191
288
 
192
289
  [{L6}]{V_D_WN} --> [{_L6_}]{_V_D_WN_}
193
290
 
194
- rr{V_D_WN} --> ROMEN GEMINATE_SIGN {_V_D_WN_}
291
+ rr{V_D_WN} --> ROMEN {GEMINATE} {_V_D_WN_}
195
292
  rd{V_D_WN} --> ARDA {_V_D_WN_}
196
293
 
197
294
  \** ===================== **\
198
295
  \** L LINE RULES **\
199
296
  \** ===================== **\
200
297
  {LINE_L} === l * ld * ll
201
- {_LINE_L_} === LAMBE * ALDA * LAMBE GEMINATE_SIGN
298
+ {_LINE_L_} === LAMBE * ALDA * LAMBE {GEMINATE}
202
299
 
203
300
  [{LINE_L}]{V_D_WN} --> [{_LINE_L_}]{_V_D_WN_}
301
+
204
302
  hl{V_D_WN} --> HALLA LAMBE {_V_D_WN_}
205
303
  hr{V_D_WN} --> HALLA ROMEN {_V_D_WN_}
206
-
304
+
207
305
  \** ===================== **\
208
306
  \** S/Z LINE RULES **\
209
307
  \** ===================== **\
210
- {L8} === s * {SS}
211
- {_L8_} === SILME_NUQUERNA * ESSE_NUQUERNA
212
-
213
- [{L8}]{V_D_WN} --> [{_L8_}]{_V_D_WN_}
308
+ {L8} === s * {SS}
309
+ {_L8_TEHTAR_} === SILME_NUQUERNA * ESSE_NUQUERNA
310
+ {_L8_NO_TEHTAR_} === SILME * ESSE
214
311
 
215
- \** Override lonely s / ss / before consonant **\
216
- s --> SILME
217
- s[{LVOWELS}] --> SILME ARA [{TEHTAR}]
218
- {SS} --> ESSE
219
- {SS}[{LVOWELS}] --> ESSE ARA [{TEHTAR}]
312
+ [{L8}][{VOWELS}] --> [{_L8_TEHTAR_}][{_TEHTAR_}]
313
+ [{L8}][{LTEHTAR}] --> [{_L8_TEHTAR_}][{_LTEHTAR_}]
314
+
315
+ {L8} --> {_L8_NO_TEHTAR_}
316
+ {L8}[{DIPHTHONGS}] --> {_L8_NO_TEHTAR_}[{_DIPHTHONGS_}]
220
317
  \end
221
318
 
222
319
  \beg rules punctuation