// auteur : Bruno Malenfant
/*
Ce module permet de cacher le mecanisme de lecture de
phrase. Les operations permises permettent d'extraire
les mots (char) lues un a un.
Ce module est une machine abstraite.
*/
#include "LecteurPhrase.h"
#include <assert.h>
#include <stdio.h>
static int c_motSuivant;
static bool c_finDePhrase;
// Initialise le flux de mot.
// Cette routine doit etre appelee avant
// d'utiliser les autres.
void initialiserLecteurPhrase() {
c_motSuivant = getchar();
c_finDePhrase = c_motSuivant == EOF;
}
// Fonction retournant le prochain mot lu.
// Si la fin de la phrase a ete rencontre alors
// elle retourne le caractere 0.
char motSuivant() {
char resultat = c_finDePhrase ? '\0' : ( char )c_motSuivant;
if( ! c_finDePhrase ) {
c_motSuivant = getchar();
c_finDePhrase = c_motSuivant == EOF;
}
return resultat;
}
// Cette fonction retourne true si la fin
// de la phrase a ete rencontre.
bool finDePhrase() {
return c_finDePhrase;
}
// exemple d'utilisation :
/*
initialiserLecteurPhrase();
while( ! finDePhrase() ) {
char mot = motSuivant();
...
}
*/