/*
 * A simple list (replaced by stl_vector)
 *
 * Author(s) : Catalin Dumitrescu (catalind@acm.org)
 *
 * File: list.hh
 * Created: Mon Aug 27 10:15:57 CDT 2001
 *
 */

#ifndef _LIST_
#define _LIST_

#include <iostream>
#include <vector>
using namespace std;

#include "object.hh"
#include "scheme_exc.hh"

#define LIST 5

class list : public object {
  vector<object*> content;

public:
  list () { }
  virtual ~list () { }

  virtual object* clone ();
  virtual object* evaluate (bool, object*);
  virtual void* pvalue () { return &content; }
  virtual void print (ostream& out);

  virtual int getType () { return LIST; }

  virtual void add (object*);

  virtual object* car ();
  virtual object* cdr ();

};

#endif // _LIST_

