add real aliases; rewrite lexical scanner
[unix-history] / usr / src / old / dbx / defs.h
CommitLineData
e1f4dbca
SL
1/* defs.h 1.2 84/06/23 */
2
cbb6f020
SL
3/*
4 * Public definitions, common to all.
5 */
6
7#include <stdio.h>
8
9#define new(type) ((type) malloc(sizeof(struct type)))
10#define newarr(type, n) ((type *) malloc((unsigned) (n) * sizeof(type)))
11#define dispose(ptr) { free((char *) ptr); ptr = 0; }
12
13#define public
14#define private static
15
16#define ord(enumcon) ((unsigned int) enumcon)
17#define nil 0
18#define and &&
19#define or ||
20#define not !
21#define div /
22#define mod %
23#define max(a, b) ((a) > (b) ? (a) : (b))
24#define min(a, b) ((a) < (b) ? (a) : (b))
25
26#define assert(b) { \
27 if (not(b)) { \
28 panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \
29 } \
30}
31
32#define badcaseval(v) { \
33 panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \
34}
35
36#define checkref(p) { \
37 if (p == nil) { \
38 panic("reference through nil pointer at line %d in file %s", \
39 __LINE__, __FILE__); \
40 } \
41}
42
43typedef int Integer;
2fd0f574 44typedef int integer;
cbb6f020
SL
45typedef char Char;
46typedef double Real;
2fd0f574 47typedef double real;
cbb6f020 48typedef enum { false, true } Boolean;
2fd0f574 49typedef Boolean boolean;
cbb6f020
SL
50typedef char *String;
51
52#define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s)
53#define streq(s1, s2) (strcmp(s1, s2) == 0)
54
55typedef FILE *File;
56typedef int Fileid;
57typedef String Filename;
58
59#define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
60#define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
61
62#undef FILE
63
64extern long atol();
65extern double atof();
66extern char *malloc();
67extern String strcpy(), index(), rindex();
68extern int strlen();
69
70extern String cmdname;
71extern String errfilename;
72extern short errlineno;
73extern int debug_flag[];