$masPw='\w+(?:ores|os)'; $femPw='\w+(?:as|ções)'; $masw='\w+(?:or|o)'; $femw='\w+(?:a|ção)'; sub posProc{ while( # adjectivos #1 # é bonito -> is beautifull #s/(\w+) (\w+)#1/$1 $3 $2/g || s/#[89] (\w+|\([^)]+\))#1 ($masw)/ $2 $1#ms/g || s/#[89] (\w+|\([^)]+\))#1 ($masPw)/#mp $2 $1#mp/g || s/#[89] (\w+|\([^)]+\))#1 ($femw)/#fs $2 $1#fs/g || s/#[89] (\w+|\([^)]+\))#1 ($femPw)/#fp $2 $1#fp/g || s/\((.*)\)(#[mf][sp])/$1$2/g || s/#ms//g || s/[lra]#fs//g || s/ês#fs/esa/g || s/o#fs/a/g || s/m#fs/ma/g || s/ês#fp/esas/g || s/o#fp/as/g || s/m#fp/mas/g || s/as#fp//g || s/or#fp/oras/g || s/o#mp/os/g || s/os#mp//g || s/ês#mp/eses/g || s/or#mp/ores/g || s/m#mp/ns/g || s/l#[mf]p/is/g || s/r#[mf]p/es/g || # the cat -> o gato # the table -> a mesa # the files -> os ficheiros s/O#9 (\w+(a|ção))\b/A $1/g || s/O#9 (\w+os)\b/Os $1/g || s/O#9 (\w+(as|ções))\b/As $1/g || s/o#9 (\w+(a|ção))\b/a $1/g || s/o#9 (\w+os)\b/os $1/g || s/o#9 (\w+(as|ções))\b/as $1/g || s/#9//g || #a cat -> um gato #a table -> uma mesa s/m#8 (\w+(a|ção))\b/ma $1/g || s/m#8 (\w+os)\b/ns $1/g || s/m#8 (\w+(as|ções))\b/mas $1/g || s/#8//g || #to the cat -> ao gato #to the table -> à mesa s/À#7 (\w+o)\b/Ao $1/g || s/À#7 (\w+os)\b/Aos $1/g || s/à#7 (\w+o)\b/ao $1/g || s/à#7 (\w+os)\b/aos $1/g || s/#7 (\w+(as|ções))\b/s $1/g || s/#7//g ){} } 1;