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 */
91 extern uintptr *right;
94 extern uchar *nullstr;
96 extern uchar pushc[TOKENSIZE];
97 extern uchar *pushptr;
98 extern uchar slist[STARTSIZE];
100 extern uchar **def, **subs, *dchar;
101 extern uchar **sname, *stchar;
104 extern uchar *dp, *sp;
105 extern int dptr, sptr;
106 extern uchar *bptr; /* store input position */
107 extern uchar *tmpstat;
111 extern int *positions;
116 extern int *sfall; /* fallback state num */
117 extern uchar *cpackflg; /* true if state has been character packed */
118 extern int *atable, aptr;
120 extern uchar symbol[NCH];
121 extern uchar cindex[NCH];
125 extern uchar match[NCH];
126 extern uchar extra[NACTIONS];
127 extern uchar *pcptr, *pchar;
129 extern int nstates, maxpos;
132 extern int ntrans, treesize, outsize;
134 extern int *verify, *advance, *stoff;
138 extern void acompute(int);
139 extern void add(int **, int);
140 extern void allprint(int);
141 extern void cclinter(int);
142 extern void cgoto(void);
143 extern void cfoll(int);
144 extern int cpyact(void);
145 extern int dupl(int);
146 extern void error(char *,...);
147 extern void first(int);
148 extern void follow(int);
149 extern int gch(void);
150 extern uchar *getl(uchar *);
151 extern void layout(void);
152 extern void lgate(void);
153 extern int lookup(uchar *, uchar **);
154 extern int member(int, uchar *);
155 extern void mkmatch(void);
156 extern int mnp(int, void*);
158 extern int mn1(int, int);
159 extern int mn2(int, int, int);
160 extern void munputc(int);
161 extern void munputs(uchar *);
162 extern void *myalloc(int, int);
163 extern void nextstate(int, int);
164 extern int notin(int);
165 extern void packtrans(int, uchar *, int *, int, int);
166 extern void padd(int **, int);
167 extern void pccl(void);
168 extern void pfoll(void);
169 extern void phead1(void);
170 extern void phead2(void);
171 extern void pstate(int);
172 extern void ptail(void);
173 extern void sect1dump(void);
174 extern void sect2dump(void);
175 extern void statistics(void);
176 extern void stprt(int);
177 extern void strpt(uchar *);
178 extern void treedump(void);
179 extern int usescape(int);
180 extern void warning(char *,...);
181 extern int yyparse(void);
182 extern void yyerror(char *);