source: trunk/yao/share/antlr-2.7.7/lib/cpp/antlr/CharBuffer.hpp @ 1

Last change on this file since 1 was 1, checked in by lnalod, 15 years ago

Initial import of YAO sources

File size: 1.4 KB
Line 
1#ifndef INC_CharBuffer_hpp__
2#define INC_CharBuffer_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: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/antlr/CharBuffer.hpp#2 $
9 */
10
11#include <antlr/config.hpp>
12
13#include <istream>
14
15#include <antlr/InputBuffer.hpp>
16
17#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
18namespace antlr {
19#endif
20
21/**A Stream of characters fed to the lexer from a InputStream that can
22 * be rewound via mark()/rewind() methods.
23 * <p>
24 * A dynamic array is used to buffer up all the input characters.  Normally,
25 * "k" characters are stored in the buffer.  More characters may be stored
26 * during guess mode (testing syntactic predicate), or when LT(i>k) is
27 * referenced.
28 * Consumption of characters is deferred.  In other words, reading the next
29 * character is not done by consume(), but deferred until needed by LA or LT.
30 * <p>
31 *
32 * @see antlr.CharQueue
33 */
34
35class ANTLR_API CharBuffer : public InputBuffer {
36public:
37        /// Create a character buffer
38        CharBuffer( ANTLR_USE_NAMESPACE(std)istream& input );
39        /// Get the next character from the stream
40        int getChar();
41
42protected:
43        // character source
44        ANTLR_USE_NAMESPACE(std)istream& input;
45
46private:
47        // NOTE: Unimplemented
48        CharBuffer(const CharBuffer& other);
49        CharBuffer& operator=(const CharBuffer& other);
50};
51
52#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
53}
54#endif
55
56#endif //INC_CharBuffer_hpp__
Note: See TracBrowser for help on using the repository browser.