xref: /plan9/sys/src/cmd/lex/ldefs.h (revision 169d3509e3830be480b499459c3245b23637fe07)
1 # include <u.h>
2 # include <libc.h>
3 # include <ctype.h>
4 # include <bio.h>
5 # define PP 1
6 
7 # define CWIDTH 8
8 # define CMASK 0377
9 # define NCH 256
10 
11 
12 # define TOKENSIZE 1000
13 # define DEFSIZE 40
14 # define DEFCHAR 1000
15 # define STARTCHAR 100
16 # define STARTSIZE 256
17 # define CCLSIZE 1000
18 
19 # define TREESIZE 1000
20 # define NSTATES 500
21 # define MAXPOS 2500
22 # define NTRANS 2000
23 # define NOUTPUT 5000
24 
25 # define NACTIONS 100
26 # define ALITTLEEXTRA 30
27 
28 # define RCCL NCH+90
29 # define RNCCL NCH+91
30 # define RSTR NCH+92
31 # define RSCON NCH+93
32 # define RNEWE NCH+94
33 # define FINAL NCH+95
34 # define RNULLS NCH+96
35 # define RCAT NCH+97
36 # define STAR NCH+98
37 # define PLUS NCH+99
38 # define QUEST NCH+100
39 # define DIV NCH+101
40 # define BAR NCH+102
41 # define CARAT NCH+103
42 # define S1FINAL NCH+104
43 # define S2FINAL NCH+105
44 
45 # define DEFSECTION 1
46 # define RULESECTION 2
47 # define ENDSECTION 5
48 # define TRUE 1
49 # define FALSE 0
50 
51 # define PC 1
52 # define PS 1
53 
54 # ifdef DEBUG
55 # define LINESIZE 110
56 extern int yydebug;
57 extern int debug;		/* 1 = on */
58 extern int charc;
59 # endif
60 
61 # ifdef DEBUG
62 extern int	freturn(int);
63 # else
64 # define freturn(s) s
65 # endif
66 
67 extern int sargc;
68 extern char **sargv;
69 extern uchar buf[520];
70 extern int yyline;		/* line number of file */
71 extern char *yyfile;		/* file name of file */
72 extern int sect;
73 extern int eof;
74 extern int lgatflg;
75 extern int divflg;
76 extern int funcflag;
77 extern int pflag;
78 extern int casecount;
79 extern int chset;	/* 1 = char set modified */
80 extern Biobuf *fin, fout, *fother;
81 extern int foutopen;
82 extern int errorf;
83 extern int fptr;
84 extern char *cname;
85 extern int prev;	/* previous input character */
86 extern int pres;	/* present input character */
87 extern int peek;	/* next input character */
88 extern int *name;
89 extern int *left;
90 extern int *right;
91 extern int *parent;
92 extern uchar **ptr;
93 extern uchar *nullstr;
94 extern int tptr;
95 extern uchar pushc[TOKENSIZE];
96 extern uchar *pushptr;
97 extern uchar slist[STARTSIZE];
98 extern uchar *slptr;
99 extern uchar **def, **subs, *dchar;
100 extern uchar **sname, *stchar;
101 extern uchar *ccl;
102 extern uchar *ccptr;
103 extern uchar *dp, *sp;
104 extern int dptr, sptr;
105 extern uchar *bptr;		/* store input position */
106 extern uchar *tmpstat;
107 extern int count;
108 extern int **foll;
109 extern int *nxtpos;
110 extern int *positions;
111 extern int *gotof;
112 extern int *nexts;
113 extern uchar *nchar;
114 extern int **state;
115 extern int *sfall;		/* fallback state num */
116 extern uchar *cpackflg;		/* true if state has been character packed */
117 extern int *atable, aptr;
118 extern int nptr;
119 extern uchar symbol[NCH];
120 extern uchar cindex[NCH];
121 extern int xstate;
122 extern int stnum;
123 extern int ccount;
124 extern uchar match[NCH];
125 extern uchar extra[NACTIONS];
126 extern uchar *pcptr, *pchar;
127 extern int pchlen;
128 extern int nstates, maxpos;
129 extern int yytop;
130 extern int report;
131 extern int ntrans, treesize, outsize;
132 extern long rcount;
133 extern int *verify, *advance, *stoff;
134 extern int scon;
135 extern uchar *psave;
136 
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);
155 extern int	mn0(int);
156 extern int	mn1(int, int);
157 extern int	mnp(int, void*);
158 extern int	mn2(int, int, uintptr);
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 *);
182