/*******************************************************************
* NAME :            int main(int argc, char **argv)
*
* DESCRIPTION :     Punto de entrada principal. Abre el diccionario 
*                   principal, procesa el archivo especificado y 
*                   guarda los cambios realizados en el diccionario 
*                   principal.
*******************************************************************/
int main(int argc, char **argv) {
    char *dict;
    /* Verificamos el nro de argumentos. */
    if (argc < 2) {
        printf("spellchecker.c: nro de argumentos erroneo. Deben ser <documento> [<diccionario>].\n");
        return (1);
    }
    /* si se especifico un diccionario lo usamos,  */
    /* caso contrario usamos el diccionario por defecto */
    dict = (argc >=3) ? argv[2] : "dict.txt";
/* completar aca */
    dict_load(dict);    // Se carga el diccionario principal.
    process_document(argv[1]);    // Se procesa el documento.
    dict_save(dict);    // Se guarda el diccionario principal.
    printf("El documento %s ha sido procesado. Resultados en out.txt\n", argv[1]);
}
/*==========================================================================*/
void search_base_vps(char filename[],CVPS *cvps_typ,
                     DICT_WORD fun_dict[],int num_fun_dict,
                     DICT_WORD *vps_dict_tmp[],
                     DICT_WORD vps_dict[],int num_vps_dict_ret,int *ifound)
{/*begin routine*/
  /*=======================================================================*/
  /*             Local variable declarations                               */
  int nline,nkey,i,num;
  int ifirst,nfun_key;
  int num_vps_dict = num_vps_dict_ret;
  NAME fun_key;
  DICT_WORD word;
  FILE *fp;
  /*========================================================================*/
  fp       = cfopen(filename,"r");
  *ifound  = 0;
  ifirst   = 0;
  nline    = 0;
  nkey     = 0;
  nfun_key = 0;
  while(get_fun_key(fp,fun_key,&nline,&nfun_key,filename)){
    get_fun_key_index(fun_key,num_fun_dict,fun_dict,nline,
                      nfun_key,filename,&num);
    if(num==6){
      set_potvps_dict(vps_dict_tmp,&num_vps_dict,ifirst);
      while(get_word(fp,&word,&nline,&nkey,nfun_key,filename)){
        put_word_dict(&word,*vps_dict_tmp,num_vps_dict,
                      fun_key,nline,nkey,nfun_key,filename);
      }/*endwhile*/
      if(strcasecmp((*vps_dict_tmp)[1].keyarg,cvps_typ->atm1)==0){
        *ifound = 1;
        dict_save(*vps_dict_tmp,vps_dict,num_vps_dict);
      }
    }else{
        close_fun_key_cnt(fp,fun_key,&nline,nfun_key,filename);      
    }/*endif*/
  }/*end while*/
  fclose(fp);
  if(*ifound==1){
    for(i=1;i<=num_vps_dict;i++){
      if((vps_dict[i].iuset==0)&&(vps_dict[i].key_type==1)){
        keyword_miss(vps_dict,filename,fun_key,i);}
    }/*endfor*/
  }/*endif*/
} /*end routine*/