new version from Chris Torek
[unix-history] / usr / src / old / lex / ldefs.c
CommitLineData
8121f9a9
SL
1/* ldefs.c 4.1 83/08/11 */
2
3# include <stdio.h>
4# define PP 1
5# ifdef unix
6
7# define CWIDTH 7
8# define CMASK 0177
9# define ASCII 1
10# endif
11
12# ifdef gcos
13# define CWIDTH 9
14# define CMASK 0777
15# define ASCII 1
16# endif
17
18# ifdef ibm
19# define CWIDTH 8
20# define CMASK 0377
21# define EBCDIC 1
22# endif
23
24# ifdef ASCII
25# define NCH 128
26# endif
27
28# ifdef EBCDIC
29# define NCH 256
30# endif
31
32
33# define TOKENSIZE 1000
34# define DEFSIZE 40
35# define DEFCHAR 1000
36# define STARTCHAR 100
37# define STARTSIZE 256
38# define CCLSIZE 1000
39# ifdef SMALL
40# define TREESIZE 600
41# define NTRANS 1500
42# define NSTATES 300
43# define MAXPOS 1500
44# define NOUTPUT 1500
45# endif
46
47# ifndef SMALL
48# define TREESIZE 1000
49# define NSTATES 500
50# define MAXPOS 2500
51# define NTRANS 2000
52# define NOUTPUT 3000
53# endif
54# define NACTIONS 100
55# define ALITTLEEXTRA 30
56
57# define RCCL NCH+90
58# define RNCCL NCH+91
59# define RSTR NCH+92
60# define RSCON NCH+93
61# define RNEWE NCH+94
62# define FINAL NCH+95
63# define RNULLS NCH+96
64# define RCAT NCH+97
65# define STAR NCH+98
66# define PLUS NCH+99
67# define QUEST NCH+100
68# define DIV NCH+101
69# define BAR NCH+102
70# define CARAT NCH+103
71# define S1FINAL NCH+104
72# define S2FINAL NCH+105
73
74# define DEFSECTION 1
75# define RULESECTION 2
76# define ENDSECTION 5
77# define TRUE 1
78# define FALSE 0
79
80# define PC 1
81# define PS 1
82
83# ifdef DEBUG
84# define LINESIZE 110
85extern int yydebug;
86extern int debug; /* 1 = on */
87extern int charc;
88# endif
89
90# ifndef DEBUG
91# define freturn(s) s
92# endif
93
94extern int sargc;
95extern char **sargv;
96extern char buf[520];
97extern int ratfor; /* 1 = ratfor, 0 = C */
98extern int yyline; /* line number of file */
99extern int sect;
100extern int eof;
101extern int lgatflg;
102extern int divflg;
103extern int funcflag;
104extern int pflag;
105extern int casecount;
106extern int chset; /* 1 = char set modified */
107extern FILE *fin, *fout, *fother, *errorf;
108extern int fptr;
109extern char *ratname, *cname;
110extern int prev; /* previous input character */
111extern int pres; /* present input character */
112extern int peek; /* next input character */
113extern int *name;
114extern int *left;
115extern int *right;
116extern int *parent;
117extern char *nullstr;
118extern int tptr;
119extern char pushc[TOKENSIZE];
120extern char *pushptr;
121extern char slist[STARTSIZE];
122extern char *slptr;
123extern char **def, **subs, *dchar;
124extern char **sname, *schar;
125extern char *ccl;
126extern char *ccptr;
127extern char *dp, *sp;
128extern int dptr, sptr;
129extern char *bptr; /* store input position */
130extern char *tmpstat;
131extern int count;
132extern int **foll;
133extern int *nxtpos;
134extern int *positions;
135extern int *gotof;
136extern int *nexts;
137extern char *nchar;
138extern int **state;
139extern int *sfall; /* fallback state num */
140extern char *cpackflg; /* true if state has been character packed */
141extern int *atable, aptr;
142extern int nptr;
143extern char symbol[NCH];
144extern char cindex[NCH];
145extern int xstate;
146extern int stnum;
147extern int ctable[];
148extern int ZCH;
149extern int ccount;
150extern char match[NCH];
151extern char extra[NACTIONS];
152extern char *pcptr, *pchar;
153extern int pchlen;
154extern int nstates, maxpos;
155extern int yytop;
156extern int report;
157extern int ntrans, treesize, outsize;
158extern long rcount;
159extern int optim;
160extern int *verify, *advance, *stoff;
161extern int scon;
162extern char *psave;
163extern char *calloc(), *myalloc();
164extern int buserr(), segviol();