glaemscribe 1.0.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 +7 -0
- data/LICENSE.txt +19 -0
- data/bin/glaemscribe +307 -0
- data/glaemresources/charsets/cirth_ds.cst +205 -0
- data/glaemresources/charsets/sarati_eldamar.cst +256 -0
- data/glaemresources/charsets/tengwar_ds.cst +318 -0
- data/glaemresources/charsets/unicode_gothic.cst +64 -0
- data/glaemresources/charsets/unicode_runes.cst +120 -0
- data/glaemresources/modes/adunaic.glaem +251 -0
- data/glaemresources/modes/blackspeech-annatar.glaem +318 -0
- data/glaemresources/modes/blackspeech.glaem +260 -0
- data/glaemresources/modes/gothic.glaem +78 -0
- data/glaemresources/modes/khuzdul.glaem +141 -0
- data/glaemresources/modes/mercian.glaem +419 -0
- data/glaemresources/modes/oldnorse-medieval.glaem +127 -0
- data/glaemresources/modes/quenya-sarati.glaem +320 -0
- data/glaemresources/modes/quenya.glaem +307 -0
- data/glaemresources/modes/sindarin-beleriand.glaem +285 -0
- data/glaemresources/modes/sindarin-classical.glaem +276 -0
- data/glaemresources/modes/sindarin-daeron.glaem +182 -0
- data/glaemresources/modes/telerin.glaem +302 -0
- data/glaemresources/modes/valarin-sarati.glaem +210 -0
- data/glaemresources/modes/westron.glaem +340 -0
- data/glaemresources/modes/westsaxon.glaem +342 -0
- data/lib/api/charset.rb +84 -0
- data/lib/api/charset_parser.rb +55 -0
- data/lib/api/constants.rb +29 -0
- data/lib/api/debug.rb +36 -0
- data/lib/api/eval.rb +268 -0
- data/lib/api/fragment.rb +113 -0
- data/lib/api/glaeml.rb +200 -0
- data/lib/api/if_tree.rb +96 -0
- data/lib/api/mode.rb +112 -0
- data/lib/api/mode_parser.rb +314 -0
- data/lib/api/option.rb +64 -0
- data/lib/api/post_processor/reverse.rb +36 -0
- data/lib/api/pre_processor/downcase.rb +35 -0
- data/lib/api/pre_processor/elvish_numbers.rb +47 -0
- data/lib/api/pre_processor/rxsubstitute.rb +40 -0
- data/lib/api/pre_processor/substitute.rb +38 -0
- data/lib/api/pre_processor/up_down_tehta_split.rb +138 -0
- data/lib/api/resource_manager.rb +130 -0
- data/lib/api/rule.rb +99 -0
- data/lib/api/rule_group.rb +159 -0
- data/lib/api/sheaf.rb +70 -0
- data/lib/api/sheaf_chain.rb +86 -0
- data/lib/api/sheaf_chain_iterator.rb +108 -0
- data/lib/api/sub_rule.rb +40 -0
- data/lib/api/transcription_pre_post_processor.rb +118 -0
- data/lib/api/transcription_processor.rb +137 -0
- data/lib/api/transcription_tree_node.rb +91 -0
- data/lib/glaemscribe.rb +70 -0
- metadata +112 -0
@@ -0,0 +1,182 @@
|
|
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
|
+
\** Sindarin Angerthas Daeron mode for glaemscribe **\
|
26
|
+
|
27
|
+
\language "Sindarin"
|
28
|
+
\writing "Cirth"
|
29
|
+
\mode "Angerthas Daeron"
|
30
|
+
\version "0.0.1"
|
31
|
+
\authors "Talagan (Benjamin Babut)"
|
32
|
+
|
33
|
+
\charset cirth_ds true
|
34
|
+
|
35
|
+
\beg preprocessor
|
36
|
+
\** Work exclusively downcase **\
|
37
|
+
\downcase
|
38
|
+
|
39
|
+
\** Simplify trema vowels **\
|
40
|
+
\substitute ä a
|
41
|
+
\substitute ë e
|
42
|
+
\substitute ï i
|
43
|
+
\substitute ö o
|
44
|
+
\substitute ü u
|
45
|
+
\substitute ÿ y
|
46
|
+
|
47
|
+
\** Dis-ambiguate long vowels **\
|
48
|
+
\rxsubstitute "(ā|â|aa)" "á"
|
49
|
+
\rxsubstitute "(ē|ê|ee)" "é"
|
50
|
+
\rxsubstitute "(ī|î|ii)" "í"
|
51
|
+
\rxsubstitute "(ō|ô|oo)" "ó"
|
52
|
+
\rxsubstitute "(ū|û|uu)" "ú"
|
53
|
+
\rxsubstitute "(ȳ|ŷ|yy)" "ý"
|
54
|
+
\end
|
55
|
+
|
56
|
+
\beg processor
|
57
|
+
|
58
|
+
\** We redefine the output space to have something beautiful, especially with erebor1 and erebor2 **\
|
59
|
+
\outspace CIRTH_SPACE_BIG
|
60
|
+
|
61
|
+
\beg rules litteral
|
62
|
+
a --> CIRTH_48
|
63
|
+
á --> CIRTH_49
|
64
|
+
|
65
|
+
b --> CIRTH_2
|
66
|
+
bh --> CIRTH_4
|
67
|
+
c --> CIRTH_18
|
68
|
+
ch --> CIRTH_13
|
69
|
+
|
70
|
+
d --> CIRTH_9
|
71
|
+
|
72
|
+
dh --> CIRTH_11
|
73
|
+
đ --> CIRTH_11
|
74
|
+
ð --> CIRTH_11
|
75
|
+
ðh --> CIRTH_11
|
76
|
+
|
77
|
+
e --> CIRTH_46
|
78
|
+
é --> CIRTH_47
|
79
|
+
|
80
|
+
f --> CIRTH_3
|
81
|
+
ff_ --> CIRTH_3
|
82
|
+
|
83
|
+
g --> CIRTH_19
|
84
|
+
gh --> CIRTH_21
|
85
|
+
ghw --> CIRTH_26
|
86
|
+
gw --> CIRTH_24
|
87
|
+
h --> CIRTH_5 \** . is another one??, V is +h (should be used in combinations, maybe todo) **\
|
88
|
+
i --> CIRTH_39
|
89
|
+
í --> CIRTH_39 CIRTH_39
|
90
|
+
j --> CIRTH_14
|
91
|
+
k --> CIRTH_18
|
92
|
+
kh --> CIRTH_20
|
93
|
+
khw --> CIRTH_25
|
94
|
+
kw --> CIRTH_23
|
95
|
+
l --> CIRTH_31
|
96
|
+
lh --> CIRTH_32
|
97
|
+
m --> CIRTH_6
|
98
|
+
mb --> CIRTH_7
|
99
|
+
mh --> CIRTH_7
|
100
|
+
n --> CIRTH_12
|
101
|
+
nc_ --> CIRTH_22 CIRTH_18 \** equals ŋc **\
|
102
|
+
nd --> CIRTH_38
|
103
|
+
ng --> CIRTH_33
|
104
|
+
|
105
|
+
_ng --> CIRTH_22
|
106
|
+
ng_ --> CIRTH_22
|
107
|
+
ŋ --> CIRTH_22
|
108
|
+
|
109
|
+
nw --> CIRTH_28
|
110
|
+
ngw --> CIRTH_27
|
111
|
+
nj --> CIRTH_17
|
112
|
+
o --> CIRTH_50
|
113
|
+
ó --> CIRTH_51 \** Can use CIRTH_51_ALT **\
|
114
|
+
ö --> CIRTH_52 \** Can use CIRTH_52_ALT **\
|
115
|
+
œ --> CIRTH_52
|
116
|
+
p --> CIRTH_1
|
117
|
+
r --> CIRTH_29
|
118
|
+
rh --> CIRTH_30
|
119
|
+
s --> CIRTH_34 \** Can use CIRTH_35 **\
|
120
|
+
sh --> CIRTH_15
|
121
|
+
ss --> CIRTH_36
|
122
|
+
t --> CIRTH_8
|
123
|
+
th --> CIRTH_10
|
124
|
+
u --> CIRTH_42
|
125
|
+
ú --> CIRTH_43
|
126
|
+
ü --> CIRTH_45_ALT \** Can use CIRTH_45 **\
|
127
|
+
y --> CIRTH_45_ALT \** Can use CIRTH_45 **\
|
128
|
+
v --> CIRTH_4
|
129
|
+
w --> CIRTH_44
|
130
|
+
zh --> CIRTH_16
|
131
|
+
\end
|
132
|
+
|
133
|
+
\beg rules punctuation
|
134
|
+
|
135
|
+
. --> CIRTH_PUNCT_THREE_DOTS
|
136
|
+
.. --> CIRTH_PUNCT_THREE_DOTS
|
137
|
+
... --> CIRTH_PUNCT_THREE_DOTS
|
138
|
+
… --> CIRTH_PUNCT_THREE_DOTS
|
139
|
+
.... --> CIRTH_PUNCT_THREE_DOTS
|
140
|
+
..... --> CIRTH_PUNCT_THREE_DOTS
|
141
|
+
...... --> CIRTH_PUNCT_THREE_DOTS
|
142
|
+
....... --> CIRTH_PUNCT_THREE_DOTS
|
143
|
+
|
144
|
+
, --> CIRTH_PUNCT_MID_DOT
|
145
|
+
: --> CIRTH_PUNCT_TWO_DOTS
|
146
|
+
; --> CIRTH_PUNCT_TWO_DOTS
|
147
|
+
! --> CIRTH_PUNCT_THREE_DOTS
|
148
|
+
? --> CIRTH_PUNCT_THREE_DOTS
|
149
|
+
· --> {NULL}
|
150
|
+
|
151
|
+
- --> {NULL}
|
152
|
+
– --> CIRTH_PUNCT_TWO_DOTS
|
153
|
+
— --> CIRTH_PUNCT_TWO_DOTS
|
154
|
+
|
155
|
+
\** Apostrophe **\
|
156
|
+
|
157
|
+
' --> {NULL}
|
158
|
+
’ --> {NULL}
|
159
|
+
|
160
|
+
\** Quotes **\
|
161
|
+
|
162
|
+
“ --> {NULL}
|
163
|
+
” --> {NULL}
|
164
|
+
« --> {NULL}
|
165
|
+
» --> {NULL}
|
166
|
+
|
167
|
+
[ --> CIRTH_PUNCT_THREE_DOTS_L
|
168
|
+
] --> CIRTH_PUNCT_THREE_DOTS_L
|
169
|
+
( --> CIRTH_PUNCT_THREE_DOTS_L
|
170
|
+
) --> CIRTH_PUNCT_THREE_DOTS_L
|
171
|
+
{ --> CIRTH_PUNCT_THREE_DOTS_L
|
172
|
+
} --> CIRTH_PUNCT_THREE_DOTS_L
|
173
|
+
< --> CIRTH_PUNCT_THREE_DOTS_L
|
174
|
+
> --> CIRTH_PUNCT_THREE_DOTS_L
|
175
|
+
|
176
|
+
/ --> CIRTH_PUNCT_FOUR_DOTS
|
177
|
+
|
178
|
+
\end
|
179
|
+
\end
|
180
|
+
|
181
|
+
|
182
|
+
|
@@ -0,0 +1,302 @@
|
|
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
|
+
\** Telerin mode for glaemscribe (MAY BE INCOMPLETE) - Derived from Quenya **\
|
26
|
+
|
27
|
+
\language "Telerin"
|
28
|
+
\writing "Tengwar"
|
29
|
+
\mode "Glaemscrafu"
|
30
|
+
\version "0.0.1"
|
31
|
+
\authors "Talagan (Benjamin Babut)"
|
32
|
+
|
33
|
+
\charset tengwar_ds true
|
34
|
+
|
35
|
+
\beg options
|
36
|
+
\option reverse_numbers true
|
37
|
+
\beg option numbers_base BASE_12
|
38
|
+
\value BASE_10 10
|
39
|
+
\value BASE_12 12
|
40
|
+
\end
|
41
|
+
\end
|
42
|
+
|
43
|
+
\beg preprocessor
|
44
|
+
\** Work exclusively downcase **\
|
45
|
+
\downcase
|
46
|
+
|
47
|
+
\** Simplify trema vowels **\
|
48
|
+
\substitute ä a
|
49
|
+
\substitute ë e
|
50
|
+
\substitute ï i
|
51
|
+
\substitute ö o
|
52
|
+
\substitute ü u
|
53
|
+
\substitute ÿ y
|
54
|
+
|
55
|
+
\** Dis-ambiguate long vowels **\
|
56
|
+
\rxsubstitute "(ā|â|aa)" "á"
|
57
|
+
\rxsubstitute "(ē|ê|ee)" "é"
|
58
|
+
\rxsubstitute "(ī|î|ii)" "í"
|
59
|
+
\rxsubstitute "(ō|ô|oo)" "ó"
|
60
|
+
\rxsubstitute "(ū|û|uu)" "ú"
|
61
|
+
\rxsubstitute "(ȳ|ŷ|yy)" "ý"
|
62
|
+
|
63
|
+
\substitute "qu" "q" \** Dis-ambiguate qu **\
|
64
|
+
|
65
|
+
\elvish_numbers "\\eval numbers_base" "\\eval reverse_numbers"
|
66
|
+
\end
|
67
|
+
|
68
|
+
\beg processor
|
69
|
+
|
70
|
+
\beg rules litteral
|
71
|
+
{A} === a
|
72
|
+
{AA} === á
|
73
|
+
{E} === e
|
74
|
+
{EE} === é
|
75
|
+
{I} === i
|
76
|
+
{II} === í
|
77
|
+
{O} === o
|
78
|
+
{OO} === ó
|
79
|
+
{U} === u
|
80
|
+
{UU} === ú
|
81
|
+
|
82
|
+
{AI} === {A}{I}
|
83
|
+
{AU} === {A}{U}
|
84
|
+
{EU} === {E}{U}
|
85
|
+
{IU} === {I}{U}
|
86
|
+
{OI} === {O}{I}
|
87
|
+
{UI} === {U}{I}
|
88
|
+
|
89
|
+
|
90
|
+
{K} === (c,k)
|
91
|
+
{W} === (v,w)
|
92
|
+
{SS} === (z,ss)
|
93
|
+
|
94
|
+
\** {MB} === (b,mb) **\
|
95
|
+
\** {SS} === (z,ss) **\
|
96
|
+
|
97
|
+
{VOWELS} === {A} * {E} * {I} * {O} * {U}
|
98
|
+
{LVOWELS} === {AA} * {EE} * {II} * {OO} * {UU}
|
99
|
+
|
100
|
+
{TEHTA_XS} === A_TEHTA_XS * E_TEHTA_XS * I_TEHTA_XS * O_TEHTA_XS * U_TEHTA_XS
|
101
|
+
{TEHTA__S} === A_TEHTA_S * E_TEHTA_S * I_TEHTA_S * O_TEHTA_S * U_TEHTA_S
|
102
|
+
{TEHTA__L} === A_TEHTA_L * E_TEHTA_L * I_TEHTA_L * O_TEHTA_L * U_TEHTA_L
|
103
|
+
{TEHTA_XL} === A_TEHTA_XL * E_TEHTA_XL * I_TEHTA_XL * O_TEHTA_XL * U_TEHTA_XL
|
104
|
+
|
105
|
+
{DIPHTHONGS} === {AI} * {AU} * {EU} * {IU} * {OI} * {UI}
|
106
|
+
{DIPHTHENGS} === YANTA A_TEHTA_L * URE A_TEHTA_L * URE E_TEHTA_L * URE I_TEHTA_L * YANTA O_TEHTA_L * YANTA U_TEHTA_L
|
107
|
+
|
108
|
+
|
109
|
+
{V_D_KER} === [ {VOWELS} * {DIPHTHONGS} ]
|
110
|
+
{V_D_IMG_XS} === [ {TEHTA_XS} * {DIPHTHENGS} ]
|
111
|
+
{V_D_IMG__S} === [ {TEHTA__L} * {DIPHTHENGS} ]
|
112
|
+
{V_D_IMG__L} === [ {TEHTA__S} * {DIPHTHENGS} ]
|
113
|
+
{V_D_IMG_XL} === [ {TEHTA_XL} * {DIPHTHENGS} ]
|
114
|
+
|
115
|
+
{V_D_KER_WN} === [ {VOWELS} * {DIPHTHONGS} * {NULL} ]
|
116
|
+
{V_D_IMG_XS_WN} === [ {TEHTA_XS} * {DIPHTHENGS} * {NULL} ]
|
117
|
+
{V_D_IMG__S_WN} === [ {TEHTA__L} * {DIPHTHENGS} * {NULL} ]
|
118
|
+
{V_D_IMG__L_WN} === [ {TEHTA__S} * {DIPHTHENGS} * {NULL} ]
|
119
|
+
{V_D_IMG_XL_WN} === [ {TEHTA_XL} * {DIPHTHENGS} * {NULL} ]
|
120
|
+
|
121
|
+
\** VOWEL RULES **\
|
122
|
+
[{VOWELS}] --> TELCO[{TEHTA_XS}] \** Replace isolated short vowels **\
|
123
|
+
[{LVOWELS}] --> ARA[{TEHTA_XS}] \** Replace long vowels **\
|
124
|
+
[{DIPHTHONGS}] --> [{DIPHTHENGS}] \** Replace diphthongs **\
|
125
|
+
|
126
|
+
\** TELERIN: changed v/w, removed all y rules **\
|
127
|
+
|
128
|
+
\** ===================== **\
|
129
|
+
\** 1ST LINE RULES **\
|
130
|
+
\** ===================== **\
|
131
|
+
{L1_KER_1} === t * p
|
132
|
+
{L1_IMG_1} === TINCO * PARMA
|
133
|
+
{L1_KER_2} === {K} * q
|
134
|
+
{L1_IMG_2} === CALMA * QUESSE
|
135
|
+
{L1_KER_1_GEMS} === tt * pp
|
136
|
+
{L1_IMG_1_GEMS} === TINCO DASH_INF_S * PARMA DASH_INF_S
|
137
|
+
|
138
|
+
\** NORMAL **\
|
139
|
+
[ {L1_KER_1} ] {V_D_KER_WN} --> [ {L1_IMG_1} ] {V_D_IMG__S_WN}
|
140
|
+
[ {L1_KER_2} ] {V_D_KER_WN} --> [ {L1_IMG_2} ] {V_D_IMG__S_WN}
|
141
|
+
|
142
|
+
\** GEMINATED **\
|
143
|
+
[ {L1_KER_1_GEMS} ] {V_D_KER_WN} --> [ {L1_IMG_1_GEMS} ] {V_D_IMG__S_WN} \** Tengscribe uses S but L is probably better **\
|
144
|
+
{K}{K}{V_D_KER_WN} --> CALMA DASH_INF_S {V_D_IMG__S_WN}
|
145
|
+
|
146
|
+
ts{V_D_KER_WN}_ --> TINCO SHOOK_RIGHT_L {V_D_IMG__S_WN}
|
147
|
+
ps{V_D_KER_WN}_ --> PARMA SHOOK_RIGHT_L {V_D_IMG__S_WN}
|
148
|
+
x{V_D_KER_WN} --> CALMA SHOOK_LEFT_L {V_D_IMG__S_WN} \** render ks for x **\
|
149
|
+
|
150
|
+
\** ===================== **\
|
151
|
+
\** 2ND LINE RULES **\
|
152
|
+
\** ===================== **\
|
153
|
+
{L2_KER} === nd * mb * ng * ngw
|
154
|
+
{L2_IMG} === ANDO * UMBAR * ANGA * UNGWE
|
155
|
+
|
156
|
+
\** STANDARD **\
|
157
|
+
[{L2_KER}]{V_D_KER_WN} --> [{L2_IMG}]{V_D_IMG_XL_WN}
|
158
|
+
|
159
|
+
{L2_KER_2} === d * b * g
|
160
|
+
{L2_IMG_2} === ORE * VALA * ANNA
|
161
|
+
|
162
|
+
\** STANDARD **\
|
163
|
+
[{L2_KER_2}]{V_D_KER_WN} --> [{L2_IMG_2}]{V_D_IMG__S_WN}
|
164
|
+
|
165
|
+
\** ===================== **\
|
166
|
+
\** 3RD LINE RULES **\
|
167
|
+
\** ===================== **\
|
168
|
+
{L3_KER_1} === th * f
|
169
|
+
{L3_IMG_1} === SULE * FORMEN
|
170
|
+
{L3_KER_2} === h * hw
|
171
|
+
{L3_IMG_2} === AHA * HWESTA
|
172
|
+
|
173
|
+
\** NORMAL **\
|
174
|
+
[{L3_KER_1}]{V_D_KER_WN} --> [{L3_IMG_1}]{V_D_IMG__S_WN}
|
175
|
+
[{L3_KER_2}]{V_D_KER_WN} --> [{L3_IMG_2}]{V_D_IMG__S_WN} \** Tengscribe uses S but L is probably better **\
|
176
|
+
|
177
|
+
\** Override h with vowels (descendent) **\
|
178
|
+
_h{V_D_KER} --> HYARMEN {V_D_IMG__L}
|
179
|
+
h[{LVOWELS}] --> HYARMEN ARA [{TEHTA_XS}]
|
180
|
+
h --> AHA
|
181
|
+
|
182
|
+
\** ===================== **\
|
183
|
+
\** 4TH LINE RULES **\
|
184
|
+
\** ===================== **\
|
185
|
+
{L4_KER} === nt * mp * nc * nq \** Not nqu, due to preprocessor **\
|
186
|
+
{L4_IMG} === ANTO * AMPA * ANCA * UNQUE
|
187
|
+
|
188
|
+
\** NORMAL **\
|
189
|
+
[{L4_KER}]{V_D_KER_WN} --> [{L4_IMG}]{V_D_IMG_XL_WN}
|
190
|
+
|
191
|
+
\** ===================== **\
|
192
|
+
\** 5TH LINE RULES **\
|
193
|
+
\** ===================== **\
|
194
|
+
{L5_KER} === n * m * ñ * ñw * _nw
|
195
|
+
{L5_IMG} === NUMEN * MALTA * NOLDO * NWALME * NWALME
|
196
|
+
|
197
|
+
[{L5_KER}]{V_D_KER_WN} --> [{L5_IMG}]{V_D_IMG_XL_WN}
|
198
|
+
|
199
|
+
nn{V_D_KER_WN} --> NUMEN DASH_INF_L {V_D_IMG_XL_WN}
|
200
|
+
mm{V_D_KER_WN} --> MALTA DASH_INF_L {V_D_IMG_XL_WN}
|
201
|
+
|
202
|
+
\** ===================== **\
|
203
|
+
\** 6TH LINE RULES **\
|
204
|
+
\** ===================== **\
|
205
|
+
{L6_KER} === r * {W}
|
206
|
+
{L6_IMG} === ROMEN * VILYA
|
207
|
+
|
208
|
+
[{L6_KER}]{V_D_KER_WN} --> [{L6_IMG}]{V_D_IMG__S_WN}
|
209
|
+
|
210
|
+
rr{V_D_KER_WN} --> ROMEN DASH_INF_S {V_D_IMG__S_WN}
|
211
|
+
rd{V_D_KER_WN} --> ARDA {V_D_IMG__S_WN}
|
212
|
+
|
213
|
+
\** ===================== **\
|
214
|
+
\** L LINE RULES **\
|
215
|
+
\** ===================== **\
|
216
|
+
{LINE_L_KER} === l * ld * ll
|
217
|
+
{LINE_L_IMG} === LAMBE * ALDA * LAMBE LAMBE_MARK_TILD
|
218
|
+
|
219
|
+
[{LINE_L_KER}]{V_D_KER_WN} --> [{LINE_L_IMG}]{V_D_IMG__S_WN}
|
220
|
+
hl{V_D_KER_WN} --> HALLA LAMBE {V_D_IMG__S_WN}
|
221
|
+
hr{V_D_KER_WN} --> HALLA ROMEN {V_D_IMG__S_WN}
|
222
|
+
|
223
|
+
\** ===================== **\
|
224
|
+
\** S/Z LINE RULES **\
|
225
|
+
\** ===================== **\
|
226
|
+
{L8_KER} === s * {SS}
|
227
|
+
{L8_IMG} === SILME_NUQUERNA * ESSE_NUQUERNA
|
228
|
+
|
229
|
+
[{L8_KER}]{V_D_KER_WN} --> [{L8_IMG}]{V_D_IMG__S_WN}
|
230
|
+
|
231
|
+
\** Override lonely s / ss / before consonant **\
|
232
|
+
s --> SILME
|
233
|
+
s[{LVOWELS}] --> SILME ARA [{TEHTA_XS}]
|
234
|
+
{SS} --> ESSE
|
235
|
+
{SS}[{LVOWELS}] --> ESSE ARA [{TEHTA_XS}]
|
236
|
+
\end
|
237
|
+
|
238
|
+
\beg rules punctuation
|
239
|
+
. --> PUNCT_DDOT
|
240
|
+
.. --> PUNCT_DOT PUNCT_DDOT PUNCT_DOT
|
241
|
+
… --> PUNCT_TILD
|
242
|
+
... --> PUNCT_TILD
|
243
|
+
.... --> PUNCT_TILD
|
244
|
+
..... --> PUNCT_TILD
|
245
|
+
...... --> PUNCT_TILD
|
246
|
+
....... --> PUNCT_TILD
|
247
|
+
|
248
|
+
, --> PUNCT_DOT
|
249
|
+
: --> PUNCT_DOT
|
250
|
+
; --> PUNCT_DOT
|
251
|
+
! --> PUNCT_EXCLAM
|
252
|
+
? --> PUNCT_INTERR
|
253
|
+
· --> PUNCT_DOT
|
254
|
+
|
255
|
+
\** Apostrophe **\
|
256
|
+
|
257
|
+
' --> {NULL}
|
258
|
+
’ --> {NULL}
|
259
|
+
|
260
|
+
\** Quotes **\
|
261
|
+
|
262
|
+
“ --> DQUOT_OPEN
|
263
|
+
” --> DQUOT_CLOSE
|
264
|
+
« --> DQUOT_OPEN
|
265
|
+
» --> DQUOT_CLOSE
|
266
|
+
|
267
|
+
- --> {NULL}
|
268
|
+
– --> PUNCT_TILD
|
269
|
+
— --> PUNCT_TILD
|
270
|
+
|
271
|
+
[ --> PUNCT_PAREN_L
|
272
|
+
] --> PUNCT_PAREN_R
|
273
|
+
( --> PUNCT_PAREN_L
|
274
|
+
) --> PUNCT_PAREN_R
|
275
|
+
{ --> PUNCT_PAREN_L
|
276
|
+
} --> PUNCT_PAREN_R
|
277
|
+
< --> PUNCT_PAREN_L
|
278
|
+
> --> PUNCT_PAREN_R
|
279
|
+
|
280
|
+
\** Not universal between fonts ... **\
|
281
|
+
$ --> BOOKMARK_SIGN
|
282
|
+
≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
|
283
|
+
≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
|
284
|
+
|
285
|
+
\end
|
286
|
+
|
287
|
+
\beg rules numbers
|
288
|
+
0 --> NUM_0
|
289
|
+
1 --> NUM_1
|
290
|
+
2 --> NUM_2
|
291
|
+
3 --> NUM_3
|
292
|
+
4 --> NUM_4
|
293
|
+
5 --> NUM_5
|
294
|
+
6 --> NUM_6
|
295
|
+
7 --> NUM_7
|
296
|
+
8 --> NUM_8
|
297
|
+
9 --> NUM_9
|
298
|
+
A --> NUM_10
|
299
|
+
B --> NUM_11
|
300
|
+
\end
|
301
|
+
\end
|
302
|
+
|