aboutsummaryrefslogtreecommitdiff
path: root/arabluatex_fullvoc.lua
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2016-05-25 18:52:33 +0200
committerRobert Alessi <alessi@robertalessi.net>2016-05-25 18:52:33 +0200
commitaa160a2fb75d07c7575e7677a8450896044269d3 (patch)
tree6e005030c4855a4c8e7f7f4959a790811fd2fa3c /arabluatex_fullvoc.lua
parent6d65061031b9ee35de8166131b249f8238141d2b (diff)
downloadarabluatex-aa160a2fb75d07c7575e7677a8450896044269d3.tar.gz
implementation of ʾiʿrāb ġayr munṣarif (dmg mode)
Diffstat (limited to 'arabluatex_fullvoc.lua')
-rw-r--r--arabluatex_fullvoc.lua60
1 files changed, 48 insertions, 12 deletions
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index 577fff7..991db22 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -23,6 +23,8 @@ along with this program. If not, see
23--]] 23--]]
24 24
25hamzafv = { 25hamzafv = {
26 -- next line for ʾiʿrāb hyphen
27 {a="(')(%-)([uaiUAI])", b="%1%3"},
26 -- hard coded hamza 28 -- hard coded hamza
27 {a="|\"'", b="ء"}, 29 {a="|\"'", b="ء"},
28 {a="A\"'", b="آ"}, 30 {a="A\"'", b="آ"},
@@ -51,7 +53,8 @@ hamzafv = {
51 {a="'i'([^uaiUAI])", b="إI%1"}, 53 {a="'i'([^uaiUAI])", b="إI%1"},
52 -- madda (historic writing below) 54 -- madda (historic writing below)
53 {a="'a'([^uaiUAI])", b="آ%1"}, 55 {a="'a'([^uaiUAI])", b="آ%1"},
54 {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"}, 56--tmp {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"},
57 {a="([^UIui])'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
55 {a="(A)(')(uN?)$", b="aآء%3"}, 58 {a="(A)(')(uN?)$", b="aآء%3"},
56 {a="(A)(')(uN?)(%W)", b="aآء%3%4"}, 59 {a="(A)(')(uN?)(%W)", b="aآء%3%4"},
57 {a="(A)(')(iN?)$", b="aآء%3"}, 60 {a="(A)(')(iN?)$", b="aآء%3"},
@@ -71,7 +74,7 @@ hamzafv = {
71 {a="([^uai])(')([uai]N?)$", b="%1ء%3"}, 74 {a="([^uai])(')([uai]N?)$", b="%1ء%3"},
72 {a="([^uai])(')([uai]N?)(%W)", b="%1ء%3%4"}, 75 {a="([^uai])(')([uai]N?)(%W)", b="%1ء%3%4"},
73-- u 76-- u
74 {a="(u)(')([uai]?N)$", b="%1ؤ%3"}, 77 {a="(u)(')([uai]N?)$", b="%1ؤ%3"},
75 {a="(u)(')([uai]N?)(%W)", b="%1ؤ%3%4"}, 78 {a="(u)(')([uai]N?)(%W)", b="%1ؤ%3%4"},
76 {a="(u)(')$", b="%1ؤْ"}, 79 {a="(u)(')$", b="%1ؤْ"},
77 {a="(u)(')(%W)", b="%1ؤْ%3"}, 80 {a="(u)(')(%W)", b="%1ؤْ%3"},
@@ -115,6 +118,8 @@ hamzafv = {
115} 118}
116 119
117hamzafveasy = { -- differences marked below with 'easy' 120hamzafveasy = { -- differences marked below with 'easy'
121 -- next line for ʾiʿrāb hyphen
122 {a="(')(%-)([uaiUAI])", b="%1%3"},
118 -- hard coded hamza 123 -- hard coded hamza
119 {a="|\"'", b="ء"}, 124 {a="|\"'", b="ء"},
120 {a="A\"'", b="آ"}, 125 {a="A\"'", b="آ"},
@@ -143,14 +148,17 @@ hamzafveasy = { -- differences marked below with 'easy'
143 {a="'i'([^uaiUAI])", b="إI%1"}, 148 {a="'i'([^uaiUAI])", b="إI%1"},
144 -- madda (historic writing below) 149 -- madda (historic writing below)
145 {a="'a'([^uaiUAI])", b="آ%1"}, 150 {a="'a'([^uaiUAI])", b="آ%1"},
146 {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"}, 151--tmp {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"},
147--easy {a="(A)(')(uN?)$", b="aآء%3"}, 152 {a="([^UIui])'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
148--easy {a="(A)(')(uN?)(%W)", b="aآء%3%4"}, 153 --easy (begin)
149--easy {a="(A)(')(iN?)$", b="aآء%3"}, 154 {a="(A)(')(uN?)$", b="aاء%3"},
150--easy {a="(A)(')(iN?)(%W)", b="aآء%3%4"}, 155 {a="(A)(')(uN?)(%W)", b="aاء%3%4"},
151--easy {a="(A)(')(i)", b="aآئ%3"}, -- historic madda 156 {a="(A)(')(iN?)$", b="aاء%3"},
152--easy {a="(A)(')(u)", b="aآؤ%3"}, -- historic madda 157 {a="(A)(')(iN?)(%W)", b="aاء%3%4"},
153--easy {a="(A)(')", b="aآء"}, -- historic madda 158 {a="(A)(')(i)", b="aائ%3"}, -- historic madda
159 {a="(A)(')(u)", b="aاؤ%3"}, -- historic madda
160 {a="(A)(')", b="aاء"}, -- historic madda
161 --easy (end)
154 -- initial (needs both ^ and %W patterns) 162 -- initial (needs both ^ and %W patterns)
155 {a="^(')([ua])", b="أ%2"}, 163 {a="^(')([ua])", b="أ%2"},
156 {a="^(')(i)", b="إ%2"}, 164 {a="^(')(i)", b="إ%2"},
@@ -163,7 +171,7 @@ hamzafveasy = { -- differences marked below with 'easy'
163 {a="([^uai])(')([uai]N?)$", b="%1ء%3"}, 171 {a="([^uai])(')([uai]N?)$", b="%1ء%3"},
164 {a="([^uai])(')([uai]N?)(%W)", b="%1ء%3%4"}, 172 {a="([^uai])(')([uai]N?)(%W)", b="%1ء%3%4"},
165-- u 173-- u
166 {a="(u)(')([uai]?N)$", b="%1ؤ%3"}, 174 {a="(u)(')([uai]N?)$", b="%1ؤ%3"},
167 {a="(u)(')([uai]N?)(%W)", b="%1ؤ%3%4"}, 175 {a="(u)(')([uai]N?)(%W)", b="%1ؤ%3%4"},
168 {a="(u)(')$", b="%1ؤْ"}, 176 {a="(u)(')$", b="%1ؤْ"},
169 {a="(u)(')(%W)", b="%1ؤْ%3"}, 177 {a="(u)(')(%W)", b="%1ؤْ%3"},
@@ -389,6 +397,18 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
389} 397}
390 398
391digraphsfv = { 399digraphsfv = {
400 -- iʿrāb: straight double quote must be discarded
401 {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
402 {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
403 {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
404 {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
405 {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
406 {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
407 {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
408 {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
409 {a="(%-)(\"?[uai])(%p?%s)", b="%2%3"},
410 {a="(%-)(\"?[uai])(%p?)$", b="%2%3"},
411 -- ʾiʿrāb (end)
392 -- initial straight double quote gives a connective ʾalif 412 -- initial straight double quote gives a connective ʾalif
393 {a="^\"[uai]", b="ٱ"}, 413 {a="^\"[uai]", b="ٱ"},
394 {a="([%s%-])\"[uai]", b="%1ٱ"}, 414 {a="([%s%-])\"[uai]", b="%1ٱ"},
@@ -436,9 +456,11 @@ digraphsfv = {
436 {a="ww", b="وّ"}, 456 {a="ww", b="وّ"},
437 {a="yy", b="يّ"}, 457 {a="yy", b="يّ"},
438 -- sukūn begin 458 -- sukūn begin
459 --tmp: next line is added
460 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-(%_?[uaiUAIY])", b="%1%2"},
439 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"}, 461 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"},
440 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"}, 462 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"},
441 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIًٌٍ])", b="%1ْ%2"}, 463 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-(%_?[^uaiUAIًٌٍ])", b="%1ْ%2"},
442 -- take out sukūn in cases of assimilation 464 -- take out sukūn in cases of assimilation
443 {a="(n)(ْ)(%s)([روي])", b="%1%3%4"}, 465 {a="(n)(ْ)(%s)([روي])", b="%1%3%4"},
444 {a="(n)(ْ)(%s)([ل])", b="%1%3%4"}, 466 {a="(n)(ْ)(%s)([ل])", b="%1%3%4"},
@@ -474,6 +496,18 @@ digraphsfv = {
474} 496}
475 497
476digraphsfveasy = { -- see the diffenrences under 'easy' marker below 498digraphsfveasy = { -- see the diffenrences under 'easy' marker below
499 -- iʿrāb: straight double quote must be discarded
500 {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
501 {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
502 {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
503 {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
504 {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
505 {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
506 {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
507 {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
508 {a="(%-)(\"?[uai])(%p?%s)", b="%2%3"},
509 {a="(%-)(\"?[uai])(%p?)$", b="%2%3"},
510 -- ʾiʿrāb (end)
477 -- initial straight double quote gives a connective ʾalif 511 -- initial straight double quote gives a connective ʾalif
478 {a="^\"[uai]", b="ٱ"}, 512 {a="^\"[uai]", b="ٱ"},
479 {a="([%s%-])\"[uai]", b="%1ٱ"}, 513 {a="([%s%-])\"[uai]", b="%1ٱ"},
@@ -524,6 +558,8 @@ digraphsfveasy = { -- see the diffenrences under 'easy' marker below
524 -- first take out every previously generated sukūn by hamza rules, 558 -- first take out every previously generated sukūn by hamza rules,
525 -- so there be no need to edit them: 559 -- so there be no need to edit them:
526 {a="ْ", b=""}, 560 {a="ْ", b=""},
561 --tmp: next line is added
562-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uai])", b="%1%2"},
527-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"}, 563-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"},
528-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"}, 564-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"},
529-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIًٌٍ])", b="%1ْ%2"}, 565-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIًٌٍ])", b="%1ْ%2"},