All pastes #961650 Raw Edit

Anonymous

public text v1 · immutable
#961650 ·published 2008-03-29 01:33 UTC
rendered paste body

// 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();
  ...
 }
*/