glaemscribe 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/glaemresources/charsets/tengwar_ds_annatar.cst +36 -34
  3. data/glaemresources/charsets/tengwar_ds_eldamar.cst +6 -4
  4. data/glaemresources/charsets/tengwar_ds_elfica.cst +14 -14
  5. data/glaemresources/charsets/tengwar_ds_parmaite.cst +6 -3
  6. data/glaemresources/charsets/tengwar_ds_sindarin.cst +6 -3
  7. data/glaemresources/charsets/tengwar_freemono.cst +7 -2
  8. data/glaemresources/modes/adunaic.glaem +9 -2
  9. data/glaemresources/modes/blackspeech.glaem +11 -8
  10. data/glaemresources/modes/english-ipa.glaem.ignored +382 -0
  11. data/glaemresources/modes/{french-ipa.glaem → french-ipa.glaem.ignored} +0 -0
  12. data/glaemresources/modes/futhark-runicus.glaem +8 -5
  13. data/glaemresources/modes/futhark-younger.glaem +9 -6
  14. data/glaemresources/modes/futhorc.glaem +8 -5
  15. data/glaemresources/modes/gothic.glaem +4 -1
  16. data/glaemresources/modes/japanese-tengwar.glaem.ignored +548 -0
  17. data/glaemresources/modes/khuzdul.glaem +7 -9
  18. data/glaemresources/modes/mercian.glaem +58 -37
  19. data/glaemresources/modes/quenya-sarati.glaem +4 -1
  20. data/glaemresources/modes/quenya.glaem +10 -4
  21. data/glaemresources/modes/raw-tengwar.glaem +90 -73
  22. data/glaemresources/modes/rlyehian.glaem +8 -3
  23. data/glaemresources/modes/sindarin-beleriand.glaem +8 -2
  24. data/glaemresources/modes/sindarin-daeron.glaem +4 -1
  25. data/glaemresources/modes/sindarin.glaem +11 -4
  26. data/glaemresources/modes/telerin.glaem +10 -4
  27. data/glaemresources/modes/valarin-sarati.glaem +9 -7
  28. data/glaemresources/modes/westron.glaem +10 -3
  29. data/glaemresources/modes/westsaxon.glaem +52 -36
  30. data/lib/api/constants.rb +4 -0
  31. data/lib/api/fragment.rb +1 -5
  32. data/lib/api/mode.rb +9 -0
  33. data/lib/api/mode_parser.rb +2 -0
  34. data/lib/api/rule.rb +1 -1
  35. data/lib/api/rule_group.rb +3 -0
  36. data/lib/api/sheaf_chain_iterator.rb +4 -2
  37. metadata +6 -5
  38. data/glaemresources/modes/english-ipa.glaem +0 -245
@@ -37,13 +37,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
37
37
  \entry "0.1.1" "Added support for inlined raw tengwar"
38
38
  \end
39
39
 
40
-
41
40
  \language "R'lyehian"
42
41
  \writing "Tengwar"
43
- \mode "Glaemscrafu"
42
+ \mode "R'lyehian Tengwar - G*"
44
43
  \version "0.1.1"
45
44
  \authors "H.P.Lovecraft & The Great Ancient Gods, impl. Fthalagn"
46
45
 
46
+ \world other_world
47
+ \invention experimental
48
+
47
49
  \raw_mode "raw-tengwar"
48
50
 
49
51
  \charset tengwar_ds_sindarin true
@@ -241,7 +243,10 @@ y palatal semi vowel ?
241
243
  ! --> PUNCT_EXCLAM
242
244
  ? --> PUNCT_INTERR
243
245
  · --> PUNCT_DOT
244
-
246
+
247
+ \** NBSP **\
248
+ {NBSP} --> NBSP
249
+
245
250
  \** Quotes **\
246
251
 
247
252
  “ --> DQUOT_OPEN
@@ -37,10 +37,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
37
37
 
38
38
  \language "Sindarin"
39
39
  \writing "Tengwar"
