1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /* defs.h 1.1 83/08/13 */
- /*
- * Public definitions, common to all.
- */
- #include <stdio.h>
- #define new(type) ((type) malloc(sizeof(struct type)))
- #define newarr(type, n) ((type *) malloc((unsigned) (n) * sizeof(type)))
- #define dispose(ptr) { free((char *) ptr); ptr = 0; }
- #define public
- #define private static
- #define ord(enumcon) ((unsigned int) enumcon)
- #define nil 0
- #define and &&
- #define or ||
- #define not !
- #define div /
- #define mod %
- #define max(a, b) ((a) > (b) ? (a) : (b))
- #define min(a, b) ((a) < (b) ? (a) : (b))
- #define assert(b) { \
- if (not(b)) { \
- panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \
- } \
- }
- #define badcaseval(v) { \
- panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \
- }
- #define checkref(p) { \
- if (p == nil) { \
- panic("reference through nil pointer at line %d in file %s", \
- __LINE__, __FILE__); \
- } \
- }
- typedef int Integer;
- typedef char Char;
- typedef double Real;
- typedef enum { false, true } Boolean;
- typedef char *String;
- #define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s)
- #define streq(s1, s2) (strcmp(s1, s2) == 0)
- typedef FILE *File;
- typedef int Fileid;
- typedef String Filename;
- #define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
- #define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
- #undef FILE
- extern long atol();
- extern double atof();
- extern char *malloc();
- extern String strcpy(), index(), rindex();
- extern int strlen();
- extern String cmdname;
- extern String errfilename;
- extern short errlineno;
- extern int debug_flag[];
|