Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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 *);