xref: /original-bsd/old/lex/ldefs.c (revision 176f75a2)
1 /*	ldefs.c	4.1	83/08/11	*/
2 
3 # include <stdio.h>
4 # define PP 1
5 # ifdef unix
6 
7 # define CWIDTH 7
8 # define CMASK 0177
9 # define ASCII 1
10 # endif
11 
12 # ifdef gcos
13 # define CWIDTH 9
14 # define CMASK 0777
15 # define ASCII 1
16 # endif
17 
18 # ifdef ibm
19 # define CWIDTH 8
20 # define CMASK 0377
21 # define EBCDIC 1
22 # endif
23 
24 # ifdef ASCII
25 # define NCH 128
26 # endif
27 
28 # ifdef EBCDIC
29 # define NCH 256
30 # endif
31 
32 
33 # define TOKENSIZE 1000
34 # define DEFSIZE 40
35 # define DEFCHAR 1000
36 # define STARTCHAR 100
37 # define STARTSIZE 256
38 # define CCLSIZE 1000
39 # ifdef SMALL
40 # define TREESIZE 600
41 # define NTRANS 1500
42 # define NSTATES 300
43 # define MAXPOS 1500
44 # define NOUTPUT 1500
45 # endif
46 
47 # ifndef SMALL
48 # define TREESIZE 1000
49 # define NSTATES 500
50 # define MAXPOS 2500
51 # define NTRANS 2000
52 # define NOUTPUT 3000
53 # endif
54 # define NACTIONS 100
55 # define ALITTLEEXTRA 30
56 
57 # define RCCL NCH+90
58 # define RNCCL NCH+91
59 # define RSTR NCH+92
60 # define RSCON NCH+93
61 # define RNEWE NCH+94
62 # define FINAL NCH+95
63 # define RNULLS NCH+96
64 # define RCAT NCH+97
65 # define STAR NCH+98
66 # define PLUS NCH+99
67 # define QUEST NCH+100
68 # define DIV NCH+101
69 # define BAR NCH+102
70 # define CARAT NCH+103
71 # define S1FINAL NCH+104
72 # define S2FINAL NCH+105
73 
74 # define DEFSECTION 1
75 # define RULESECTION 2
76 # define ENDSECTION 5
77 # define TRUE 1
78 # define FALSE 0
79 
80 # define PC 1
81 # define PS 1
82 
83 # ifdef DEBUG
84 # define LINESIZE 110
85 extern int yydebug;
86 extern int debug;		/* 1 = on */
87 extern int charc;
88 # endif
89 
90 # ifndef DEBUG
91 # define freturn(s) s
92 # endif
93 
94 extern int sargc;
95 extern char **sargv;
96 extern char buf[520];
97 extern int ratfor;		/* 1 = ratfor, 0 = C */
98 extern int yyline;		/* line number of file */
99 extern int sect;
100 extern int eof;
101 extern int lgatflg;
102 extern int divflg;
103 extern int funcflag;
104 extern int pflag;
105 extern int casecount;
106 extern int chset;	/* 1 = char set modified */
107 extern FILE *fin, *fout, *fother, *errorf;
108 extern int fptr;
109 extern char *ratname, *cname;
110 extern int prev;	/* previous input character */
111 extern int pres;	/* present input character */
112 extern int peek;	/* next input character */
113 extern int *name;
114 extern int *left;
115 extern int *right;
116 extern int *parent;
117 extern char *nullstr;
118 extern int tptr;
119 extern char pushc[TOKENSIZE];
120 extern char *pushptr;
121 extern char slist[STARTSIZE];
122 extern char *slptr;
123 extern char **def, **subs, *dchar;
124 extern char **sname, *schar;
125 extern char *ccl;
126 extern char *ccptr;
127 extern char *dp, *sp;
128 extern int dptr, sptr;
129 extern char *bptr;		/* store input position */
130 extern char *tmpstat;
131 extern int count;
132 extern int **foll;
133 extern int *nxtpos;
134 extern int *positions;
135 extern int *gotof;
136 extern int *nexts;
137 extern char *nchar;
138 extern int **state;
139 extern int *sfall;		/* fallback state num */
140 extern char *cpackflg;		/* true if state has been character packed */
141 extern int *atable, aptr;
142 extern int nptr;
143 extern char symbol[NCH];
144 extern char cindex[NCH];
145 extern int xstate;
146 extern int stnum;
147 extern int ctable[];
148 extern int ZCH;
149 extern int ccount;
150 extern char match[NCH];
151 extern char extra[NACTIONS];
152 extern char *pcptr, *pchar;
153 extern int pchlen;
154 extern int nstates, maxpos;
155 extern int yytop;
156 extern int report;
157 extern int ntrans, treesize, outsize;
158 extern long rcount;
159 extern int optim;
160 extern int *verify, *advance, *stoff;
161 extern int scon;
162 extern char *psave;
163 extern char *calloc(), *myalloc();
164 extern int buserr(), segviol();
165