#! /bin/bash
# Last edited on 2004-12-30 20:21:24 by stolfi

# convert-stolfi-dic - Converte o dicionario "scc-g-fld.dic" (formato stolfi)
# para arquivos separados por categoria gramatical
# 

# diretorio do dicionario do stolfi
stolfidir="${stolfidir}"

# diretorio dos arquivos que compoe o dicionario
dicdir="/home/msc2000/ra880518/parser/dic/"

# caminho completo do dicionario
lex="/home-ext/msc2000/ra880518/parser/dic/lex.dic"

# diretorio das ferramentas
toolsdir="/home/msc2000/ra880518/parser/prog-texto/"

# diretorio das tabelas
tablesdir="/home/msc2000/ra880518/parser/tabelas/"

# > /dev/null para nao imprimir saida padrao

# Extrai e converte código

# extrai adjetivos
grep "[ ]b..[ ]" ${stolfidir}/scc-g-fld.dic \
  | sed 's/[*]//g' \
  | sort -k 2,2 \
  | join -a 1 -1 2 -2 1 -o 1.1,2.2,1.3 - ${tablesdir}/conv-categories.tbn \
  | sort > ${dicdir}/adjetivos.dic

# extrai substantivos
grep "[ ]c..[ ]" ${stolfidir}/scc-g-fld.dic \
  | sed 's/[*]//g' \
  | sort -k 2,2 \
  | join -a 1 -1 2 -2 1 -o 1.1,2.2,1.3 - ${tablesdir}/conv-categories.tbn \
  | sort > ${dicdir}/substantivos.dic

# extrai nomes proprios
grep "[ ]d..[ ]" ${stolfidir}/scc-g-fld.dic \
  | sed 's/[*]//g' \
  | sort -k 2,2 \
  | join -a 1 -1 2 -2 1 -o 1.1,2.2,1.3 - ${tablesdir}/conv-categories.tbn \
  | sort > ${dicdir}/nomes_proprios.dic

# extrai verbos
grep "[ ]e.*[ ]" ${stolfidir}/scc-g-fld.dic \
  | sed 's/[*]//g' \
  | sort -k 2,2 \
  | join -a 1 -1 2 -2 1 -o 1.1,2.2,1.3 - ${tablesdir}/conv-categories.tbn \
  | sort > ${dicdir}/verbos.dic

# extrai adverbios terminados em mente
grep "[ ]f.[ ].*mente$" ${stolfidir}/scc-g-fld.dic \
  | sed 's/[*]//g' \
  | sort -k 2,2 \
  | join -a 1 -1 2 -2 1 -o 1.1,2.2,1.3 - ${tablesdir}/conv-categories.tbn \
  | sort > ${dicdir}/adverbios_com_mente.dic

# Verifica formato
gawk -f ${toolsdir}/check-lex-format-v -v colunas=3 \
    ${dicdir}/adjetivos.dic \
    ${dicdir}/adverbios_sem_mente.dic \
    ${dicdir}/adverbios_com_mente.dic \
    ${dicdir}/artigos.dic \
    ${dicdir}/comparadores.dic \
    ${dicdir}/conjuncoes.dic \
    ${dicdir}/contracoes.dic \
    ${dicdir}/coordenadores.dic \
    ${dicdir}/interjeicoes.dic \
    ${dicdir}/nomes_proprios.dic \
    ${dicdir}/numerais.dic \
    ${dicdir}/pontuacoes.dic \
    ${dicdir}/preposicoes.dic \
    ${dicdir}/pronomes.dic \
    ${dicdir}/relativos.dic \
    ${dicdir}/siglas.dic \
    ${dicdir}/simbolos_avos.dic \
    ${dicdir}/substantivos.dic \
    ${dicdir}/verbos.dic \
    ${dicdir}/extras.dic \
  > /dev/null \
  2> ${dicdir}/wrong-dic.err

# Junta todos os pedaços num arquivo só
sort -u \
    ${dicdir}/adjetivos.dic \
    ${dicdir}/adverbios_sem_mente.dic \
    ${dicdir}/adverbios_com_mente.dic \
    ${dicdir}/artigos.dic \
    ${dicdir}/comparadores.dic \
    ${dicdir}/conjuncoes.dic \
    ${dicdir}/contracoes.dic \
    ${dicdir}/coordenadores.dic \
    ${dicdir}/interjeicoes.dic \
    ${dicdir}/nomes_proprios.dic \
    ${dicdir}/numerais.dic \
    ${dicdir}/pontuacoes.dic \
    ${dicdir}/preposicoes.dic \
    ${dicdir}/pronomes.dic \
    ${dicdir}/relativos.dic \
    ${dicdir}/siglas.dic \
    ${dicdir}/simbolos_avos.dic \
    ${dicdir}/substantivos.dic \
    ${dicdir}/verbos.dic \
    ${dicdir}/extras.dic \
  | gawk -f ${toolsdir}/remove-comments \
  | awk '{printf("*%s* %s %s\n",$1,$2,$3)}' > ${lex}
