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.
- checksums.yaml +4 -4
- data/glaemresources/charsets/tengwar_ds_annatar.cst +509 -0
- data/glaemresources/charsets/tengwar_ds_eldamar.cst +22 -16
- data/glaemresources/charsets/tengwar_ds_elfica.cst +461 -0
- data/glaemresources/charsets/tengwar_ds_parmaite.cst +500 -0
- data/glaemresources/charsets/{tengwar_ds.cst → tengwar_ds_sindarin.cst} +59 -62
- data/glaemresources/charsets/tengwar_freemono.cst +176 -0
- data/glaemresources/charsets/unicode_runes.cst +1 -0
- data/glaemresources/modes/adunaic.glaem +50 -28
- data/glaemresources/modes/blackspeech.glaem +156 -82
- data/glaemresources/modes/english-ipa.glaem +49 -0
- data/glaemresources/modes/french-ipa.glaem +49 -0
- data/glaemresources/modes/{oldnorse-medieval.glaem → futhark-runicus.glaem} +4 -4
- data/glaemresources/modes/futhark-younger.glaem +129 -0
- data/glaemresources/modes/{futhorc.glaem.disabled → futhorc.glaem} +76 -38
- data/glaemresources/modes/gothic.glaem +1 -1
- data/glaemresources/modes/khuzdul.glaem +1 -1
- data/glaemresources/modes/mercian.glaem +31 -16
- data/glaemresources/modes/quenya-sarati.glaem +5 -3
- data/glaemresources/modes/quenya.glaem +168 -77
- data/glaemresources/modes/rlyehian.glaem +41 -43
- data/glaemresources/modes/sindarin-beleriand.glaem +39 -17
- data/glaemresources/modes/sindarin-daeron.glaem +1 -1
- data/glaemresources/modes/{sindarin-classical.glaem → sindarin.glaem} +73 -37
- data/glaemresources/modes/telerin.glaem +161 -64
- data/glaemresources/modes/valarin-sarati.glaem +1 -1
- data/glaemresources/modes/westron.glaem +83 -44
- data/glaemresources/modes/westsaxon.glaem +30 -13
- data/lib/api/charset.rb +29 -11
- data/lib/api/charset_parser.rb +15 -3
- data/lib/api/mode.rb +15 -3
- data/lib/api/mode_parser.rb +7 -2
- data/lib/api/option.rb +15 -1
- data/lib/api/post_processor/resolve_virtuals.rb +35 -24
- data/lib/api/transcription_pre_post_processor.rb +2 -1
- metadata +15 -11
- data/glaemresources/modes/blackspeech-annatar.glaem +0 -320
- data/glaemresources/modes/futhark-long-branch.glaem.disabled +0 -101
- 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.
|
37
|
-
\authors "Fthalagn"
|
36
|
+
\version 0.0.3
|
37
|
+
\authors "H.P.Lovecraft & The Great Ancient Gods, impl. Fthalagn"
|
38
38
|
|
39
|
-
\
|
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
|
-
{
|
162
|
-
{
|
163
|
-
|
164
|
-
{
|
165
|
-
|
166
|
-
{
|
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
|
-
{
|
185
|
-
{
|
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} *
|
201
|
-
[ {L1_KER_2} ] [{NULL} * h] {V_D_KER_WN} --> [ {L1_IMG_2} ] [{NULL} *
|
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} *
|
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} *
|
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} *
|
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} *
|
216
|
-
s {V_D_KER_WN} --> SILME_NUQUERNA {
|
217
|
-
z {V_D_KER_WN} --> ESSE_NUQUERNA {
|
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} *
|
220
|
-
h [{NULL} * y * h] {V_D_KER_WN} --> AHA [{NULL} *
|
221
|
-
v [{NULL} * y * h] {V_D_KER_WN} --> VALA [{NULL} *
|
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 {
|
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
|
-
– -->
|
256
|
-
— -->
|
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
|
36
|
-
\authors "Talagan (Benjamin Babut)"
|
38
|
+
\version "0.1.0"
|
39
|
+
\authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
|
37
40
|
|
38
|
-
\charset
|
39
|
-
\charset
|
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
|
138
|
-
mp --> PARMA
|
139
|
-
n{K} --> CALMA
|
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
|
150
|
-
nd --> ANDO
|
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
|
161
|
-
mph --> FORMEN
|
162
|
-
nf --> FORMEN
|
163
|
-
nch --> AHA
|
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
|
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 "
|
39
|
-
\version "0.0
|
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
|
43
|
-
\charset
|
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
|
-
|
47
|
-
\beg option
|
48
|
-
\value
|
49
|
-
\value
|
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 *
|
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
|
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
|
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
|
146
|
-
{V_D_WN}mp --> PARMA
|
147
|
-
{V_D_WN}n{K} --> CALMA
|
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
|
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
|
156
|
-
{V_D_WN}nd --> ANDO
|
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
|
165
|
-
{V_D_WN}mph --> FORMEN
|
166
|
-
{V_D_WN}nf --> FORMEN
|
167
|
-
{V_D_WN}nch --> HWESTA
|
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
|
182
|
-
{V_D_WN}mm --> MALTA
|
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
|
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
|
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
|
231
|
-
{V_D}gw --> UNGWE SEV_TEHTA
|
232
|
-
{V_D}lw --> LAMBE SEV_TEHTA
|
233
|
-
{V_D}nw --> NUMEN SEV_TEHTA
|
234
|
-
{V_D}rw --> ROMEN SEV_TEHTA
|
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
|
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
|
-
|
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
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
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
|
-
{
|
107
|
-
|
108
|
-
|
109
|
-
|
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
|
-
|
113
|
-
{
|
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
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
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
|
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_}
|
139
|
-
ps{V_D_WN} --> PARMA {_V_D_WN_}
|
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}
|
163
|
-
h
|
164
|
-
|
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
|
184
|
-
mm{V_D_WN} --> MALTA
|
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
|
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
|
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}
|
211
|
-
{
|
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
|
-
|
216
|
-
|
217
|
-
|
218
|
-
{
|
219
|
-
{
|
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
|