xref: /csrg-svn/usr.bin/window/context.h (revision 15567)
1*15567Sedward /*
2*15567Sedward  *	@(#)context.h	3.1 83/11/22
3*15567Sedward  */
4*15567Sedward 
5*15567Sedward struct context {
6*15567Sedward 	struct context *x_link;		/* nested contexts */
7*15567Sedward 	char x_type;
8*15567Sedward 	union {				/* input info */
9*15567Sedward 		struct {
10*15567Sedward 			char *X_filename;
11*15567Sedward 			FILE *X_fp;
12*15567Sedward 			char X_bol;
13*15567Sedward 			int X_lineno;
14*15567Sedward 			int X_errlineno;
15*15567Sedward 			struct ww *X_errwin;
16*15567Sedward 			char X_baderr;
17*15567Sedward 		} x_f;
18*15567Sedward 		struct {
19*15567Sedward 			char *X_buf;
20*15567Sedward 			char *X_bufp;
21*15567Sedward 		} x_b;
22*15567Sedward 	} x_un;
23*15567Sedward 	int x_token;			/* holding place for token */
24*15567Sedward 	struct value x_val;
25*15567Sedward 	unsigned x_erred :1;		/* parser error flags */
26*15567Sedward 	unsigned x_synerred :1;
27*15567Sedward 	unsigned x_abort :1;
28*15567Sedward };
29*15567Sedward #define x_buf		x_un.x_b.X_buf
30*15567Sedward #define x_bufp		x_un.x_b.X_bufp
31*15567Sedward #define x_filename	x_un.x_f.X_filename
32*15567Sedward #define x_fp		x_un.x_f.X_fp
33*15567Sedward #define x_lineno	x_un.x_f.X_lineno
34*15567Sedward #define x_errlineno	x_un.x_f.X_errlineno
35*15567Sedward #define x_bol		x_un.x_f.X_bol
36*15567Sedward #define x_errwin	x_un.x_f.X_errwin
37*15567Sedward #define x_baderr	x_un.x_f.X_baderr
38*15567Sedward 
39*15567Sedward #define X_FILE		1
40*15567Sedward #define X_BUF		2
41*15567Sedward 
42*15567Sedward struct context cx;
43*15567Sedward 
44*15567Sedward struct context *x_alloc();
45