49 lines
		
	
	
		
			902 B
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			902 B
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __SCANNER_H
 | 
						|
#define __SCANNER_H
 | 
						|
 | 
						|
#ifndef __FSTREAM_H
 | 
						|
#include <fstream.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef __STRINGS_H
 | 
						|
#include <strings.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef INCL_XVTH
 | 
						|
#include <xvt.h>
 | 
						|
#endif
 | 
						|
 | 
						|
// @C
 | 
						|
class TScanner : private ifstream
 | 
						|
{
 | 
						|
  // @DPRIV
 | 
						|
  TString _token, _key;
 | 
						|
  bool _pushed;
 | 
						|
  word _line;
 | 
						|
 | 
						|
public:
 | 
						|
  // @FPUB
 | 
						|
  TScanner(const char* filename); 
 | 
						|
  ~TScanner() {}
 | 
						|
  const TString& pop();
 | 
						|
  const TString& key() const { return _key; }
 | 
						|
  const TString& popkey() { pop(); return key(); }
 | 
						|
  const TString& string();
 | 
						|
  TString& line(char eol = '\n');
 | 
						|
  const TString& equal() { return line('='); }
 | 
						|
  void rectangle(RCT& rect);
 | 
						|
  int integer();
 | 
						|
  double number();
 | 
						|
  const TString& operand();
 | 
						|
  bool paragraph(const char* name);
 | 
						|
 | 
						|
  bool ok() { return good(); }
 | 
						|
 | 
						|
  void push(const char* tok = NULL);
 | 
						|
  const TString& token() const { return _token; }
 | 
						|
  word linenum() { return _line; }
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif // __SCANNER_H
 |