aboutsummaryrefslogtreecommitdiff
path: root/arabluatex_fullvoc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'arabluatex_fullvoc.lua')
-rw-r--r--arabluatex_fullvoc.lua167
1 files changed, 86 insertions, 81 deletions
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index d5ca11a..7483734 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -2,24 +2,23 @@
2This file is part of the `arabluatex' package 2This file is part of the `arabluatex' package
3 3
4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
5Copyright (C) 2016--2019 Robert Alessi 5Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6Robert Alessi <alessi@robertalessi.net>
6 7
7Please send error reports and suggestions for improvements to Robert 8Permission to use, copy, modify, and distribute this software for any
8Alessi <alessi@robertalessi.net> 9purpose with or without fee is hereby granted, provided that the above
10copyright notice and this permission notice appear in all copies.
9 11
10This program is free software: you can redistribute it and/or modify 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11it under the terms of the GNU General Public License as published by 13WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12the Free Software Foundation, either version 3 of the License, or 14MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13(at your option) any later version. 15ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 19
15This program is distributed in the hope that it will be useful, but 20Please send error reports and suggestions for improvements to Robert
16WITHOUT ANY WARRANTY; without even the implied warranty of 21Alessi <alessi@robertalessi.net>
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program. If not, see
22<http://www.gnu.org/licenses/>.
23--]] 22--]]
24 23
25hamzafv = { 24hamzafv = {
@@ -39,18 +38,18 @@ hamzafv = {
39 {a="i\"'", b="إ"}, 38 {a="i\"'", b="إ"},
40 {a="y\"'", b="ئ"}, 39 {a="y\"'", b="ئ"},
41 -- moved below (end of 'final' section) 40 -- moved below (end of 'final' section)
42 -- {a="ؤ([^uaiUAI])", b="ؤْ%1"}, 41 {a="ؤ([^uaiUAI])", b="ؤْ%1"},
43 -- {a="ؤ(%p*)$", b="ؤْ%1"}, 42 {a="ؤ(%p*)$", b="ؤْ%1"},
44 -- {a="ؤ(%p*%s)", b="ؤْ%1"}, 43 {a="ؤ(%p*%s)", b="ؤْ%1"},
45 -- {a="أ([^uaiUAI])", b="أْ%1"}, 44 {a="أ([^uaiUAI])", b="أْ%1"},
46 -- {a="أ(%p*)$", b="أْ%1"}, 45 {a="أ(%p*)$", b="أْ%1"},
47 -- {a="أ(%p*%s)", b="أْ%1"}, 46 {a="أ(%p*%s)", b="أْ%1"},
48 -- {a="ئ([^uaiUAI])", b="ئْ%1"}, 47 {a="ئ([^uaiUAI])", b="ئْ%1"},
49 -- {a="ئ(%p*)$", b="ئْ%1"}, 48 {a="ئ(%p*)$", b="ئْ%1"},
50 -- {a="ئ(%p*%s)", b="ئْ%1"}, 49 {a="ئ(%p*%s)", b="ئْ%1"},
51 -- {a="ء([^uaiUAI])", b="ءْ%1"}, 50 {a="ء([^uaiUAI])", b="ءْ%1"},
52 -- {a="ء(%p*)$", b="ءْ%1"}, 51 {a="ء(%p*)$", b="ءْ%1"},
53 -- {a="ء(%p*%s)", b="ءْ%1"}, 52 {a="ء(%p*%s)", b="ءْ%1"},
54 -- hamza takes tašdīd too 53 -- hamza takes tašdīd too
55 {a="''([Uu])", b="ؤؤ%1"}, 54 {a="''([Uu])", b="ؤؤ%1"},
56 {a="''([Aa])", b="أأ%1"}, 55 {a="''([Aa])", b="أأ%1"},
@@ -104,7 +103,7 @@ hamzafv = {
104 -- mi'aT is special orthography (unlike ^say'aN and .zim'aN): 103 -- mi'aT is special orthography (unlike ^say'aN and .zim'aN):
105 -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new 104 -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new
106 -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new 105 -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new
107 {a="(mi)(%')(a[Tt])", b="%1ائ%3"}, 106 {a="(mi)(%')(a[TtH])", b="%1ائ%3"},
108 {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, 107 {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"},
109 -- final hamzah is on the line after a letter of prolongation or a 108 -- final hamzah is on the line after a letter of prolongation or a
110 -- consonant with sukūn 109 -- consonant with sukūn
@@ -133,19 +132,21 @@ hamzafv = {
133 {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"}, 132 {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
134 {a="(i)(')(%p*)$", b="%1ئْ%3"}, 133 {a="(i)(')(%p*)$", b="%1ئْ%3"},
135 {a="(i)(')(%p*%s)", b="%1ئْ%3"}, 134 {a="(i)(')(%p*%s)", b="%1ئْ%3"},
135-- the following was wrong for it broke the taḫfīfu 'l-hamzati
136-- (look into this later):
136-- moved here from above: 137-- moved here from above:
137 {a="ؤ([^uaiUAI])", b="ؤْ%1"}, 138 -- {a="ؤ([^uaiUAI])", b="ؤْ%1"},
138 {a="ؤ(%p*)$", b="ؤْ%1"}, 139 -- {a="ؤ(%p*)$", b="ؤْ%1"},
139 {a="ؤ(%p*%s)", b="ؤْ%1"}, 140 -- {a="ؤ(%p*%s)", b="ؤْ%1"},
140 {a="أ([^uaiUAI])", b="أْ%1"}, 141 -- {a="أ([^uaiUAI])", b="أْ%1"},
141 {a="أ(%p*)$", b="أْ%1"}, 142 -- {a="أ(%p*)$", b="أْ%1"},
142 {a="أ(%p*%s)", b="أْ%1"}, 143 -- {a="أ(%p*%s)", b="أْ%1"},
143 {a="ئ([^uaiUAI])", b="ئْ%1"}, 144 -- {a="ئ([^uaiUAI])", b="ئْ%1"},
144 {a="ئ(%p*)$", b="ئْ%1"}, 145 -- {a="ئ(%p*)$", b="ئْ%1"},
145 {a="ئ(%p*%s)", b="ئْ%1"}, 146 -- {a="ئ(%p*%s)", b="ئْ%1"},
146 {a="ء([^uaiUAI])", b="ءْ%1"}, 147 -- {a="ء([^uaiUAI])", b="ءْ%1"},
147 {a="ء(%p*)$", b="ءْ%1"}, 148 -- {a="ء(%p*)$", b="ءْ%1"},
148 {a="ء(%p*%s)", b="ءْ%1"}, 149 -- {a="ء(%p*%s)", b="ءْ%1"},
149 -- middle 150 -- middle
150 {a="([UIwy])(')", b="%1ء"}, --new 151 {a="([UIwy])(')", b="%1ء"}, --new
151 -- {a="([Iy])(')", b="%1ئ"}, --included in the above line 152 -- {a="([Iy])(')", b="%1ئ"}, --included in the above line
@@ -187,18 +188,18 @@ hamzafveasy = { -- differences marked below with 'easy'
187 {a="i\"'", b="إ"}, 188 {a="i\"'", b="إ"},
188 {a="y\"'", b="ئ"}, 189 {a="y\"'", b="ئ"},
189 -- moved below (end of 'final' section) 190 -- moved below (end of 'final' section)
190 -- {a="ؤ([^uaiUAI])", b="ؤْ%1"}, 191 {a="ؤ([^uaiUAI])", b="ؤْ%1"},
191 -- {a="ؤ(%p*)$", b="ؤْ%1"}, 192 {a="ؤ(%p*)$", b="ؤْ%1"},
192 -- {a="ؤ(%p*%s)", b="ؤْ%1"}, 193 {a="ؤ(%p*%s)", b="ؤْ%1"},
193 -- {a="أ([^uaiUAI])", b="أْ%1"}, 194 {a="أ([^uaiUAI])", b="أْ%1"},
194 -- {a="أ(%p*)$", b="أْ%1"}, 195 {a="أ(%p*)$", b="أْ%1"},
195 -- {a="أ(%p*%s)", b="أْ%1"}, 196 {a="أ(%p*%s)", b="أْ%1"},
196 -- {a="ئ([^uaiUAI])", b="ئْ%1"}, 197 {a="ئ([^uaiUAI])", b="ئْ%1"},
197 -- {a="ئ(%p*)$", b="ئْ%1"}, 198 {a="ئ(%p*)$", b="ئْ%1"},
198 -- {a="ئ(%p*%s)", b="ئْ%1"}, 199 {a="ئ(%p*%s)", b="ئْ%1"},
199 -- {a="ء([^uaiUAI])", b="ءْ%1"}, 200 {a="ء([^uaiUAI])", b="ءْ%1"},
200 -- {a="ء(%p*)$", b="ءْ%1"}, 201 {a="ء(%p*)$", b="ءْ%1"},
201 -- {a="ء(%p*%s)", b="ءْ%1"}, 202 {a="ء(%p*%s)", b="ءْ%1"},
202 -- hamza takes tašdīd too 203 -- hamza takes tašdīd too
203 {a="''([Uu])", b="ؤؤ%1"}, 204 {a="''([Uu])", b="ؤؤ%1"},
204 {a="''([Aa])", b="أأ%1"}, 205 {a="''([Aa])", b="أأ%1"},
@@ -254,7 +255,7 @@ hamzafveasy = { -- differences marked below with 'easy'
254 -- mi'aT is special orthography (unlike ^say'aN and .zim'aN) 255 -- mi'aT is special orthography (unlike ^say'aN and .zim'aN)
255 -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new 256 -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new
256 -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new 257 -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new
257 {a="(mi)(%')(a[Tt])", b="%1ائ%3"}, 258 {a="(mi)(%')(a[TtH])", b="%1ائ%3"},
258 {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, 259 {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"},
259 -- easy (begin) 260 -- easy (begin)
260 -- The Munjid says that such words as radI'aN do not have the 261 -- The Munjid says that such words as radI'aN do not have the
@@ -293,19 +294,21 @@ hamzafveasy = { -- differences marked below with 'easy'
293 {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"}, 294 {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
294 {a="(i)(')(%p*)$", b="%1ئْ%3"}, 295 {a="(i)(')(%p*)$", b="%1ئْ%3"},
295 {a="(i)(')(%p*%s)", b="%1ئْ%3"}, 296 {a="(i)(')(%p*%s)", b="%1ئْ%3"},
297-- the following was wrong for it broke the taḫfīfu 'l-hamzati
298-- (look into this later):
296-- moved here from above: 299-- moved here from above:
297 {a="ؤ([^uaiUAI])", b="ؤْ%1"}, 300 -- {a="ؤ([^uaiUAI])", b="ؤْ%1"},
298 {a="ؤ(%p*)$", b="ؤْ%1"}, 301 -- {a="ؤ(%p*)$", b="ؤْ%1"},
299 {a="ؤ(%p*%s)", b="ؤْ%1"}, 302 -- {a="ؤ(%p*%s)", b="ؤْ%1"},
300 {a="أ([^uaiUAI])", b="أْ%1"}, 303 -- {a="أ([^uaiUAI])", b="أْ%1"},
301 {a="أ(%p*)$", b="أْ%1"}, 304 -- {a="أ(%p*)$", b="أْ%1"},
302 {a="أ(%p*%s)", b="أْ%1"}, 305 -- {a="أ(%p*%s)", b="أْ%1"},
303 {a="ئ([^uaiUAI])", b="ئْ%1"}, 306 -- {a="ئ([^uaiUAI])", b="ئْ%1"},
304 {a="ئ(%p*)$", b="ئْ%1"}, 307 -- {a="ئ(%p*)$", b="ئْ%1"},
305 {a="ئ(%p*%s)", b="ئْ%1"}, 308 -- {a="ئ(%p*%s)", b="ئْ%1"},
306 {a="ء([^uaiUAI])", b="ءْ%1"}, 309 -- {a="ء([^uaiUAI])", b="ءْ%1"},
307 {a="ء(%p*)$", b="ءْ%1"}, 310 -- {a="ء(%p*)$", b="ءْ%1"},
308 {a="ء(%p*%s)", b="ءْ%1"}, 311 -- {a="ء(%p*%s)", b="ءْ%1"},
309-- 312--
310 -- middle 313 -- middle
311 {a="([Uw])(')", b="%1ء"}, --new 314 {a="([Uw])(')", b="%1ء"}, --new
@@ -347,9 +350,9 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
347 {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, 350 {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
348 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 351 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
349 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 352 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
350 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 353 {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
351-- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new 354-- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new
352 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 355 {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
353 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 356 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
354 -- assimilations (end) 357 -- assimilations (end)
355 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"}, 358 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"},
@@ -359,9 +362,9 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
359 {a="(B)%-?(\"aN)", b="%1"}, 362 {a="(B)%-?(\"aN)", b="%1"},
360 {a="%-?(\"aN)(_A)", b="ى"}, 363 {a="%-?(\"aN)(_A)", b="ى"},
361 {a="%-?(\"aN)(Y)", b="ى"}, 364 {a="%-?(\"aN)(Y)", b="ى"},
362 {a="(T)%-?(\"aN)", b="%1"}, 365 {a="([TH])%-?(\"aN)", b="%1"},
363 {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new 366 {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new
364 {a="([^TA])%-?(\"aN)", b="%1ا"}, 367 {a="([^TAH])%-?(\"aN)", b="%1ا"},
365 {a="%-?(\"iNI?)", b=""}, 368 {a="%-?(\"iNI?)", b=""},
366 -- quoted tanwīn (end) 369 -- quoted tanwīn (end)
367 {a="%-?(uN)", b="ٌ"}, 370 {a="%-?(uN)", b="ٌ"},
@@ -369,15 +372,15 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
369 -- needed by \arbcolor: 372 -- needed by \arbcolor:
370 {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, 373 {a="%-?(aN)(O[%S]-%_AO)", b="ً"},
371 {a="%-?(aN)(O[%S]-YO)", b="ً"}, 374 {a="%-?(aN)(O[%S]-YO)", b="ً"},
372 {a="(O[%S]-TO)%-?(aN)", b="ً"}, 375 {a="(O[%S]-[TH]O)%-?(aN)", b="ً"},
373 {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new 376 {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new
374 {a="(O[%S]-[^TA]O)%-?(aN)", b="ًا"}, 377 {a="(O[%S]-[^TAH]O)%-?(aN)", b="ًا"},
375 -- 378 --
376 {a="%-?(aN)(_A)", b="ًى"}, 379 {a="%-?(aN)(_A)", b="ًى"},
377 {a="%-?(aN)(Y)", b="ًى"}, 380 {a="%-?(aN)(Y)", b="ًى"},
378 {a="(T)%-?(aN)", b="%1ً"}, 381 {a="([TH])%-?(aN)", b="%1ً"},
379 {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new 382 {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new
380 {a="([^TA])%-?(aN)", b="%1ًا"}, 383 {a="([^TAH])%-?(aN)", b="%1ًا"},
381 {a="%-?(iNI?)", b="ٍ"} 384 {a="%-?(iNI?)", b="ٍ"}
382} 385}
383 386
@@ -401,9 +404,9 @@ tanwinfveasy = { -- no assimilations (see below)
401--easy {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, 404--easy {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"},
402--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 405--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
403--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 406--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
404--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 407--easy {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
405--easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new 408--easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new
406--easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 409--easy {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
407--easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 410--easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
408 -- assimilations (end) 411 -- assimilations (end)
409 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"}, 412 {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"},
@@ -413,9 +416,9 @@ tanwinfveasy = { -- no assimilations (see below)
413 {a="(B)%-?(\"aN)", b="%1"}, 416 {a="(B)%-?(\"aN)", b="%1"},
414 {a="%-?(\"aN)(_A)", b="ى"}, 417 {a="%-?(\"aN)(_A)", b="ى"},
415 {a="%-?(\"aN)(Y)", b="ى"}, 418 {a="%-?(\"aN)(Y)", b="ى"},
416 {a="(T)%-?(\"aN)", b="%1"}, 419 {a="([TH])%-?(\"aN)", b="%1"},
417 {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new 420 {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new
418 {a="([^TA])%-?(\"aN)", b="%1ا"}, 421 {a="([^TAH])%-?(\"aN)", b="%1ا"},
419 {a="%-?(\"iNI?)", b=""}, 422 {a="%-?(\"iNI?)", b=""},
420 -- quoted tanwīn (end) 423 -- quoted tanwīn (end)
421 {a="%-?(uN)", b="ٌ"}, 424 {a="%-?(uN)", b="ٌ"},
@@ -423,15 +426,15 @@ tanwinfveasy = { -- no assimilations (see below)
423 -- needed by \arbcolor: 426 -- needed by \arbcolor:
424 {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, 427 {a="%-?(aN)(O[%S]-%_AO)", b="ً"},
425 {a="%-?(aN)(O[%S]-YO)", b="ً"}, 428 {a="%-?(aN)(O[%S]-YO)", b="ً"},
426 {a="(O[%S]-TO)%-?(aN)", b="ً"}, 429 {a="(O[%S]-[TH]O)%-?(aN)", b="ً"},
427 {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new 430 {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new
428 {a="(O[%S]-[^TA]O)%-?(aN)", b="ًا"}, 431 {a="(O[%S]-[^TAH]O)%-?(aN)", b="ًا"},
429 -- 432 --
430 {a="%-?(aN)(_A)", b="ًى"}, 433 {a="%-?(aN)(_A)", b="ًى"},
431 {a="%-?(aN)(Y)", b="ًى"}, 434 {a="%-?(aN)(Y)", b="ًى"},
432 {a="(T)%-?(aN)", b="%1ً"}, 435 {a="([TH])%-?(aN)", b="%1ً"},
433 {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new 436 {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new
434 {a="([^TA])%-?(aN)", b="%1ًا"}, 437 {a="([^TAH])%-?(aN)", b="%1ًا"},
435 {a="%-?(iNI?)", b="ٍ"} 438 {a="%-?(iNI?)", b="ٍ"}
436} 439}
437 440
@@ -1003,6 +1006,7 @@ singlefv = {
1003 {a="w", b="و"}, 1006 {a="w", b="و"},
1004 {a="y", b="ي"}, 1007 {a="y", b="ي"},
1005 {a="T", b="ة"}, 1008 {a="T", b="ة"},
1009 {a="H", b="ه"},
1006 -- additional characters (begin) 1010 -- additional characters (begin)
1007 {a="p", b="پ"}, 1011 {a="p", b="پ"},
1008 {a="v", b="ڤ"}, 1012 {a="v", b="ڤ"},
@@ -1038,6 +1042,7 @@ singlefveasy = { -- see the differences under 'easy' tag below
1038 {a="y", b="ي"}, 1042 {a="y", b="ي"},
1039 {a="T", b="ة"}, 1043 {a="T", b="ة"},
1040 -- additional characters (begin) 1044 -- additional characters (begin)
1045 {a="H", b="ه"},
1041 {a="p", b="پ"}, 1046 {a="p", b="پ"},
1042 {a="v", b="ڤ"}, 1047 {a="v", b="ڤ"},
1043 {a="g", b="گ"}, 1048 {a="g", b="گ"},