gm2-libs/PushBackInput (The GNU Modula-2 Compiler)

#### 4.1.30 gm2-libs/PushBackInput ¶

    DEFINITION MODULE PushBackInput ;

    FROM FIO IMPORT File ;
    FROM DynamicStrings IMPORT String ;

    EXPORT QUALIFIED Open, PutCh, GetCh, Error, WarnError, WarnString,
                     Close, SetDebug, GetExitStatus, PutStr,
                     PutString, GetColumnPosition, GetCurrentLine ;

    (*
       Open - opens a file for reading.
    *)

    PROCEDURE Open (a: ARRAY OF CHAR) : File ;

    (*
       GetCh - gets a character from either the push back stack or
               from file, f.
    *)

    PROCEDURE GetCh (f: File) : CHAR ;

    (*
       PutCh - pushes a character onto the push back stack, it also
               returns the character which has been pushed.
    *)

    PROCEDURE PutCh (ch: CHAR) : CHAR ;

    (*
       PutString - pushes a string onto the push back stack.
    *)

    PROCEDURE PutString (a: ARRAY OF CHAR) ;

    (*
       PutStr - pushes a dynamic string onto the push back stack.
                The string, s, is not deallocated.
    *)

    PROCEDURE PutStr (s: String) ;

    (*
       Error - emits an error message with the appropriate file, line combination.
    *)

    PROCEDURE Error (a: ARRAY OF CHAR) ;

    (*
       WarnError - emits an error message with the appropriate file, line combination.
                   It does not terminate but when the program finishes an exit status of
                   1 will be issued.
    *)

    PROCEDURE WarnError (a: ARRAY OF CHAR) ;

    (*
       WarnString - emits an error message with the appropriate file, line combination.
                    It does not terminate but when the program finishes an exit status of
                    1 will be issued.
    *)

    PROCEDURE WarnString (s: String) ;

    (*
       Close - closes the opened file.
    *)

    PROCEDURE Close (f: File) ;

    (*
       GetExitStatus - returns the exit status which will be 1 if any warnings were issued.
    *)

    PROCEDURE GetExitStatus () : CARDINAL ;

    (*
       SetDebug - sets the debug flag on or off.
    *)

    PROCEDURE SetDebug (d: BOOLEAN) ;

    (*
       GetColumnPosition - returns the column position of the current character.
    *)

    PROCEDURE GetColumnPosition () : CARDINAL ;

    (*
       GetCurrentLine - returns the current line number.
    *)

    PROCEDURE GetCurrentLine () : CARDINAL ;

    END PushBackInput.