#ifndef SCommonAST_h
#define SCommonAST_h

#include <stdio.h>
#include "PCCTSAST.h"
#include "SASTBase.h"

/* If you use SORCERER alone, you can subclass this to get a nice tree def */

class SORCommonAST : public SORASTBase {
protected:
	SORCommonAST *_right, *_down;
	int _type;

public:
	SORCommonAST() { _right = _down = NULL; }
	PCCTS_AST *right()	{ return _right; }	// define the SORCERER interface
	PCCTS_AST *down()	{ return _down; }
	int type() 		{ return _type; }
	void setRight(PCCTS_AST *t) { _right = (SORCommonAST *)t; }
	void setDown(PCCTS_AST *t)  { _down = (SORCommonAST *)t; }
	void setType(int t)		 { _type = t; }
	virtual PCCTS_AST *shallowCopy() {return NULL;}
};

#endif
