public void ConsumeBlockBackward()
{
if (Previous().Value != "}")
throw new Exception("CurrentIndex is not pointing to a block-tail.");
int braces = 0;
Token token;
while (true)
{
if (!HasPrevious())
break;
token = Previous();
Backtrack();
if (token.Value == "}")
{
braces++;
}
else if (token.Value == "{")
{
braces--;
}
if (braces == 0)
break;
}
}