blob: 06760170d4803bcc2819534f8eb75c2478ecfa9e (
plain) (
tree)
|
|
#include "tokenizer.h"
namespace NYson {
////////////////////////////////////////////////////////////////////////////////
TTokenizer::TTokenizer(const TStringBuf& input)
: Input(input)
, Parsed(0)
{
}
bool TTokenizer::ParseNext() {
Input = Input.Tail(Parsed);
Token.Reset();
Parsed = Lexer.GetToken(Input, &Token);
return !CurrentToken().IsEmpty();
}
const TToken& TTokenizer::CurrentToken() const {
return Token;
}
ETokenType TTokenizer::GetCurrentType() const {
return CurrentToken().GetType();
}
TStringBuf TTokenizer::GetCurrentSuffix() const {
return Input.Tail(Parsed);
}
const TStringBuf& TTokenizer::CurrentInput() const {
return Input;
}
////////////////////////////////////////////////////////////////////////////////
} // namespace NYson
|