--- /dev/null
+#ifndef SCommonAST_h\r
+#define SCommonAST_h\r
+\r
+#include <stdio.h>\r
+#include "PCCTSAST.h"\r
+#include "SASTBase.h"\r
+\r
+/* If you use SORCERER alone, you can subclass this to get a nice tree def */\r
+\r
+class SORCommonAST : public SORASTBase {\r
+protected:\r
+ SORCommonAST *_right, *_down;\r
+ int _type;\r
+\r
+public:\r
+ SORCommonAST() { _right = _down = NULL; }\r
+ PCCTS_AST *right() { return _right; } // define the SORCERER interface\r
+ PCCTS_AST *down() { return _down; }\r
+ int type() { return _type; }\r
+ void setRight(PCCTS_AST *t) { _right = (SORCommonAST *)t; }\r
+ void setDown(PCCTS_AST *t) { _down = (SORCommonAST *)t; }\r
+ void setType(int t) { _type = t; }\r
+ virtual PCCTS_AST *shallowCopy() {return NULL;}\r
+};\r
+\r
+#endif\r