| // 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 |