40
- \mode "Beleriand"
40
+ \mode "Sindarin Tengwar - Beleriand"
41
41
  \version "0.1.3"
42
42
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
43
43
 
44
+ \world arda
45
+ \invention jrrt
46
+
44
47
  \raw_mode "raw-tengwar"
45
48
 
46
49
  \charset tengwar_ds_sindarin true
@@ -296,7 +299,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
296
299
 
297
300
  ' --> {NULL}
298
301
  ’ --> {NULL}
299
-
302
+
303
+ \** NBSP **\
304
+ {NBSP} --> NBSP
305
+
300
306
  \** Quotes **\
301
307
 
302
308
  “ --> DQUOT_OPEN
@@ -32,10 +32,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
32
32
 
33
33
  \language "Sindarin"
34
34
  \writing "Cirth"
35
- \mode "Angerthas Daeron"
35
+ \mode "Sindarin Cirth - Angerthas Daeron"
36
36
  \version "0.0.4"
37
37
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
38
38
 
39
+ \world arda
40
+ \invention jrrt
41
+
39
42
  \charset cirth_ds true
40
43
 
41
44
  \** We redefine the output space to have something beautiful, especially with erebor1 and erebor2 **\
@@ -34,15 +34,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
34
34
  \entry "0.0.8" "Added support for the FreeMonoTengwar font"
35
35
  \entry "0.1.0" "Added support for the Tengwar Elfica font"
36
36
  \entry "0.1.1" "Added support for inlined raw tengwar"
37
+ \entry "0.1.2" "Added support for non-breaking spaces"
37
38
  \end
38
39
 
39
40
  \language "Sindarin"
40
41
  \writing "Tengwar"
41
- \mode "General Use"
42
- \version "0.1.1"
42
+ \mode "Sindarin Tengwar - General Use"
43
+ \version "0.1.2"
43
44
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
44
45
 
45
- \raw_mode "raw-tengwar"
46
+ \world arda
47
+ \invention jrrt
46
48
 
47
49
  \charset tengwar_ds_sindarin true
48
50
  \charset tengwar_ds_parmaite false
@@ -51,6 +53,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
51
53
  \charset tengwar_ds_elfica false
52
54
  \charset tengwar_freemono false
53
55
 
56
+ \raw_mode "raw-tengwar"
57
+
54
58
  \beg options
55
59
 
56
60
  \beg option reverse_o_u_tehtar U_UP_O_DOWN
@@ -298,7 +302,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
298
302
 
299
303
  ' --> {NULL}
300
304
  ’ --> {NULL}
301
-
305
+
306
+ \** NBSP **\
307
+ {NBSP} --> NBSP
308
+
302
309
  \** Quotes **\
303
310
 
304
311
  “ --> DQUOT_OPEN
@@ -32,15 +32,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
32
32
  \entry "0.0.6" "Ported some options from the quenya mode"
33
33
  \entry "0.1.0" "Added support for the Tengwar Elfica font"
34
34
  \entry "0.1.1" "Added support for inlined raw tengwar"
35
+ \entry "0.1.2" "Added support for non-breaking spaces"
35
36
  \end
36
37
 
37
38
  \language "Telerin"
38
39
  \writing "Tengwar"
39
- \mode "Glaemscrafu"
40
- \version "0.1.1"
40
+ \mode "Telerin Tengwar - G*"
41
+ \version "0.1.2"
41
42
  \authors "Talagan (Benjamin Babut), based on J.R.R Tolkien"
42
43
 
43
- \raw_mode "raw-tengwar"
44
+ \world arda
45
+ \invention experimental
44
46
 
45
47
  \charset tengwar_ds_sindarin true
46
48
  \charset tengwar_ds_parmaite false
@@ -49,6 +51,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
49
51
  \charset tengwar_ds_elfica false
50
52
  \charset tengwar_freemono false
51
53
 
54
+ \raw_mode "raw-tengwar"
52
55
 
53
56
  \beg options
54
57
 
@@ -340,7 +343,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
340
343
 
