|
|
1.1 root 1: /*
2: * Sydney C Compiler.
3: *
4: * Copyright 1984, Bruce Ellis.
5: *
6: * Unauthorised possesion, sale or use prohibited.
7: */
8:
9: #include "sets.h"
10:
11: #define SYSERROR (-1)
12:
13: #define NULL 0
14: #define NODE_GRABZ 64
15: #define BUFFZ 4096
16: #define OUTZ 4096
17: #define SBUFFZ 32
18: #define PERM_CHUNKZ 2048
19: #define PUSHBACKZ 10
20: #define EOF_CHAR '\0'
21: #define STDIN 0
22: #define STDOUT 1
23: #define NO_FID (-1)
24:
25: #define loop for (;;)
26: #define readonly
27: #define nels(x) (sizeof x / sizeof x[0])
28:
29: #define ctack(c, d) ((c)->c_tail->c_next = (d)->c_head, (c)->c_tail = (d)->c_tail)
30: #define cadd(c, w) ((c)->c_next = new_cnode(), (c) = (c)->c_next, (c)->c_what = (w))
31:
32: #define pack(x) ((pack_t)x)
33:
34: typedef unsigned char uchar;
35: typedef unsigned char pack_t;
36:
37: #include "xnodes.h"
38: #include "places.h"
39:
40: /*
41: * Forward declarations of general purpose data types.
42: */
43: typedef set char chset;
44: typedef set xnodes xtset;
45:
46: #include "data.h"
47: #include "xnode.h"
48: #include "ident.h"
49:
50: struct st_node
51: {
52: st_node *st_left;
53: st_node *st_right;
54: char *st_name;
55: long st_index;
56: ident *st_idlist;
57: };
58:
59: struct tkdope
60: {
61: uchar equiv_xt;
62: char prec_lev;
63: };
64:
65: struct level
66: {
67: ident *lv_idents;
68: };
69:
70: struct choice
71: {
72: cnode *ch_def;
73: cnode *ch_case;
74: };
75:
76: typedef union
77: {
78: char *m;
79: double *f;
80: long i;
81: token *t;
82: xnode *x;
83: }
84: formarg;
85:
86: #include "alloc.h"
87: #include "extern.h"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.