audk/Tools/CCode/Source/Pccts/h/BufFileInput.h

54 lines
1.3 KiB
C++

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