aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arabluatex.lua1
-rw-r--r--arabluatex_fullvoc.lua102
-rw-r--r--arabluatex_trans.lua8
-rw-r--r--arabluatex_voc.lua22
4 files changed, 94 insertions, 39 deletions
diff --git a/arabluatex.lua b/arabluatex.lua
index 564e08d..7c49693 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -526,6 +526,7 @@ end
526 526
527function processfullvoc(str, rules, scheme) 527function processfullvoc(str, rules, scheme)
528 str = "\\arb{".. str.."}" 528 str = "\\arb{".. str.."}"
529 str = processarbnull(str, scheme)
529 str = takeoutcapetc(str) 530 str = takeoutcapetc(str)
530 str = protectarb(str) 531 str = protectarb(str)
531 str = breakcmd(str) 532 str = breakcmd(str)
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index 9891319..32f53f7 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -66,7 +66,11 @@ hamzafv = {
66 {a="(A)(')(u)", b="aآؤ%3"}, -- historic madda 66 {a="(A)(')(u)", b="aآؤ%3"}, -- historic madda
67 {a="(A)(')", b="aآء"}, -- historic madda 67 {a="(A)(')", b="aآء"}, -- historic madda
68 -- initial (needs both ^ and %W patterns) 68 -- initial (needs both ^ and %W patterns)
69 -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) 69 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
70 {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
71 {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
72 {a="^('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1i"},
73 {a="(%W)('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1%2i"},
70 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 74 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
71 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 75 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
72 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 76 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -172,7 +176,11 @@ hamzafveasy = { -- differences marked below with 'easy'
172 {a="(A)(')", b="aاء"}, -- historic madda 176 {a="(A)(')", b="aاء"}, -- historic madda
173 --easy (end) 177 --easy (end)
174 -- initial (needs both ^ and %W patterns) 178 -- initial (needs both ^ and %W patterns)
175 -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) 179 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
180 {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
181 {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
182 {a="^('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1i"},
183 {a="(%W)('aw)(o)([%(%[%|%<]?\"?[uai])([%S]-o)", b="%1%2i"},
176 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 184 {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
177 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 185 {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
178 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 186 {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -233,12 +241,13 @@ hamzafveasy = { -- differences marked below with 'easy'
233} 241}
234 242
235tanwinfv = { -- with assimilations (\SetArbDflt*) 243tanwinfv = { -- with assimilations (\SetArbDflt*)
236 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
237 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
238 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
239 -- assimilations (begin) 244 -- assimilations (begin)
245 {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"},
240 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 246 {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
241 -- assimilations (end) 247 -- assimilations (end)
248 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
249 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
250 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
242 {a="%-?uNU", b="ٌو"}, 251 {a="%-?uNU", b="ٌو"},
243 {a="%-?aNU", b="ًوا"}, 252 {a="%-?aNU", b="ًوا"},
244 {a="%-?iNU", b="ٍو"}, 253 {a="%-?iNU", b="ٍو"},
@@ -246,6 +255,8 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
246 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"}, 255 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
247 -- assimilations (begin) 256 -- assimilations (begin)
248 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 257 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
258 {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"},
259 {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"},
249 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 260 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
250 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 261 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
251 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 262 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -274,12 +285,13 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
274} 285}
275 286
276tanwinfveasy = { -- no assimilations (see below) 287tanwinfveasy = { -- no assimilations (see below)
277 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
278 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
279 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
280 -- assimilations (begin) 288 -- assimilations (begin)
289--easy {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"},
281--easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, 290--easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"},
282 -- assimilations (end) 291 -- assimilations (end)
292 {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"},
293 {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"},
294 {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"},
283 {a="%-?uNU", b="ٌو"}, 295 {a="%-?uNU", b="ٌو"},
284 {a="%-?aNU", b="ًوا"}, 296 {a="%-?aNU", b="ًوا"},
285 {a="%-?iNU", b="ٍو"}, 297 {a="%-?iNU", b="ٍو"},
@@ -287,6 +299,8 @@ tanwinfveasy = { -- no assimilations (see below)
287 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"}, 299 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
288 -- assimilations (begin) 300 -- assimilations (begin)
289--easy {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 301--easy {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
302--easy {a="(o[%S]-)(%-?aN)(_A)(o)([rlmnwy])", b="%5%5"},
303--easy {a="(o[%S]-)(%-?aN)(Y)(o)([rlmnwy])", b="%5%5"},
290--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 304--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
291--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 305--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
292--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 306--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
@@ -318,7 +332,11 @@ trigraphsfv = { -- trigraphs or more
318 -- 'llatI / 'llad_I 332 -- 'llatI / 'llad_I
319 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"}, 333 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"},
320 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p 334 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p
321 -- law: the diphthong is to be resoved into 'awi' (next 4 lines) 335 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
336 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
337 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
338 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"},
339 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"},
322 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 340 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
323 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 341 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
324 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 342 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -341,6 +359,9 @@ trigraphsfv = { -- trigraphs or more
341 {a="^(a)l%-", b="ا%1لْ"}, 359 {a="^(a)l%-", b="ا%1لْ"},
342 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p 360 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p
343 -- diphthongs to be resolved before ʾalif conjunctionis 361 -- diphthongs to be resolved before ʾalif conjunctionis
362 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"},
363 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"},
364 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
344 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 365 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
345 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 366 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
346 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 367 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -380,7 +401,11 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
380 -- 'llatI / 'llad_I 401 -- 'llatI / 'llad_I
381 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"}, 402 {a="^'ll(a)([%_]?[dt])", b="ٱلّ%1%2"},
382 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p 403 {a="([%(%[%|%<%s%-])'ll(a)([%_]?[dt])", b="%1ٱلّ%2%3"}, --p
383 -- law: the diphthong is to be resoved into 'awi' (next 4 lines) 404 -- law: the diphthong is to be resolved into 'awi' (next 8 lines)
405 {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
406 {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
407 {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"},
408 {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"},
384 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 409 {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
385 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, 410 {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"},
386 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, 411 {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"},
@@ -403,6 +428,9 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
403 {a="^(a)l%-", b="ا%1لْ"}, 428 {a="^(a)l%-", b="ا%1لْ"},
404 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p 429 {a="([%(%[%|%<%s%-o])(a)l%-", b="%1ا%2لْ"}, --p
405 -- diphthongs to be resolved before ʾalif conjunctionis 430 -- diphthongs to be resolved before ʾalif conjunctionis
431 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"},
432 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"},
433 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
406 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 434 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
407 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 435 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
408 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 436 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"},
@@ -452,14 +480,20 @@ digraphsfvidgham = {
452 {a="^\"[uai]", b="ٱ"}, 480 {a="^\"[uai]", b="ٱ"},
453 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 481 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
454 -- diphthongs to be resolved before ʾalif conjunctionis 482 -- diphthongs to be resolved before ʾalif conjunctionis
455 {a="(aW)(%s)(\"?[uai])", b="awuا%2ٱ"}, 483 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"},
456 {a="(aw)(%s)(\"?[uai])", b="%1u%2ٱ"}, 484 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p
457 {a="(ay)(%s)(\"?[uai])", b="%1i%2ٱ"}, 485 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
458 {a="([uai]%-)(\"?[uai])", b="%1ٱ"}, -- hyphen + initial alif without hamza 486 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p
487 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
488 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
489 -- hyphen + initial alif without hamza
490 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
491 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ٱ%3%4"},
459 -- initial alif without hamza 492 -- initial alif without hamza
493 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"},
460 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p 494 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
461 {a="^([%(%[%|%<]?)([uai])", b="%1ا%2"}, -- initial alif without hamza --p 495 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, -- initial alif without hamza --p
462 {a="(%s)([%(%[%|%<]?)([uai])", b="%1%2ا%3"}, -- initial alif without hamza --p 496 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, -- initial alif without hamza --p
463 {a="%-%-", b="ـ"}, 497 {a="%-%-", b="ـ"},
464 {a="ؤؤ", b="ؤّ"}, 498 {a="ؤؤ", b="ؤّ"},
465 {a="أأ", b="أّ"}, 499 {a="أأ", b="أّ"},
@@ -554,14 +588,20 @@ digraphsfv = {
554 {a="^\"[uai]", b="ٱ"}, 588 {a="^\"[uai]", b="ٱ"},
555 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 589 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
556 -- diphthongs to be resolved before ʾalif conjunctionis 590 -- diphthongs to be resolved before ʾalif conjunctionis
557 {a="(aW)(%s)(\"?[uai])", b="awuا%2ٱ"}, 591 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"},
558 {a="(aw)(%s)(\"?[uai])", b="%1u%2ٱ"}, 592 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p
559 {a="(ay)(%s)(\"?[uai])", b="%1i%2ٱ"}, 593 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
560 {a="([uai]%-)(\"?[uai])", b="%1ٱ"}, -- hyphen + initial alif without hamza 594 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p
595 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
596 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
597 -- hyphen + initial alif without hamza
598 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
599 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ٱ%3%4"},
561 -- initial alif without hamza 600 -- initial alif without hamza
601 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"},
562 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p 602 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
563 {a="^([%(%[%|%<]?)([uai])", b="%1ا%2"}, -- initial alif without hamza --p 603 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, -- initial alif without hamza --p
564 {a="(%s)([%(%[%|%<]?)([uai])", b="%1%2ا%3"}, -- initial alif without hamza --p 604 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, -- initial alif without hamza --p
565 {a="%-%-", b="ـ"}, 605 {a="%-%-", b="ـ"},
566 {a="ؤؤ", b="ؤّ"}, 606 {a="ؤؤ", b="ؤّ"},
567 {a="أأ", b="أّ"}, 607 {a="أأ", b="أّ"},
@@ -656,14 +696,20 @@ digraphsfveasy = { -- see the differences under 'easy' marker below
656 {a="^\"[uai]", b="ٱ"}, 696 {a="^\"[uai]", b="ٱ"},
657 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 697 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
658 -- diphthongs to be resolved before ʾalif conjunctionis 698 -- diphthongs to be resolved before ʾalif conjunctionis
659 {a="(aW)(%s)(\"?[uai])", b="awuا%2ٱ"}, 699 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"},
660 {a="(aw)(%s)(\"?[uai])", b="%1u%2ٱ"}, 700 {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awuا%2%3ٱ"}, --p
661 {a="(ay)(%s)(\"?[uai])", b="%1i%2ٱ"}, 701 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
662 {a="([uai]%-)(\"?[uai])", b="%1ٱ"}, -- hyphen + initial alif without hamza 702 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ٱ"}, --p
703 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
704 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
705 -- hyphen + initial alif without hamza
706 -- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
707 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ٱ%3%4"},
663 -- initial alif without hamza 708 -- initial alif without hamza
709 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"},
664 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p 710 {a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
665 {a="^([%(%[%|%<]?)([uai])", b="%1ا%2"}, -- initial alif without hamza --p 711 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, -- initial alif without hamza --p
666 {a="(%s)([%(%[%|%<]?)([uai])", b="%1%2ا%3"}, -- initial alif without hamza --p 712 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا%3"}, -- initial alif without hamza --p
667 {a="%-%-", b="ـ"}, 713 {a="%-%-", b="ـ"},
668 {a="ؤؤ", b="ؤّ"}, 714 {a="ؤؤ", b="ؤّ"},
669 {a="أأ", b="أّ"}, 715 {a="أأ", b="أّ"},
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua
index b29ae37..c420f6f 100644
--- a/arabluatex_trans.lua
+++ b/arabluatex_trans.lua
@@ -262,8 +262,8 @@ trigraphstrdmg = { -- trigraphs or more
262idghamtrdmg = { 262idghamtrdmg = {
263 -- assimilations 263 -- assimilations
264 {a="(n)(}?)(%s)([rlmnwy])", b="%4%2%3%4"}, 264 {a="(n)(}?)(%s)([rlmnwy])", b="%4%2%3%4"},
265 {a="(n)(o)([rlmnwy])([%S]-o)", b="%3"} 265 {a="(n)(}?)(o)([rlmnwy])([%S]-o)", b="%4%2"}
266} 266}
267 267
268digraphstrdmg = { 268digraphstrdmg = {
269 {a="([uai]%-)(\"?[uai])", b="%1'"}, -- hyphen + initial alif without hamza 269 {a="([uai]%-)(\"?[uai])", b="%1'"}, -- hyphen + initial alif without hamza
@@ -276,6 +276,10 @@ digraphstrdmg = {
276 {a="(%W)(\"?[uai])", b="%1%2"}, -- initial alif without hamza 276 {a="(%W)(\"?[uai])", b="%1%2"}, -- initial alif without hamza
277 -- this is not necessary, take out for now: 277 -- this is not necessary, take out for now:
278-- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza 278-- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza
279 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
280 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3'"}, --p
281 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
282 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3'"}, --p
279 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awu"}, 283 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awu"},
280 {a="(UA)(o)(\"?[uai])([%S]-o)", b="u"}, 284 {a="(UA)(o)(\"?[uai])([%S]-o)", b="u"},
281 {a="(%_A)(o)(\"?[uai])([%S]-o)", b="ạ"}, 285 {a="(%_A)(o)(\"?[uai])([%S]-o)", b="ạ"},
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index fb53b5a..57ab34c 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -202,7 +202,7 @@ 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 8 lines) 205 -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines)
206 {a="^('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 206 {a="^('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"},
207 {a="(%W)('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, 207 {a="(%W)('aw)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"},
208 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"}, 208 {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"},
@@ -482,13 +482,9 @@ trigraphs = { -- trigraphs or more
482 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"}, 482 {a="(aW)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awuا"},
483 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, 483 {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"},
484 {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, 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"},
487 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"}, 485 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awuا%2%3"},
488 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, 486 {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"},
489 {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, 487 {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
492 -- art. with waṣla + lām 488 -- art. with waṣla + lām
493 {a="'l%-(l)", b="ال%1%1"}, 489 {a="'l%-(l)", b="ال%1%1"},
494 -- art. with waṣla + solar consonant 490 -- art. with waṣla + solar consonant
@@ -613,12 +609,20 @@ digraphs = {
613 -- initial straight double quote gives a connective ʾalif 609 -- initial straight double quote gives a connective ʾalif
614 {a="^\"[uai]", b="ٱ"}, 610 {a="^\"[uai]", b="ٱ"},
615 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p 611 {a="([%(%[%|%<%s%-])\"[uai]", b="%1ٱ"}, --p
616 {a="(aW)(o)([uai]([%S]-o))", b="awuا"}, 612 -- diphthongs to be resolved before ʾalif conjunctionis
613 {a="(aW)(o)(\"?[uai])([%S]-o)", b="awuا"},
617 {a="(aW)(%s)([%(%[%|%<]?)([uai])", b="awuا%2%3%4"}, --p 614 {a="(aW)(%s)([%(%[%|%<]?)([uai])", b="awuا%2%3%4"}, --p
615 {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"},
616 {a="(aw)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1u%2%3ا"}, --p
617 {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
618 {a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ا"}, --p
618 -- hyphen + initial alif without hamza: 619 -- hyphen + initial alif without hamza:
619 {a="(%-)([uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"}, 620 {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"},
620 {a="^([%(%[%|%<]?)([uai])", b="%1ا%2"}, -- initial alif without hamza --p 621 -- initial alif without hamza
621 {a="(%s)([%(%[%|%<]?)([uai])", b="%1%2ا"}, -- initial alif without hamza --p 622 {a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p
623 -- initial alif without hamza
624 {a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ا"},
625 {a="(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2ا"}, --p
622 {a="%-%-", b="ـ"}, 626 {a="%-%-", b="ـ"},
623 {a="ؤؤ", b="ؤّ"}, 627 {a="ؤؤ", b="ؤّ"},
624 {a="أأ", b="أّ"}, 628 {a="أأ", b="أّ"},