欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

dlg_stream_input.h

本工具提供一个词法分析器和语法分析器的集成开发环境
H
字号:
/************************************************************//*															*//*		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 responsability for whatever	*//* may happen if you do either... caveat emptor!).			*//*															*//************************************************************/#ifndef _DLG_STREAM_INPUT_H#define _DLG_STREAM_INPUT_H#include PCCTS_ISTREAM_HPCCTS_NAMESPACE_STD#ifndef DLGX_H#include "DLexerBase.h"#endif// NOTES:	The semantics of the copy constructor//			and the affectation operator may be unwaranted...//			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 hiting 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 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -