14 # define TOKENSIZE 1000
17 # define STARTCHAR 100
18 # define STARTSIZE 256
21 # define TREESIZE 1000
28 # define ALITTLEEXTRA 30
36 # define RNULLS NCH+96
40 # define QUEST NCH+100
43 # define CARAT NCH+103
44 # define S1FINAL NCH+104
45 # define S2FINAL NCH+105
48 # define RULESECTION 2
59 extern int debug; /* 1 = on */
64 extern int freturn(int);
71 extern uchar buf[520];
72 extern int yyline; /* line number of file */
80 extern int chset; /* 1 = char set modified */
81 extern Biobuf *fin, fout, *fother;
86 extern int prev; /* previous input character */
87 extern int pres; /* present input character */
88 extern int peek; /* next input character */
93 extern uchar *nullstr;
95 extern uchar pushc[TOKENSIZE];
96 extern uchar *pushptr;
97 extern uchar slist[STARTSIZE];
99 extern uchar **def, **subs, *dchar;
100 extern uchar **sname, *stchar;
103 extern uchar *dp, *sp;
104 extern int dptr, sptr;
105 extern uchar *bptr; /* store input position */
106 extern uchar *tmpstat;
110 extern int *positions;
115 extern int *sfall; /* fallback state num */
116 extern uchar *cpackflg; /* true if state has been character packed */
117 extern int *atable, aptr;
119 extern uchar symbol[NCH];
120 extern uchar cindex[NCH];
124 extern uchar match[NCH];
125 extern uchar extra[NACTIONS];
126 extern uchar *pcptr, *pchar;
128 extern int nstates, maxpos;
131 extern int ntrans, treesize, outsize;
133 extern int *verify, *advance, *stoff;
137 extern void acompute(int);
138 extern void add(int **, int);
139 extern void allprint(int);
140 extern void cclinter(int);
141 extern void cgoto(void);
142 extern void cfoll(int);
143 extern int cpyact(void);
144 extern int dupl(int);
145 extern void error(char *,...);
146 extern void first(int);
147 extern void follow(int);
148 extern int gch(void);
149 extern uchar *getl(uchar *);
150 extern void layout(void);
151 extern void lgate(void);
152 extern int lookup(uchar *, uchar **);
153 extern int member(int, uchar *);
154 extern void mkmatch(void);
156 extern int mn1(int, int);
157 extern int mn2(int, int, int);
158 extern void munputc(int);
159 extern void munputs(uchar *);
160 extern void *myalloc(int, int);
161 extern void nextstate(int, int);
162 extern int notin(int);
163 extern void packtrans(int, uchar *, int *, int, int);
164 extern void padd(int **, int);
165 extern void pccl(void);
166 extern void pfoll(void);
167 extern void phead1(void);
168 extern void phead2(void);
169 extern void pstate(int);
170 extern void ptail(void);
171 extern void sect1dump(void);
172 extern void sect2dump(void);
173 extern void statistics(void);
174 extern void stprt(int);
175 extern void strpt(uchar *);
176 extern void treedump(void);
177 extern int usescape(int);
178 extern void warning(char *,...);
179 extern int yyparse(void);
180 extern void yyerror(char *);