code: private Token consumeNextToken(Token.Type... expected) {
          try {
              return tokens.consume(expected);
          } catch (UnexpectedElementException e) {
              throw new UnexpectedTokenException(e);
          }
      }
docs: Tries to consume the next token in the stream.
  
  @param expected the expected types of the next token
  @return the next token in the stream
  @throws UnexpectedTokenException when encounters an unexpected token type