palabra.h

// $Id:$
//***************************************************************
//
//  PROYECTO: AJUSTAR
//
//  NOMBRE MODULO: Palabra
//  PREFIJO:       PAL
//
//  AUTOR/ES: M. Collado
//
//  DESCRIPCION DEL MODULO:
//    Clase Palabra
//
//***************************************************************

#ifndef _PALABRA_H
#define _PALABRA_H

// Módulos de sistema

// Otros módulos de la aplicación


//---------------------------------------------------------------
// Literales, macros y definiciones de tipos:
//---------------------------------------------------------------
typedef struct {
    int PAL_salto;      // número de líneas en blanco delante
    int PAL_sangrado;   // número de espacios en blanco delante
} PAL_Separador_t;

const PAL_Separador_t PAL_SEPARADOR_NULO = {
    0, 0
};

const int PAL_MAXCAR = 64; // longitud máxima de una palabra


//---------------------------------------------------------------
// Variables:
//---------------------------------------------------------------

//---------------------------------------------------------------
// Prototipos de funciones:
//---------------------------------------------------------------
// Indica si un separador es nulo
bool PAL_EsSeparadorNulo (PAL_Separador_t separador);

// Iniciar la lectura de palabras por la entrada estándar
void PAL_Iniciar (void);


//---------------------------------------------------------------
// Definiciones de clases:
//---------------------------------------------------------------
class PAL_c
{
public:

    // Leer una palabra de la entrada estándar
    void PAL_Leer (PAL_Separador_t* separador_p, bool* finDeFichero_p);

    // Imprimir una palabra por la salida estándar
    void PAL_Imprimir (void) const;

    // Longitud de una palabra
    int PAL_Longitud (void) const;

private:
    char PAL_texto[PAL_MAXCAR+1];  // texto, terminado en nulo
};


#endif _PALABRA_H

//****************** Fin de fichero incluido ********************