|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1983 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) 5/31/85 ! 7: */ ! 8: ! 9: /* ! 10: * Public definitions, common to all. ! 11: */ ! 12: ! 13: #include <stdio.h> ! 14: ! 15: #define new(type) ((type) malloc(sizeof(struct type))) ! 16: #define newarr(type, n) ((type *) malloc((unsigned) (n) * sizeof(type))) ! 17: #define dispose(ptr) { free((char *) ptr); ptr = 0; } ! 18: ! 19: #define public ! 20: #define private static ! 21: ! 22: #define ord(enumcon) ((unsigned int) enumcon) ! 23: #define nil 0 ! 24: #define and && ! 25: #define or || ! 26: #define not ! ! 27: #define div / ! 28: #define mod % ! 29: #define max(a, b) ((a) > (b) ? (a) : (b)) ! 30: #define min(a, b) ((a) < (b) ? (a) : (b)) ! 31: ! 32: #define assert(b) { \ ! 33: if (not(b)) { \ ! 34: panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \ ! 35: } \ ! 36: } ! 37: ! 38: #define badcaseval(v) { \ ! 39: panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \ ! 40: } ! 41: ! 42: #define checkref(p) { \ ! 43: if (p == nil) { \ ! 44: panic("reference through nil pointer at line %d in file %s", \ ! 45: __LINE__, __FILE__); \ ! 46: } \ ! 47: } ! 48: ! 49: typedef int Integer; ! 50: typedef int integer; ! 51: typedef char Char; ! 52: typedef double Real; ! 53: typedef double real; ! 54: typedef enum { false, true } Boolean; ! 55: typedef Boolean boolean; ! 56: typedef char *String; ! 57: ! 58: #define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s) ! 59: #define streq(s1, s2) (strcmp(s1, s2) == 0) ! 60: ! 61: typedef FILE *File; ! 62: typedef int Fileid; ! 63: typedef String Filename; ! 64: ! 65: #define get(f, var) fread((char *) &(var), sizeof(var), 1, f) ! 66: #define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f) ! 67: ! 68: #undef FILE ! 69: ! 70: extern long atol(); ! 71: extern double atof(); ! 72: extern char *malloc(); ! 73: extern String strcpy(), index(), rindex(); ! 74: extern int strlen(); ! 75: ! 76: extern String cmdname; ! 77: extern String errfilename; ! 78: extern short errlineno; ! 79: extern int debug_flag[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.