/*******************************************************************\

Module:

Author: Daniel Kroening, kroening@cs.cmu.edu

\*******************************************************************/

#ifndef CPROVER_FIND_SYMBOLS_H
#define CPROVER_FIND_SYMBOLS_H

#include <set>

#include "hash_cont.h"
#include "string_hash.h"
#include "expr.h"

void find_symbols(
  const exprt &src,
  hash_set_cont<irep_idt, irep_id_hash> &dest);

void find_symbols(
  const exprt &src,
  hash_set_cont<irep_idt, irep_id_hash> &dest,
  bool current,
  bool next);

void find_symbols(
  const exprt &src,
  std::set<exprt> &dest);
  
bool has_symbol(
  const exprt &src,
  const hash_set_cont<irep_idt, irep_id_hash> &symbols);  

#endif
