code: func (p *Parser) parseDropSubscriptionStatement() (*DropSubscriptionStatement, error) {
  	stmt := &DropSubscriptionStatement{}
  
  	// Read the id of the subscription to drop.
  	ident, err := p.ParseIdent()
  	if err != nil {
  		return nil, err
  	}
  	stmt.Name = ident
  
  	// Expect an "ON" keyword.
  	if tok, pos, lit := p.ScanIgnoreWhitespace(); tok != ON {
  		return nil, newParseError(tokstr(tok, lit), []string{"ON"}, pos)
  	}
  
  	// Read the name of the database.
  	if ident, err = p.ParseIdent(); err != nil {
  		return nil, err
  	}
  	stmt.Database = ident
  
  	if tok, pos, lit := p.Scan(); tok != DOT {
  		return nil, newParseError(tokstr(tok, lit), []string{"."}, pos)
  	}
  
  	// Read the name of the retention policy.
  	if ident, err = p.ParseIdent(); err != nil {
  		return nil, err
  	}
  	stmt.RetentionPolicy = ident
  
  	return stmt, nil
  }
docs: // parseDropSubscriptionStatement parses a string and returns a DropSubscriptionStatement.
  // This function assumes the "DROP SUBSCRIPTION" tokens have already been consumed.