summaryrefslogtreecommitdiffstats
path: root/lib/antlr/antlr/CharBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/antlr/antlr/CharBuffer.h')
-rw-r--r--lib/antlr/antlr/CharBuffer.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/antlr/antlr/CharBuffer.h b/lib/antlr/antlr/CharBuffer.h
new file mode 100644
index 00000000..647fe466
--- /dev/null
+++ b/lib/antlr/antlr/CharBuffer.h
@@ -0,0 +1,56 @@
+#ifndef INC_CharBuffer_h__
+#define INC_CharBuffer_h__
+
+/* ANTLR Translator Generator
+ * Project led by Terence Parr at http://www.jGuru.com
+ * Software rights: http://www.antlr.org/license.html
+ *
+ * $Id$
+ */
+
+#include <antlr/config.h>
+
+#include <istream>
+
+#include <antlr/InputBuffer.h>
+
+#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
+namespace antlr {
+#endif
+
+/**A Stream of characters fed to the lexer from a InputStream that can
+ * be rewound via mark()/rewind() methods.
+ * <p>
+ * A dynamic array is used to buffer up all the input characters. Normally,
+ * "k" characters are stored in the buffer. More characters may be stored
+ * during guess mode (testing syntactic predicate), or when LT(i>k) is
+ * referenced.
+ * Consumption of characters is deferred. In other words, reading the next
+ * character is not done by consume(), but deferred until needed by LA or LT.
+ * <p>
+ *
+ * @see antlr.CharQueue
+ */
+
+class ANTLR_API CharBuffer : public InputBuffer {
+public:
+ /// Create a character buffer
+ CharBuffer( ANTLR_USE_NAMESPACE(std)istream& input );
+ /// Get the next character from the stream
+ int getChar();
+
+protected:
+ // character source
+ ANTLR_USE_NAMESPACE(std)istream& input;
+
+private:
+ // NOTE: Unimplemented
+ CharBuffer(const CharBuffer& other);
+ CharBuffer& operator=(const CharBuffer& other);
+};
+
+#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
+}
+#endif
+
+#endif //INC_CharBuffer_h__