namespace loader {
bool Tokenizer::HasMore() {
- return in;
+ return std::istream::sentry(in);
}
void Tokenizer::Putback(const Token &t) {
}
}
+const Tokenizer::Token &Tokenizer::Peek() {
+ if (!isPutback) {
+ putback = GetNext();
+ isPutback = true;
+ }
+ return putback;
+}
+
Tokenizer::Token Tokenizer::GetNext() {
if (isPutback) {
isPutback = false;
case Token::COMMA:
case Token::BRACKET_OPEN:
case Token::BRACKET_CLOSE:
+ case Token::PARENTHESIS_OPEN:
+ case Token::PARENTHESIS_CLOSE:
return Token ((Token::Type) c);
case '+': case '-':
case '0': case '1': case '2': case '3': case '4':