|
//====================================================================
// Although great care has gone into developing this software,
// it is provided without any guarantee of reliability, accuracy
// of information, or correctness of operation. I am not responsible
// for any damages that may occur as a result of using this software.
// Use this software entirely at your own risk.
// Copyright 2003, Chris Richardson
//
// Description: An abstract source stream for lexer input.
//
//====================================================================
#if !defined(AFX_CSTREAM_H__B70A7997_8640_44DD_8CB7_6694460DBC98__INCLUDED_)
#define AFX_CSTREAM_H__B70A7997_8640_44DD_8CB7_6694460DBC98__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CStream
{
public:
CStream();
virtual ~CStream();
virtual TCHAR GetC() = 0;
virtual TCHAR UngetC( TCHAR p_cC ) = 0;
virtual TCHAR * GetS( TCHAR * p_pszStr, int p_iLength ) = 0;
virtual unsigned long GetPos() = 0;
virtual void SetPos( unsigned long p_ulPos ) = 0;
// A file stream would return the path of the file probably.
// Other types of streams could return something useful.
// The name of the stream is used for example, when reporting
// the locations of errors.
virtual const TCHAR * GetName() = 0;
};
#endif // !defined(AFX_CSTREAM_H__B70A7997_8640_44DD_8CB7_6694460DBC98__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.