aboutsummaryrefslogtreecommitdiff
path: root/arabluatex_novoc.lua
blob: 1a5c913a4b6f64b65d56f0e7af1fa4a633733daa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
--[[
This file is part of the `arabluatex' package

copyright (C) 2016  Robert Alessi

Please send error reports and suggestions for improvements to
Robert Alessi <alessi@robertalessi.net>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
--]]

trigraphsnv = { -- trigraphs or more
   -- Allah
   {a="l%-l_ah", b="l-ll_ah"},
   -- 'llatI / 'llad_I
   {a="^'ll(a)([%_]?[dt])", b="ال%1%2"},
   {a="(%s)'ll(a)([%_]?[dt])", b="%1ال%2%3"},
   -- al- + lām
   {a="^(a)l%-(l)", b="ا%1ل%2"},
   {a="([%s%-])(a)l%-(l)", b="%1ا%2ل%3"},
   -- al- + solar consonant
   {a="^(a)l%-([%_%^%.]?[tdrzsn])", b="ا%1ل%2"},
   {a="([%s%-])(a)l%-([%_%^%.]?[tdrzsn])", b="%1ا%2ل%3"},
   -- assim. art. + solar consonant
   {a="^(a)([%_%^%.]?[tdrzsn])%-", b="ا%1ل"},
   {a="([%s%-])(a)([%_%^%.]?[tdrzsn])%-", b="%1ا%2ل"},
   -- al- + initial unstable hamza
   {a="^(a)l%-([uai])", b="ا%1لا%2"},
   {a="([%s%-])(a)l%-([uai])", b="%1ا%2لا%3"},
   -- li-/la- + art. + initial unstable hamza is a special orthography
   {a="l([ai])%-l%-([uai])", b="ل%1لا%2"},
   -- al- + lunar consonant (i.e. what remains)
   {a="^(a)l%-", b="ا%1ل"},
   {a="([%s%-])(a)l%-", b="%1ا%2ل"},
   -- art. with waṣla + lām
   {a="'l%-(l)", b="ال%1"},
   -- art. with waṣla + solar consonant
   {a="'l%-([%_%^%.]?[tdrzsn])", b="ال%1"},
   -- li-/la- + art. + lām
   {a="l([ai])%-l%-(l)", b="ل%1%2"},
   -- assim. art. with waṣla + solar consonant
   {a="'([%_%^%.]?[tdrzsn])%-", b="ال"},
   -- li-/la- + art. + solar consonant is a special orthography
   {a="l([ai])%-l%-([%_%^%.]?[tdrzsn])", b="ل%1ل%2"},
   -- li-/la + assim. art. + solar consonant is a special orthography
   {a="l([ai])%-([%_%^%.]?[tdrzsn])%-([%_%^%.]?[tdrzsn])", b="ل%1ل%3"},
   -- art. with waṣla + initial unstable hamza
   {a="'l%-([uai])", b="الا%1"},   
   -- art. with waṣla + lunar consonant (i.e. what remains)
   {a="'l%-", b="ال"},
   -- the silent wāw
   {a="uU$", b="uو"},
   {a="uU(%W)", b="uو%1"},
   {a="aU$", b="aو"},
   {a="aU(%W)", b="aو%1"},
   {a="iU$", b="iو"},
   {a="iU(%W)", b="iو%1"},
   -- words ending in -āT with silent wāw/yāʾ
   {a="(_a)UA", b="%1وا"},
   {a="(_a)U", b="%1و"},
   {a="(_a)I", b="%1ي"}
}

tanwinnv = {
   {a="uNU", b="و"},
   {a="aNU", b="وا"},
   {a="iNU", b="و"},
   -- assimilations (begin)
--   {a="(uN)(%s)([rlmnwy])", b="|%2%3%3"},
--   {a="(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"},
--   {a="(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"},
--   {a="(T)(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
--   {a="(ء)(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
--   {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"},
--   {a="(iN)(%s)([rlmnwy])", b="|%2%3%3"},
   --assimilations (end)
   {a="(uN)", b=""},
   {a="(B)(aN)", b="%1"},
   {a="(aN)(_A)", b="ى"},
   {a="(aN)(Y)", b="ى"},
   {a="(T)(aN)", b="%1"},
   {a="(ء)(aN)", b="%1"},
   {a="([^TA])(aN)", b="%1ا"},
   {a="(iN)", b=""}
}

longvnv = {
   {a="A", b="ا"},
   {a="U", b="و"},
   {a="I", b="ي"},
   {a="Y", b="ى"},
}

shortvnv = {
	{a="\"u", b="ُ"},
	{a="\"a", b="َ"},
	{a="\"i", b="ِ"},
	{a="u", b=""},
	{a="a", b=""},
	{a="i", b=""}
}

-- return {
-- raw = raw,
-- hamza = hamza,
-- trigraphs = trigraphs,
-- tanwin = tanwin,
-- digraphs = digraphs,
-- single = single,
-- longv = longv,
-- shortv = shortv,
-- null =null
-- }