code: private Token nextToken() {
      Token token = scanner.nextToken();
      lastSourcePosition = token.location.end;
      return token;
    }
docs: Consumes the next token and returns it. Will return a never ending stream of
  TokenType.END_OF_FILE at the end of the file so callers don't have to check for EOF
  explicitly.
  
  <p>Tokenizing is contextual. nextToken() will never return a regular expression literal.