341
344
  ' --> {NULL}
342
345
  ’ --> {NULL}
343
-
346
+
347
+ \** NBSP **\
348
+ {NBSP} --> NBSP
349
+
344
350
  \** Quotes **\
345
351
 
346
352
  “ --> DQUOT_OPEN
@@ -22,18 +22,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22
22
 
23
23
  **\
24
24
 
25
- \** 0.0.3 : Moved out space to general element **\
25
+ \beg changelog
26
+ \entry "0.0.1" "Initial version"
27
+ \entry "0.0.2" "Adding quotes handling"
28
+ \entry "0.0.3" " Moved out space to general element"
29
+ \end
26
30
 
27
31
  \language "Valarin"
28
32
  \writing "Sarati"
29
- \mode "Glaemscrafu"
30
- \version "0.0.2"
33
+ \mode "Valarin Sarati - G*"
34
+ \version "0.0.3"
31
35
  \authors "Talagan (Benjamin Babut), based on J.R.R. Tolkien"
32
36
 
33
- \beg changelog
34
- \entry "0.0.1" "Initial version"
35
- \entry "0.0.2" "Adding quotes handling"
36
- \end
37
+ \world arda
38
+ \invention experimental
37
39
 
38
40
  \charset sarati_eldamar true
39
41
 
@@ -29,15 +29,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29
29
  \entry "0.0.5" "Added support for the FreeMonoTengwar font"
30
30
  \entry "0.1.0" "Added support for the Tengwar Elfica font"
31
31
  \entry "0.1.1" "Added support for inlined raw tengwar"
32
+ \entry "0.1.2" "Added support for non-breaking spaces"
32
33
  \end
33
34
 
34
35
  \** Westron mode for glaemscribe (MAY BE INCOMPLETE) **\
35
36
  \language Westron
36
37
  \writing Tengwar
37
- \mode Glaemscrafu
38
- \version "0.1.1"
38
+ \mode "Westron Tengwar - G*"
39
+ \version "0.1.2"
39
40
  \authors "Talagan (Benjamin Babut), based on J.R.R. Tolkien"
40
41
 
42
+ \world arda
43
+ \invention experimental
44
+
41
45
  \raw_mode "raw-tengwar"
42
46
 
43
47
  \charset tengwar_ds_sindarin true
@@ -337,7 +341,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
337
341
 
338
342
  ' --> {NULL}
339
343
  ’ --> {NULL}
340
-
344
+
345
+ \** NBSP **\
346
+ {NBSP} --> NBSP
347
+
341
348
  \** Quotes **\
342
349
 
343
350
  “ --> DQUOT_OPEN
@@ -25,18 +25,31 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25
25
  \beg changelog
26
26
  \entry "0.0.2" "Porting to virtual chars"
27
27
  \entry "0.1.1" "Added support for inlined raw tengwar"
28
+ \entry "0.1.2" "Doing some cleaning"
29
+ \entry "0.1.3" "Added support for non-breaking spaces"
28
30
  \end
29
31
 
30
32
  \language "Old English"
31
33
  \writing "Tengwar"
32
- \mode "West Saxon"
33
- \version "0.1.1"
34
+ \mode "Old English Tengwar - 'West Saxon' Usage"
35
+ \version "0.1.3"
34
36
  \authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
35
37
 
38
+ \world primary_related_to_arda
39
+ \invention jrrt
40
+
36
41
  \raw_mode "raw-tengwar"
37
42
 
43
+ \charset tengwar_ds_annatar false
38
44
  \charset tengwar_ds_eldamar true
39
- \** Other charsets cannot handle all diacritics we are using here ... **\
45
+ \charset tengwar_ds_parmaite false
46
+ \charset tengwar_ds_annatar false
47
+ \charset tengwar_ds_elfica false
48
+
49
+ \** 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
52
+ **\
40
53
 
41
54
  \beg options
42
55
  \beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_WAVE
@@ -77,12 +90,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
77
90
 
