Annotation of 43BSD/ucb/pascal/pdx/defs.h, revision 1.1.1.1

1.1       root        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.1 (Berkeley) 6/6/85
                      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: error();                       /* print an error message */
                     59: 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:  * macros for doing freads + fwrites
                     73:  */
                     74: 
                     75: #define get(fp, var)   fread((char *) &(var), sizeof(var), 1, fp)
                     76: #define put(fp, var)   fwrite((char *) &(var), sizeof(var), 1, fp)
                     77: 
                     78: /*
                     79:  * string definitions
                     80:  */
                     81: 
                     82: extern char *strcpy();
                     83: extern int strlen();
                     84: 
                     85: #define strdup(s)              strcpy(malloc((unsigned) strlen(s) + 1), s)
                     86: #define streq(s1, s2)  (strcmp(s1, s2) == 0)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.