$vg='[@6EOQaeiouáéíóúãõâêôà]' ; $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 sub run {my $a=shift; ($b1,$b2) = m/(.*)\t\[(.*)\]/; $b2 =~ s/\((.*?)\)/ "(".a($1).")"/eg; $b2 =~ s/\)(.*?)\(/ ")".b($1)."("/eg; $b2 =~ s/^(.*?)\(/ b($1)."("/eg; $b2 =~ s/^([^()]*)$/ b($1) /eg; $b2 =~ s/\)([^()]*)$/ ")".b($1) /eg; # $b=~ s/(($vg|$con)~?:?)/$1 /g; $b2 =~ s/[()]//g; $b2 = c($b2); "$b1=$b2\n"; } package main; use fon2sam; while(<>){ print fon2sam::run($_); } package fon2sam; RULES a \\\\no ==> \\\\gr ==> \\\\c3==> \\\\stack ==> 1==>S E==>@ \[==>Z y==>L b==>J Ç==>_ a==>6 \005==>#_ \007==># \015==>O \026==># 3==>E RULES b "==>i \026==># \034==>_ a==>A RULES c \*r==>R ã==>a~ õ==>o~ á==>_a é==>_e í==>_i ó==>_o ú==>_u #_(.)==>$1~: #(.)==>$1~ _(.)==>$1: