BEGIN{ open(D,"pt.dic") or die; while(){if(/(.*)=(.*)/){$dict{$1}=$2; print "$1\n"} } close D; } $vg='[@6EOQUaeiouwáéíóúãõâêôà]' ; $con='[SJLRZdrstpsfgjklzcvbnm]' ; # consoante menos h #foneticos (SAMPA) S=x J=nh L=lh R=rr O=ó E=é Z=j #auxiliares meus Q=e/3 I=i_dos_ditongos U=u_semivogal sub run{my $a=shift; $a=$dict{$a} || $a; $b=b(a($a)); $b=~ s/(($vg|$con)~?:?)/$1 /g; $b; } RULES a ^h==> lh==>L ch==>S nh==>J ss==>ç rr==>R ^r==>R ([nls])r==>$1R #lavar - lavare/3 #([aei])([rl])$==>$1:$2Q ([aei])([rl])$==>$1:$2 #([rl])$==>$1Q ($vg)[nm]($con)==>$1~$2 am$==>6~U~ a~==>6~ ($vg)m$==>$1~ c([eiéíê@])==>ç$1 g([eiéíê@])==>Z$1 gu([eiéíê@])==>g_$1 j==>Z qu([eiéí@])==>k$1 qu([aáóoã6])==>ku$1 ($vg)s($vg)==>$1z$2 s($con)==>S$1 ($vg)x($vg)==>$1z$2 z$==>:S x$==>S ão==>6~:U~ os$==>uS as$==>6S o$==>u a$==>6 e$==>@ ai==>aI ei==>6I oi==>oI ou==>ow ui==>uI y==>i s$==>S RULES b ç==>s c==>k x==>S I==>j à==>a: á==>a: é==>E: í==>i: ó==>O: ú==>u: ã==>6~: ên==>e~: ê==>e: _==>