78
91
  \beg rules litteral
79
92
 
93
+ {_GEMINATE_} === E_TEHTA_DOUBLE_INF
94
+
80
95
  \if "consonant_modification_style == CONSONANT_MODIFICATION_STYLE_WAVE"
81
- {GEMINATE} === GEMINATE_SIGN_TILD
82
- {NASAL} === NASALIZE_SIGN_TILD
96
+ {_NASAL_} === NASALIZE_SIGN_TILD
83
97
  \else
84
- {GEMINATE} === GEMINATE_SIGN
85
- {NASAL} === NASALIZE_SIGN
98
+ {_NASAL_} === NASALIZE_SIGN
86
99
  \endif
87
100
 
88
101
  {A} === a
@@ -154,10 +167,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
154
167
  {L1_KER_2} === ċ * c * k
155
168
  {L1_IMG_2} === CALMA * QUESSE * QUESSE
156
169
 
157
- {L1_KER_1_GEMS} === tt * pp
158
- {L1_IMG_1_GEMS} === TINCO GEMINATE_DOUBLE * PARMA GEMINATE_DOUBLE
159
- {L1_KER_2_GEMS} === ċċ * cc * kk
160
- {L1_IMG_2_GEMS} === CALMA GEMINATE_DOUBLE * QUESSE GEMINATE_DOUBLE * QUESSE GEMINATE_DOUBLE
170
+ {L1_KER_1_GEMS} === tt * pp
171
+ {L1_IMG_1_GEMS} === TINCO {_GEMINATE_} * PARMA {_GEMINATE_}
172
+ {L1_KER_2_GEMS} === ċċ * cc * kk
173
+ {L1_IMG_2_GEMS} === CALMA {_GEMINATE_} * QUESSE {_GEMINATE_} * QUESSE {_GEMINATE_}
161
174
 
162
175
 
