1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 * 6 * @(#)defs.h 5.3 (Berkeley) 01/03/88 7 */ 8 9 /* 10 * Global debugger defines. 11 * 12 * All files include this header. 13 */ 14 15 #include <stdio.h> 16 17 /* 18 * Since C does not allow forward referencing of types, 19 * all the global types are declared here. 20 */ 21 22 #define LOCAL static 23 #define NIL 0 24 25 typedef int BOOLEAN; 26 27 #define FALSE 0 28 #define TRUE 1 29 30 typedef unsigned int ADDRESS; /* object code addresses */ 31 typedef short LINENO; /* source file line numbers */ 32 typedef struct sym SYM; /* symbol information structure */ 33 typedef struct symtab SYMTAB; /* symbol table */ 34 typedef struct node NODE; /* expression tree node */ 35 typedef short OP; /* tree operator */ 36 typedef struct opinfo OPINFO; /* tree operator information table */ 37 typedef unsigned int WORD; /* machine word */ 38 typedef unsigned char BYTE; /* machine byte */ 39 typedef struct frame FRAME; /* runtime activation record */ 40 41 /* 42 * Definitions of standard C library routines that aren't in the 43 * standard I/O library, but which are generally useful. 44 */ 45 46 extern long atol(); /* ascii to long */ 47 extern double atof(); /* ascii to floating point */ 48 extern char *mktemp(); /* make a temporary file name */ 49 50 /* 51 * Definitions of library routines. 52 */ 53 54 char *cmdname; /* name of command for error messages */ 55 char *errfilename; /* current file associated with error */ 56 short errlineno; /* line number associated with error */ 57 58 int error(); /* print an error message */ 59 int panic(); /* print error message and exit */ 60 short numerrors(); /* return number of errors since last call */ 61 62 /* 63 * defintions for doing memory allocation 64 */ 65 66 extern char *malloc(); 67 68 #define alloc(n, type) ((type *) malloc((unsigned) (n) * sizeof(type))) 69 #define dispose(p) { free((char *) p); p = NIL; } 70 71 /* 72 * macro for doing freads 73 */ 74 75 #define get(fp, var) fread((char *) &(var), sizeof(var), 1, fp) 76 77 /* 78 * string definitions 79 */ 80 81 extern char *strcpy(); 82 extern int strlen(); 83 84 #define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s) 85 #define streq(s1, s2) (strcmp(s1, s2) == 0) 86