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