aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2016-12-23 17:00:05 +0100
committerRobert Alessi <alessi@robertalessi.net>2016-12-23 17:00:05 +0100
commitbfda0c97323bce664c6e30e4260b7ef22f78c5d0 (patch)
treed89a86f62f6b2dbdd2949c4af4b01c08b7df1808
parentb4ea0b56577c3ffa721b180f70c4c708a6560071 (diff)
downloadarabluatex-bfda0c97323bce664c6e30e4260b7ef22f78c5d0.tar.gz
arbnulls inserted in voc table
-rw-r--r--arabluatex.dtx2
-rw-r--r--arabluatex.lua1
-rw-r--r--arabluatex_fullvoc.lua26
-rw-r--r--arabluatex_novoc.lua3
-rw-r--r--arabluatex_trans.lua15
-rw-r--r--arabluatex_voc.lua87
6 files changed, 91 insertions, 43 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx
index efac2c3..93ce3a4 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -203,7 +203,7 @@
203%</driver> 203%</driver>
204% \fi 204% \fi
205% 205%
206% \CheckSum{694} 206% \CheckSum{0}
207% 207%
208% \CharacterTable 208% \CharacterTable
209% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z 209% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
diff --git a/arabluatex.lua b/arabluatex.lua
index 294e75f..564e08d 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -507,6 +507,7 @@ end
507 507
508function processvoc(str, rules, scheme) 508function processvoc(str, rules, scheme)
509 str = "\\arb{".. str.."}" 509 str = "\\arb{".. str.."}"
510 str = processarbnull(str, scheme)
510 str = takeoutcapetc(str) 511 str = takeoutcapetc(str)
511 str = protectarb(str) 512 str = protectarb(str)
512 str = breakcmd(str) 513 str = breakcmd(str)
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index efe26c0..9891319 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -236,6 +236,9 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
236 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, 236 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
237 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, 237 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
238 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, 238 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
239 -- assimilations (begin)
240 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
241 -- assimilations (end)
239 {a="%-?uNU", b="ٌو"}, 242 {a="%-?uNU", b="ٌو"},
240 {a="%-?aNU", b="ًوا"}, 243 {a="%-?aNU", b="ًوا"},
241 {a="%-?iNU", b="ٍو"}, 244 {a="%-?iNU", b="ٍو"},
@@ -274,6 +277,9 @@ tanwinfveasy = { -- no assimilations (see below)
274 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, 277 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
275 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, 278 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
276 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, 279 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
280 -- assimilations (begin)
281--easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
282 -- assimilations (end)
277 {a="%-?uNU", b="ٌو"}, 283 {a="%-?uNU", b="ٌو"},
278 {a="%-?aNU", b="ًوا"}, 284 {a="%-?aNU", b="ًوا"},
279 {a="%-?iNU", b="ٍو"}, 285 {a="%-?iNU", b="ٍو"},
@@ -319,21 +325,21 @@ trigraphsfv = { -- trigraphs or more
319 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, 325 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"},
320 -- al- + lām 326 -- al- + lām
321 {a="^(a)l%-(l)", b="ا%1ل%2%2"}, 327 {a="^(a)l%-(l)", b="ا%1ل%2%2"},
322 {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p 328 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p
323 -- al- + solar consonant 329 -- al- + solar consonant
324 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"}, 330 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"},
325 {a="([%(%[%|%<%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p 331 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p
326 -- assim. art. + solar consonant 332 -- assim. art. + solar consonant
327 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"}, 333 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"},
328 {a="([%(%[%|%<%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p 334 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p
329 -- al- + initial unstable hamza 335 -- al- + initial unstable hamza
330 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"}, 336 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"},
331 {a="([%(%[%|%<%s%-])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p 337 {a="([%(%[%|%<%s%-o])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p
332 -- li-/la + art. + initial unstable hamza is a special orthography 338 -- li-/la + art. + initial unstable hamza is a special orthography
333 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"}, 339 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"},
334 -- al- + lunar consonant (i.e. what remains) 340 -- al- + lunar consonant (i.e. what remains)
335 {a="^(a)l%-", b="ا%1لْ"}, 341 {a="^(a)l%-", b="ا%1لْ"},
336 {a="([%(%[%|%<%s%-])(a)l%-", b="%1ا%2لْ"}, --p 342 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p
337 -- diphthongs to be resolved before ʾalif conjunctionis 343 -- diphthongs to be resolved before ʾalif conjunctionis
338 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 344 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
339 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 345 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
@@ -381,21 +387,21 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
381 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, 387 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"},
382 -- al- + lām 388 -- al- + lām
383 {a="^(a)l%-(l)", b="ا%1ل%2%2"}, 389 {a="^(a)l%-(l)", b="ا%1ل%2%2"},
384 {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p 390 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p
385 -- al- + solar consonant 391 -- al- + solar consonant
386 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"}, 392 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"},
387 {a="([%(%[%|%<%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p 393 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p
388 -- assim. art. + solar consonant 394 -- assim. art. + solar consonant
389 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"}, 395 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"},
390 {a="([%(%[%|%<%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p 396 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p
391 -- al- + initial unstable hamza 397 -- al- + initial unstable hamza
392 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"}, 398 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"},
393 {a="([%(%[%|%<%s%-])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p 399 {a="([%(%[%|%<%s%-o])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p
394 -- li-/la + art. + initial unstable hamza is a special orthography 400 -- li-/la + art. + initial unstable hamza is a special orthography
395 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"}, 401 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"},
396 -- al- + lunar consonant (i.e. what remains) 402 -- al- + lunar consonant (i.e. what remains)
397 {a="^(a)l%-", b="ا%1لْ"}, 403 {a="^(a)l%-", b="ا%1لْ"},
398 {a="([%(%[%|%<%s%-])(a)l%-", b="%1ا%2لْ"}, --p 404 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p
399 -- diphthongs to be resolved before ʾalif conjunctionis 405 -- diphthongs to be resolved before ʾalif conjunctionis
400 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 406 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
401 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 407 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua
index f2b6a6a..3f0299b 100644
--- a/arabluatex_novoc.lua
+++ b/arabluatex_novoc.lua
@@ -23,6 +23,9 @@ along with this program. If not, see
23--]] 23--]]
24 24
25tanwinnv = { 25tanwinnv = {
26 -- assimilations (begin). These are good but may not apply here.
27-- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
28 -- assimilations (end)
26 {a="%-?uNU", b="و"}, 29 {a="%-?uNU", b="و"},
27 {a="%-?aNU", b="وا"}, 30 {a="%-?aNU", b="وا"},
28 {a="%-?iNU", b="و"}, 31 {a="%-?iNU", b="و"},
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua
index 0868262..b29ae37 100644
--- a/arabluatex_trans.lua
+++ b/arabluatex_trans.lua
@@ -140,6 +140,7 @@ hamzatrdmg = {
140tanwintrdmg = { 140tanwintrdmg = {
141 {a="%-?([uai]NU)(o)([ui])([%S]-o)", b="\\arbup{un%3}"}, 141 {a="%-?([uai]NU)(o)([ui])([%S]-o)", b="\\arbup{un%3}"},
142 {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"}, 142 {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"},
143 {a="(o[%S]-)([uai]N[UI])(o)(\"?[ui])", b="'"},
143 {a="%-?uNU", b="\\arbup{un}"}, 144 {a="%-?uNU", b="\\arbup{un}"},
144 {a="%-?aNU", b="\\arbup{an}"}, 145 {a="%-?aNU", b="\\arbup{an}"},
145 {a="%-?iNU", b="\\arbup{in}"}, 146 {a="%-?iNU", b="\\arbup{in}"},
@@ -209,30 +210,26 @@ trigraphstrdmg = { -- trigraphs or more
209 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p 210 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p
210 -- al- + lām 211 -- al- + lām
211 {a="^(a)l%-(l)", b="%1l-%2"}, 212 {a="^(a)l%-(l)", b="%1l-%2"},
212 {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1%2l-%3"}, --p 213 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1%2l-%3"}, --p
213 -- al- + solar consonant 214 -- al- + solar consonant
214 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="%1%2-%2"}, 215 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="%1%2-%2"},
215 {a="([%(%[%|%<%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1%2%3-%3"}, --p 216 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsn])", b="%1%2%3-%3"}, --p
216 -- assim. art. + solar consonant 217 -- assim. art. + solar consonant
217 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="%1%2-"}, 218 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="%1%2-"},
218 {a="([%(%[%|%<%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1%2%3-"}, --p 219 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsn])%-", b="%1%2%3-"}, --p
219 -- al- + initial unstable hamza 220 -- al- + initial unstable hamza
220 {a="^(a)l%-(\"?[uai])", b="%1l-%2"}, 221 {a="^(a)l%-(\"?[uai])", b="%1l-%2"},
221 {a="([%(%[%|%<%s%-])(a)l%-(\"?[uai])", b="%1%2l-%3"}, --p 222 {a="([%(%[%|%<%s%-o])(a)l%-(\"?[uai])", b="%1%2l-%3"}, --p
222 -- li-/la- + art. + initial unstable hamza is a special orthography 223 -- li-/la- + art. + initial unstable hamza is a special orthography
223 {a="l([ai])%-l%-([uai])", b="l%1-l-%2"}, 224 {a="l([ai])%-l%-([uai])", b="l%1-l-%2"},
224 -- al- + lunar consonant (i.e. what remains) 225 -- al- + lunar consonant (i.e. what remains)
225 {a="^(a)l%-", b="%1l-"}, 226 {a="^(a)l%-", b="%1l-"},
226 {a="([%(%[%|%<%s%-])(a)l%-", b="%1%2l-"}, --p 227 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1%2l-"}, --p
227 -- diphthongs to be resolved before ʾalif conjunctionis 228 -- diphthongs to be resolved before ʾalif conjunctionis
228 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 229 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"},
229 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 230 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
230 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
231 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
232 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 231 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
233 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 232 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
234 {a="(aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1u%2%3"}, --p
235 {a="(ay)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
236 -- art. with waṣla + lām 233 -- art. with waṣla + lām
237 {a="'l%-(l)", b="'l-%1"}, 234 {a="'l%-(l)", b="'l-%1"},
238 -- art. with waṣla + solar consonant 235 -- art. with waṣla + solar consonant
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index 2f5e445..fb53b5a 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -202,7 +202,11 @@ hamza = {
202 {a="(A)(')(u)", b="aآؤ%3"}, -- historic madda 202 {a="(A)(')(u)", b="aآؤ%3"}, -- historic madda
203 {a="(A)(')", b="aآء"}, -- historic madda 203 {a="(A)(')", b="aآء"}, -- historic madda
204 -- initial (needs both ^ and %W patterns) 204 -- initial (needs both ^ and %W patterns)
205 -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) 205 -- 'aw: the diphthong is to be resoved into 'awi' (next 8 lines)
206 {a="^('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
207 {a="(%W)('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
208 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"},
209 {a="(%W)('aw)(o)(\"?[uai])([%S]-o)", b="%1%2i"},
206 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 210 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
207 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 211 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
208 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p 212 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
@@ -299,7 +303,11 @@ hamzaeasy = { -- differences marked below with 'easy'
299 {a="(A)(')", b="aاء"}, -- historic madda 303 {a="(A)(')", b="aاء"}, -- historic madda
300 --easy (end) 304 --easy (end)
301 -- initial (needs both ^ and %W patterns) 305 -- initial (needs both ^ and %W patterns)
302 -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) 306 -- 'aw: the diphthong is to be resoved into 'awi' (next 8 lines)
307 {a="^('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
308 {a="(%W)('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
309 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"},
310 {a="(%W)('aw)(o)(\"?[uai])([%S]-o)", b="%1%2i"},
303 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 311 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
304 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 312 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
305 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 313 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -360,11 +368,17 @@ hamzaeasy = { -- differences marked below with 'easy'
360} 368}
361 369
362tanwin = { 370tanwin = {
371 -- assimilations (begin)
372 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"},
373 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
374 -- assimilations (end)
363 {a="%-?uNU", b="ٌو"}, 375 {a="%-?uNU", b="ٌو"},
364 {a="%-?aNU", b="ًوا"}, 376 {a="%-?aNU", b="ًوا"},
365 {a="%-?iNU", b="ٍو"}, 377 {a="%-?iNU", b="ٍو"},
366 -- assimilations (begin) 378 -- assimilations (begin)
367 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 379 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
380 {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"},
381 {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"},
368 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 382 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
369 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 383 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
370 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 384 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -393,11 +407,17 @@ tanwin = {
393} 407}
394 408
395tanwineasy = { -- 'easy' requires some lines to be taken out: 409tanwineasy = { -- 'easy' requires some lines to be taken out:
410 -- assimilations (begin)
411-- {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"},
412-- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
413 -- assimilations (end)
396 {a="%-?uNU", b="ٌو"}, 414 {a="%-?uNU", b="ٌو"},
397 {a="%-?aNU", b="ًوا"}, 415 {a="%-?aNU", b="ًوا"},
398 {a="%-?iNU", b="ٍو"}, 416 {a="%-?iNU", b="ٍو"},
399 -- assimilations (begin) 417 -- assimilations (begin)
400-- {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 418-- {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
419-- {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"},
420-- {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"},
401-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 421-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
402-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 422-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
403-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 423-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -429,35 +449,46 @@ trigraphs = { -- trigraphs or more
429 -- 'llatI / 'llad_I 449 -- 'llatI / 'llad_I
430 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, 450 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"},
431 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p 451 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p
432 -- law: the diphthong is to be resoved into 'awi' (next 4 lines) 452 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
453 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
454 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
455 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"},
456 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"},
433 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 457 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
434 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 458 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
435 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 459 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
436 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, 460 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p
437 -- al- + lām 461 -- al- + lām
438 {a="^(a)l%-(l)", b="ا%1ل%2%2"}, 462 {a="^(a)l%-(l)", b="ا%1ل%2%2"},
439 {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p 463 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p
440 -- al- + solar consonant 464 -- al- + solar consonant
441 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"}, 465 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2%2"},
442 {a="([%(%[%|%<%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p 466 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3%3"}, --p
443 -- assim. art. + solar consonant 467 -- assim. art. + solar consonant
444 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"}, 468 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل%2"},
445 {a="([%(%[%|%<%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p 469 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل%3"}, --p
446 -- al- + initial unstable hamza 470 -- al- + initial unstable hamza
447 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"}, 471 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"},
448 {a="([%(%[%|%<%s%-])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p 472 {a="([%(%[%|%<%s%-o])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p
449 {a="^(a)l%-([uai])", b="ا%1ل%2ا"}, 473 {a="^(a)l%-([uai])", b="ا%1ل%2ا"},
450 {a="([%(%[%|%<%s%-])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p 474 {a="([%(%[%|%<%s%-o])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p
451 -- li-/la- + art. + initial unstable hamza is a special orthography 475 -- li-/la- + art. + initial unstable hamza is a special orthography
452 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"}, 476 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"},
453 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"}, 477 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"},
454 -- al- + lunar consonant (i.e. what remains) 478 -- al- + lunar consonant (i.e. what remains)
455 {a="^(a)l%-", b="ا%1ل"}, 479 {a="^(a)l%-", b="ا%1ل"},
456 {a="([%(%[%|%<%s%-])(a)l%-", b="%1ا%2ل"}, --p 480 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2ل"}, --p
457 -- diphthongs to be resolved before ʾalif conjunctionis 481 -- diphthongs to be resolved before ʾalif conjunctionis
482 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"},
483 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"},
484 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
485 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
486 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
458 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 487 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
459 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 488 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
460 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 489 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
490 {a="(aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1u%2%3"}, --p
491 {a="(ay)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
461 -- art. with waṣla + lām 492 -- art. with waṣla + lām
462 {a="'l%-(l)", b="ال%1%1"}, 493 {a="'l%-(l)", b="ال%1%1"},
463 -- art. with waṣla + solar consonant 494 -- art. with waṣla + solar consonant
@@ -490,7 +521,8 @@ trigraphs = { -- trigraphs or more
490 521
491idgham = { 522idgham = {
492 -- assimilations 523 -- assimilations
493 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"} 524 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"},
525 {a="(n)(o)([rlmnwy])([%S]-o)", b="%3"}
494} 526}
495 527
496trigraphseasy = { -- differences marked below with 'easy' 528trigraphseasy = { -- differences marked below with 'easy'
@@ -499,32 +531,39 @@ trigraphseasy = { -- differences marked below with 'easy'
499 -- 'llatI / 'llad_I 531 -- 'llatI / 'llad_I
500 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, 532 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"},
501 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p 533 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p
502 -- law: the diphthong is to be resoved into 'awi' (next 4 lines) 534 -- law: the diphthong is to be resloved into 'awi' (next 8 lines)
535 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
536 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
537 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"},
538 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"},
503 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 539 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
504 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 540 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
505 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 541 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
506 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, 542 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p
507 -- al- + lām (easy) 543 -- al- + lām (easy)
508 {a="^(a)l%-(l)", b="ا%1ل%2"}, 544 {a="^(a)l%-(l)", b="ا%1ل%2"},
509 {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1ا%2ل%3"}, --p 545 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3"}, --p
510 -- al- + solar consonant (easy) 546 -- al- + solar consonant (easy)
511 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2"}, 547 {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2"},
512 {a="([%(%[%|%<%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"}, --p 548 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"}, --p
513 -- assim. art. + solar consonant (easy) 549 -- assim. art. + solar consonant (easy)
514 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل"}, 550 {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل"},
515 {a="([%(%[%|%<%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"}, --p 551 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"}, --p
516 -- al- + initial unstable hamza 552 -- al- + initial unstable hamza
517 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"}, 553 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"},
518 {a="([%(%[%|%<%s%-])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p 554 {a="([%(%[%|%<%s%-o])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p
519 {a="^(a)l%-([uai])", b="ا%1ل%2ا"}, 555 {a="^(a)l%-([uai])", b="ا%1ل%2ا"},
520 {a="([%(%[%|%<%s%-])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p 556 {a="([%(%[%|%<%s%-o])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p
521 -- li-/la- + art. + initial unstable hamza is a special orthography 557 -- li-/la- + art. + initial unstable hamza is a special orthography
522 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"}, 558 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"},
523 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"}, 559 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"},
524 -- al- + lunar consonant (i.e. what remains) 560 -- al- + lunar consonant (i.e. what remains)
525 {a="^(a)l%-", b="ا%1ل"}, 561 {a="^(a)l%-", b="ا%1ل"},
526 {a="([%(%[%|%<%s%-])(a)l%-", b="%1ا%2ل"}, --p 562 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2ل"}, --p
527 -- diphthongs to be resolved before ʾalif conjunctionis 563 -- diphthongs to be resolved before ʾalif conjunctionis
564 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"},
565 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"},
566 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
528 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 567 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
529 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 568 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
530 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 569 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -574,7 +613,8 @@ digraphs = {
574 -- initial straight double quote gives a connective ʾalif 613 -- initial straight double quote gives a connective ʾalif
575 {a="^\"[uai]", b="ٱ"}, 614 {a="^\"[uai]", b="ٱ"},
576 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 615 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
577 {a="(aW)(%s)([uai])", b="awuا%2%3"}, 616 {a="(aW)(o)([uai]([%S]-o))", b="awuا"},
617 {a="(aW)(%s)([%(%[%|%<]?)([uai])", b="awuا%2%3%4"}, --p
578 -- hyphen + initial alif without hamza: 618 -- hyphen + initial alif without hamza:
579 {a="(%-)([uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"}, 619 {a="(%-)([uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"},
580 {a="^([%(%[%|%<]?)([uai])", b="%1ا%2"}, -- initial alif without hamza --p 620 {a="^([%(%[%|%<]?)([uai])", b="%1ا%2"}, -- initial alif without hamza --p
@@ -716,5 +756,6 @@ punctuation = {
716 756
717null = { 757null = {
718 {a="%|", b=""}, 758 {a="%|", b=""},
719 {a="([^0-9])(%-)", b="%1"} 759 {a="([^0-9])(%-)", b="%1"},
760 {a="o[%S]-o", b=""}
720} 761}