public Tuple<TokenType, string> NextToken() {
while (true) {
IgnoreWhitespace();
if (!IgnoreComment())
break;
}
var current = Current();
if (current == default(char))
return null;
if (current == '{') {
Forward();
return Tuple.Create(TokenType.BlockBegin, (string) null);
}
if (current == '}') {
Forward();
return Tuple.Create(TokenType.BlockEnd, (string) null);
}
return Tuple.Create(TokenType.String, GetString());
}