aboutsummaryrefslogtreecommitdiff
path: root/arabluatex.lua
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2016-02-29 21:53:35 +0100
committerRobert Alessi <alessi@robertalessi.net>2016-02-29 21:53:35 +0100
commit2eeb8fbdce276376dbbae8be0e76d7db5ae7b113 (patch)
tree8ea31a62e8e50fe4c24d3ba8441e8a072993be67 /arabluatex.lua
parenta60a9791400541ec7d3ebec310705c1cfe7ab911 (diff)
downloadarabluatex-2eeb8fbdce276376dbbae8be0e76d7db5ae7b113.tar.gz
first implementation of transliteration tables (dmg)
Diffstat (limited to 'arabluatex.lua')
-rw-r--r--arabluatex.lua42
1 files changed, 42 insertions, 0 deletions
diff --git a/arabluatex.lua b/arabluatex.lua
index f0cfa78..b716bea 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25require("arabluatex_voc") 25require("arabluatex_voc")
26require("arabluatex_fullvoc") 26require("arabluatex_fullvoc")
27require("arabluatex_novoc") 27require("arabluatex_novoc")
28require("arabluatex_trans")
28 29
29local function protectarb(str) 30local function protectarb(str)
30 str = string.gsub(str, "(\\arb.?)(%[.-%])(%b{})", "\\@arb%2%3") 31 str = string.gsub(str, "(\\arb.?)(%[.-%])(%b{})", "\\@arb%2%3")
@@ -206,6 +207,35 @@ local function novoc(str)
206return str 207return str
207end 208end
208 209
210local function transdmg(str)
211 str = string.gsub(str, "\\arb(%b{})", function(inside)
212 inside = string.sub(inside, 2, -2)
213 for i = 1,#hamzatrdmg do
214 inside = string.gsub(inside, hamzatrdmg[i].a, hamzatrdmg[i].b)
215 end
216 for i = 1,#tanwintrdmg do
217 inside = string.gsub(inside, tanwintrdmg[i].a, tanwintrdmg[i].b)
218 end
219 for i = 1,#trigraphstrdmg do
220 inside = string.gsub(inside, trigraphstrdmg[i].a, trigraphstrdmg[i].b)
221 end
222 for i = 1,#digraphstrdmg do
223 inside = string.gsub(inside, digraphstrdmg[i].a, digraphstrdmg[i].b)
224 end
225 for i = 1,#singletrdmg do
226 inside = string.gsub(inside, singletrdmg[i].a, singletrdmg[i].b)
227 end
228 for i = 1,#longvtrdmg do
229 inside = string.gsub(inside, longvtrdmg[i].a, longvtrdmg[i].b)
230 end
231 for i = 1,#shortvtrdmg do
232 inside = string.gsub(inside, shortvtrdmg[i].a, shortvtrdmg[i].b)
233 end
234 return string.format("\\txtrans{%s}", inside)
235 end)
236return str
237end
238
209function processvoc(str) 239function processvoc(str)
210 str = "\\arb{".. str.."}" 240 str = "\\arb{".. str.."}"
211 str = protectarb(str) 241 str = protectarb(str)
@@ -236,6 +266,18 @@ function processnovoc(str)
236return str 266return str
237end 267end
238 268
269function processtrans(str, mode)
270 str = "\\arb{".. str.."}"
271 str = protectarb(str)
272 str = breakcmd(str)
273 str = holdcmd(str)
274 if mode == "dmg" then
275 str = transdmg(str)
276 else end
277 str = unprotectarb(str)
278return str
279end
280
239--print(processvoc("'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu li-yarkiba-hu fI safraTiN qa.sIraTiN wa-qAla la-hu sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'i wa-'adfa`u la-ka 'ujraTaN 'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu li-yarkiba-hu fI safraTiN qa.sIraTiN wa-qAla la-hu sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'i wa-'adfa`u la-ka 'ujraTaN")) 281--print(processvoc("'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu li-yarkiba-hu fI safraTiN qa.sIraTiN wa-qAla la-hu sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'i wa-'adfa`u la-ka 'ujraTaN 'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu li-yarkiba-hu fI safraTiN qa.sIraTiN wa-qAla la-hu sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'i wa-'adfa`u la-ka 'ujraTaN"))
240--print(arbnum("bop 0123456789")) 282--print(arbnum("bop 0123456789"))
241--print(processvoc("daxala \\arb[novoc]{mubtasimaN}")) 283--print(processvoc("daxala \\arb[novoc]{mubtasimaN}"))