/* calc.h * include file for calc.c */ /* 32 bit memory addresses: */ #define LARGEMEM 1 /* data structure of symbol table */ struct symbol { char *spel; short attrib; #if LARGEMEM long sym; #else short sym; #endif }; struct funent { char *spel; short attrib; double (*fun )(); }; struct varent { char *spel; short attrib; double *value; }; struct strent { char *spel; short attrib; char *string; }; /* general symbol attributes: */ #define OPR 0x8000 #define VAR 0x4000 #define CONST 0x2000 #define FUNC 0x1000 #define ILLEG 0x800 #define BUSY 0x400 #define TEMP 0x200 #define STRING 0x100 #define COMMAN 0x80 #define IND 0x1 /* attributes of operators (ordered by precedence): */ #define BOL 1 #define EOL 2 /* end of expression (comma): */ #define EOE 3 #define EQU 4 #define PLUS 5 #define MINUS 6 #define MULT 7 #define DIV 8 #define UMINUS 9 #define LPAREN 10 #define RPAREN 11 #define COMP 12 #define MOD 13 #define LAND 14 #define LOR 15 #define LXOR 16 extern struct funent funtbl[]; /*extern struct symbol symtbl[];*/ extern struct varent indtbl[];