tokenizer.h 685 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "public.h"
  3. #include "lexer.h"
  4. namespace NYson {
  5. ////////////////////////////////////////////////////////////////////////////////
  6. class TTokenizer {
  7. public:
  8. explicit TTokenizer(const TStringBuf& input);
  9. bool ParseNext();
  10. const TToken& CurrentToken() const;
  11. ETokenType GetCurrentType() const;
  12. TStringBuf GetCurrentSuffix() const;
  13. const TStringBuf& CurrentInput() const;
  14. private:
  15. TStringBuf Input;
  16. TToken Token;
  17. TStatelessLexer Lexer;
  18. size_t Parsed;
  19. };
  20. ////////////////////////////////////////////////////////////////////////////////
  21. } // namespace NYson