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

Module: printf Formatting

Author: Daniel Kroening, kroening@kroening.com

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

#ifndef CPROVER_PRINTF_FORMATTER
#define CPROVER_PRINTF_FORMATTER

#include <expr.h>

class printf_formattert
{
public:
  void operator()(const exprt::operandst &_operands);

  std::list<exprt> dest;

protected:
  std::string text;
  typedef enum { TEXT, FORMAT } modet;
  modet mode;
  unsigned op_nr;
  
  void process_char(char ch);
  void flush_text();
};

#endif
