#include <stdio.h>
#include <ctype.h>
#include "string.hh"
-#include "varray.hh"
+#include "array.hh"
/**
line counting input stream.
a stream for textfiles. linecounting. Thin interface getchar and
- ungetchar. (ungetc is unlimited)
+ ungetchar. (ungetc is unlimited)
should protect get and unget against improper use
*/
public:
Text_stream (String fn);
- String get_name() { return name; }
- bool eof() {
- return feof (f);
- }
- char get() {
+ String get_name () { return name; }
+ bool eof_b ();
+ char get () {
char c;
- if (pushback.empty())
+ if (pushback.empty ())
c = getc (f);
else
- c = pushback.pop();
+ c = pushback.pop ();
if (c =='\n')
line_no++;
line_no--;
pushback.push (c);
}
- char peek() {
- char c = get();
+ char peek () {
+ if (eof_b ())
+ return (char)-1;
+ char c = get ();
unget (c);
return c;
}
- bool eol() {
- return (peek() == '\n');
+ bool eol () {
+ return (peek () == '\n');
}
- int line(){
+ int line (){
return line_no;
}
- ~Text_stream(){
- if (!eof())
- cerr <<__FUNCTION__<< ": closing unended file";
-
- fclose (f);
- }
+ ~Text_stream ();
+
/// GNU format message.
void message (String s);