line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Lingua::AR::Word; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
6
|
use strict; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
38
|
|
4
|
1
|
|
|
1
|
|
6
|
use utf8; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
sub encode{ |
8
|
|
|
|
|
|
|
|
9
|
1
|
|
|
1
|
0
|
3
|
my $word=shift; |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
# let's take away the FIRST hamza ON/UNDER the alef from the word |
12
|
1
|
|
|
|
|
4
|
$word=~s/\x{0623}//; #HAMZA ON ALEF |
13
|
1
|
|
|
|
|
2
|
$word=~s/\x{0625}//; #HAMZA UNDER ALEF |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
# let's take away the double-letters (=letter+shadda) |
16
|
1
|
|
|
|
|
2
|
$word=~s/\x{0628}\x{0651}/bb/g; |
17
|
1
|
|
|
|
|
3
|
$word=~s/\x{062A}\x{0651}/tt/g; |
18
|
1
|
|
|
|
|
3
|
$word=~s/\x{062B}\x{0651}/_t_t/g; |
19
|
1
|
|
|
|
|
2
|
$word=~s/\x{062C}\x{0651}/^g^g/g; |
20
|
1
|
|
|
|
|
2
|
$word=~s/\x{062D}\x{0651}/.h.h/g; |
21
|
1
|
|
|
|
|
3
|
$word=~s/\x{062E}\x{0651}/_h_h/g; |
22
|
1
|
|
|
|
|
3
|
$word=~s/\x{062F}\x{0651}/dd/g; |
23
|
1
|
|
|
|
|
2
|
$word=~s/\x{0630}\x{0651}/_d_d/g; |
24
|
1
|
|
|
|
|
3
|
$word=~s/\x{0632}\x{0651}/zz/g; |
25
|
1
|
|
|
|
|
2
|
$word=~s/\x{0633}\x{0651}/ss/g; |
26
|
1
|
|
|
|
|
3
|
$word=~s/\x{0634}\x{0651}/^s^s/g; |
27
|
1
|
|
|
|
|
2
|
$word=~s/\x{0635}\x{0651}/.s.s/g; |
28
|
1
|
|
|
|
|
3
|
$word=~s/\x{0636}\x{0651}/.d.d/g; |
29
|
1
|
|
|
|
|
2
|
$word=~s/\x{0637}\x{0651}/.t.t/g; |
30
|
1
|
|
|
|
|
2
|
$word=~s/\x{0638}\x{0651}/.z.z/g; |
31
|
1
|
|
|
|
|
4
|
$word=~s/\x{0639}\x{0651}/``/g; |
32
|
1
|
|
|
|
|
2
|
$word=~s/\x{063A}\x{0651}/.g.g/g; |
33
|
1
|
|
|
|
|
2
|
$word=~s/\x{0641}\x{0651}/ff/g; |
34
|
1
|
|
|
|
|
3
|
$word=~s/\x{0642}\x{0651}/qq/g; |
35
|
1
|
|
|
|
|
2
|
$word=~s/\x{0643}\x{0651}/kk/g; |
36
|
1
|
|
|
|
|
3
|
$word=~s/\x{0644}\x{0651}/ll/g; |
37
|
1
|
|
|
|
|
32
|
$word=~s/\x{0645}\x{0651}/mm/g; |
38
|
1
|
|
|
|
|
2
|
$word=~s/\x{0646}\x{0651}/nn/g; |
39
|
1
|
|
|
|
|
4
|
$word=~s/\x{0647}\x{0651}/hh/g; |
40
|
1
|
|
|
|
|
2
|
$word=~s/\x{0648}\x{0651}/ww/g; |
41
|
1
|
|
|
|
|
3
|
$word=~s/\x{064A}\x{0651}/yy/g; |
42
|
1
|
|
|
|
|
2
|
$word=~s/\x{0631}\x{0651}/rr/g; |
43
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
# now let's think of single letters |
45
|
1
|
|
|
|
|
5
|
$word=~s/\x{0627}/A/g; #ALEF; |
46
|
1
|
|
|
|
|
3
|
$word=~s/\x{062A}/t/g; #TEH; |
47
|
1
|
|
|
|
|
2
|
$word=~s/\x{0643}/k/g; #KAF |
48
|
1
|
|
|
|
|
2
|
$word=~s/\x{0628}/b/g; #BEH |
49
|
1
|
|
|
|
|
4
|
$word=~s/\x{0642}/q/g; #QAF |
50
|
1
|
|
|
|
|
2
|
$word=~s/\x{062E}/_h/g; #KHAH |
51
|
1
|
|
|
|
|
2
|
$word=~s/\x{0629}/T/g; #TEH MARBUTA |
52
|
1
|
|
|
|
|
2
|
$word=~s/\x{0631}/r/g; #REH |
53
|
1
|
|
|
|
|
2
|
$word=~s/\x{062C}/^g/g; #JEEM |
54
|
1
|
|
|
|
|
2
|
$word=~s/\x{0634}/^s/g; #SHEEN |
55
|
1
|
|
|
|
|
2
|
$word=~s/\x{0633}/s/g; #SEEN |
56
|
1
|
|
|
|
|
3
|
$word=~s/\x{0635}/.s/g; #SAD |
57
|
1
|
|
|
|
|
2
|
$word=~s/\x{062F}/d/g; #DAL |
58
|
1
|
|
|
|
|
2
|
$word=~s/\x{0630}/_d/g; #THAL |
59
|
1
|
|
|
|
|
1
|
$word=~s/\x{062B}/_t/g; #THEH |
60
|
1
|
|
|
|
|
2
|
$word=~s/\x{062D}/.h/g; #HAH |
61
|
1
|
|
|
|
|
654
|
$word=~s/\x{0636}/.d/g; #DAD |
62
|
1
|
|
|
|
|
4
|
$word=~s/\x{0641}/f/g; #FEH |
63
|
1
|
|
|
|
|
2
|
$word=~s/\x{0632}/z/g; #ZAIN |
64
|
1
|
|
|
|
|
2
|
$word=~s/\x{0637}/.t/g; #TAH |
65
|
1
|
|
|
|
|
2
|
$word=~s/\x{0638}/.z/g; #ZAH |
66
|
1
|
|
|
|
|
2
|
$word=~s/\x{063A}/.g/g; #GHAIN |
67
|
1
|
|
|
|
|
5
|
$word=~s/\x{0644}/l/g; #LAM |
68
|
1
|
|
|
|
|
6
|
$word=~s/\x{0645}/m/g; #MEEM |
69
|
1
|
|
|
|
|
3
|
$word=~s/\x{0646}/n/g; #NOON |
70
|
1
|
|
|
|
|
3
|
$word=~s/\x{0647}/h/g; #HEH |
71
|
1
|
|
|
|
|
2
|
$word=~s/\x{0648}/w/g; #WAW |
72
|
1
|
|
|
|
|
2
|
$word=~s/\x{0649}/_A/g; #ALEF MAKSURA |
73
|
1
|
|
|
|
|
2
|
$word=~s/\x{067E}/p/g; #PEH |
74
|
1
|
|
|
|
|
2
|
$word=~s/\x{06A4}/v/g; #VEH |
75
|
1
|
|
|
|
|
2
|
$word=~s/\x{06AF}/g/g; #GAF |
76
|
|
|
|
|
|
|
#$word=~s/\x{0681}/c/g; #HAMZA ON HAH |
77
|
1
|
|
|
|
|
2
|
$word=~s/\x{0686}/^c/g; #HAH WITH MIDDLE 3 DOTS DOWNWARD |
78
|
|
|
|
|
|
|
#$word=~s/\x{0695}/.r/g; #REH WITH SMALL V BELOW |
79
|
1
|
|
|
|
|
2
|
$word=~s/\x{064B}/aN/g; #FATHATAN |
80
|
1
|
|
|
|
|
2
|
$word=~s/\x{064C}/uN/g; #DAMMATAN |
81
|
1
|
|
|
|
|
2
|
$word=~s/\x{064D}/iN/g; #KASRATAN |
82
|
1
|
|
|
|
|
1
|
$word=~s/\x{064E}/a/g; #FATHA |
83
|
1
|
|
|
|
|
2
|
$word=~s/\x{064F}/u/g; #DAMMA |
84
|
1
|
|
|
|
|
2
|
$word=~s/\x{0650}/i/g; #KASRA |
85
|
1
|
|
|
|
|
2
|
$word=~s/\x{0670}/_a/g; #LETTER SUPERSCRIPT ALEF = DAGGER ALIF |
86
|
|
|
|
|
|
|
#$word=~s/\x{0657}/_u/g; #INVERTED DAMMA |
87
|
|
|
|
|
|
|
#$word=~s/\x{0656}/_i/g; #SUBSCRIPT ALEF |
88
|
1
|
|
|
|
|
3
|
$word=~s/\x{060C}/,/g; #COMMA |
89
|
1
|
|
|
|
|
3
|
$word=~s/\x{061B}/;/g; #SEMICOLON |
90
|
1
|
|
|
|
|
2
|
$word=~s/\x{061F}/?/g; #QUESTION MARK |
91
|
|
|
|
|
|
|
#$word=~s/\x{0695}/'A/g; #REH WITH SMALL V BELOW |
92
|
1
|
|
|
|
|
2
|
$word=~s/\x{0621}/'/g; #HAMZA |
93
|
1
|
|
|
|
|
3
|
$word=~s/\x{0622}/'A/g; #MADDA ON ALEF |
94
|
1
|
|
|
|
|
2
|
$word=~s/\x{0623}/'/g; #HAMZA ON ALEF |
95
|
1
|
|
|
|
|
2
|
$word=~s/\x{0624}/'/g; #HAMZA ON WAW |
96
|
1
|
|
|
|
|
2
|
$word=~s/\x{0625}/'/g; #HAMZA UNDER ALEF |
97
|
1
|
|
|
|
|
3
|
$word=~s/\x{0626}/'/g; #HAMZA ON YEH |
98
|
1
|
|
|
|
|
3
|
$word=~s/\x{0639}/`/g; #AIN |
99
|
1
|
|
|
|
|
3
|
$word=~s/\x{0640}/--/g; #TATWEEL |
100
|
1
|
|
|
|
|
2
|
$word=~s/\x{064A}/y/g; #YEH |
101
|
1
|
|
|
|
|
1
|
$word=~s/\x{0652}//g; #SUKUN |
102
|
1
|
|
|
|
|
3
|
$word=~s/\x{0671}/A/g; #ALIF WASLA |
103
|
|
|
|
|
|
|
#$word=~s/\x{0685}/,c/g; #HAH WITH 3 DOTS ABOVE |
104
|
1
|
|
|
|
|
2
|
$word=~s/\x{0698}/^z/g; #REH WITH 3 DOTS ABOVE = JEH |
105
|
|
|
|
|
|
|
#$word=~s/\x{06AD}/^n/g; #KAF WITH 3 DOTS ABOVE = NG |
106
|
|
|
|
|
|
|
#$word=~s/\x{06B5}/^l/g; #LAM WITH SMALL V |
107
|
1
|
|
|
|
|
6
|
return $word; |
108
|
|
|
|
|
|
|
} |
109
|
|
|
|
|
|
|
|
110
|
|
|
|
|
|
|
1; |
111
|
|
|
|
|
|
|
__END__ |