BSD 4_4 release
[unix-history] / usr / src / usr.bin / pascal / pdx / defs.h
CommitLineData
505bf312 1/*-
ad787160
C
2 * Copyright (c) 1980, 1993
3 * The Regents of the University of California. All rights reserved.
505bf312 4 *
ad787160
C
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
3cd5310a 20 *
ad787160
C
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)defs.h 8.1 (Berkeley) 6/6/93
3cd5310a 34 */
d6dc6657
ML
35
36/*
37 * Global debugger defines.
38 *
39 * All files include this header.
40 */
41
42#include <stdio.h>
8cd6b1b5
CT
43#include <stdlib.h>
44#include <string.h>
d6dc6657
ML
45
46/*
47 * Since C does not allow forward referencing of types,
48 * all the global types are declared here.
49 */
50
51#define LOCAL static
52#define NIL 0
53
54typedef int BOOLEAN;
55
56#define FALSE 0
57#define TRUE 1
58
59typedef unsigned int ADDRESS; /* object code addresses */
60typedef short LINENO; /* source file line numbers */
61typedef struct sym SYM; /* symbol information structure */
62typedef struct symtab SYMTAB; /* symbol table */
63typedef struct node NODE; /* expression tree node */
64typedef short OP; /* tree operator */
65typedef struct opinfo OPINFO; /* tree operator information table */
66typedef unsigned int WORD; /* machine word */
67typedef unsigned char BYTE; /* machine byte */
68typedef struct frame FRAME; /* runtime activation record */
69
70/*
71 * Definitions of standard C library routines that aren't in the
72 * standard I/O library, but which are generally useful.
73 */
74
d6dc6657
ML
75extern char *mktemp(); /* make a temporary file name */
76
77/*
78 * Definitions of library routines.
79 */
80
81char *cmdname; /* name of command for error messages */
82char *errfilename; /* current file associated with error */
83short errlineno; /* line number associated with error */
84
7d4de299
KB
85int error(); /* print an error message */
86int panic(); /* print error message and exit */
d6dc6657
ML
87short numerrors(); /* return number of errors since last call */
88
89/*
90 * defintions for doing memory allocation
91 */
92
d6dc6657
ML
93#define alloc(n, type) ((type *) malloc((unsigned) (n) * sizeof(type)))
94#define dispose(p) { free((char *) p); p = NIL; }
95
96/*
35bf0218 97 * macro for doing freads
d6dc6657
ML
98 */
99
100#define get(fp, var) fread((char *) &(var), sizeof(var), 1, fp)
d6dc6657
ML
101
102/*
103 * string definitions
104 */
105
d6dc6657 106#define streq(s1, s2) (strcmp(s1, s2) == 0)