ANTLR Support Libraries 2.7.1+
CharInputBuffer.hpp
Go to the documentation of this file.
1#ifndef INC_CharInputBuffer_hpp__
2# define INC_CharInputBuffer_hpp__
3
4/* ANTLR Translator Generator
5 * Project led by Terence Parr at http://www.jGuru.com
6 * Software rights: http://www.antlr.org/license.html
7 *
8 * $Id:$
9 */
10
11# include <antlr/config.hpp>
12# include <antlr/InputBuffer.hpp>
13
14# ifdef HAS_NOT_CCTYPE_H
15# include <ctype.h>
16# else
17# include <cctype>
18# endif
19
20#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
21namespace antlr {
22#endif
23
27{
28public:
33 CharInputBuffer( unsigned char* buf, size_t size, bool owner = false )
34 : buffer(buf)
35 , ptr(buf)
36 , end(buf + size)
37 , delete_buffer(owner)
38 {
39 }
40
46 {
47 if( delete_buffer && buffer )
48 delete [] buffer;
49 }
50
55 virtual inline void reset( void )
56 {
58 ptr = buffer;
59 }
60
61 virtual int getChar( void )
62 {
63 return (ptr < end) ? *ptr++ : EOF;
64 }
65
66protected:
67 unsigned char* buffer;
68 unsigned char* ptr;
69 unsigned char* end;
71};
72
73#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
74}
75#endif
76
77#endif
Definition: CharInputBuffer.hpp:27
unsigned char * end
end sentry for buffer
Definition: CharInputBuffer.hpp:69
virtual int getChar(void)
Definition: CharInputBuffer.hpp:61
virtual void reset(void)
Definition: CharInputBuffer.hpp:55
~CharInputBuffer(void)
Definition: CharInputBuffer.hpp:45
unsigned char * buffer
the buffer with data
Definition: CharInputBuffer.hpp:67
bool delete_buffer
flag signifying if we have to delete the buffer
Definition: CharInputBuffer.hpp:70
CharInputBuffer(unsigned char *buf, size_t size, bool owner=false)
Definition: CharInputBuffer.hpp:33
unsigned char * ptr
position ptr into the buffer
Definition: CharInputBuffer.hpp:68
Definition: InputBuffer.hpp:31
virtual void reset(void)
Reset the input buffer to empty state.
Definition: InputBuffer.hpp:46
Definition: ANTLRException.hpp:15