// TinC - Tiny, in C // tinct13.h /*--------------------------------------------------------------*/ /* Register control and data type bits */ // MAXREGS must be at least 3 #define MAXREGS 5 // REG_STACKSTART must be at least 2, and less than MAXREG #define REG_STACKSTART 4 #define REG_NORMAL 'n' #define REG_STACK 's' /*--------------------------------------------------------------*/ /* Definition of Token Types, etc */ // be careful with these, ambiguity can cause misunderstanding // i.e. '*' as OP_PTR means ';' MUST be used to terminate assignments #define OP_PTR '*' #define OP_ADDR '&' #define MAINNAME "Main" /*--------------------------------------------------------------*/ /* Data Type Sizes (in base units) */ // is the stack character (byte) or word (2 byte) based? ... #define CHARSTACK TRUE #ifdef CHARSTACK #define SIZEOFCHAR 1 #define SIZEOFINT 2 #define DT_DEFAULT DT_CHAR #else #define SIZEOFCHAR 1 #define SIZEOFINT 1 #define DT_DEFAULT DT_INT #endif /*--------------------------------------------------------------*/ /* Optimization pcodes */ #define PC_BRANCH_EQ PC_OPTSTART #define PC_BRANCH_NE PC_OPTSTART + 1 #define PC_BRANCH_LT PC_OPTSTART + 2 #define PC_BRANCH_GT PC_OPTSTART + 3 #define PC_BRANCH_GE PC_OPTSTART + 4 #define PC_BRANCH_LE PC_OPTSTART + 5