#ifndef TOKENSTREAM_H #define TOKENSTREAM_H #include #include "tokenizer/Token.h" #include "utils/String.h" class TokenStream { public: TokenStream(); bool hasToken() const; String nextTokenString(); Token nextToken(); unsigned int nextLine(); const char* nextString(); double nextDouble(); void add(Token token, unsigned int line); void add(Token token, unsigned int line, double d); void add(Token token, unsigned int line, const char* text); private: void read(void* data, size_t length); void write(const void* data, size_t length); size_t readIndex; std::vector buffer; }; #endif