TokenStream.h 668 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef TOKENSTREAM_H
  2. #define TOKENSTREAM_H
  3. #include <vector>
  4. #include "tokenizer/Token.h"
  5. #include "utils/String.h"
  6. class TokenStream {
  7. public:
  8. TokenStream();
  9. bool hasToken() const;
  10. String nextTokenString();
  11. Token nextToken();
  12. unsigned int nextLine();
  13. const char* nextString();
  14. double nextDouble();
  15. void add(Token token, unsigned int line);
  16. void add(Token token, unsigned int line, double d);
  17. void add(Token token, unsigned int line, const char* text);
  18. private:
  19. void read(void* data, size_t length);
  20. void write(const void* data, size_t length);
  21. size_t readIndex;
  22. std::vector<char> buffer;
  23. };
  24. #endif