Index: Source/core/css/parser/MediaQueryInputStream.h |
diff --git a/Source/core/css/parser/MediaQueryInputStream.h b/Source/core/css/parser/MediaQueryInputStream.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..89e782644099baa1fa2969fdefe4c65565a78425 |
--- /dev/null |
+++ b/Source/core/css/parser/MediaQueryInputStream.h |
@@ -0,0 +1,57 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MediaQueryInputStream_h |
+#define MediaQueryInputStream_h |
+ |
+#include "wtf/text/WTFString.h" |
+ |
+namespace WebCore { |
+ |
+class MediaQueryInputStream { |
+ WTF_MAKE_NONCOPYABLE(MediaQueryInputStream); |
+ WTF_MAKE_FAST_ALLOCATED; |
+public: |
+ MediaQueryInputStream(String input); |
+ |
+ UChar peek(unsigned); |
+ inline UChar currentInputChar() |
+ { |
+ return peek(0); |
+ } |
+ |
+ void advance(unsigned = 1); |
+ void pushBack(UChar); |
+ |
+ inline size_t maxLength() |
+ { |
+ return m_string.length() + 1; |
+ } |
+ |
+ inline size_t leftChars() |
+ { |
+ return m_string.length() - m_offset; |
+ |
+ } |
+ |
+ unsigned long long getUInt(unsigned, unsigned); |
+ double getDouble(unsigned, unsigned); |
+ |
+ template<bool characterPredicate(UChar)> |
+ unsigned skipWhilePredicate(unsigned offset) |
+ { |
+ while ((m_offset + offset) < m_string.length() && characterPredicate(m_string[m_offset + offset])) |
+ ++offset; |
+ return offset; |
+ } |
+ |
+private: |
+ size_t m_offset; |
+ String m_string; |
+}; |
+ |
+} // namespace WebCore |
+ |
+#endif // MediaQueryInputStream_h |
+ |