// FILE: BufFileInput.h | |
// AUTHOR: Alexey Demakov (AVD) demakov@kazbek.ispras.ru | |
// CREATION: 26-JAN-1998 | |
// DESCRIPTION: File Input Stream with lookahead for Scanner | |
// Tested under Win32 with ANTLR 1.33 MR10 and MSVC 5.0 | |
// Change History: | |
// | |
// 28-May-1998 Add virtual destructor to release buffer | |
// Manfred Kogler (km@cast.uni-linz.ac.at) | |
// (1.33MR14) | |
#ifndef BufFileInput_h | |
#define BufFileInput_h | |
#include "pcctscfg.h" | |
#include "pccts_stdio.h" | |
PCCTS_NAMESPACE_STD | |
#include "DLexerBase.h" | |
class DllExportPCCTS BufFileInput : public DLGInputStream | |
{ | |
public: | |
// constructor | |
// f - input stream | |
// buf_size - size of buffer (maximal length for string in is_in) | |
BufFileInput(FILE *f, int buf_size = 8 ); | |
virtual ~BufFileInput(); | |
// gets next char from stream | |
virtual int nextChar( void ); | |
// looks in stream and compares next l characters with s | |
// returns the result of comparision | |
int lookahead( char* s ); | |
private: | |
FILE *input; // input stream; | |
int* buf; // buffer | |
int size; // size of buffer | |
int start; // position of the first symbol in buffer | |
int len; // count of characters in buffers | |
}; | |
#endif | |
// end of file BufFileInput.h |