]> git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_codesigning/antlr2/antlr/CharBuffer.hpp
Security-58286.1.32.tar.gz
[apple/security.git] / OSX / libsecurity_codesigning / antlr2 / antlr / CharBuffer.hpp
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
18 namespace 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
35 class ANTLR_API CharBuffer : public InputBuffer {
36 public:
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
42 protected:
43 // character source
44 ANTLR_USE_NAMESPACE(std)istream& input;
45
46 private:
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__