/* This file contains the interface for library Boolean.

   Names Declared:
      Boolean, a type whose values are True and False
      <<, the output operator
      >>, the input operator
-------------------------------------------------------------------*/

#ifndef BOOLEAN
#define BOOLEAN

#include <iostream.h>
#include <fstream.h>

/********** the type Boolean **********/

enum Boolean {False, True};


/********** output function **********

   Receive:  Out, an ostream reference
             BoolVal, a Boolean value
   Output:   The character string corresponding to BoolVal
               onto Out
   Return:   ostream reference Out
----------------------------------------------------------------*/

ostream& operator<< (ostream& Out, Boolean BoolVal);


/*********** input function **********

   Receive: In, an istream reference
            BoolVal, a Boolean reference
   Input:   A character string, from In
   Output:  An error message, if there is no Boolean value that
               corresponds to the input string
   Return:  If there is a Boolean value corresponding to the string,
               return that Boolean value via parameter BoolVal
            istream In
-------------------------------------------------------------------*/

istream& operator>> (istream& In, Boolean& BoolVal);


/********** file output function **********

   Receive:  Out, an fstream reference
             BoolVal, a Boolean value
   Output:   The character string corresponding to BoolVal
                onto Out
   Return:   fstream reference Out
----------------------------------------------------------------*/

fstream& operator<< (fstream& Out, Boolean BoolVal);


/********** file input function **********

   Receive: In, an fstream reference
            BoolVal, a Boolean reference
   Input:   A character string, from In
   Output:  An error message, if there is no Boolean value that
               corresponds to the input string
   Return:  If there is a Boolean value corresponding to the string,
               return that Boolean value via parameter BoolVal
            fstream In
-------------------------------------------------------------------*/

fstream& operator>> (fstream& In, Boolean& BoolVal);

#endif
