code: func (p *Parser) parseCreateUserStatement() (*CreateUserStatement, error) {
  	stmt := &CreateUserStatement{}
  
  	// Parse name of the user to be created.
  	ident, err := p.ParseIdent()
  	if err != nil {
  		return nil, err
  	}
  	stmt.Name = ident
  
  	// Consume "WITH PASSWORD" tokens
  	if err := p.parseTokens([]Token{WITH, PASSWORD}); err != nil {
  		return nil, err
  	}
  
  	// Parse new user's password
  	if ident, err = p.parseString(); err != nil {
  		return nil, err
  	}
  	stmt.Password = ident
  
  	// Check for option WITH clause.
  	if tok, _, _ := p.ScanIgnoreWhitespace(); tok != WITH {
  		p.Unscan()
  		return stmt, nil
  	}
  
  	// "WITH ALL PRIVILEGES" grants the new user admin privilege.
  	// Only admin privilege can be set on user creation.
  	if err := p.parseTokens([]Token{ALL, PRIVILEGES}); err != nil {
  		return nil, err
  	}
  	stmt.Admin = true
  
  	return stmt, nil
  }
docs: // parseCreateUserStatement parses a string and returns a CreateUserStatement.
  // This function assumes the "CREATE USER" tokens have already been consumed.