aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arabluatex.dtx23
-rw-r--r--arabluatex_fullvoc.lua70
-rw-r--r--arabluatex_novoc.lua74
-rw-r--r--arabluatex_trans.lua64
-rw-r--r--arabluatex_voc.lua66
5 files changed, 149 insertions, 148 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx
index 52ae732..e194185 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -1389,9 +1389,9 @@ consonants, though three of them are also used as vowels
1389% \arb[trans]{'abjad} numbers are usually distinguished from the 1389% \arb[trans]{'abjad} numbers are usually distinguished from the
1390% surrounding words by a stroke placed over them. 1390% surrounding words by a stroke placed over them.
1391% 1391%
1392% For time being, \package{arabluatex} inserts those numbers with the 1392% For the time being, \package{arabluatex} inserts those numbers with the
1393% help of \package{polyglossia}. If you wish to use the 1393% help of \package{polyglossia}. If one wishes to use the
1394% \arb[trans]{abjad} system, put in your preamble:--- 1394% \arb[trans]{abjad} system, he may put in his preamble:---
1395% \iffalse 1395% \iffalse
1396%<*example> 1396%<*example>
1397% \fi 1397% \fi
@@ -1403,7 +1403,7 @@ consonants, though three of them are also used as vowels
1403% \iffalse 1403% \iffalse
1404%</example> 1404%</example>
1405% \fi % 1405% \fi %
1406% \DescribeMacro{\abjad} Then you may use the command 1406% \DescribeMacro{\abjad} Then one may use the command
1407% \cs{abjad}\marg{number} in any of the |voc|, |fullvoc| and |novoc| 1407% \cs{abjad}\marg{number} in any of the |voc|, |fullvoc| and |novoc|
1408% modes, where \meta{number} may be any number between 1 and 1999, 1408% modes, where \meta{number} may be any number between 1 and 1999,
1409% like so:--- 1409% like so:---
@@ -1667,10 +1667,11 @@ al-muqAtilIna.}, wa-kAnat 'ummI min `u.zamA'i buyUti
1667% \DescribeMacro{\LR} \cs{LR}\marg{arg} is designed to typeset its 1667% \DescribeMacro{\LR} \cs{LR}\marg{arg} is designed to typeset its
1668% argument from left to right. It may be used in an Arabic 1668% argument from left to right. It may be used in an Arabic
1669% environment, either \cs{arb}\marg{Arabic text} or \cs{begin}|{arab}| 1669% environment, either \cs{arb}\marg{Arabic text} or \cs{begin}|{arab}|
1670% \meta{Arabic text} \cs{end}|{arab}|, for short insertions of left to 1670% \meta{Arabic text} \cs{end}|{arab}|, for short insertions of
1671% right text, or to insert any \LaTeX\ command that would otherwise be 1671% left-to-right text, or to insert any \LaTeX\ command that would
1672% rejected by \package{arabluatex}, such as commands the argument of 1672% otherwise be rejected by \package{arabluatex}, such as commands the
1673% which is expected to be a dimension or a unit of measurement. 1673% argument of which is expected to be a dimension or a unit of
1674% measurement.
1674% 1675%
1675% \DescribeMacro{\RL} \cs{RL}\marg{arg} does the same as 1676% \DescribeMacro{\RL} \cs{RL}\marg{arg} does the same as
1676% \cs{LR}\marg{arg}, but typesets its argument from left to right. Even 1677% \cs{LR}\marg{arg}, but typesets its argument from left to right. Even
@@ -1871,7 +1872,7 @@ wa-ya.sIru ta.hta 'l-jildi
1871% and attempt to load the Amiri font which is included in \TeX{}live: 1872% and attempt to load the Amiri font which is included in \TeX{}live:
1872% \begin{macrocode} 1873% \begin{macrocode}
1873\AtBeginDocument{\ifdefined\arabicfont\relax\else 1874\AtBeginDocument{\ifdefined\arabicfont\relax\else
1874\PackageWarning{arabluatex}{\string\arabicfont\ is not defined!^^JI 1875\PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^JI
1875 will try to load Amiri}% 1876 will try to load Amiri}%
1876\newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}% 1877\newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}%
1877% \end{macrocode} 1878% \end{macrocode}
@@ -1921,8 +1922,8 @@ wa-ya.sIru ta.hta 'l-jildi
1921% \end{macrocode} 1922% \end{macrocode}
1922% \end{macro} 1923% \end{macro}
1923% \begin{macro}{\SetTranslitConvention} 1924% \begin{macro}{\SetTranslitConvention}
1924% \cs{SetTranslitConvention}\marg{convention} may be used to change 1925% \cs{SetTranslitConvention}\marg{convention} may be used to change
1925% the convention, which is |dmg| by default: 1926% the transliteration convention, which is |dmg| by default:
1926% \begin{macrocode} 1927% \begin{macrocode}
1927\def\al@trans@convention{dmg} 1928\def\al@trans@convention{dmg}
1928\NewDocumentCommand{\SetTranslitConvention}{m}{\def\al@trans@convention{#1}} 1929\NewDocumentCommand{\SetTranslitConvention}{m}{\def\al@trans@convention{#1}}
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index b157653..f66ed87 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -111,6 +111,41 @@ hamzafv = {
111 {a="(i)(')([^uaiUAI])", b="%1ئْ%3"} 111 {a="(i)(')([^uaiUAI])", b="%1ئْ%3"}
112} 112}
113 113
114tanwinfv = {
115 {a="uNU", b="ٌو"},
116 {a="aNU", b="ًوا"},
117 {a="iNU", b="ٍو"},
118 {a="([uai]N)(%s)([uai])", b="%1%2ٱ"},
119 {a="(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
120 -- assimilations (begin)
121 {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
122 {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
123 {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
124 {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
125 {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
126 {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
127 {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"},
128 -- assimilations (end)
129 -- quoted tanwīn (begin)
130 {a="(\"uN)", b=""},
131 {a="(B)(\"aN)", b="%1"},
132 {a="(\"aN)(_A)", b="ى"},
133 {a="(\"aN)(Y)", b="ى"},
134 {a="(T)(\"aN)", b="%1"},
135 {a="(ء)(\"aN)", b="%1"},
136 {a="([^TA])(\"aN)", b="%1ا"},
137 {a="(\"iN)", b=""},
138 -- quoted tanwīn (end)
139 {a="(uN)", b="ٌ"},
140 {a="(B)(aN)", b="%1ً"},
141 {a="(aN)(_A)", b="ًى"},
142 {a="(aN)(Y)", b="ًى"},
143 {a="(T)(aN)", b="%1ً"},
144 {a="(ء)(aN)", b="%1ً"},
145 {a="([^TA])(aN)", b="%1ًا"},
146 {a="(iN)", b="ٍ"}
147}
148
114-- this is new 149-- this is new
115trigraphsfv = { -- trigraphs or more 150trigraphsfv = { -- trigraphs or more
116 -- 'llatI / 'llad_I 151 -- 'llatI / 'llad_I
@@ -168,41 +203,6 @@ trigraphsfv = { -- trigraphs or more
168 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"} 203 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"}
169} 204}
170 205
171tanwinfv = {
172 {a="uNU", b="ٌو"},
173 {a="aNU", b="ًوا"},
174 {a="iNU", b="ٍو"},
175 {a="([uai]N)(%s)([uai])", b="%1%2ٱ"},
176 {a="(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
177 -- assimilations (begin)
178 {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
179 {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
180 {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
181 {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
182 {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
183 {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
184 {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"},
185 -- assimilations (end)
186 -- quoted tanwīn (begin)
187 {a="(\"uN)", b=""},
188 {a="(B)(\"aN)", b="%1"},
189 {a="(\"aN)(_A)", b="ى"},
190 {a="(\"aN)(Y)", b="ى"},
191 {a="(T)(\"aN)", b="%1"},
192 {a="(ء)(\"aN)", b="%1"},
193 {a="([^TA])(\"aN)", b="%1ا"},
194 {a="(\"iN)", b=""},
195 -- quoted tanwīn (end)
196 {a="(uN)", b="ٌ"},
197 {a="(B)(aN)", b="%1ً"},
198 {a="(aN)(_A)", b="ًى"},
199 {a="(aN)(Y)", b="ًى"},
200 {a="(T)(aN)", b="%1ً"},
201 {a="(ء)(aN)", b="%1ً"},
202 {a="([^TA])(aN)", b="%1ًا"},
203 {a="(iN)", b="ٍ"}
204}
205
206-- this is new 206-- this is new
207digraphsfv = { 207digraphsfv = {
208 -- initial straight double quote gives a connective ʾalif 208 -- initial straight double quote gives a connective ʾalif
diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua
index d8e1248..deb5d3e 100644
--- a/arabluatex_novoc.lua
+++ b/arabluatex_novoc.lua
@@ -22,6 +22,43 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2202111-1307, USA. 2202111-1307, USA.
23--]] 23--]]
24 24
25tanwinnv = {
26 {a="uNU", b="و"},
27 {a="aNU", b="وا"},
28 {a="iNU", b="و"},
29 -- assimilations (begin). These are good but may not apply here.
30-- {a="(uN)(%s)([rlmnwy])", b="|%2%3%3"},
31-- {a="(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"},
32-- {a="(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"},
33-- {a="(T)(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
34-- {a="(ء)(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
35-- {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"},
36-- {a="(iN)(%s)([rlmnwy])", b="|%2%3%3"},
37 -- assimilations (end)
38 -- "quoted" tanwīn (begin)
39 {a="(\"uN)", b="ٌ"},
40 {a="(B)(\"aN)", b="%1ً"},
41 {a="(\"aN)(_A)", b="ًى"},
42 {a="(\"aN)(Y)", b="ًى"},
43 {a="(T)(\"aN)", b="%1ً"},
44 {a="(ء)(\"aN)", b="%1ً"},
45 {a="([^TA])(\"aN)", b="%1ًا"},
46 {a="(\"iN)", b="ٍ"},
47 -- "quoted" tanwīn (end)
48 {a="(uN)", b=""},
49 {a="(B)(aN)", b="%1"},
50 {a="(aN)(_A)", b="ى"},
51 {a="(aN)(Y)", b="ى"},
52 {a="(T)(aN)", b="%1"},
53 {a="(ء)(aN)", b="%1"},
54 {a="([^TA])(aN)", b="%1ا"},
55 {a="(iN)", b=""},
56 -- initial straight double quote gives a connective ʾalif. This has
57 -- nothing to do with the tanwīn, but I put it here for time being.
58 {a="^\"", b="ٱ"},
59 {a="([%s%-])\"", b="%1ٱ"}
60}
61
25trigraphsnv = { -- trigraphs or more 62trigraphsnv = { -- trigraphs or more
26 -- Allah 63 -- Allah
27 {a="l%-l_ah", b="l-ll_ah"}, 64 {a="l%-l_ah", b="l-ll_ah"},
@@ -78,43 +115,6 @@ trigraphsnv = { -- trigraphs or more
78 {a="(_a)I", b="%1ي"} 115 {a="(_a)I", b="%1ي"}
79} 116}
80 117
81tanwinnv = {
82 {a="uNU", b="و"},
83 {a="aNU", b="وا"},
84 {a="iNU", b="و"},
85 -- assimilations (begin). These are good but may not apply here.
86-- {a="(uN)(%s)([rlmnwy])", b="|%2%3%3"},
87-- {a="(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"},
88-- {a="(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"},
89-- {a="(T)(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
90-- {a="(ء)(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
91-- {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"},
92-- {a="(iN)(%s)([rlmnwy])", b="|%2%3%3"},
93 -- assimilations (end)
94 -- "quoted" tanwīn (begin)
95 {a="(\"uN)", b="ٌ"},
96 {a="(B)(\"aN)", b="%1ً"},
97 {a="(\"aN)(_A)", b="ًى"},
98 {a="(\"aN)(Y)", b="ًى"},
99 {a="(T)(\"aN)", b="%1ً"},
100 {a="(ء)(\"aN)", b="%1ً"},
101 {a="([^TA])(\"aN)", b="%1ًا"},
102 {a="(\"iN)", b="ٍ"},
103 -- "quoted" tanwīn (end)
104 {a="(uN)", b=""},
105 {a="(B)(aN)", b="%1"},
106 {a="(aN)(_A)", b="ى"},
107 {a="(aN)(Y)", b="ى"},
108 {a="(T)(aN)", b="%1"},
109 {a="(ء)(aN)", b="%1"},
110 {a="([^TA])(aN)", b="%1ا"},
111 {a="(iN)", b=""},
112 -- initial straight double quote gives a connective ʾalif. This has
113 -- nothing to do with the tanwīn, but I put it here for time being.
114 {a="^\"", b="ٱ"},
115 {a="([%s%-])\"", b="%1ٱ"}
116}
117
118longvnv = { 118longvnv = {
119 {a="\"A", b="َا"}, 119 {a="\"A", b="َا"},
120 {a="\"U", b="ُو"}, 120 {a="\"U", b="ُو"},
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua
index 99d3712..b61c6db 100644
--- a/arabluatex_trans.lua
+++ b/arabluatex_trans.lua
@@ -122,6 +122,26 @@ hamzatrdmg = {
122 {a="(i)(')([^uaiUAI])", b="%1ʾ%3"} 122 {a="(i)(')([^uaiUAI])", b="%1ʾ%3"}
123} 123}
124 124
125tanwintrdmg = {
126 {a="uNU", b="un"},
127 {a="aNU", b="an"},
128 {a="iNU", b="in"},
129 -- tanwīn preceding ʾalif conjunctionis
130 {a="(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="uni%2%3"},
131 {a="(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ani%3%4"},
132 {a="(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ani%3%4"},
133 {a="(T)(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="tani%3%4"},
134 {a="([^TA])(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1ani%3%4"},
135 {a="(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ini%2%3"},
136 --
137 {a="uN", b="un"},
138 {a="(aN)(_A)", b="an"},
139 {a="(aN)(Y)", b="an"},
140 {a="(T)(\"?aN)", b="tan"},
141 {a="([^TA])(\"?aN)", b="%1an"},
142 {a="iN", b="in"}
143}
144
125trigraphstrdmg = { -- trigraphs or more 145trigraphstrdmg = { -- trigraphs or more
126 -- 'llatI / 'llad_I 146 -- 'llatI / 'llad_I
127 {a="^'ll(a)([%_]?[dt])", b="'ll%1%2"}, 147 {a="^'ll(a)([%_]?[dt])", b="'ll%1%2"},
@@ -177,26 +197,6 @@ trigraphstrdmg = { -- trigraphs or more
177 {a="(n)(%s)([rlmnwy])", b="%3%2%3"} 197 {a="(n)(%s)([rlmnwy])", b="%3%2%3"}
178} 198}
179 199
180tanwintrdmg = {
181 {a="uNU", b="un"},
182 {a="aNU", b="an"},
183 {a="iNU", b="in"},
184 -- tanwīn preceding ʾalif conjunctionis
185 {a="(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="uni%2%3"},
186 {a="(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ani%3%4"},
187 {a="(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ani%3%4"},
188 {a="(T)(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="tani%3%4"},
189 {a="([^TA])(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1ani%3%4"},
190 {a="(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ini%2%3"},
191 --
192 {a="uN", b="un"},
193 {a="(aN)(_A)", b="an"},
194 {a="(aN)(Y)", b="an"},
195 {a="(T)(\"?aN)", b="tan"},
196 {a="([^TA])(\"?aN)", b="%1an"},
197 {a="iN", b="in"}
198}
199
200digraphstrdmg = { 200digraphstrdmg = {
201 {a="([uai]%-)(\"?[uai])", b="%1'"}, -- hyphen + initial alif without hamza 201 {a="([uai]%-)(\"?[uai])", b="%1'"}, -- hyphen + initial alif without hamza
202 {a="^(\"?[uai])", b="%1"}, -- initial alif without hamza 202 {a="^(\"?[uai])", b="%1"}, -- initial alif without hamza
@@ -342,6 +342,18 @@ hamzatrloc = {
342 {a="(i)(')([^uaiUAI])", b="%1ʾ%3"} 342 {a="(i)(')([^uaiUAI])", b="%1ʾ%3"}
343} 343}
344 344
345tanwintrloc = {
346 {a="uNU", b="un"},
347 {a="aNU", b="an"},
348 {a="iNU", b="in"},
349 {a="uN", b="un"},
350 {a="(aN)(_A)", b="an"},
351 {a="(aN)(Y)", b="an"},
352 {a="(T)(\"?aN)", b="tan"},
353 {a="([^TA])(\"?aN)", b="%1an"},
354 {a="iN", b="in"}
355}
356
345trigraphstrloc = { -- trigraphs or more 357trigraphstrloc = { -- trigraphs or more
346 -- 'llatI / 'llad_I 358 -- 'llatI / 'llad_I
347 {a="^'ll(a)([%_]?[dt])", b="all%1%2"}, 359 {a="^'ll(a)([%_]?[dt])", b="all%1%2"},
@@ -392,18 +404,6 @@ trigraphstrloc = { -- trigraphs or more
392 {a="(_a)I", b="A"} 404 {a="(_a)I", b="A"}
393} 405}
394 406
395tanwintrloc = {
396 {a="uNU", b="un"},
397 {a="aNU", b="an"},
398 {a="iNU", b="in"},
399 {a="uN", b="un"},
400 {a="(aN)(_A)", b="an"},
401 {a="(aN)(Y)", b="an"},
402 {a="(T)(\"?aN)", b="tan"},
403 {a="([^TA])(\"?aN)", b="%1an"},
404 {a="iN", b="in"}
405}
406
407digraphstrloc = { 407digraphstrloc = {
408 {a="(%-)([uai])", b="%1%2"}, -- hyphen + initial alif without hamza 408 {a="(%-)([uai])", b="%1%2"}, -- hyphen + initial alif without hamza
409 {a="^([uai])", b="%1"}, -- initial alif without hamza 409 {a="^([uai])", b="%1"}, -- initial alif without hamza
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index 5989898..9724901 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -143,6 +143,39 @@ hamza = {
143 {a="(i)(')([^uaiUAI])", b="%1ئ%3"} 143 {a="(i)(')([^uaiUAI])", b="%1ئ%3"}
144} 144}
145 145
146tanwin = {
147 {a="uNU", b="ٌو"},
148 {a="aNU", b="ًوا"},
149 {a="iNU", b="ٍو"},
150 -- assimilations (begin)
151 {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
152 {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
153 {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
154 {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
155 {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
156 {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
157 {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"},
158 -- assimilations (end)
159 -- quoted tanwīn (begin)
160 {a="(\"uN)", b=""},
161 {a="(B)(\"aN)", b="%1"},
162 {a="(\"aN)(_A)", b="ى"},
163 {a="(\"aN)(Y)", b="ى"},
164 {a="(T)(\"aN)", b="%1"},
165 {a="(ء)(\"aN)", b="%1"},
166 {a="([^TA])(\"aN)", b="%1ا"},
167 {a="(\"iN)", b=""},
168 -- quoted tanwīn (end)
169 {a="(uN)", b="ٌ"},
170 {a="(B)(aN)", b="%1ً"},
171 {a="(aN)(_A)", b="ًى"},
172 {a="(aN)(Y)", b="ًى"},
173 {a="(T)(aN)", b="%1ً"},
174 {a="(ء)(aN)", b="%1ً"},
175 {a="([^TA])(aN)", b="%1ًا"},
176 {a="(iN)", b="ٍ"}
177}
178
146trigraphs = { -- trigraphs or more 179trigraphs = { -- trigraphs or more
147 -- 'llatI / 'llad_I 180 -- 'llatI / 'llad_I
148 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"}, 181 {a="^'ll(a)([%_]?[dt])", b="الّ%1%2"},
@@ -203,39 +236,6 @@ trigraphs = { -- trigraphs or more
203 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"} 236 {a="(n)(%s)([rlmnwy])", b="%1%2%3%3"}
204} 237}
205 238
206tanwin = {
207 {a="uNU", b="ٌو"},
208 {a="aNU", b="ًوا"},
209 {a="iNU", b="ٍو"},
210 -- assimilations (begin)
211 {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
212 {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
213 {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
214 {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
215 {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
216 {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
217 {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"},
218 -- assimilations (end)
219 -- quoted tanwīn (begin)
220 {a="(\"uN)", b=""},
221 {a="(B)(\"aN)", b="%1"},
222 {a="(\"aN)(_A)", b="ى"},
223 {a="(\"aN)(Y)", b="ى"},
224 {a="(T)(\"aN)", b="%1"},
225 {a="(ء)(\"aN)", b="%1"},
226 {a="([^TA])(\"aN)", b="%1ا"},
227 {a="(\"iN)", b=""},
228 -- quoted tanwīn (end)
229 {a="(uN)", b="ٌ"},
230 {a="(B)(aN)", b="%1ً"},
231 {a="(aN)(_A)", b="ًى"},
232 {a="(aN)(Y)", b="ًى"},
233 {a="(T)(aN)", b="%1ً"},
234 {a="(ء)(aN)", b="%1ً"},
235 {a="([^TA])(aN)", b="%1ًا"},
236 {a="(iN)", b="ٍ"}
237}
238
239digraphs = { 239digraphs = {
240 -- initial straight double quote gives a connective ʾalif 240 -- initial straight double quote gives a connective ʾalif
241 {a="^\"[uai]", b="ٱ"}, 241 {a="^\"[uai]", b="ٱ"},