Various typo in BaseTools. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Coeur <coeur@gmx.fr> Reviewed-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			99 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
 | 
						|
/************************************************************/
 | 
						|
/*															*/
 | 
						|
/*		Predefined char stream: Input from (c++) stream.	*/
 | 
						|
/*															*/
 | 
						|
/* By Hubert Holin (Hubert.Holin@Bigfoot.com), 1998.		*/
 | 
						|
/*															*/
 | 
						|
/* This is completely free stuff, do whatever you want with	*/
 | 
						|
/* it (but then, I will take no responsibility for whatever	*/
 | 
						|
/* may happen if you do either... caveat emptor!).			*/
 | 
						|
/*															*/
 | 
						|
/************************************************************/
 | 
						|
 | 
						|
#ifndef _DLG_STREAM_INPUT_H
 | 
						|
#define _DLG_STREAM_INPUT_H
 | 
						|
 | 
						|
#include "pccts_istream.h"
 | 
						|
 | 
						|
PCCTS_NAMESPACE_STD
 | 
						|
 | 
						|
#ifndef DLGX_H
 | 
						|
#include "DLexerBase.h"
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
// NOTES:	The semantics of the copy constructor
 | 
						|
//			and the affectation operator may be unwarranted...
 | 
						|
//			and the stream may not be reset.
 | 
						|
//
 | 
						|
//			It would have been so much nicer for nextChar()
 | 
						|
//			to throw (of for the DLGInputStream to change status)
 | 
						|
//			upon hitting EOF than to return an "int"...
 | 
						|
 | 
						|
template	<
 | 
						|
				class E,
 | 
						|
				class T = ::std::char_traits<E>
 | 
						|
			>
 | 
						|
class DLG_stream_input : public DLGInputStream
 | 
						|
{
 | 
						|
public:
 | 
						|
	
 | 
						|
						DLG_stream_input(::std::basic_istream<E,T> * p_input_stream)
 | 
						|
	:	input(p_input_stream)
 | 
						|
	{
 | 
						|
		// nothing to do!
 | 
						|
	};
 | 
						|
	
 | 
						|
						DLG_stream_input(const DLG_stream_input & a_recopier)
 | 
						|
	:	input(a_recopier.input)
 | 
						|
	{
 | 
						|
		// nothing to do!
 | 
						|
	};
 | 
						|
	
 | 
						|
	virtual				~DLG_stream_input()
 | 
						|
	{
 | 
						|
		this->purge();	// bloody templarized lookup...
 | 
						|
	};
 | 
						|
	
 | 
						|
	DLG_stream_input	operator = (const DLG_stream_input & a_affecter)
 | 
						|
	{
 | 
						|
		if (this != &a_affecter)
 | 
						|
		{
 | 
						|
			input = a_affecter.input;
 | 
						|
		}
 | 
						|
 | 
						|
		return(*this);
 | 
						|
	};
 | 
						|
	
 | 
						|
	virtual int			nextChar()
 | 
						|
	{
 | 
						|
		E	extracted_stuff;
 | 
						|
		
 | 
						|
		input->get(extracted_stuff);
 | 
						|
		
 | 
						|
		if	(*input)
 | 
						|
		{
 | 
						|
			return(int(extracted_stuff));
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			return(EOF);
 | 
						|
		}
 | 
						|
	};
 | 
						|
	
 | 
						|
protected:
 | 
						|
	
 | 
						|
	::std::basic_istream<E,T> *	input;
 | 
						|
	
 | 
						|
private:
 | 
						|
	
 | 
						|
	void	purge()
 | 
						|
	{
 | 
						|
		// nothing to do!
 | 
						|
	};
 | 
						|
};
 | 
						|
 | 
						|
#endif /* _DLG_STREAM_INPUT_H */
 | 
						|
 |