code: private Token eventuallyMatch(Token.Kind kind) {
  		checkNotEof();
  		Token token = tokens.get(index);
  		if (token.kind != kind) {
  			return null;
  		} else {
  			index = index + 1;
  			return token;
  		}
  	}
docs: Attempt to match a given kind of token with the view that it must
  *eventually* be matched. This differs from <code>tryAndMatch()</code>
  because it calls <code>checkNotEof()</code>. Thus, it is guaranteed to
  skip any whitespace encountered in between. This is safe because we know
  there is a terminating token still to come.
  
  @param kind
  @return