git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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
 |