File Coverage

blib/lib/Lingua/PT/PLN/Words2Sampa.pm
Criterion Covered Total %
statement 8 440 1.8
branch 0 208 0.0
condition 0 2 0.0
subroutine 3 6 50.0
pod 1 1 100.0
total 12 657 1.8


line stmt bran cond sub pod time code
1             # -*- cperl -*-
2             package Lingua::PT::PLN::Words2Sampa;
3 4     4   29 use strict;
  4         9  
  4         172  
4 4     4   3790 use Text::RewriteRules;
  4         145476  
  4         34  
5              
6             our ($vg, $con);
7              
8             BEGIN{
9             $vg='[@6EOQUaeiouwáéíóúãõâêôà]' ;
10             $con='[SJLRZdrstpsfgjklzcvbnmç]' ; # consoante menos h
11             }
12              
13             #foneticos (SAMPA) S=x J=nh L=lh R=rr O=ó E=é Z=j
14             #auxiliares meus Q=e/3 I=i_dos_ditongos U=u_semivogal
15              
16             sub run{
17             my $a = shift;
18             my $debug = shift || 0;
19             print "\nttf:'$a'=" if $debug;
20             $b=_b(_a($a));
21             # $b=~ s/(($vg|$con)~?:?)/$1 /g;
22             print $b if $debug;
23             $b;
24             }
25              
26             RULES _a
27              
28             # â==>a:n
29             lh==>L
30             ch==>S
31             nh==>J
32             ñ==>J
33              
34             qu(:?)(o~?[nm])==>kw$2$1
35             qu(:?)o==>kuO$1
36             qu(:?)([aáóã6]~?)==>kw$2$1
37             qu(:?)([eiéíê\@]~?)==>k$2$1
38             qu?==>k
39              
40 4     4   19763 c([Eeiéíê\@])==>ç$1
41 4         19331  
42             ass==>6ss
43             ss==>ç
44             ^ho==>O
45             ^o:==>O:
46             ^h==>
47             ã:?o==>6~:w~
48 0     0 1   ã:?e==>6~:I~
49 0   0        
50 0 0         osi==>uzi
51 0           ^act==>_act
52             ^al($con)==>_al$1
53 0 0         ^a($con)==>6$1
54 0            
55             rr==>R
56             ^r==>R
57             ([nls])r==>$1R
58 0     0     el$==>El
59 0           ([aEei])([rl])$==>$1:$2!! $_!~/:/
60 0            
61             ^es($con)==>iS$1
62 0           e[xS](?=[cp])==>6IS
63 0           ^e([nmui])==>_e$1
64 0           ^e(?![:~])==>i
65 0            
66 0 0         g([eiéíê\@])==>Z$1
67 0           gu(:?)([eiéíê\@])==>g_$2$1
68 0            
69             #($vg)(:?)([nm])($con)==>$1~$2$3$4
70 0           ($vg)(:?)([nm])($con)==>$1~$2$4
71 0 0         a(:?)[nm]$==>6~$1w~
72 0           a~==>6~
73 0           O~==>o~
74             #õ(:?)e==>o$1ein
75 0           õ(:?)e==>o:e~I~n
76 0 0         [eé](:?)m$==>6~$1I~
77 0           ($vg)m$==>$1~
78 0            
79             ecç==>Eç
80 0           cç==>ç
81 0 0          
82 0           # e(:?)Z==>6$1IZ
83 0            
84             sZ==>j
85 0           j==>Z
86 0 0         ct==>t
87 0            
88 0           ba==>b6
89             ($vg)(:?)s($vg)==>$1$2z$3
90 0           esc==>esk
91 0 0          
92 0           s([Z])==>$1
93 0           s([bdgvZzlRmnJL])==>Z$1
94              
95 0           s($con)==>S$1
96 0 0         ^([ie\@])x([ioae])==>iz$2
97 0           e:xo==>e:kso
98 0           exo==>ekso
99             #($vg)x($vg)==>$1z$2
100 0           ($vg)(:?)x($vg)==>$1$2S$3
101 0 0          
102 0           o:z$==>OS
103 0           z$==>:S
104             x$==>S
105 0            
106 0 0         os$==>uS
107 0           as$==>6S
108 0           es$==>\@S
109             o$==>u
110 0           a$==>6
111 0 0         e$==>\@
112 0           a(:?)i(?!:)==>a$1I
113 0           a(:?)u==>a$1w
114             e(:?)i==>6$1I
115 0           e(:?)u==>e$1w
116 0 0         o(:?)[a6](S?)$==>o$1u6$2
117 0           o(:?)i==>o$1I
118 0           ou==>ow
119             u(:?)i(?!:)==>u$1I
120 0           y==>i
121 0 0         s$==>S
122 0            
123 0           ENDRULES
124              
125 0           RULES _b
126 0 0          
127 0           e(?![:~wIj])==>@
128 0           o(?![:~wIj])==>u
129             a(?![:~wIj])==>6
130 0            
131 0 0         ç==>s
132 0           c==>k
133 0           x==>S
134             I==>j
135 0           h==>
136 0 0          
137 0           à==>a:
138 0           á==>a:
139              
140 0           é==>E:
141 0 0         í==>i:
142 0           ó==>O:
143 0           ú==>u:
144             ã==>6~:
145 0           â(~?)==>6~:
146 0 0         ê~==>e~:
147 0           ê(:?)n==>e~:n
148 0           ê==>e:
149             ô~==>o~:
150 0           ô(:?)n==>o~:n
151 0 0         ô==>o:
152 0           ::==>:
153 0           _==>
154              
155 0           ENDRULES
156 0 0          
157 0           1;
158 0            
159             __END__