/*
 * ASTNode.h
 *
 *  Created on: Nov 4, 2012
 *      Author: attero
 */

#ifndef ASTNODE_H_
#define ASTNODE_H_
#include <vector>
#include <string>
#include "SenchaObject.h"

class ASTNode {
public:
	ASTNode();
	ASTNode * parent;
	std::vector<ASTNode *> children;
	void add_children(ASTNode *);
	void remove_most_right_children();
	void set_parent(ASTNode *);

	virtual std::string debug() = 0;
	virtual void execute() = 0;
	virtual ~ASTNode();
};

#endif /* ASTNODE_H_ */
