12 # define TOKENSIZE 1000
15 # define STARTCHAR 100
16 # define STARTSIZE 256
19 # define TREESIZE 1000
26 # define ALITTLEEXTRA 30
34 # define RNULLS NCH+96
38 # define QUEST NCH+100
41 # define CARAT NCH+103
42 # define S1FINAL NCH+104
43 # define S2FINAL NCH+105
46 # define RULESECTION 2
57 extern int debug; /* 1 = on */
62 extern int freturn(int);
69 extern uchar buf[520];
70 extern int yyline; /* line number of file */
71 extern char *yyfile; /* file name of file */
79 extern int chset; /* 1 = char set modified */
80 extern Biobuf *fin, fout, *fother;
85 extern int prev; /* previous input character */
86 extern int pres; /* present input character */
87 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 mnp(int, void*);
158 extern int mn2(int, int, int);
159 extern void munputc(int);
160 extern void munputs(uchar *);
161 extern void *myalloc(int, int);
162 extern void nextstate(int, int);
163 extern int notin(int);
164 extern void packtrans(int, uchar *, int *, int, int);
165 extern void padd(int **, int);
166 extern void pccl(void);
167 extern void pfoll(void);
168 extern void phead1(void);
169 extern void phead2(void);
170 extern void pstate(int);
171 extern void ptail(void);
172 extern void sect1dump(void);
173 extern void sect2dump(void);
174 extern void statistics(void);
175 extern void stprt(int);
176 extern void strpt(uchar *);
177 extern void treedump(void);
178 extern int usescape(int);
179 extern void warning(char *,...);
180 extern int yyparse(void);
181 extern void yyerror(char *);