#! /usr/bin/gawk -f # Last edited on 2004-12-30 20:46:53 by stolfi # expand-contractions - EXPANDE CONTRACOES BEGIN { contracao = "ct" # classe da contracao enclise = "en" # classe da enclise mesoclise = "me" # classe da mesoclise contraido = "((" contracao ")|(" enclise ")|(" mesoclise "))" # contracao, enclise ou mesoclise } ($6 ~ "^" contraido "$") { # arco contem contracao, enclise ou mesoclise gsub(/[,]/," ",$7) # substitui "," por " " da canonica da contracao lexico1 = gensub(/[(](.+)[;](.+)([;](.+))?[)]/,"\\1","g",$7) # primeiro lexico da contracao lexico2 = gensub(/[(](.+)[;](.+)([;](.+))?[)]/,"\\2","g",$7) # segundo lexico da contracao lexico3 = gensub(/[(](.+)[;](.+)([;](.+))?[)]/,"\\4","g",$7) # terceiro lexico da contracao (se existe) printf("%d %d %s\n", $1, $1+1, lexico1) if (lexico3 == "") # se nao existe terceiro lexico na contracao printf("%d %d %s\n", $1+1, $2, lexico2) else # se existe terceiro lexico na contracao { printf("%d %d %s\n", $1+1, $1+2, lexico2) printf("%d %d %s\n", $1+2, $2, lexico3) } next } // { printf("%d %d %s %s %s\n", $1, $2, $3, $6, $7) } # arco nao contem contracao