aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2018-06-16 14:27:56 +0200
committerRobert Alessi <alessi@robertalessi.net>2018-06-16 14:27:56 +0200
commitc0f4f586979856a900ce3b4f0944d5d8035494b9 (patch)
tree61944047b42c108bb5142bd5048ac7f8958e00c8
parentfeb596d1f44c2c2b8149b209964270cdb303291b (diff)
downloadarabluatex-c0f4f586979856a900ce3b4f0944d5d8035494b9.tar.gz
added hard-coded sukūn
-rw-r--r--arabluatex.lua2
-rw-r--r--arabluatex_fullvoc.lua128
-rw-r--r--arabluatex_novoc.lua6
-rw-r--r--arabluatex_trans.lua128
-rw-r--r--arabluatex_voc.lua122
5 files changed, 193 insertions, 193 deletions
diff --git a/arabluatex.lua b/arabluatex.lua
index 84562be..4ff7538 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -204,7 +204,7 @@ local function processarbnull(str, scheme)
204 else 204 else
205 str = string.gsub(str, "(\\arbnull.?)(%b{})", function(tag, body) 205 str = string.gsub(str, "(\\arbnull.?)(%b{})", function(tag, body)
206 body = string.sub(body, 2, -2) 206 body = string.sub(body, 2, -2)
207 return string.format("o%so", body) 207 return string.format("O%sO", body)
208 end) 208 end)
209 end 209 end
210 return str 210 return str
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index fd09169..e40601b 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -27,9 +27,9 @@ hamzafv = {
27 {a="(')(%-)([uaiUAI])", b="%1%3"}, 27 {a="(')(%-)([uaiUAI])", b="%1%3"},
28 -- next lines for ʾalif alone 28 -- next lines for ʾalif alone
29 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar) 29 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar)
30 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p 30 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p
31 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3%3"}, 31 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3%3"},
32 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4%4"}, --p 32 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4%4"}, --p
33 {a="%.A", b="ا"}, 33 {a="%.A", b="ا"},
34 -- hard coded hamza 34 -- hard coded hamza
35 {a="|\"'", b="ء"}, 35 {a="|\"'", b="ء"},
@@ -78,10 +78,10 @@ hamzafv = {
78 {a="(A)(')", b="aآء"}, -- historic madda 78 {a="(A)(')", b="aآء"}, -- historic madda
79 -- initial (needs both ^ and %W patterns) 79 -- initial (needs both ^ and %W patterns)
80 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) 80 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
81 {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 81 {a="^('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
82 {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 82 {a="(%W)('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
83 {a="^('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1i"}, 83 {a="^('aw)(O)([%(%[%|%<]?\"?[uai])([%S]-O)", b="%1i"},
84 {a="(%W)('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1%2i"}, 84 {a="(%W)('aw)(O)([%(%[%|%<]?\"?[uai])([%S]-O)", b="%1%2i"},
85 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 85 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
86 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 86 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
87 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 87 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -153,9 +153,9 @@ hamzafveasy = { -- differences marked below with 'easy'
153 {a="(')(%-)([uaiUAI])", b="%1%3"}, 153 {a="(')(%-)([uaiUAI])", b="%1%3"},
154 -- next lines for ʾalif alone 154 -- next lines for ʾalif alone
155 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar) 155 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar)
156 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p 156 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p
157 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3%3"}, 157 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3%3"},
158 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4%4"}, --p 158 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4%4"}, --p
159 {a="%.A", b="ا"}, 159 {a="%.A", b="ا"},
160 -- hard coded hamza 160 -- hard coded hamza
161 {a="|\"'", b="ء"}, 161 {a="|\"'", b="ء"},
@@ -206,10 +206,10 @@ hamzafveasy = { -- differences marked below with 'easy'
206 --easy (end) 206 --easy (end)
207 -- initial (needs both ^ and %W patterns) 207 -- initial (needs both ^ and %W patterns)
208 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) 208 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
209 {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 209 {a="^('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
210 {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 210 {a="(%W)('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
211 {a="^('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1i"}, 211 {a="^('aw)(O)([%(%[%|%<]?\"?[uai])([%S]-O)", b="%1i"},
212 {a="(%W)('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1%2i"}, 212 {a="(%W)('aw)(O)([%(%[%|%<]?\"?[uai])([%S]-O)", b="%1%2i"},
213 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 213 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
214 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 214 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
215 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 215 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -288,10 +288,10 @@ hamzafveasy = { -- differences marked below with 'easy'
288 288
289tanwinfv = { -- with assimilations (\SetArbDflt*) 289tanwinfv = { -- with assimilations (\SetArbDflt*)
290 -- assimilations (begin) 290 -- assimilations (begin)
291 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, 291 {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([rlmnwy])", b="%4%4"},
292 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 292 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
293 -- assimilations (end) 293 -- assimilations (end)
294 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="ٱ"}, 294 {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([uai])", b="ٱ"},
295 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, 295 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
296 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, 296 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
297 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, 297 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
@@ -302,8 +302,8 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
302 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"}, 302 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
303 -- assimilations (begin) 303 -- assimilations (begin)
304 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 304 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
305 {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"}, 305 {a="(O[%S]-)(%-?aN)(_A)(O)([rlmnwy])", b="%5%5"},
306 {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"}, 306 {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
307 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 307 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
308 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 308 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
309 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 309 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -311,8 +311,8 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
311 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 311 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
312 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 312 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
313 -- assimilations (end) 313 -- assimilations (end)
314 {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="ٱ"}, 314 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"},
315 {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="ٱ"}, 315 {a="(O[%S]-)(%-?aN)(Y)(O)([uai])", b="ٱ"},
316 -- quoted tanwīn (begin) 316 -- quoted tanwīn (begin)
317 {a="%-?(\"uN)", b=""}, 317 {a="%-?(\"uN)", b=""},
318 {a="(B)%-?(\"aN)", b="%1"}, 318 {a="(B)%-?(\"aN)", b="%1"},
@@ -335,10 +335,10 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
335 335
336tanwinfveasy = { -- no assimilations (see below) 336tanwinfveasy = { -- no assimilations (see below)
337 -- assimilations (begin) 337 -- assimilations (begin)
338--easy {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, 338--easy {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([rlmnwy])", b="%4%4"},
339--easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 339--easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
340 -- assimilations (end) 340 -- assimilations (end)
341 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="ٱ"}, 341 {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([uai])", b="ٱ"},
342 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, 342 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
343 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, 343 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
344 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, 344 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
@@ -349,8 +349,8 @@ tanwinfveasy = { -- no assimilations (see below)
349 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"}, 349 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
350 -- assimilations (begin) 350 -- assimilations (begin)
351--easy {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 351--easy {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
352--easy {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"}, 352--easy {a="(O[%S]-)(%-?aN)(_A)(O)([rlmnwy])", b="%5%5"},
353--easy {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"}, 353--easy {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
354--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 354--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
355--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 355--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
356--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 356--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -358,8 +358,8 @@ tanwinfveasy = { -- no assimilations (see below)
358--easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 358--easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
359--easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 359--easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
360 -- assimilations (end) 360 -- assimilations (end)
361 {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="ٱ"}, 361 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"},
362 {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="ٱ"}, 362 {a="(O[%S]-)(%-?aN)(Y)(O)([uai])", b="ٱ"},
363 -- quoted tanwīn (begin) 363 -- quoted tanwīn (begin)
364 {a="%-?(\"uN)", b=""}, 364 {a="%-?(\"uN)", b=""},
365 {a="(B)%-?(\"aN)", b="%1"}, 365 {a="(B)%-?(\"aN)", b="%1"},
@@ -385,39 +385,39 @@ trigraphsfv = { -- trigraphs or more
385 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"}, 385 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"},
386 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p 386 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p
387 -- law: the diphthong is to be resolved into 'awi' (next 8 lines) 387 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
388 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 388 {a="^(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
389 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 389 {a="(%W)(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
390 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"}, 390 {a="^(law)(O)(\"?[uai])([%S]-O)", b="%1i"},
391 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 391 {a="(%W)(law)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
392 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 392 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
393 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 393 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
394 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 394 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
395 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, 395 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"},
396 -- al- + lām 396 -- al- + lām
397 {a="^(a)l%-(l)", b="ا%1ل%2%2"}, 397 {a="^(a)l%-(l)", b="ا%1ل%2%2"},
398 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p 398 {a="([%(%[%|%<%s%-O])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p
399 -- al- + solar consonant ('c' and '^n' are additional characters) 399 -- al- + solar consonant ('c' and '^n' are additional characters)
400 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar 400 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar
401 {a="([%(%[%|%<%s%-o])(a)l%-(%^n)", b="%1ا%2ل%3"}, -- ^n is lunar --p 401 {a="([%(%[%|%<%s%-O])(a)l%-(%^n)", b="%1ا%2ل%3"}, -- ^n is lunar --p
402 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2%2"}, 402 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2%2"},
403 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3%3"}, --p 403 {a="([%(%[%|%<%s%-O])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3%3"}, --p
404 -- assim. art. + solar consonant ('c' and '^n' are additional characters) 404 -- assim. art. + solar consonant ('c' and '^n' are additional characters)
405 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar 405 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar
406 {a="([%(%[%|%<%s%-o])(a)(%^n)%-", b="%1ا%2ل"}, -- ^n is lunar --p 406 {a="([%(%[%|%<%s%-O])(a)(%^n)%-", b="%1ا%2ل"}, -- ^n is lunar --p
407 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل%2"}, 407 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل%2"},
408 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل%3"}, --p 408 {a="([%(%[%|%<%s%-O])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل%3"}, --p
409 -- al- + initial unstable hamza 409 -- al- + initial unstable hamza
410 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"}, 410 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"},
411 {a="([%(%[%|%<%s%-o])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p 411 {a="([%(%[%|%<%s%-O])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p
412 -- li-/la + art. + initial unstable hamza is a special orthography 412 -- li-/la + art. + initial unstable hamza is a special orthography
413 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"}, 413 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"},
414 -- al- + lunar consonant (i.e. what remains) 414 -- al- + lunar consonant (i.e. what remains)
415 {a="^(a)l%-", b="ا%1لْ"}, 415 {a="^(a)l%-", b="ا%1لْ"},
416 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p 416 {a="([%(%[%|%<%s%-O])(a)l%-", b="%1ا%2لْ"}, --p
417 -- diphthongs to be resolved before ʾalif conjunctionis 417 -- diphthongs to be resolved before ʾalif conjunctionis
418 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"}, 418 {a="(aW)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="awuا"},
419 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 419 {a="(aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1u"},
420 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 420 {a="(ay)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
421 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 421 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
422 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 422 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
423 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 423 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -466,39 +466,39 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
466 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"}, 466 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"},
467 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p 467 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p
468 -- law: the diphthong is to be resolved into 'awi' (next 8 lines) 468 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
469 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 469 {a="^(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
470 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 470 {a="(%W)(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
471 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"}, 471 {a="^(law)(O)(\"?[uai])([%S]-O)", b="%1i"},
472 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 472 {a="(%W)(law)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
473 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 473 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
474 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 474 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
475 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 475 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
476 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, 476 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"},
477 -- al- + lām 477 -- al- + lām
478 {a="^(a)l%-(l)", b="ا%1ل%2%2"}, 478 {a="^(a)l%-(l)", b="ا%1ل%2%2"},
479 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p 479 {a="([%(%[%|%<%s%-O])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p
480 -- al- + solar consonant ('c' and '^n' are additional characters) 480 -- al- + solar consonant ('c' and '^n' are additional characters)
481 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar 481 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar
482 {a="([%(%[%|%<%s%-o])(a)l%-(%^n)", b="%1ا%2ل%3"}, -- ^n is lunar --p 482 {a="([%(%[%|%<%s%-O])(a)l%-(%^n)", b="%1ا%2ل%3"}, -- ^n is lunar --p
483 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2%2"}, 483 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2%2"},
484 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3%3"}, --p 484 {a="([%(%[%|%<%s%-O])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3%3"}, --p
485 -- assim. art. + solar consonant ('c' and '^n' are additional characters) 485 -- assim. art. + solar consonant ('c' and '^n' are additional characters)
486 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar 486 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar
487 {a="([%(%[%|%<%s%-o])(a)(%^n)%-", b="%1ا%2ل"}, -- ^n is lunar --p 487 {a="([%(%[%|%<%s%-O])(a)(%^n)%-", b="%1ا%2ل"}, -- ^n is lunar --p
488 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل%2"}, 488 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل%2"},
489 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل%3"}, --p 489 {a="([%(%[%|%<%s%-O])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل%3"}, --p
490 -- al- + initial unstable hamza 490 -- al- + initial unstable hamza
491 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"}, 491 {a="^(a)l%-(\"?[uai])", b="ا%1ل%2ٱ"},
492 {a="([%(%[%|%<%s%-o])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p 492 {a="([%(%[%|%<%s%-O])(a)l%-(\"?[uai])", b="%1ا%2ل%3ٱ"}, --p
493 -- li-/la + art. + initial unstable hamza is a special orthography 493 -- li-/la + art. + initial unstable hamza is a special orthography
494 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"}, 494 {a="l([ai])%-l%-(\"?[uai])", b="ل%1ل%2ٱ"},
495 -- al- + lunar consonant (i.e. what remains) 495 -- al- + lunar consonant (i.e. what remains)
496 {a="^(a)l%-", b="ا%1لْ"}, 496 {a="^(a)l%-", b="ا%1لْ"},
497 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p 497 {a="([%(%[%|%<%s%-O])(a)l%-", b="%1ا%2لْ"}, --p
498 -- diphthongs to be resolved before ʾalif conjunctionis 498 -- diphthongs to be resolved before ʾalif conjunctionis
499 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"}, 499 {a="(aW)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="awuا"},
500 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 500 {a="(aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1u"},
501 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 501 {a="(ay)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
502 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 502 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
503 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 503 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
504 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 504 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -556,17 +556,17 @@ digraphsfvidgham = {
556 {a="^\"[uai]", b="ٱ"}, 556 {a="^\"[uai]", b="ٱ"},
557 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 557 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
558 -- diphthongs to be resolved before ʾalif conjunctionis 558 -- diphthongs to be resolved before ʾalif conjunctionis
559 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"}, 559 {a="(aW)(O)(\"?[uai])([%S]-O)", b="awuا"},
560 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p 560 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p
561 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"}, 561 {a="(aw)(O)(\"?[uai])([%S]-O)", b="%1u"},
562 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p 562 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p
563 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"}, 563 {a="(ay)(O)(\"?[uai])([%S]-O)", b="%1i"},
564 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p 564 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
565 -- hyphen + initial alif without hamza 565 -- hyphen + initial alif without hamza
566 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"}, 566 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
567 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"}, 567 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"},
568 -- initial alif without hamza (next 4 lines) 568 -- initial alif without hamza (next 4 lines)
569 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"}, 569 {a="(O[%S]-)([uaiUAIY])(O)(\"?[uai])", b="ٱ"},
570 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p 570 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
571 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p 571 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p
572 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, --p 572 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, --p
@@ -683,17 +683,17 @@ digraphsfv = {
683 {a="^\"[uai]", b="ٱ"}, 683 {a="^\"[uai]", b="ٱ"},
684 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 684 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
685 -- diphthongs to be resolved before ʾalif conjunctionis 685 -- diphthongs to be resolved before ʾalif conjunctionis
686 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"}, 686 {a="(aW)(O)(\"?[uai])([%S]-O)", b="awuا"},
687 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p 687 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p
688 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"}, 688 {a="(aw)(O)(\"?[uai])([%S]-O)", b="%1u"},
689 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p 689 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p
690 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"}, 690 {a="(ay)(O)(\"?[uai])([%S]-O)", b="%1i"},
691 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p 691 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
692 -- hyphen + initial alif without hamza 692 -- hyphen + initial alif without hamza
693 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"}, 693 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
694 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"}, 694 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"},
695 -- initial alif without hamza (next 4 lines) 695 -- initial alif without hamza (next 4 lines)
696 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"}, 696 {a="(O[%S]-)([uaiUAIY])(O)(\"?[uai])", b="ٱ"},
697 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p 697 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
698 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p 698 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p
699 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, --p 699 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, --p
@@ -810,17 +810,17 @@ digraphsfveasy = { -- see the differences under 'easy' marker below
810 {a="^\"[uai]", b="ٱ"}, 810 {a="^\"[uai]", b="ٱ"},
811 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 811 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
812 -- diphthongs to be resolved before ʾalif conjunctionis 812 -- diphthongs to be resolved before ʾalif conjunctionis
813 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"}, 813 {a="(aW)(O)(\"?[uai])([%S]-O)", b="awuا"},
814 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p 814 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p
815 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"}, 815 {a="(aw)(O)(\"?[uai])([%S]-O)", b="%1u"},
816 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p 816 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p
817 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"}, 817 {a="(ay)(O)(\"?[uai])([%S]-O)", b="%1i"},
818 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p 818 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
819 -- hyphen + initial alif without hamza 819 -- hyphen + initial alif without hamza
820 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"}, 820 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
821 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"}, 821 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"},
822 -- initial alif without hamza (next 4 lines) 822 -- initial alif without hamza (next 4 lines)
823 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"}, 823 {a="(O[%S]-)([uaiUAIY])(O)(\"?[uai])", b="ٱ"},
824 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p 824 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
825 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p 825 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p
826 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, --p 826 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, --p
diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua
index ef2a453..e1e40cc 100644
--- a/arabluatex_novoc.lua
+++ b/arabluatex_novoc.lua
@@ -24,7 +24,7 @@ along with this program. If not, see
24 24
25tanwinnv = { 25tanwinnv = {
26 -- assimilations (begin). These are good but may not apply here. 26 -- assimilations (begin). These are good but may not apply here.
27-- {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, 27-- {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([rlmnwy])", b="%4%4"},
28-- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 28-- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
29 -- assimilations (end) 29 -- assimilations (end)
30 {a="%-?uNU", b="و"}, 30 {a="%-?uNU", b="و"},
@@ -32,8 +32,8 @@ tanwinnv = {
32 {a="%-?iNU", b="و"}, 32 {a="%-?iNU", b="و"},
33 -- assimilations (begin). These are good but may not apply here. 33 -- assimilations (begin). These are good but may not apply here.
34-- {a="%-?(uN)(%s)([rlmnwy])", b="|%2%3%3"}, 34-- {a="%-?(uN)(%s)([rlmnwy])", b="|%2%3%3"},
35-- {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"}, 35-- {a="(O[%S]-)(%-?aN)(_A)(O)([rlmnwy])", b="%5%5"},
36-- {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"}, 36-- {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
37-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"}, 37-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"},
38-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"}, 38-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"},
39-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, 39-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua
index 81f12d7..f1407be 100644
--- a/arabluatex_trans.lua
+++ b/arabluatex_trans.lua
@@ -31,7 +31,7 @@ punctuationtr = {
31 31
32nulltr = { 32nulltr = {
33 {a="%|", b=""}, 33 {a="%|", b=""},
34 {a="o[%S]-o", b=""}, 34 {a="O[%S]-O", b=""},
35 {a="[%^%_](.)", b="<??>%1"} 35 {a="[%^%_](.)", b="<??>%1"}
36} 36}
37 37
@@ -119,13 +119,13 @@ lcuc = {
119hamzatrdmg = { 119hamzatrdmg = {
120 -- next lines for ʾalif alone 120 -- next lines for ʾalif alone
121 {a="(%.A)l%-(%^n)", b=".|l-%2"}, --additional (^n is lunar) 121 {a="(%.A)l%-(%^n)", b=".|l-%2"}, --additional (^n is lunar)
122 {a="([%(%[%|%<%s%-o])(%.A)l%-(%^n)", b="%1.|l-%3"}, --additional (^n is lunar) --p 122 {a="([%(%[%|%<%s%-O])(%.A)l%-(%^n)", b="%1.|l-%3"}, --additional (^n is lunar) --p
123 {a="(%.A)l%-([%_%^%.]?[tdrzsnc])", b=".|%2-%2"}, 123 {a="(%.A)l%-([%_%^%.]?[tdrzsnc])", b=".|%2-%2"},
124 {a="([%(%[%|%<%s%-o])(%.A)l%-([%_%^%.]?[tdrzsnc])", b="%1.|%3-%3"}, --p 124 {a="([%(%[%|%<%s%-O])(%.A)l%-([%_%^%.]?[tdrzsnc])", b="%1.|%3-%3"}, --p
125 {a="(%.A)([uai])l%-(%^n)", b="||%2l-%3"}, --additional (^n is lunar) 125 {a="(%.A)([uai])l%-(%^n)", b="||%2l-%3"}, --additional (^n is lunar)
126 {a="([%(%[%|%<%s%-o])(%.A)([uai])l%-(%^n)", b="%1||%3l-%4"}, --additional (^n is lunar) --p 126 {a="([%(%[%|%<%s%-O])(%.A)([uai])l%-(%^n)", b="%1||%3l-%4"}, --additional (^n is lunar) --p
127 {a="(%.A)([uai])l%-([%_%^%.]?[tdrzsnc])", b="||%2%3-%3"}, 127 {a="(%.A)([uai])l%-([%_%^%.]?[tdrzsnc])", b="||%2%3-%3"},
128 {a="([%(%[%|%<%s%-o])(%.A)([uai])l%-([%_%^%.]?[tdrzsnc])", b="%1||%3%4-%4"}, --p 128 {a="([%(%[%|%<%s%-O])(%.A)([uai])l%-([%_%^%.]?[tdrzsnc])", b="%1||%3%4-%4"}, --p
129 {a="(%.A)([^uai])", b=".|%2"}, 129 {a="(%.A)([^uai])", b=".|%2"},
130 {a="(%.A)([uai])", b="||%2"}, 130 {a="(%.A)([uai])", b="||%2"},
131 -- hard coded hamza 131 -- hard coded hamza
@@ -158,10 +158,10 @@ hamzatrdmg = {
158 {a="(A)(')", b="%1ʾ"}, -- historic madda 158 {a="(A)(')", b="%1ʾ"}, -- historic madda
159 -- initial (needs both ^ and %W patterns) 159 -- initial (needs both ^ and %W patterns)
160 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) 160 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
161 {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 161 {a="^('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
162 {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 162 {a="(%W)('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
163 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"}, 163 {a="^('aw)(O)(\"?[uai])([%S]-O)", b="%1i"},
164 {a="(%W)('aw)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 164 {a="(%W)('aw)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
165 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 165 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
166 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 166 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
167 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p 167 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
@@ -202,22 +202,22 @@ hamzatrdmg = {
202} 202}
203 203
204tanwintrdmg = { 204tanwintrdmg = {
205 {a="%-?([uai]NU)(o)([ui])([%S]-o)", b="\\arbup{un%3}"}, 205 {a="%-?([uai]NU)(O)([ui])([%S]-O)", b="\\arbup{un%3}"},
206 {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"}, 206 {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"},
207 {a="%-?(iNI)(o)([ui])([%S]-o)", b="i\\arbup{n%3}"}, 207 {a="%-?(iNI)(O)([ui])([%S]-O)", b="i\\arbup{n%3}"},
208 {a="%-?(iNI)(%s)([ui])", b="i\\arbup{n%3}%2'"}, 208 {a="%-?(iNI)(%s)([ui])", b="i\\arbup{n%3}%2'"},
209 {a="(o[%S]-)([uai]N[UI])(o)(\"?[ui])", b="'"}, 209 {a="(O[%S]-)([uai]N[UI])(O)(\"?[ui])", b="'"},
210 {a="%-?uNU", b="\\arbup{un}"}, 210 {a="%-?uNU", b="\\arbup{un}"},
211 {a="%-?aNU", b="\\arbup{an}"}, 211 {a="%-?aNU", b="\\arbup{an}"},
212 {a="%-?iNU", b="\\arbup{in}"}, 212 {a="%-?iNU", b="\\arbup{in}"},
213 {a="%-?iNI", b="i\\arbup{n}"}, 213 {a="%-?iNI", b="i\\arbup{n}"},
214 -- tanwīn preceding ʾalif conjunctionis 214 -- tanwīn preceding ʾalif conjunctionis
215 {a="%-?(uN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="\\arbup{uni}"}, 215 {a="%-?(uN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="\\arbup{uni}"},
216 {a="%-?(aN)(_A)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="ạ\\arbup{ni}"}, 216 {a="%-?(aN)(_A)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="ạ\\arbup{ni}"},
217 {a="%-?(aN)(Y)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="ạ\\arbup{ni}"}, 217 {a="%-?(aN)(Y)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="ạ\\arbup{ni}"},
218 {a="(T)%-?(aN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="t\\arbup{ani}"}, 218 {a="(T)%-?(aN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="t\\arbup{ani}"},
219 {a="([^TA])%-?(aN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1\\arbup{ani}"}, 219 {a="([^TA])%-?(aN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1\\arbup{ani}"},
220 {a="%-?(iN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="\\arbup{ini}"}, 220 {a="%-?(iN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="\\arbup{ini}"},
221 {a="%-?(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{uni}%2%3"}, 221 {a="%-?(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{uni}%2%3"},
222 {a="%-?(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, 222 {a="%-?(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"},
223 {a="%-?(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, 223 {a="%-?(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"},
@@ -225,12 +225,12 @@ tanwintrdmg = {
225 {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"}, 225 {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"},
226 {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"}, 226 {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"},
227 -- tanwīn preceding 'lla_dI/'llatI 227 -- tanwīn preceding 'lla_dI/'llatI
228 {a="%-?(uN)(o)('lla[%_]?[dt])([%S]-o)", b="\\arbup{uni}"}, 228 {a="%-?(uN)(O)('lla[%_]?[dt])([%S]-O)", b="\\arbup{uni}"},
229 {a="%-?(aN)(_A)(o)('lla[%_]?[dt])([%S]-o)", b="ạ\\arbup{ni}"}, 229 {a="%-?(aN)(_A)(O)('lla[%_]?[dt])([%S]-O)", b="ạ\\arbup{ni}"},
230 {a="%-?(aN)(Y)(o)('lla[%_]?[dt])([%S]-o)", b="ạ\\arbup{ni}"}, 230 {a="%-?(aN)(Y)(O)('lla[%_]?[dt])([%S]-O)", b="ạ\\arbup{ni}"},
231 {a="(T)%-?(aN)(o)('lla[%_]?[dt])([%S]-o)", b="t\\arbup{ani}"}, 231 {a="(T)%-?(aN)(O)('lla[%_]?[dt])([%S]-O)", b="t\\arbup{ani}"},
232 {a="([^TA])%-?(aN)(o)('lla[%_]?[dt])([%S]-o)", b="%1\\arbup{ani}"}, 232 {a="([^TA])%-?(aN)(O)('lla[%_]?[dt])([%S]-O)", b="%1\\arbup{ani}"},
233 {a="%-?(iN)(o)('lla[%_]?[dt])([%S]-o)", b="\\arbup{ini}"}, 233 {a="%-?(iN)(O)('lla[%_]?[dt])([%S]-O)", b="\\arbup{ini}"},
234 {a="%-?(uN)(%s)('lla[%_]?[dt])", b="\\arbup{uni}%2%3"}, 234 {a="%-?(uN)(%s)('lla[%_]?[dt])", b="\\arbup{uni}%2%3"},
235 {a="%-?(aN)(_A)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, 235 {a="%-?(aN)(_A)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"},
236 {a="%-?(aN)(Y)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, 236 {a="%-?(aN)(Y)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"},
@@ -238,13 +238,13 @@ tanwintrdmg = {
238 {a="([^TA])%-?(aN)(%s)('lla[%_]?[dt])", b="%1\\arbup{ani}%3%4"}, 238 {a="([^TA])%-?(aN)(%s)('lla[%_]?[dt])", b="%1\\arbup{ani}%3%4"},
239 {a="%-?(iN)(%s)('lla[%_]?[dt])", b="\\arbup{ini}%2%3"}, 239 {a="%-?(iN)(%s)('lla[%_]?[dt])", b="\\arbup{ini}%2%3"},
240 -- tanwīn + alif without hamza and kasra (ibn) or dhamma (uhrub) 240 -- tanwīn + alif without hamza and kasra (ibn) or dhamma (uhrub)
241 {a="%-?(uN)(o)([ui])([%S]-o)", b="\\arbup{un%3}"}, 241 {a="%-?(uN)(O)([ui])([%S]-O)", b="\\arbup{un%3}"},
242 {a="%-?(aN)(_A)(o)([ui])([%S]-o)", b="ạ\\arbup{n%4}"}, 242 {a="%-?(aN)(_A)(O)([ui])([%S]-O)", b="ạ\\arbup{n%4}"},
243 {a="%-?(aN)(Y)(o)([ui])([%S]-o)", b="ạ\\arbup{n%4}"}, 243 {a="%-?(aN)(Y)(O)([ui])([%S]-O)", b="ạ\\arbup{n%4}"},
244 {a="(T)%-?(aN)(o)([ui])([%S]-o)", b="t\\arbup{an%4}"}, 244 {a="(T)%-?(aN)(O)([ui])([%S]-O)", b="t\\arbup{an%4}"},
245 {a="([^TA])%-?(aN)(o)([ui])([%S]-o)", b="%1\\arbup{an%4}"}, 245 {a="([^TA])%-?(aN)(O)([ui])([%S]-O)", b="%1\\arbup{an%4}"},
246 {a="%-?(iN)(o)([ui])([%S]-o)", b="\\arbup{in%3}"}, 246 {a="%-?(iN)(O)([ui])([%S]-O)", b="\\arbup{in%3}"},
247 {a="(o[%S]-)([uai]N)(o)(\"?[ui])", b="'"}, 247 {a="(O[%S]-)([uai]N)(O)(\"?[ui])", b="'"},
248 {a="%-?(uN)(%s)([ui])", b="\\arbup{un%3}%2'"}, 248 {a="%-?(uN)(%s)([ui])", b="\\arbup{un%3}%2'"},
249 {a="%-?(aN)(_A)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, 249 {a="%-?(aN)(_A)(%s)([ui])", b="ạ\\arbup{n%4}%3'"},
250 {a="%-?(aN)(Y)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, 250 {a="%-?(aN)(Y)(%s)([ui])", b="ạ\\arbup{n%4}%3'"},
@@ -266,38 +266,38 @@ trigraphstrdmg = { -- trigraphs or more
266 {a="^'ll(a)([%_]?[dt])", b="'ll%1%2"}, 266 {a="^'ll(a)([%_]?[dt])", b="'ll%1%2"},
267 {a="([%(%[%|%<%s])'ll(a)([%_]?[dt])", b="%1'll%2%3"}, --p 267 {a="([%(%[%|%<%s])'ll(a)([%_]?[dt])", b="%1'll%2%3"}, --p
268 -- law: the diphthong is to be resolved into 'awi' (next 8 lines) 268 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
269 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 269 {a="^(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
270 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 270 {a="(%W)(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
271 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"}, 271 {a="^(law)(O)(\"?[uai])([%S]-O)", b="%1i"},
272 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 272 {a="(%W)(law)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
273 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 273 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
274 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 274 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
275 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p 275 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
276 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p 276 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p
277 -- al- + lām 277 -- al- + lām
278 {a="^(a)l%-(l)", b="%1l-%2"}, 278 {a="^(a)l%-(l)", b="%1l-%2"},
279 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1%2l-%3"}, --p 279 {a="([%(%[%|%<%s%-O])(a)l%-(l)", b="%1%2l-%3"}, --p
280 -- al- + solar consonant ('c' and '^n' are additional characters) 280 -- al- + solar consonant ('c' and '^n' are additional characters)
281 {a="^(a)l%-(%^n)", b="%1l-%2"}, -- ^n is lunar 281 {a="^(a)l%-(%^n)", b="%1l-%2"}, -- ^n is lunar
282 {a="([%(%[%|%<%s%-o])(a)l%-(%^n)", b="%1%2l-%3"}, --^n is lunar --p 282 {a="([%(%[%|%<%s%-O])(a)l%-(%^n)", b="%1%2l-%3"}, --^n is lunar --p
283 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="%1%2-%2"}, 283 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="%1%2-%2"},
284 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1%2%3-%3"}, --p 284 {a="([%(%[%|%<%s%-O])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1%2%3-%3"}, --p
285 -- assim. art. + solar consonant ('c' and '^n' are additional characters) 285 -- assim. art. + solar consonant ('c' and '^n' are additional characters)
286 {a="^(a)(%^n)%-", b="%1l-"}, -- ^n is lunar 286 {a="^(a)(%^n)%-", b="%1l-"}, -- ^n is lunar
287 {a="([%(%[%|%<%s%-o])(a)(%^n)%-", b="%1%2l-"}, --^n is lunar --p 287 {a="([%(%[%|%<%s%-O])(a)(%^n)%-", b="%1%2l-"}, --^n is lunar --p
288 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="%1%2-"}, 288 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="%1%2-"},
289 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsnc])%-", b="%1%2%3-"}, --p 289 {a="([%(%[%|%<%s%-O])(a)([%_%^%.]?[tdrzsnc])%-", b="%1%2%3-"}, --p
290 -- al- + initial unstable hamza 290 -- al- + initial unstable hamza
291 {a="^(a)l%-(\"?[uai])", b="%1l-%2"}, 291 {a="^(a)l%-(\"?[uai])", b="%1l-%2"},
292 {a="([%(%[%|%<%s%-o])(a)l%-(\"?[uai])", b="%1%2l-%3"}, --p 292 {a="([%(%[%|%<%s%-O])(a)l%-(\"?[uai])", b="%1%2l-%3"}, --p
293 -- li-/la- + art. + initial unstable hamza is a special orthography 293 -- li-/la- + art. + initial unstable hamza is a special orthography
294 {a="l([ai])%-l%-([uai])", b="l%1-l-%2"}, 294 {a="l([ai])%-l%-([uai])", b="l%1-l-%2"},
295 -- al- + lunar consonant (i.e. what remains) 295 -- al- + lunar consonant (i.e. what remains)
296 {a="^(a)l%-", b="%1l-"}, 296 {a="^(a)l%-", b="%1l-"},
297 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1%2l-"}, --p 297 {a="([%(%[%|%<%s%-O])(a)l%-", b="%1%2l-"}, --p
298 -- diphthongs to be resolved before ʾalif conjunctionis 298 -- diphthongs to be resolved before ʾalif conjunctionis
299 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 299 {a="(aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1u"},
300 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 300 {a="(ay)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
301 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 301 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
302 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 302 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
303 -- art. with waṣla + lām 303 -- art. with waṣla + lām
@@ -340,7 +340,7 @@ trigraphstrdmg = { -- trigraphs or more
340idghamtrdmg = { 340idghamtrdmg = {
341 -- assimilations 341 -- assimilations
342 {a="(n)(}?)(%s)([rlmnwy])", b="%4%2%3%4"}, 342 {a="(n)(}?)(%s)([rlmnwy])", b="%4%2%3%4"},
343 {a="(n)(}?)(o)([rlmnwy])([%S]-o)", b="%4%2"} 343 {a="(n)(}?)(O)([rlmnwy])([%S]-O)", b="%4%2"}
344} 344}
345 345
346digraphstrdmg = { 346digraphstrdmg = {
@@ -354,19 +354,19 @@ digraphstrdmg = {
354 {a="(%W)(\"?[uai])", b="%1%2"}, -- initial alif without hamza 354 {a="(%W)(\"?[uai])", b="%1%2"}, -- initial alif without hamza
355 -- this is not necessary, take out for now: 355 -- this is not necessary, take out for now:
356-- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza 356-- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza
357 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"}, 357 {a="(aw)(O)(\"?[uai])([%S]-O)", b="%1u"},
358 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3'"}, --p 358 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3'"}, --p
359 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"}, 359 {a="(ay)(O)(\"?[uai])([%S]-O)", b="%1i"},
360 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3'"}, --p 360 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3'"}, --p
361 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awu"}, 361 {a="(aW)(O)(\"?[uai])([%S]-O)", b="awu"},
362 {a="(UA)(o)(\"?[uai])([%S]-o)", b="u"}, 362 {a="(UA)(O)(\"?[uai])([%S]-O)", b="u"},
363 {a="(%_A)(o)(\"?[uai])([%S]-o)", b="ạ"}, 363 {a="(%_A)(O)(\"?[uai])([%S]-O)", b="ạ"},
364 {a="(Y)(o)(\"?[uai])([%S]-o)", b="ạ"}, 364 {a="(Y)(O)(\"?[uai])([%S]-O)", b="ạ"},
365 {a="(%_a)(o)(\"?[uai])([%S]-o)", b="a"}, 365 {a="(%_a)(O)(\"?[uai])([%S]-O)", b="a"},
366 {a="(A)(o)(\"?[uai])([%S]-o)", b="a"}, 366 {a="(A)(O)(\"?[uai])([%S]-O)", b="a"},
367 {a="([%_]?[Uu])(o)(\"?[uai])([%S]-o)", b="u"}, 367 {a="([%_]?[Uu])(O)(\"?[uai])([%S]-O)", b="u"},
368 {a="([%_]?[Ii])(o)(\"?[uai])([%S]-o)", b="i"}, 368 {a="([%_]?[Ii])(O)(\"?[uai])([%S]-O)", b="i"},
369 {a="(o[%S]-)([UAIYWuaiyw])(o)(\"?[uai])", b="'"}, 369 {a="(O[%S]-)([UAIYWuaiyw])(O)(\"?[uai])", b="'"},
370 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awu%2%3%4"}, --p 370 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awu%2%3%4"}, --p
371 {a="(UA)(%s)([%(%[%|%<]?)(\"?[uai])", b="u%2%3'"}, --p 371 {a="(UA)(%s)([%(%[%|%<]?)(\"?[uai])", b="u%2%3'"}, --p
372 {a="([^%_][uai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3'"}, --p 372 {a="([^%_][uai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3'"}, --p
@@ -390,13 +390,13 @@ digraphstrdmg = {
390 -- ʾiʿrāb hyphen (end) shorten long vowels preceding ʾalif 390 -- ʾiʿrāb hyphen (end) shorten long vowels preceding ʾalif
391 -- conjunctionis—without forgetting 'lla_dI 391 -- conjunctionis—without forgetting 'lla_dI
392 {a="(U)(A)", b="U"}, 392 {a="(U)(A)", b="U"},
393 {a="(aW)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="awu"}, 393 {a="(aW)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="awu"},
394 {a="(%_a)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="a"}, 394 {a="(%_a)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="a"},
395 {a="(%_A)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="ạ"}, 395 {a="(%_A)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="ạ"},
396 {a="(A)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="a"}, 396 {a="(A)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="a"},
397 {a="(Y)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="ạ"}, 397 {a="(Y)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="ạ"},
398 {a="([%_]?[Uu])(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="u"}, 398 {a="([%_]?[Uu])(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="u"},
399 {a="([%_]?[Ii])(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-o)", b="i"}, 399 {a="([%_]?[Ii])(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])([%S]-O)", b="i"},
400 --p (next 7 lines, just after %s) 400 --p (next 7 lines, just after %s)
401 {a="(aW)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="awu%2%3"}, 401 {a="(aW)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="awu%2%3"},
402 {a="(%_a)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="a%2%3"}, 402 {a="(%_a)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="a%2%3"},
@@ -908,7 +908,7 @@ trigraphstrarabica = { -- trigraphs or more
908digraphstrarabica = { 908digraphstrarabica = {
909 {a="([uai]%-)(\"?[uai])", b="%1"}, -- hyphen + initial alif without hamza 909 {a="([uai]%-)(\"?[uai])", b="%1"}, -- hyphen + initial alif without hamza
910 {a="([UAIYuai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3"}, --p 910 {a="([UAIYuai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3"}, --p
911 {a="(o[%S]-)([UAIuai])(o)(\"?[uai])", b=""}, 911 {a="(O[%S]-)([UAIuai])(O)(\"?[uai])", b=""},
912 {a="@", b=""}, -- remove the tag before the former hamza 912 {a="@", b=""}, -- remove the tag before the former hamza
913 -- discard the ʾiʿrāb hyphen (begin) 913 -- discard the ʾiʿrāb hyphen (begin)
914 {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"}, 914 {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index c9d0334..65fbc29 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -168,7 +168,7 @@ buckwalter = {
168 {a="F", b="aN"}, 168 {a="F", b="aN"},
169 {a="K", b="iN"}, 169 {a="K", b="iN"},
170 {a="o", b="\""}, 170 {a="o", b="\""},
171 {a="P", b="o"}, -- pass on to \arbnull 171 {a="P", b="O"}, -- pass on to \arbnull
172 -- hard-coded connective alif 172 -- hard-coded connective alif
173 {a="%[", b="ٱ"}, 173 {a="%[", b="ٱ"},
174 {a="L", b="ٱ"} -- BW safe 174 {a="L", b="ٱ"} -- BW safe
@@ -179,9 +179,9 @@ hamza = {
179 {a="(')(%-)([uaiUAI])", b="%1%3"}, 179 {a="(')(%-)([uaiUAI])", b="%1%3"},
180 -- next lines for ʾalif alone 180 -- next lines for ʾalif alone
181 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar) 181 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar)
182 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p 182 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p
183 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3%3"}, 183 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3%3"},
184 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4%4"}, --p 184 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4%4"}, --p
185 {a="%.A", b="ا"}, 185 {a="%.A", b="ا"},
186 -- hard coded hamza 186 -- hard coded hamza
187 {a="|\"'", b="ء"}, 187 {a="|\"'", b="ء"},
@@ -221,10 +221,10 @@ hamza = {
221 {a="(A)(')", b="aآء"}, -- historic madda 221 {a="(A)(')", b="aآء"}, -- historic madda
222 -- initial (needs both ^ and %W patterns) 222 -- initial (needs both ^ and %W patterns)
223 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) 223 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
224 {a="^('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 224 {a="^('aw)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
225 {a="(%W)('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 225 {a="(%W)('aw)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
226 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"}, 226 {a="^('aw)(O)(\"?[uai])([%S]-O)", b="%1i"},
227 {a="(%W)('aw)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 227 {a="(%W)('aw)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
228 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 228 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
229 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 229 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
230 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p 230 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
@@ -296,9 +296,9 @@ hamzaeasy = { -- differences marked below with 'easy'
296 {a="(')(%-)([uaiUAI])", b="%1%3"}, 296 {a="(')(%-)([uaiUAI])", b="%1%3"},
297 -- next lines for ʾalif alone (easy) 297 -- next lines for ʾalif alone (easy)
298 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar) 298 {a="(%.A)([uai]?)l%-(%^n)", b="ا%2ل%3"}, --additional (^n is lunar)
299 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p 299 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-(%^n)", b="%1ا%3%4"}, --additional (^n is lunar) --p
300 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3"}, 300 {a="(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="ا%2ل%3"},
301 {a="([%(%[%|%<%s%-o])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4"}, --p 301 {a="([%(%[%|%<%s%-O])(%.A)([uai]?)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%3ل%4"}, --p
302 {a="%.A", b="ا"}, 302 {a="%.A", b="ا"},
303 -- hard coded hamza 303 -- hard coded hamza
304 {a="|\"'", b="ء"}, 304 {a="|\"'", b="ء"},
@@ -340,10 +340,10 @@ hamzaeasy = { -- differences marked below with 'easy'
340 --easy (end) 340 --easy (end)
341 -- initial (needs both ^ and %W patterns) 341 -- initial (needs both ^ and %W patterns)
342 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) 342 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
343 {a="^('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 343 {a="^('aw)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
344 {a="(%W)('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 344 {a="(%W)('aw)(O)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
345 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"}, 345 {a="^('aw)(O)(\"?[uai])([%S]-O)", b="%1i"},
346 {a="(%W)('aw)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 346 {a="(%W)('aw)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
347 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 347 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
348 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 348 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
349 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 349 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -422,17 +422,17 @@ hamzaeasy = { -- differences marked below with 'easy'
422 422
423tanwin = { 423tanwin = {
424 -- assimilations (begin) 424 -- assimilations (begin)
425 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, 425 {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([rlmnwy])", b="%4%4"},
426 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 426 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
427 -- assimilations (end) 427 -- assimilations (end)
428 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="%4"}, 428 {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([uai])", b="%4"},
429 {a="%-?uNU", b="ٌو"}, 429 {a="%-?uNU", b="ٌو"},
430 {a="%-?aNU", b="ًوا"}, 430 {a="%-?aNU", b="ًوا"},
431 {a="%-?iNU", b="ٍو"}, 431 {a="%-?iNU", b="ٍو"},
432 -- assimilations (begin) 432 -- assimilations (begin)
433 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 433 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
434 {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"}, 434 {a="(O[%S]-)(%-?aN)(_A)(O)([rlmnwy])", b="%5%5"},
435 {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"}, 435 {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
436 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 436 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
437 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 437 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
438 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 438 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -440,8 +440,8 @@ tanwin = {
440 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 440 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
441 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 441 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
442 -- assimilations (end) 442 -- assimilations (end)
443 {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="%5"}, 443 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="%5"},
444 {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="%5"}, 444 {a="(O[%S]-)(%-?aN)(Y)(O)([uai])", b="%5"},
445 -- quoted tanwīn (begin) 445 -- quoted tanwīn (begin)
446 {a="%-?(\"uN)", b=""}, 446 {a="%-?(\"uN)", b=""},
447 {a="(B)%-?(\"aN)", b="%1"}, 447 {a="(B)%-?(\"aN)", b="%1"},
@@ -464,17 +464,17 @@ tanwin = {
464 464
465tanwineasy = { -- 'easy' requires some lines to be taken out: 465tanwineasy = { -- 'easy' requires some lines to be taken out:
466 -- assimilations (begin) 466 -- assimilations (begin)
467-- {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, 467-- {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([rlmnwy])", b="%4%4"},
468-- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 468-- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
469 -- assimilations (end) 469 -- assimilations (end)
470 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="%4"}, 470 {a="(O[%S]-)(%-?[uai]N[UI]?)(O)([uai])", b="%4"},
471 {a="%-?uNU", b="ٌو"}, 471 {a="%-?uNU", b="ٌو"},
472 {a="%-?aNU", b="ًوا"}, 472 {a="%-?aNU", b="ًوا"},
473 {a="%-?iNU", b="ٍو"}, 473 {a="%-?iNU", b="ٍو"},
474 -- assimilations (begin) 474 -- assimilations (begin)
475-- {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 475-- {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
476-- {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"}, 476-- {a="(O[%S]-)(%-?aN)(_A)(O)([rlmnwy])", b="%5%5"},
477-- {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"}, 477-- {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
478-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 478-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
479-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 479-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
480-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 480-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -482,8 +482,8 @@ tanwineasy = { -- 'easy' requires some lines to be taken out:
482-- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 482-- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
483-- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 483-- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
484 -- assimilations (end) 484 -- assimilations (end)
485 {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="%5"}, 485 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="%5"},
486 {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="%5"}, 486 {a="(O[%S]-)(%-?aN)(Y)(O)([uai])", b="%5"},
487 -- quoted tanwīn (begin) 487 -- quoted tanwīn (begin)
488 {a="%-?(\"uN)", b=""}, 488 {a="%-?(\"uN)", b=""},
489 {a="(B)%-?(\"aN)", b="%1"}, 489 {a="(B)%-?(\"aN)", b="%1"},
@@ -509,42 +509,42 @@ trigraphs = { -- trigraphs or more
509 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, 509 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"},
510 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p 510 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p
511 -- law: the diphthong is to be resolved into 'awi' (next 8 lines) 511 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
512 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 512 {a="^(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
513 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 513 {a="(%W)(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
514 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"}, 514 {a="^(law)(O)(\"?[uai])([%S]-O)", b="%1i"},
515 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 515 {a="(%W)(law)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
516 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 516 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
517 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 517 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
518 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p 518 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
519 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p 519 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p
520 -- al- + lām 520 -- al- + lām
521 {a="^(a)l%-(l)", b="ا%1ل%2%2"}, 521 {a="^(a)l%-(l)", b="ا%1ل%2%2"},
522 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p 522 {a="([%(%[%|%<%s%-O])(a)l%-(l)", b="%1ا%2ل%3%3"}, --p
523 -- al- + solar consonant ('c' and '^n' are additional characters) 523 -- al- + solar consonant ('c' and '^n' are additional characters)
524 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar 524 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar
525 {a="([%(%[%|%<%s%-o])(a)l%-(%^n)", b="%1ا%2ل%3"},-- ^n is lunar --p 525 {a="([%(%[%|%<%s%-O])(a)l%-(%^n)", b="%1ا%2ل%3"},-- ^n is lunar --p
526 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2%2"}, 526 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2%2"},
527 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3%3"}, --p 527 {a="([%(%[%|%<%s%-O])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3%3"}, --p
528 -- assim. art. + solar consonant ('c' and '^n' are additional characters) 528 -- assim. art. + solar consonant ('c' and '^n' are additional characters)
529 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar 529 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar
530 {a="([%(%[%|%<%s%-o])(a)(%^n)%-", b="%1ا%2ل"},-- ^n is lunar --p 530 {a="([%(%[%|%<%s%-O])(a)(%^n)%-", b="%1ا%2ل"},-- ^n is lunar --p
531 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل%2"}, 531 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل%2"},
532 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل%3"}, --p 532 {a="([%(%[%|%<%s%-O])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل%3"}, --p
533 -- al- + initial unstable hamza 533 -- al- + initial unstable hamza
534 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"}, 534 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"},
535 {a="([%(%[%|%<%s%-o])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p 535 {a="([%(%[%|%<%s%-O])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p
536 {a="^(a)l%-([uai])", b="ا%1ل%2ا"}, 536 {a="^(a)l%-([uai])", b="ا%1ل%2ا"},
537 {a="([%(%[%|%<%s%-o])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p 537 {a="([%(%[%|%<%s%-O])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p
538 -- li-/la- + art. + initial unstable hamza is a special orthography 538 -- li-/la- + art. + initial unstable hamza is a special orthography
539 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"}, 539 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"},
540 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"}, 540 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"},
541 -- al- + lunar consonant (i.e. what remains) 541 -- al- + lunar consonant (i.e. what remains)
542 {a="^(a)l%-", b="ا%1ل"}, 542 {a="^(a)l%-", b="ا%1ل"},
543 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2ل"}, --p 543 {a="([%(%[%|%<%s%-O])(a)l%-", b="%1ا%2ل"}, --p
544 -- diphthongs to be resolved before ʾalif conjunctionis 544 -- diphthongs to be resolved before ʾalif conjunctionis
545 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"}, 545 {a="(aW)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="awuا"},
546 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 546 {a="(aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1u"},
547 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 547 {a="(ay)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
548 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 548 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
549 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 549 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
550 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 550 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -589,7 +589,7 @@ trigraphs = { -- trigraphs or more
589idgham = { 589idgham = {
590 -- assimilations 590 -- assimilations
591 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"}, 591 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"},
592 {a="(n)(o)([rlmnwy])([%S]-o)", b="%3"} 592 {a="(n)(O)([rlmnwy])([%S]-O)", b="%3"}
593} 593}
594 594
595trigraphseasy = { -- differences marked below with 'easy' 595trigraphseasy = { -- differences marked below with 'easy'
@@ -599,43 +599,43 @@ trigraphseasy = { -- differences marked below with 'easy'
599 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, 599 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"},
600 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p 600 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1الّ%2%3"}, --p
601 -- law: the diphthong is to be resloved into 'awi' (next 8 lines) 601 -- law: the diphthong is to be resloved into 'awi' (next 8 lines)
602 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 602 {a="^(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
603 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 603 {a="(%W)(law)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"},
604 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"}, 604 {a="^(law)(O)(\"?[uai])([%S]-O)", b="%1i"},
605 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, 605 {a="(%W)(law)(O)(\"?[uai])([%S]-O)", b="%1%2i"},
606 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 606 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
607 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 607 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
608 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p 608 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p
609 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p 609 {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p
610 -- al- + lām (easy) 610 -- al- + lām (easy)
611 {a="^(a)l%-(l)", b="ا%1ل%2"}, 611 {a="^(a)l%-(l)", b="ا%1ل%2"},
612 {a="([%(%[%|%<%s%-o])(a)l%-(l)", b="%1ا%2ل%3"}, --p 612 {a="([%(%[%|%<%s%-O])(a)l%-(l)", b="%1ا%2ل%3"}, --p
613 -- al- + solar consonant (easy) ('c' and '^n' are additional characters) 613 -- al- + solar consonant (easy) ('c' and '^n' are additional characters)
614 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar 614 {a="^(a)l%-(%^n)", b="ا%1ل%2"}, -- ^n is lunar
615 {a="([%(%[%|%<%s%-o])(a)l%-(%^n)", b="%1ا%2ل%3"}, -- ^n is lunar --p 615 {a="([%(%[%|%<%s%-O])(a)l%-(%^n)", b="%1ا%2ل%3"}, -- ^n is lunar --p
616 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2"}, 616 {a="^(a)l%-([%_%^%.]?[tdrzsnc])", b="ا%1ل%2"},
617 {a="([%(%[%|%<%s%-o])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3"}, --p 617 {a="([%(%[%|%<%s%-O])(a)l%-([%_%^%.]?[tdrzsnc])", b="%1ا%2ل%3"}, --p
618 -- assim. art. + solar consonant (easy) ('c' and '^n' are 618 -- assim. art. + solar consonant (easy) ('c' and '^n' are
619 -- additional characters) 619 -- additional characters)
620 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar 620 {a="^(a)(%^n)%-", b="ا%1ل"}, -- ^n is lunar
621 {a="([%(%[%|%<%s%-o])(a)(%^n)%-", b="%1ا%2ل"}, -- ^n is lunar --p 621 {a="([%(%[%|%<%s%-O])(a)(%^n)%-", b="%1ا%2ل"}, -- ^n is lunar --p
622 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل"}, 622 {a="^(a)([%_%^%.]?[tdrzsnc])%-", b="ا%1ل"},
623 {a="([%(%[%|%<%s%-o])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل"}, --p 623 {a="([%(%[%|%<%s%-O])(a)([%_%^%.]?[tdrzsnc])%-", b="%1ا%2ل"}, --p
624 -- al- + initial unstable hamza 624 -- al- + initial unstable hamza
625 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"}, 625 {a="^(a)l%-(\")([uai])", b="ا%1ل%3ٱ"},
626 {a="([%(%[%|%<%s%-o])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p 626 {a="([%(%[%|%<%s%-O])(a)l%-(\")([uai])", b="%1ا%2ل%4ٱ"}, --p
627 {a="^(a)l%-([uai])", b="ا%1ل%2ا"}, 627 {a="^(a)l%-([uai])", b="ا%1ل%2ا"},
628 {a="([%(%[%|%<%s%-o])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p 628 {a="([%(%[%|%<%s%-O])(a)l%-([uai])", b="%1ا%2ل%3ا"}, --p
629 -- li-/la- + art. + initial unstable hamza is a special orthography 629 -- li-/la- + art. + initial unstable hamza is a special orthography
630 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"}, 630 {a="l([ai])%-l%-(\")([uai])", b="ل%1ل%3ٱ"},
631 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"}, 631 {a="l([ai])%-l%-([uai])", b="ل%1ل%2ا"},
632 -- al- + lunar consonant (i.e. what remains) 632 -- al- + lunar consonant (i.e. what remains)
633 {a="^(a)l%-", b="ا%1ل"}, 633 {a="^(a)l%-", b="ا%1ل"},
634 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2ل"}, --p 634 {a="([%(%[%|%<%s%-O])(a)l%-", b="%1ا%2ل"}, --p
635 -- diphthongs to be resolved before ʾalif conjunctionis 635 -- diphthongs to be resolved before ʾalif conjunctionis
636 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"}, 636 {a="(aW)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="awuا"},
637 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 637 {a="(aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1u"},
638 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 638 {a="(ay)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"},
639 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 639 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
640 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 640 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
641 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 641 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -694,18 +694,18 @@ digraphs = {
694 {a="^\"[uai]", b="ٱ"}, 694 {a="^\"[uai]", b="ٱ"},
695 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 695 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
696 -- diphthongs to be resolved before ʾalif conjunctionis 696 -- diphthongs to be resolved before ʾalif conjunctionis
697 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"}, 697 {a="(aW)(O)(\"?[uai])([%S]-O)", b="awuا"},
698 {a="(aW)(%s)([%(%[%|%<]?)([uai])", b="awuا%2%3%4"}, --p 698 {a="(aW)(%s)([%(%[%|%<]?)([uai])", b="awuا%2%3%4"}, --p
699 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"}, 699 {a="(aw)(O)(\"?[uai])([%S]-O)", b="%1u"},
700 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ا"}, --p 700 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ا"}, --p
701 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"}, 701 {a="(ay)(O)(\"?[uai])([%S]-O)", b="%1i"},
702 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ا"}, --p 702 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ا"}, --p
703 -- hyphen + initial alif without hamza: 703 -- hyphen + initial alif without hamza:
704 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aإأؤئ])", b="%1ا%3%4"}, 704 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aإأؤئ])", b="%1ا%3%4"},
705 -- initial alif without hamza 705 -- initial alif without hamza
706 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p 706 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p
707 -- initial alif without hamza 707 -- initial alif without hamza
708 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ا"}, 708 {a="(O[%S]-)([uaiUAIY])(O)(\"?[uai])", b="ا"},
709 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا"}, --p 709 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا"}, --p
710 {a="%-%-", b="ـ"}, 710 {a="%-%-", b="ـ"},
711 {a="ؤؤ", b="ؤّ"}, 711 {a="ؤؤ", b="ؤّ"},
@@ -872,6 +872,6 @@ punctuation = {
872null = { 872null = {
873 {a="%|", b=""}, 873 {a="%|", b=""},
874 {a="([^0-9])(%-)", b="%1"}, 874 {a="([^0-9])(%-)", b="%1"},
875 {a="o[%S]-o", b=""}, 875 {a="O[%S]-O", b=""},
876 {a="[%^%_](.)", b=">??<%1"} 876 {a="[%^%_](.)", b=">??<%1"}
877} 877}