xref: /original-bsd/usr.bin/pascal/pdx/defs.h (revision 2301fdfb)
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