blob: 59c6575f6ea14f0c4a5b80fc276b8d394ee6af24 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#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
|