163
176
  {S_VOWELS_WN}[{L1_KER_1}]{S_VOWELS_WN} --> 2,1,3 --> [{L1_IMG_1}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
@@ -165,8 +178,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
165
178
  {S_VOWELS_WN}[{L1_KER_2}]{S_VOWELS_WN} --> 2,1,3 --> [{L1_IMG_2}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
166
179
  {S_VOWELS_WN}[{L1_KER_2_GEMS}] --> 2,1 --> [{L1_IMG_2_GEMS}]{_S_VOWELS_UP_WN_}
167
180
 
168
- {S_VOWELS_WN}[ nt * mp ]{S_VOWELS_WN} --> 2,1,3 --> [ TINCO TILD_SUP_S * PARMA TILD_SUP_S ]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
169
- {S_VOWELS_WN}[ nċ * nc ]{S_VOWELS_WN} --> 2,1,3 --> [ CALMA TILD_SUP_S * QUESSE TILD_SUP_S ]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
181
+ {S_VOWELS_WN}[ nt * mp ]{S_VOWELS_WN} --> 2,1,3 --> [ {L1_IMG_1} ] {_NASAL_} {_S_VOWELS_UP_WN_} {_S_VOWELS_DN_WN_}
182
+ {S_VOWELS_WN}[ nċ * nc ]{S_VOWELS_WN} --> 2,1,3 --> [ CALMA * QUESSE ] {_NASAL_} {_S_VOWELS_UP_WN_} {_S_VOWELS_DN_WN_}
170
183
 
171
184
 
172
185
  \** ## 2nd Line (Voiced occlusives) **\
@@ -174,14 +187,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
174
187
  {L2_KER} === d * b * ġ * g
175
188
  {L2_IMG} === ANDO * UMBAR * ANGA * UNGWE
176
189
 
177
- {L2_KER_GEMS} === dd * bb * (ċġ,ġġ) * (cg,gg)
178
- {L2_IMG_GEMS} === ANDO GEMINATE_DOUBLE * UMBAR GEMINATE_DOUBLE * ANGA GEMINATE_DOUBLE * UNGWE GEMINATE_DOUBLE
190
+ {L2_KER_GEMS} === dd * bb * (ċġ,ġġ) * (cg,gg)
191
+ {L2_IMG_GEMS} === ANDO {_GEMINATE_} * UMBAR {_GEMINATE_} * ANGA {_GEMINATE_} * UNGWE {_GEMINATE_}
179
192
 
180
193
 
181
- {S_VOWELS_WN}[{L2_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{L2_IMG}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
182
- {S_VOWELS_WN}[{L2_KER_GEMS}] --> 2,1 --> [{L2_IMG_GEMS}]{_S_VOWELS_UP_WN_}
194
+ {S_VOWELS_WN}[{L2_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{L2_IMG}] {_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
195
+ {S_VOWELS_WN}[{L2_KER_GEMS}] --> 2,1 --> [{L2_IMG_GEMS}] {_S_VOWELS_UP_WN_}
183
196
 
184
- {S_VOWELS_WN}[ nd * mb * nġ * ng ]{S_VOWELS_WN} --> 2,1,3 --> [ ANDO TILD_SUP_L * UMBAR TILD_SUP_L * ANGA TILD_SUP_L * UNGWE TILD_SUP_L ]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
197
+ {S_VOWELS_WN}[ nd * mb * nġ * ng ]{S_VOWELS_WN} --> 2,1,3 --> [ {L2_IMG} ] {_NASAL_} {_S_VOWELS_UP_WN_} {_S_VOWELS_DN_WN_}
185
198
 
186
199
 
187
200
  \** ## 3rd Line (Voiceless fricatives) **\
@@ -191,10 +204,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
191
204
  {L3_KER_2} === ç * (χ,ħ)
192
205
  {L3_IMG_2} === AHA * HWESTA
193
206
 
194
- {L3_KER_1_GEMS} === þþ * ff
195
- {L3_IMG_1_GEMS} === SULE GEMINATE_DOUBLE * FORMEN GEMINATE_DOUBLE
196
- {L3_KER_2_GEMS} === çç * (χχ,ħħ)
197
- {L3_IMG_2_GEMS} === AHA GEMINATE_DOUBLE * HWESTA GEMINATE_DOUBLE
207
+ {L3_KER_1_GEMS} === þþ * ff
208
+ {L3_IMG_1_GEMS} === SULE {_GEMINATE_} * FORMEN {_GEMINATE_}
209
+ {L3_KER_2_GEMS} === çç * (χχ,ħħ)
210
+ {L3_IMG_2_GEMS} === AHA {_GEMINATE_} * HWESTA {_GEMINATE_}
198
211
 
199
212
  {S_VOWELS_WN}[{L3_KER_1}]{S_VOWELS_WN} --> 2,1,3 --> [{L3_IMG_1}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
200
213
  {S_VOWELS_WN}[{L3_KER_1_GEMS}] --> 2,1 --> [{L3_IMG_1_GEMS}]{_S_VOWELS_UP_WN_}
@@ -208,8 +221,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
208
221
  {L4_KER} === ð * v * j * ȝ
209
222
  {L4_IMG} === ANTO * AMPA * ANCA * UNQUE
210
223
 
211
- {L4_KER_GEMS} === ðð * vv * jj * ȝȝ
212
- {L4_IMG_GEMS} === ANTO GEMINATE_DOUBLE * AMPA GEMINATE_DOUBLE * ANCA GEMINATE_DOUBLE * UNQUE GEMINATE_DOUBLE
224
+ {L4_KER_GEMS} === ðð * vv * jj * ȝȝ
225
+ {L4_IMG_GEMS} === ANTO {_GEMINATE_} * AMPA {_GEMINATE_} * ANCA {_GEMINATE_} * UNQUE {_GEMINATE_}
213
226
 
214
227
 
215
228
  {S_VOWELS_WN}[{L4_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{L4_IMG}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
@@ -223,16 +236,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
223
236
  {L5_IMG} === NUMEN * MALTA
224
237
 
225
238
  {S_VOWELS_WN}[{L5_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{L5_IMG}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
226
- {S_VOWELS_WN}[ nn * mm ]{S_VOWELS_WN} --> 2,1,3 --> [ NUMEN TILD_SUP_L * MALTA TILD_SUP_L ]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
239
+ {S_VOWELS_WN}[ nn * mm ]{S_VOWELS_WN} --> 2,1,3 --> [ {L5_IMG} ] {_NASAL_} {_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
227
240
 
228
241
 
229
242
  \** ## 6th Line (Approximants == fr : Spirantes) **\
230
243
  \** ## Short upper dash for nasalisation **\
231
244
 
232
- {L6_KER} === r * ĭ
233
- {L6_IMG} === ORE * ANNA
234
- {L6_KER_GEMS} === rr * ĭĭ
235
- {L6_IMG_GEMS} === ORE GEMINATE_DOUBLE * ANNA GEMINATE_DOUBLE
245
+ {L6_KER} === r * ĭ
246
+ {L6_IMG} === ORE * ANNA
247
+ {L6_KER_GEMS} === rr * ĭĭ
248
+ {L6_IMG_GEMS} === ORE {_GEMINATE_} * ANNA {_GEMINATE_}
236
249
 
237
250
  {S_VOWELS_WN}[{L6_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{L6_IMG}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
238
251
  {S_VOWELS_WN}[{L6_KER_GEMS}] --> 2,1 --> [{L6_IMG_GEMS}]{_S_VOWELS_UP_WN_}
@@ -242,8 +255,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
242
255
  \** ## **\
243
256
 
244
257
  {S_VOWELS_WN}w{S_VOWELS_WN} --> ROMEN {_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
245
- {S_VOWELS_WN}ww --> ROMEN GEMINATE_DOUBLE {_S_VOWELS_UP_WN_}
246
- {S_VOWELS_WN}[l * ll] --> 2,1 --> [LAMBE * LAMBE GEMINATE_DOUBLE]{_S_VOWELS_UP_WN_}
258
+ {S_VOWELS_WN}ww --> ROMEN {_GEMINATE_} {_S_VOWELS_UP_WN_}
259
+ {S_VOWELS_WN}[l * ll] --> 2,1 --> [LAMBE * LAMBE {_GEMINATE_}]{_S_VOWELS_UP_WN_}
247
260
  {S_VOWELS_WN}ld --> ALDA {_S_VOWELS_UP_WN_}
248
261
 
249
262
 
@@ -252,7 +265,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
252
265
  {L8_KER} === s * z
253
266
  {L8_IMG} === SILME_NUQUERNA * ESSE_NUQUERNA
254
267
  {L8_KER_GEMS} === ss * zz
255
- {L8_IMG_GEMS} === SILME_NUQUERNA GEMINATE_DOUBLE * ESSE_NUQUERNA GEMINATE_DOUBLE
268
+ {L8_IMG_GEMS} === SILME_NUQUERNA {_GEMINATE_} * ESSE_NUQUERNA {_GEMINATE_}
256
269
 
257
270
  {S_VOWELS_WN}[{L8_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{L8_IMG}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
258
271
  {S_VOWELS_WN}[{L8_KER_GEMS}] --> 2,1 --> [{L8_IMG_GEMS}]{_S_VOWELS_UP_WN_}
@@ -270,21 +283,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
270
283
  \** ## Ligatures **\
271
284
  \** ## **\
272
285
  {LINE_VARIOUS_KER} === sċ * hw * çt * (χt,ħt)
273
- {LINE_VARIOUS_IMG} === ANCA_CLOSED * HARP_SHAPED * AHA_TINCO * HWESTA_TINCO
286
+ {LINE_VARIOUS_IMG} === ANCA_CLOSED * TW_HW_LOWDHAM * AHA_TINCO * HWESTA_TINCO
274
287
 
275
288
  {S_VOWELS_WN}[{LINE_VARIOUS_KER}]{S_VOWELS_WN} --> 2,1,3 --> [{LINE_VARIOUS_IMG}]{_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
276
289
 
277
290
  \** ## Various **\
278
291
  \** ## **\
279
292
  {S_VOWELS_WN}h{S_VOWELS_WN} --> HYARMEN {_S_VOWELS_UP_WN_}{_S_VOWELS_DN_WN_}
280
- {S_VOWELS_WN}hh --> HYARMEN GEMINATE_DOUBLE {_S_VOWELS_UP_WN_}
293
+ {S_VOWELS_WN}hh --> HYARMEN {_GEMINATE_} {_S_VOWELS_UP_WN_}
281
294
 
282
295
 
283
296
  \** ## X **\
284
297
  \** ## For x, due to the cedilla, we cannot put tehtas under the tengwa. **\
285
298
  {S_VOWELS_WN}x --> QUESSE SHOOK_LEFT_L {_S_VOWELS_UP_WN_}
286
- {S_VOWELS_WN}xx --> QUESSE SHOOK_LEFT_L GEMINATE_DOUBLE {_S_VOWELS_UP_WN_}
287
- {S_VOWELS_WN}nx --> QUESSE SHOOK_LEFT_L TILD_SUP_S {_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_}
288
301
  \end
289
302
 
290
303
  \beg rules punctuation
@@ -311,6 +324,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
311
324
  ' --> {NULL}
312
325
  ’ --> {NULL}
313
326
 
327
+ \** NBSP **\
328
+ {NBSP} --> NBSP
329
+
314
330
  \** Quotes **\
315
331
 
316
332
  “ --> DQUOT_OPEN
data/lib/api/constants.rb CHANGED
@@ -24,6 +24,10 @@ module Glaemscribe
24
24
  module API
25
25
  WORD_BREAKER = "|"
26
26
  WORD_BOUNDARY = "_"
27
+
28
+ SPECIAL_CHAR_UNDERSCORE = '➊'
29
+ SPECIAL_CHAR_NBSP = '➋'
30
+
27
31
  UNKNOWN_CHAR_OUTPUT = "☠"
28
32
  VIRTUAL_CHAR_OUTPUT = "☢" # When transcribing a virtual char...
29
33
  end
data/lib/api/fragment.rb CHANGED
@@ -54,11 +54,7 @@ module Glaemscribe
54
54
  eq =~ EQUIVALENCE_RX_IN
55
55
  if $1
56
56
  eq = $1.split(EQUIVALENCE_SEPARATOR,-1).map{ |elt|
57
- elt = elt.strip
58
- if elt.empty?
59
- @rule.errors << "Null members are not allowed in equivalences!"
60
- return
61
- end
57
+ elt = elt.strip
62
58
  elt.split(/\s/)
63
59
  }
64
60
  else
data/lib/api/mode.rb CHANGED
@@ -39,6 +39,8 @@ module Glaemscribe
39
39
 
40
40
  attr_accessor :raw_mode_name # Read from glaeml
41
41
 
42
+ attr_accessor :world, :invention
43
+
42
44
  attr_reader :latest_option_values
43
45
 
44
46
  def initialize(name)
@@ -126,6 +128,12 @@ module Glaemscribe
126
128
  @raw_mode = loaded_raw_mode.deep_clone
127
129
  end
128
130
 
131
+ def replace_specials(l)
132
+ l.
133
+ gsub("_",SPECIAL_CHAR_UNDERSCORE).
134
+ gsub("\u00a0",SPECIAL_CHAR_NBSP)
135
+ end
136
+
129
137
  def strict_transcribe(content, charset = nil)
130
138
  charset = default_charset if !charset
131
139
  return false, "*** No charset usable for transcription. Failed!" if !charset
@@ -137,6 +145,7 @@ module Glaemscribe
137
145
  l[-1] = ""
138
146
  restore_lf = true
139
147
  end
148
+ l = replace_specials(l)
140
149
  l = @pre_processor.apply(l)
141
150
  l = @processor.apply(l)
142
151
  l = @post_processor.apply(l, charset)