/*
 * Visitor.h
 *
 *  Created on: Dec 17, 2012
 *      Author: att
 */

#ifndef VISITOR_H_
#define VISITOR_H_
#include <string>

class Visitable;

class Visitor {
public:
	Visitor();
	virtual void visit(Visitable * node) = 0;
	virtual ~Visitor();
};

class Visitable
{
public:
	std::string type;
	Visitable();
	virtual void accept(Visitor * visitor) = 0;
	virtual ~Visitable();

};





#endif /* VISITOR_H_ */
