diff options
author | Robert Alessi <alessi@robertalessi.net> | 2016-05-25 18:52:33 +0200 |
---|---|---|
committer | Robert Alessi <alessi@robertalessi.net> | 2016-05-25 18:52:33 +0200 |
commit | aa160a2fb75d07c7575e7677a8450896044269d3 (patch) | |
tree | 6e005030c4855a4c8e7f7f4959a790811fd2fa3c /arabluatex_fullvoc.lua | |
parent | 6d65061031b9ee35de8166131b249f8238141d2b (diff) | |
download | arabluatex-aa160a2fb75d07c7575e7677a8450896044269d3.tar.gz |
implementation of ʾiʿrāb ġayr munṣarif (dmg mode)
Diffstat (limited to 'arabluatex_fullvoc.lua')
-rw-r--r-- | arabluatex_fullvoc.lua | 60 |
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 | ||
25 | hamzafv = { | 25 | hamzafv = { |
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 | ||
117 | hamzafveasy = { -- differences marked below with 'easy' | 120 | hamzafveasy = { -- 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 | ||
391 | digraphsfv = { | 399 | digraphsfv = { |
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 | ||
476 | digraphsfveasy = { -- see the diffenrences under 'easy' marker below | 498 | digraphsfveasy = { -- 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"}, |