include var.h and lcmd.c only in some of the parser?.c
[unix-history] / usr / src / usr.bin / window / context.h
CommitLineData
1fb887dd 1/*
a40a2f9a 2 * @(#)context.h 3.3 84/01/13
1fb887dd
EW
3 */
4
5struct context {
6 struct context *x_link; /* nested contexts */
a40a2f9a
EW
7 char x_type; /* tag for union */
8 union {
9 struct { /* input is a file */
10 char *X_filename; /* input file name */
11 FILE *X_fp; /* input stream */
12 short X_lineno; /* current line number */
13 char X_bol; /* at beginning of line */
14 char X_noerr; /* don't report errors */
15 struct ww *X_errwin; /* error window */
1fb887dd 16 } x_f;
a40a2f9a
EW
17 struct { /* input is a buffer */
18 char *X_buf; /* input buffer */
19 char *X_bufp; /* current position in buf */
1fb887dd
EW
20 } x_b;
21 } x_un;
a40a2f9a
EW
22 /* holding place for current token */
23 int x_token; /* the token */
24 struct value x_val; /* values associated with token */
25 /* parser error flags */
26 unsigned x_erred :1; /* had an error */
27 unsigned x_synerred :1; /* had syntax error */
28 unsigned x_abort :1; /* fatal error */
1fb887dd
EW
29};
30#define x_buf x_un.x_b.X_buf
31#define x_bufp x_un.x_b.X_bufp
32#define x_filename x_un.x_f.X_filename
33#define x_fp x_un.x_f.X_fp
34#define x_lineno x_un.x_f.X_lineno
1fb887dd
EW
35#define x_bol x_un.x_f.X_bol
36#define x_errwin x_un.x_f.X_errwin
a40a2f9a 37#define x_noerr x_un.x_f.X_noerr
1fb887dd 38
a40a2f9a
EW
39 /* x_type values, 0 is reserved */
40#define X_FILE 1 /* input is a file */
41#define X_BUF 2 /* input is a buffer */
1fb887dd 42
a40a2f9a 43struct context cx; /* the current context */