added README_changes.txt
[wrffire.git] / wrfv2_fire / chem / KPP / kpp / kpp-2.1 / src / y.tab.c
blobbc1af067c59d53923d1d1a45cdee7e53549b5089
1 #ifndef lint
2 /*static char yysccsid[] = "from: @(#)yaccpar 1.9 (Berkeley) 02/21/93";*/
3 static char yyrcsid[] = "$Id: skeleton.c,v 1.4 1993/12/21 18:45:32 jtc Exp $";
4 #endif
5 #define YYBYACC 1
6 #define YYMAJOR 1
7 #define YYMINOR 9
8 #define yyclearin (yychar=(-1))
9 #define yyerrok (yyerrflag=0)
10 #define YYRECOVERING (yyerrflag!=0)
11 #define YYPREFIX "yy"
12 #line 35 "scan.y"
13 #include <stdio.h>
14 #include <stdlib.h>
15 #ifdef MACOS
16 #include <sys/malloc.h>
17 #else
18 #include <malloc.h>
19 #endif
20 #include <string.h>
21 #include <unistd.h>
22 #include "scan.h"
24 #define __YYSCLASS
26 #define YYDEBUG 1
27 extern char yytext[];
28 extern FILE * yyin;
30 int nError = 0;
31 int nWarning = 0;
33 int crt_section;
34 int eqState;
35 int isPhoto = 0;
37 char crt_term[ 30 ];
38 char crt_coef[ 30 ];
40 char * InlineBuf;
41 int InlineLen;
43 void SemicolonError();
44 extern int yyerrflag;
46 #line 66 "scan.y"
47 typedef union{
48 char str[80];
49 } YYSTYPE;
50 #line 47 "y.tab.c"
51 #define JACOBIAN 257
52 #define DOUBLE 258
53 #define FUNCTION 259
54 #define DEFVAR 260
55 #define DEFRAD 261
56 #define DEFFIX 262
57 #define SETVAR 263
58 #define SETRAD 264
59 #define SETFIX 265
60 #define HESSIAN 266
61 #define STOICMAT 267
62 #define STOCHASTIC 268
63 #define INITVALUES 269
64 #define EQUATIONS 270
65 #define LUMP 271
66 #define INIEQUAL 272
67 #define EQNEQUAL 273
68 #define EQNCOLON 274
69 #define LMPCOLON 275
70 #define LMPPLUS 276
71 #define SPCPLUS 277
72 #define SPCEQUAL 278
73 #define ATOMDECL 279
74 #define CHECK 280
75 #define CHECKALL 281
76 #define REORDER 282
77 #define MEX 283
78 #define DUMMYINDEX 284
79 #define EQNTAGS 285
80 #define LOOKAT 286
81 #define LOOKATALL 287
82 #define TRANSPORT 288
83 #define TRANSPORTALL 289
84 #define MONITOR 290
85 #define USES 291
86 #define SPARSEDATA 292
87 #define WRFCONFORM 293
88 #define WRITE_ATM 294
89 #define WRITE_SPC 295
90 #define WRITE_MAT 296
91 #define WRITE_OPT 297
92 #define INITIALIZE 298
93 #define XGRID 299
94 #define YGRID 300
95 #define ZGRID 301
96 #define USE 302
97 #define LANGUAGE 303
98 #define INTFILE 304
99 #define DRIVER 305
100 #define RUN 306
101 #define INLINE 307
102 #define ENDINLINE 308
103 #define PARAMETER 309
104 #define SPCSPC 310
105 #define INISPC 311
106 #define INIVALUE 312
107 #define EQNSPC 313
108 #define EQNSIGN 314
109 #define EQNCOEF 315
110 #define RATE 316
111 #define LMPSPC 317
112 #define SPCNR 318
113 #define ATOMID 319
114 #define LKTID 320
115 #define MNIID 321
116 #define INLCTX 322
117 #define INCODE 323
118 #define SSPID 324
119 #define EQNLESS 325
120 #define EQNTAG 326
121 #define EQNGREATER 327
122 #define TPTID 328
123 #define USEID 329
124 #define YYERRCODE 256
125 short yylhs[] = { -1,
126 0, 0, 3, 3, 3, 3, 3, 3, 3, 3,
127 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
128 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
129 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
130 3, 3, 3, 3, 3, 3, 3, 15, 15, 4,
131 4, 4, 16, 10, 10, 10, 17, 11, 11, 11,
132 18, 12, 12, 12, 19, 14, 14, 14, 20, 6,
133 6, 6, 21, 5, 5, 5, 22, 22, 23, 24,
134 25, 25, 26, 26, 7, 7, 7, 27, 8, 8,
135 8, 28, 28, 1, 1, 2, 29, 30, 31, 31,
136 31, 32, 32, 9, 9, 9, 33, 33, 13, 13,
138 short yylen[] = { 2,
139 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
140 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
141 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
142 1, 1, 1, 2, 2, 2, 2, 2, 2, 4,
143 2, 2, 2, 2, 2, 2, 1, 2, 1, 3,
144 2, 2, 1, 3, 2, 2, 1, 3, 2, 2,
145 1, 3, 2, 2, 1, 3, 2, 2, 1, 3,
146 2, 2, 1, 3, 2, 2, 1, 1, 3, 1,
147 3, 1, 2, 1, 3, 2, 2, 3, 3, 2,
148 2, 4, 3, 2, 1, 3, 2, 2, 3, 2,
149 1, 2, 1, 3, 2, 2, 3, 3, 2, 1,
151 short yydefred[] = { 0,
152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 27, 0, 0,
154 0, 0, 0, 28, 0, 29, 0, 0, 0, 47,
155 30, 31, 32, 33, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 3, 6, 11, 0,
157 0, 0, 0, 77, 78, 0, 0, 0, 73, 0,
158 0, 0, 0, 4, 5, 12, 0, 0, 0, 0,
159 0, 103, 0, 0, 0, 0, 0, 0, 0, 0,
160 101, 0, 0, 0, 0, 0, 53, 0, 0, 0,
161 7, 8, 9, 10, 0, 57, 0, 0, 0, 65,
162 0, 0, 0, 61, 0, 0, 0, 69, 0, 0,
163 46, 36, 37, 38, 39, 34, 35, 42, 43, 44,
164 41, 0, 2, 49, 0, 0, 0, 0, 0, 0,
165 0, 0, 0, 0, 0, 0, 100, 102, 0, 0,
166 0, 0, 0, 0, 97, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 110, 0, 48, 84,
169 0, 0, 82, 0, 0, 88, 0, 96, 0, 0,
170 0, 93, 98, 99, 108, 107, 0, 0, 0, 0,
171 0, 0, 40, 109, 83, 0, 92, 94, 81,
173 short yydgoto[] = { 45,
174 182, 76, 46, 88, 52, 60, 69, 77, 84, 97,
175 105, 101, 168, 109, 125, 89, 98, 106, 102, 110,
176 61, 53, 54, 55, 172, 173, 70, 78, 79, 143,
177 80, 81, 85,
179 short yysindex[] = { -124,
180 -285, -278, -271, -240, -240, -240, -253, -253, -253, -226,
181 -213, -212, -243, -249, -248, -237, -237, 0, -211, -210,
182 -209, -207, -246, 0, -251, 0, -242, -256, -204, 0,
183 0, 0, 0, 0, -203, -201, -200, -198, -197, -195,
184 -194, -192, -191, -250, 0, -124, 0, 0, 0, -3,
185 -219, -190, -3, 0, 0, -190, -190, -3, 0, -261,
186 -3, -261, -261, 0, 0, 0, -3, -153, -189, -3,
187 -3, 0, -288, -188, -205, -227, -270, -3, -227, -247,
188 0, -3, -228, -193, -3, -3, 0, -196, -3, -196,
189 0, 0, 0, 0, -3, 0, -172, -3, -3, 0,
190 -202, -3, -3, 0, -171, -3, -3, 0, -199, -3,
191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
192 0, -174, 0, 0, 68, -290, -3, 68, 68, -3,
193 68, 68, -184, -3, 68, 68, 0, 0, -176, -227,
194 -3, 68, -187, -263, 0, -288, 68, -186, -193, -3,
195 68, 68, -3, 68, 68, -3, 68, 68, -3, 68,
196 68, -3, 68, 68, -3, 68, 0, -291, 0, 0,
197 -178, -125, 0, 68, 68, 0, 68, 0, -187, 68,
198 -187, 0, 0, 0, 0, 0, 68, 68, 68, 68,
199 68, 68, 0, 0, 0, -290, 0, 0, 0,
201 short yyrindex[] = { 0,
202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 153, 0, 0, 0, 0,
207 125, 1977, 0, 0, 0, 2041, 2102, 0, 0, 2163,
208 0, 2224, 2285, 0, 0, 0, 0, 0, 2349, 0,
209 0, 0, 0, 0, 0, 0, 2410, 0, 0, 0,
210 0, 0, 0, 2471, 0, 0, 0, 2532, 0, 2593,
211 0, 0, 0, 0, 0, 0, 2657, 0, 0, 0,
212 2718, 0, 0, 0, 2779, 0, 0, 0, 2840, 0,
213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 0, 0, 1794, 0, 0, 1855, 600, 0,
215 651, 1608, 0, 0, 1669, 328, 0, 0, 0, 0,
216 0, 426, 0, 0, 0, 0, 1425, 0, 0, 0,
217 1486, 1231, 0, 1297, 1025, 0, 1089, 154, 0, 205,
218 753, 0, 836, 1, 0, 52, 0, 0, 0, 0,
219 0, 126, 0, 1916, 702, 0, 1733, 0, 0, 528,
220 127, 0, 0, 0, 0, 0, 1547, 1361, 1153, 256,
221 923, 103, 0, 0, 0, 0, 0, 0, 0,
223 short yygindex[] = { 141,
224 -119, 0, 0, 171, 84, 86, 0, 0, 0, 0,
225 0, 0, 0, 0, -49, 3, 92, 85, 90, 83,
226 -21, -22, 0, 0, 0, -2, 124, 118, 120, 57,
227 -56, -71, -69,
229 #define YYTABLESIZE 3147
230 short yytable[] = { 107,
231 68, 137, 58, 128, 99, 121, 71, 82, 129, 95,
232 183, 131, 67, 103, 150, 50, 193, 132, 86, 170,
233 135, 136, 144, 47, 72, 145, 74, 171, 142, 127,
234 48, 194, 147, 127, 127, 151, 152, 49, 130, 154,
235 130, 130, 72, 73, 74, 155, 148, 149, 157, 158,
236 146, 67, 160, 161, 75, 124, 163, 164, 126, 197,
237 166, 198, 59, 72, 73, 74, 146, 68, 83, 51,
238 59, 122, 108, 96, 184, 75, 100, 174, 104, 186,
239 175, 87, 64, 144, 177, 72, 73, 74, 56, 57,
240 153, 180, 153, 62, 63, 65, 66, 91, 92, 93,
241 187, 94, 66, 188, 111, 112, 189, 113, 114, 190,
242 115, 116, 191, 117, 118, 192, 119, 120, 133, 51,
243 139, 68, 87, 83, 138, 100, 169, 176, 181, 108,
244 185, 195, 1, 2, 3, 4, 5, 6, 7, 8,
245 9, 10, 11, 12, 13, 14, 15, 96, 167, 104,
246 178, 196, 1, 64, 16, 17, 18, 19, 20, 21,
247 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
248 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
249 42, 43, 44, 80, 79, 95, 123, 90, 156, 162,
250 159, 165, 134, 199, 141, 140, 179, 0, 0, 0,
251 0, 0, 0, 0, 63, 0, 0, 0, 0, 0,
252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
256 0, 0, 0, 0, 0, 62, 0, 68, 68, 68,
257 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
258 68, 68, 0, 0, 0, 0, 0, 0, 0, 68,
259 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
260 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
261 68, 68, 68, 68, 68, 68, 68, 68, 67, 67,
262 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
263 67, 67, 67, 0, 0, 0, 0, 91, 0, 68,
264 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
265 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
266 67, 67, 67, 67, 67, 67, 67, 67, 67, 66,
267 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
268 66, 66, 66, 66, 0, 0, 0, 0, 0, 0,
269 67, 66, 66, 66, 66, 66, 66, 66, 66, 66,
270 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
271 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
272 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
273 64, 64, 64, 64, 64, 90, 0, 0, 0, 0,
274 0, 66, 64, 64, 64, 64, 64, 64, 64, 64,
275 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
276 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
277 64, 63, 63, 63, 63, 63, 63, 63, 63, 63,
278 63, 63, 63, 63, 63, 63, 0, 0, 0, 0,
279 0, 64, 0, 63, 63, 63, 63, 63, 63, 63,
280 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
281 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
282 63, 63, 62, 62, 62, 62, 62, 62, 62, 62,
283 62, 62, 62, 62, 62, 62, 62, 89, 0, 0,
284 0, 0, 63, 0, 62, 62, 62, 62, 62, 62,
285 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
286 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
287 62, 62, 62, 0, 0, 0, 0, 0, 0, 0,
288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
289 0, 0, 0, 62, 91, 91, 91, 91, 91, 91,
290 91, 91, 91, 91, 91, 91, 91, 91, 91, 72,
291 0, 0, 0, 0, 0, 0, 91, 91, 91, 91,
292 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
293 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
294 91, 91, 91, 91, 91, 0, 0, 0, 0, 0,
295 91, 91, 91, 0, 0, 0, 0, 0, 0, 0,
296 71, 0, 91, 0, 0, 0, 0, 0, 0, 0,
297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
299 0, 0, 90, 90, 90, 90, 90, 90, 90, 90,
300 90, 90, 90, 90, 90, 90, 90, 0, 0, 0,
301 0, 70, 0, 0, 90, 90, 90, 90, 90, 90,
302 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
303 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
304 90, 90, 90, 0, 0, 0, 0, 0, 90, 90,
305 90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
306 90, 0, 60, 0, 0, 0, 0, 0, 0, 0,
307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
309 0, 0, 0, 0, 89, 89, 89, 89, 89, 89,
310 89, 89, 89, 89, 89, 89, 89, 89, 89, 0,
311 0, 0, 0, 0, 0, 0, 89, 89, 89, 89,
312 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
313 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
314 89, 89, 89, 89, 89, 59, 0, 0, 0, 0,
315 89, 89, 89, 0, 0, 0, 0, 0, 0, 0,
316 0, 0, 89, 0, 0, 0, 72, 72, 72, 72,
317 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
318 72, 0, 0, 0, 0, 0, 0, 0, 72, 72,
319 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
320 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
321 72, 72, 72, 72, 72, 72, 72, 71, 71, 71,
322 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
323 71, 71, 58, 72, 0, 0, 0, 0, 0, 71,
324 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
325 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
326 71, 71, 71, 71, 71, 71, 71, 71, 70, 70,
327 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
328 70, 70, 70, 0, 71, 0, 0, 0, 0, 0,
329 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
330 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
331 70, 70, 70, 70, 70, 70, 70, 70, 70, 60,
332 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
333 60, 60, 60, 60, 56, 70, 0, 0, 0, 0,
334 0, 60, 60, 60, 60, 60, 60, 60, 60, 60,
335 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
336 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
338 0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
339 0, 0, 0, 0, 0, 0, 0, 0, 55, 0,
340 0, 0, 59, 59, 59, 59, 59, 59, 59, 59,
341 59, 59, 59, 59, 59, 59, 59, 0, 0, 0,
342 0, 0, 0, 0, 59, 59, 59, 59, 59, 59,
343 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
344 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
345 59, 59, 59, 0, 0, 0, 0, 0, 0, 0,
346 0, 0, 54, 0, 0, 0, 59, 0, 0, 0,
347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
348 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
349 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
350 58, 58, 58, 58, 0, 0, 0, 0, 0, 0,
351 0, 58, 58, 58, 58, 58, 58, 58, 58, 58,
352 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
353 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
354 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 58, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
359 0, 56, 56, 56, 56, 56, 56, 56, 56, 56,
360 56, 56, 56, 56, 56, 56, 51, 0, 0, 0,
361 0, 0, 0, 56, 56, 56, 56, 56, 56, 56,
362 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
363 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
364 56, 56, 0, 0, 0, 0, 0, 0, 0, 0,
365 0, 0, 0, 0, 56, 55, 55, 55, 55, 55,
366 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
367 50, 0, 0, 0, 0, 0, 0, 55, 55, 55,
368 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
369 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
370 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
371 0, 0, 0, 0, 0, 0, 0, 0, 55, 54,
372 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
373 54, 54, 54, 54, 106, 0, 0, 0, 0, 0,
374 0, 54, 54, 54, 54, 54, 54, 54, 54, 54,
375 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
376 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
378 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 105, 0, 52, 52, 52,
380 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
381 52, 52, 0, 0, 0, 0, 0, 0, 0, 52,
382 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
383 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
384 52, 52, 52, 52, 52, 52, 52, 52, 0, 0,
385 0, 0, 0, 0, 0, 0, 104, 0, 0, 52,
386 0, 0, 0, 51, 51, 51, 51, 51, 51, 51,
387 51, 51, 51, 51, 51, 51, 51, 51, 0, 0,
388 0, 0, 0, 0, 0, 51, 51, 51, 51, 51,
389 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
390 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
391 51, 51, 51, 51, 0, 0, 0, 87, 0, 0,
392 0, 0, 0, 0, 0, 51, 0, 50, 50, 50,
393 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
394 50, 50, 0, 0, 0, 0, 0, 0, 0, 50,
395 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
396 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
397 50, 50, 50, 50, 50, 50, 50, 50, 86, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
399 0, 106, 106, 106, 106, 106, 106, 106, 106, 106,
400 106, 106, 106, 106, 106, 106, 0, 0, 0, 0,
401 0, 0, 0, 106, 106, 106, 106, 106, 106, 106,
402 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
403 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
404 106, 106, 85, 0, 0, 0, 0, 0, 0, 0,
405 0, 106, 105, 105, 105, 105, 105, 105, 105, 105,
406 105, 105, 105, 105, 105, 105, 105, 0, 0, 0,
407 0, 0, 0, 0, 105, 105, 105, 105, 105, 105,
408 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
409 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
410 105, 105, 105, 76, 0, 0, 0, 0, 0, 0,
411 0, 0, 105, 104, 104, 104, 104, 104, 104, 104,
412 104, 104, 104, 104, 104, 104, 104, 104, 0, 0,
413 0, 0, 0, 0, 0, 104, 104, 104, 104, 104,
414 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
415 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
416 104, 104, 104, 104, 75, 0, 0, 0, 0, 0,
417 0, 0, 0, 104, 87, 87, 87, 87, 87, 87,
418 87, 87, 87, 87, 87, 87, 87, 87, 87, 0,
419 0, 0, 0, 0, 0, 0, 87, 87, 87, 87,
420 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
421 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
422 87, 87, 87, 87, 87, 74, 0, 0, 87, 0,
423 0, 0, 0, 0, 0, 86, 86, 86, 86, 86,
424 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
425 0, 0, 0, 0, 0, 0, 0, 86, 86, 86,
426 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
427 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
428 86, 86, 86, 86, 86, 86, 15, 0, 0, 86,
429 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,
430 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
431 85, 85, 85, 85, 0, 0, 0, 0, 0, 0,
432 0, 85, 85, 85, 85, 85, 85, 85, 85, 85,
433 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
434 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
435 16, 0, 0, 85, 0, 0, 0, 0, 0, 0,
436 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
437 76, 76, 76, 76, 76, 0, 0, 0, 0, 0,
438 0, 0, 76, 76, 76, 76, 76, 76, 76, 76,
439 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
440 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
441 76, 17, 0, 76, 0, 0, 0, 0, 0, 0,
442 0, 75, 75, 75, 75, 75, 75, 75, 75, 75,
443 75, 75, 75, 75, 75, 75, 0, 0, 0, 0,
444 0, 0, 0, 75, 75, 75, 75, 75, 75, 75,
445 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
446 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
447 75, 75, 18, 0, 75, 0, 0, 0, 0, 0,
448 0, 0, 74, 74, 74, 74, 74, 74, 74, 74,
449 74, 74, 74, 74, 74, 74, 74, 0, 0, 0,
450 0, 0, 0, 0, 74, 74, 74, 74, 74, 74,
451 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
452 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
453 74, 74, 74, 19, 0, 74, 0, 0, 0, 0,
454 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
455 15, 15, 15, 15, 15, 15, 15, 15, 0, 0,
456 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
457 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
458 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
459 15, 15, 15, 15, 20, 0, 0, 0, 0, 0,
460 0, 0, 0, 0, 0, 0, 0, 16, 16, 16,
461 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
462 16, 16, 0, 0, 0, 0, 0, 0, 0, 16,
463 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
464 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
465 16, 16, 16, 16, 16, 16, 16, 16, 21, 0,
466 0, 0, 0, 0, 0, 0, 0, 0, 17, 17,
467 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
468 17, 17, 17, 0, 0, 0, 0, 0, 0, 0,
469 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
470 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
471 17, 17, 17, 17, 17, 17, 17, 17, 17, 22,
472 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
473 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
474 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
475 0, 18, 18, 18, 18, 18, 18, 18, 18, 18,
476 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
477 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
478 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
480 19, 19, 19, 19, 19, 0, 0, 0, 0, 0,
481 0, 0, 19, 19, 19, 19, 19, 19, 19, 19,
482 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
483 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
484 19, 13, 0, 0, 0, 0, 0, 0, 0, 0,
485 0, 20, 20, 20, 20, 20, 20, 20, 20, 20,
486 20, 20, 20, 20, 20, 20, 0, 0, 0, 0,
487 0, 0, 0, 20, 20, 20, 20, 20, 20, 20,
488 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
489 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
490 20, 20, 14, 0, 0, 0, 0, 0, 0, 0,
491 0, 0, 0, 0, 0, 21, 21, 21, 21, 21,
492 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
493 0, 0, 0, 0, 0, 0, 0, 21, 21, 21,
494 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
495 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
496 21, 21, 21, 21, 21, 21, 24, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 22, 22, 22, 22,
498 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
499 22, 0, 0, 0, 0, 0, 0, 0, 22, 22,
500 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
501 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
502 22, 22, 22, 22, 22, 22, 22, 26, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 23, 23, 23,
504 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
505 23, 23, 0, 0, 0, 0, 0, 0, 0, 23,
506 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
507 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
508 23, 23, 23, 23, 23, 23, 23, 23, 25, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
510 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
511 13, 13, 13, 0, 0, 0, 0, 0, 0, 0,
512 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
513 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
514 13, 13, 13, 13, 13, 13, 13, 13, 13, 45,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
516 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
517 14, 14, 14, 14, 0, 0, 0, 0, 0, 0,
518 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
519 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
520 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 24, 24, 24, 24, 24, 24, 24,
523 24, 24, 24, 24, 24, 24, 24, 24, 0, 0,
524 0, 0, 0, 0, 0, 24, 24, 24, 24, 24,
525 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
526 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
527 24, 24, 24, 24, 0, 0, 0, 0, 0, 0,
528 0, 0, 0, 0, 26, 26, 26, 26, 26, 26,
529 26, 26, 26, 26, 26, 26, 26, 26, 26, 0,
530 0, 0, 0, 0, 0, 0, 26, 26, 26, 26,
531 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
532 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
533 26, 26, 26, 26, 26, 0, 0, 0, 0, 0,
534 0, 0, 0, 0, 0, 25, 25, 25, 25, 25,
535 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
536 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,
537 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
538 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
539 25, 25, 25, 25, 25, 25, 0, 0, 0, 0,
540 0, 0, 0, 0, 0, 0, 45, 45, 45, 45,
541 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
542 45, 0, 0, 0, 0, 0, 0, 0, 45, 45,
543 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
544 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
545 45, 45, 45, 45, 45, 45, 45,
547 short yycheck[] = { 256,
548 0, 73, 256, 53, 256, 256, 256, 256, 58, 256,
549 274, 61, 256, 256, 84, 256, 308, 67, 256, 310,
550 70, 71, 79, 309, 313, 273, 315, 318, 78, 52,
551 309, 323, 82, 56, 57, 85, 86, 309, 60, 89,
552 62, 63, 313, 314, 315, 95, 275, 276, 98, 99,
553 314, 0, 102, 103, 325, 59, 106, 107, 278, 179,
554 110, 181, 324, 313, 314, 315, 314, 311, 317, 310,
555 324, 322, 329, 320, 146, 325, 328, 127, 321, 149,
556 130, 319, 309, 140, 134, 313, 314, 315, 5, 6,
557 88, 141, 90, 8, 9, 309, 309, 309, 309, 309,
558 150, 309, 0, 153, 309, 309, 156, 309, 309, 159,
559 309, 309, 162, 309, 309, 165, 309, 309, 272, 310,
560 326, 311, 319, 317, 313, 328, 59, 312, 316, 329,
561 317, 310, 257, 258, 259, 260, 261, 262, 263, 264,
562 265, 266, 267, 268, 269, 270, 271, 320, 323, 321,
563 327, 277, 0, 0, 279, 280, 281, 282, 283, 284,
564 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
565 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
566 305, 306, 307, 59, 59, 59, 46, 17, 97, 105,
567 101, 109, 69, 196, 77, 76, 140, -1, -1, -1,
568 -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
573 -1, -1, -1, -1, -1, 0, -1, 257, 258, 259,
574 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
575 270, 271, -1, -1, -1, -1, -1, -1, -1, 279,
576 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
577 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
578 300, 301, 302, 303, 304, 305, 306, 307, 257, 258,
579 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
580 269, 270, 271, -1, -1, -1, -1, 0, -1, 329,
581 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
582 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
583 299, 300, 301, 302, 303, 304, 305, 306, 307, 257,
584 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
585 268, 269, 270, 271, -1, -1, -1, -1, -1, -1,
586 329, 279, 280, 281, 282, 283, 284, 285, 286, 287,
587 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
588 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
589 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
590 267, 268, 269, 270, 271, 0, -1, -1, -1, -1,
591 -1, 329, 279, 280, 281, 282, 283, 284, 285, 286,
592 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
593 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
594 307, 257, 258, 259, 260, 261, 262, 263, 264, 265,
595 266, 267, 268, 269, 270, 271, -1, -1, -1, -1,
596 -1, 328, -1, 279, 280, 281, 282, 283, 284, 285,
597 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
598 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
599 306, 307, 257, 258, 259, 260, 261, 262, 263, 264,
600 265, 266, 267, 268, 269, 270, 271, 0, -1, -1,
601 -1, -1, 328, -1, 279, 280, 281, 282, 283, 284,
602 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
603 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
604 305, 306, 307, -1, -1, -1, -1, -1, -1, -1,
605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
606 -1, -1, -1, 328, 257, 258, 259, 260, 261, 262,
607 263, 264, 265, 266, 267, 268, 269, 270, 271, 0,
608 -1, -1, -1, -1, -1, -1, 279, 280, 281, 282,
609 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
610 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
611 303, 304, 305, 306, 307, -1, -1, -1, -1, -1,
612 313, 314, 315, -1, -1, -1, -1, -1, -1, -1,
613 0, -1, 325, -1, -1, -1, -1, -1, -1, -1,
614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
615 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
616 -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
617 265, 266, 267, 268, 269, 270, 271, -1, -1, -1,
618 -1, 0, -1, -1, 279, 280, 281, 282, 283, 284,
619 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
620 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
621 305, 306, 307, -1, -1, -1, -1, -1, 313, 314,
622 315, -1, -1, -1, -1, -1, -1, -1, -1, -1,
623 325, -1, 0, -1, -1, -1, -1, -1, -1, -1,
624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
626 -1, -1, -1, -1, 257, 258, 259, 260, 261, 262,
627 263, 264, 265, 266, 267, 268, 269, 270, 271, -1,
628 -1, -1, -1, -1, -1, -1, 279, 280, 281, 282,
629 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
630 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
631 303, 304, 305, 306, 307, 0, -1, -1, -1, -1,
632 313, 314, 315, -1, -1, -1, -1, -1, -1, -1,
633 -1, -1, 325, -1, -1, -1, 257, 258, 259, 260,
634 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
635 271, -1, -1, -1, -1, -1, -1, -1, 279, 280,
636 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
637 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
638 301, 302, 303, 304, 305, 306, 307, 257, 258, 259,
639 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
640 270, 271, 0, 324, -1, -1, -1, -1, -1, 279,
641 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
642 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
643 300, 301, 302, 303, 304, 305, 306, 307, 257, 258,
644 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
645 269, 270, 271, -1, 324, -1, -1, -1, -1, -1,
646 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
647 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
648 299, 300, 301, 302, 303, 304, 305, 306, 307, 257,
649 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
650 268, 269, 270, 271, 0, 324, -1, -1, -1, -1,
651 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
652 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
653 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
655 -1, -1, -1, 321, -1, -1, -1, -1, -1, -1,
656 -1, -1, -1, -1, -1, -1, -1, -1, 0, -1,
657 -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
658 265, 266, 267, 268, 269, 270, 271, -1, -1, -1,
659 -1, -1, -1, -1, 279, 280, 281, 282, 283, 284,
660 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
661 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
662 305, 306, 307, -1, -1, -1, -1, -1, -1, -1,
663 -1, -1, 0, -1, -1, -1, 321, -1, -1, -1,
664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
665 -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
666 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
667 268, 269, 270, 271, -1, -1, -1, -1, -1, -1,
668 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
669 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
670 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
671 0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
672 -1, -1, -1, 321, -1, -1, -1, -1, -1, -1,
673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
676 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265,
677 266, 267, 268, 269, 270, 271, 0, -1, -1, -1,
678 -1, -1, -1, 279, 280, 281, 282, 283, 284, 285,
679 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
680 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
681 306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
682 -1, -1, -1, -1, 320, 257, 258, 259, 260, 261,
683 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
684 0, -1, -1, -1, -1, -1, -1, 279, 280, 281,
685 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
686 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
687 302, 303, 304, 305, 306, 307, -1, -1, -1, -1,
688 -1, -1, -1, -1, -1, -1, -1, -1, 320, 257,
689 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
690 268, 269, 270, 271, 0, -1, -1, -1, -1, -1,
691 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
692 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
693 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
695 -1, -1, 320, -1, -1, -1, -1, -1, -1, -1,
696 -1, -1, -1, -1, -1, 0, -1, 257, 258, 259,
697 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
698 270, 271, -1, -1, -1, -1, -1, -1, -1, 279,
699 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
700 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
701 300, 301, 302, 303, 304, 305, 306, 307, -1, -1,
702 -1, -1, -1, -1, -1, -1, 0, -1, -1, 319,
703 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
704 264, 265, 266, 267, 268, 269, 270, 271, -1, -1,
705 -1, -1, -1, -1, -1, 279, 280, 281, 282, 283,
706 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
707 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
708 304, 305, 306, 307, -1, -1, -1, 0, -1, -1,
709 -1, -1, -1, -1, -1, 319, -1, 257, 258, 259,
710 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
711 270, 271, -1, -1, -1, -1, -1, -1, -1, 279,
712 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
713 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
714 300, 301, 302, 303, 304, 305, 306, 307, 0, -1,
715 -1, -1, -1, -1, -1, -1, -1, -1, -1, 319,
716 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265,
717 266, 267, 268, 269, 270, 271, -1, -1, -1, -1,
718 -1, -1, -1, 279, 280, 281, 282, 283, 284, 285,
719 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
720 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
721 306, 307, 0, -1, -1, -1, -1, -1, -1, -1,
722 -1, 317, 257, 258, 259, 260, 261, 262, 263, 264,
723 265, 266, 267, 268, 269, 270, 271, -1, -1, -1,
724 -1, -1, -1, -1, 279, 280, 281, 282, 283, 284,
725 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
726 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
727 305, 306, 307, 0, -1, -1, -1, -1, -1, -1,
728 -1, -1, 317, 257, 258, 259, 260, 261, 262, 263,
729 264, 265, 266, 267, 268, 269, 270, 271, -1, -1,
730 -1, -1, -1, -1, -1, 279, 280, 281, 282, 283,
731 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
732 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
733 304, 305, 306, 307, 0, -1, -1, -1, -1, -1,
734 -1, -1, -1, 317, 257, 258, 259, 260, 261, 262,
735 263, 264, 265, 266, 267, 268, 269, 270, 271, -1,
736 -1, -1, -1, -1, -1, -1, 279, 280, 281, 282,
737 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
738 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
739 303, 304, 305, 306, 307, 0, -1, -1, 311, -1,
740 -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
741 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
742 -1, -1, -1, -1, -1, -1, -1, 279, 280, 281,
743 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
744 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
745 302, 303, 304, 305, 306, 307, 0, -1, -1, 311,
746 -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
747 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
748 268, 269, 270, 271, -1, -1, -1, -1, -1, -1,
749 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
750 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
751 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
752 0, -1, -1, 311, -1, -1, -1, -1, -1, -1,
753 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
754 267, 268, 269, 270, 271, -1, -1, -1, -1, -1,
755 -1, -1, 279, 280, 281, 282, 283, 284, 285, 286,
756 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
757 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
758 307, 0, -1, 310, -1, -1, -1, -1, -1, -1,
759 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265,
760 266, 267, 268, 269, 270, 271, -1, -1, -1, -1,
761 -1, -1, -1, 279, 280, 281, 282, 283, 284, 285,
762 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
763 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
764 306, 307, 0, -1, 310, -1, -1, -1, -1, -1,
765 -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
766 265, 266, 267, 268, 269, 270, 271, -1, -1, -1,
767 -1, -1, -1, -1, 279, 280, 281, 282, 283, 284,
768 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
769 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
770 305, 306, 307, 0, -1, 310, -1, -1, -1, -1,
771 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
772 264, 265, 266, 267, 268, 269, 270, 271, -1, -1,
773 -1, -1, -1, -1, -1, 279, 280, 281, 282, 283,
774 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
775 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
776 304, 305, 306, 307, 0, -1, -1, -1, -1, -1,
777 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
778 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
779 270, 271, -1, -1, -1, -1, -1, -1, -1, 279,
780 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
781 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
782 300, 301, 302, 303, 304, 305, 306, 307, 0, -1,
783 -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
784 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
785 269, 270, 271, -1, -1, -1, -1, -1, -1, -1,
786 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
787 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
788 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
789 -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
790 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
791 268, 269, 270, 271, -1, -1, -1, -1, -1, -1,
792 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
793 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
794 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
795 0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
796 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
797 267, 268, 269, 270, 271, -1, -1, -1, -1, -1,
798 -1, -1, 279, 280, 281, 282, 283, 284, 285, 286,
799 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
800 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
801 307, 0, -1, -1, -1, -1, -1, -1, -1, -1,
802 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265,
803 266, 267, 268, 269, 270, 271, -1, -1, -1, -1,
804 -1, -1, -1, 279, 280, 281, 282, 283, 284, 285,
805 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
806 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
807 306, 307, 0, -1, -1, -1, -1, -1, -1, -1,
808 -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
809 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
810 -1, -1, -1, -1, -1, -1, -1, 279, 280, 281,
811 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
812 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
813 302, 303, 304, 305, 306, 307, 0, -1, -1, -1,
814 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260,
815 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
816 271, -1, -1, -1, -1, -1, -1, -1, 279, 280,
817 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
818 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
819 301, 302, 303, 304, 305, 306, 307, 0, -1, -1,
820 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
821 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
822 270, 271, -1, -1, -1, -1, -1, -1, -1, 279,
823 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
824 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
825 300, 301, 302, 303, 304, 305, 306, 307, 0, -1,
826 -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
827 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
828 269, 270, 271, -1, -1, -1, -1, -1, -1, -1,
829 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
830 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
831 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
832 -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
833 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
834 268, 269, 270, 271, -1, -1, -1, -1, -1, -1,
835 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
836 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
837 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
839 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
840 264, 265, 266, 267, 268, 269, 270, 271, -1, -1,
841 -1, -1, -1, -1, -1, 279, 280, 281, 282, 283,
842 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
843 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
844 304, 305, 306, 307, -1, -1, -1, -1, -1, -1,
845 -1, -1, -1, -1, 257, 258, 259, 260, 261, 262,
846 263, 264, 265, 266, 267, 268, 269, 270, 271, -1,
847 -1, -1, -1, -1, -1, -1, 279, 280, 281, 282,
848 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
849 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
850 303, 304, 305, 306, 307, -1, -1, -1, -1, -1,
851 -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
852 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
853 -1, -1, -1, -1, -1, -1, -1, 279, 280, 281,
854 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
855 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
856 302, 303, 304, 305, 306, 307, -1, -1, -1, -1,
857 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260,
858 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
859 271, -1, -1, -1, -1, -1, -1, -1, 279, 280,
860 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
861 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
862 301, 302, 303, 304, 305, 306, 307,
864 #define YYFINAL 45
865 #ifndef YYDEBUG
866 #define YYDEBUG 0
867 #endif
868 #define YYMAXTOKEN 329
869 #if YYDEBUG
870 char *yyname[] = {
871 "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
872 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"';'",0,0,0,0,0,0,0,0,0,0,0,0,
873 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
874 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
875 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
876 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
877 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"JACOBIAN","DOUBLE",
878 "FUNCTION","DEFVAR","DEFRAD","DEFFIX","SETVAR","SETRAD","SETFIX","HESSIAN",
879 "STOICMAT","STOCHASTIC","INITVALUES","EQUATIONS","LUMP","INIEQUAL","EQNEQUAL",
880 "EQNCOLON","LMPCOLON","LMPPLUS","SPCPLUS","SPCEQUAL","ATOMDECL","CHECK",
881 "CHECKALL","REORDER","MEX","DUMMYINDEX","EQNTAGS","LOOKAT","LOOKATALL",
882 "TRANSPORT","TRANSPORTALL","MONITOR","USES","SPARSEDATA","WRFCONFORM",
883 "WRITE_ATM","WRITE_SPC","WRITE_MAT","WRITE_OPT","INITIALIZE","XGRID","YGRID",
884 "ZGRID","USE","LANGUAGE","INTFILE","DRIVER","RUN","INLINE","ENDINLINE",
885 "PARAMETER","SPCSPC","INISPC","INIVALUE","EQNSPC","EQNSIGN","EQNCOEF","RATE",
886 "LMPSPC","SPCNR","ATOMID","LKTID","MNIID","INLCTX","INCODE","SSPID","EQNLESS",
887 "EQNTAG","EQNGREATER","TPTID","USEID",
889 char *yyrule[] = {
890 "$accept : program",
891 "program : section",
892 "program : section program",
893 "section : JACOBIAN PARAMETER",
894 "section : HESSIAN PARAMETER",
895 "section : STOICMAT PARAMETER",
896 "section : DOUBLE PARAMETER",
897 "section : REORDER PARAMETER",
898 "section : MEX PARAMETER",
899 "section : DUMMYINDEX PARAMETER",
900 "section : EQNTAGS PARAMETER",
901 "section : FUNCTION PARAMETER",
902 "section : STOCHASTIC PARAMETER",
903 "section : ATOMDECL atomlist",
904 "section : CHECK atomlist",
905 "section : DEFVAR species",
906 "section : DEFRAD species",
907 "section : DEFFIX species",
908 "section : SETVAR setspclist",
909 "section : SETRAD setspclist",
910 "section : SETFIX setspclist",
911 "section : INITVALUES initvalues",
912 "section : EQUATIONS equations",
913 "section : LUMP lumps",
914 "section : LOOKAT lookatlist",
915 "section : MONITOR monitorlist",
916 "section : TRANSPORT translist",
917 "section : CHECKALL",
918 "section : LOOKATALL",
919 "section : TRANSPORTALL",
920 "section : WRITE_ATM",
921 "section : WRITE_SPC",
922 "section : WRITE_MAT",
923 "section : WRITE_OPT",
924 "section : USE PARAMETER",
925 "section : LANGUAGE PARAMETER",
926 "section : INITIALIZE PARAMETER",
927 "section : XGRID PARAMETER",
928 "section : YGRID PARAMETER",
929 "section : ZGRID PARAMETER",
930 "section : INLINE INLCTX inlinecode ENDINLINE",
931 "section : INLINE error",
932 "section : INTFILE PARAMETER",
933 "section : DRIVER PARAMETER",
934 "section : RUN PARAMETER",
935 "section : USES uselist",
936 "section : SPARSEDATA PARAMETER",
937 "section : WRFCONFORM",
938 "semicolon : semicolon ';'",
939 "semicolon : ';'",
940 "atomlist : atomlist atomdef semicolon",
941 "atomlist : atomdef semicolon",
942 "atomlist : error semicolon",
943 "atomdef : ATOMID",
944 "lookatlist : lookatlist lookatspc semicolon",
945 "lookatlist : lookatspc semicolon",
946 "lookatlist : error semicolon",
947 "lookatspc : LKTID",
948 "monitorlist : monitorlist monitorspc semicolon",
949 "monitorlist : monitorspc semicolon",
950 "monitorlist : error semicolon",
951 "monitorspc : MNIID",
952 "translist : translist transspc semicolon",
953 "translist : transspc semicolon",
954 "translist : error semicolon",
955 "transspc : TPTID",
956 "uselist : uselist usefile semicolon",
957 "uselist : usefile semicolon",
958 "uselist : error semicolon",
959 "usefile : USEID",
960 "setspclist : setspclist setspcspc semicolon",
961 "setspclist : setspcspc semicolon",
962 "setspclist : error semicolon",
963 "setspcspc : SSPID",
964 "species : species spc semicolon",
965 "species : spc semicolon",
966 "species : error semicolon",
967 "spc : spcname",
968 "spc : spcdef",
969 "spcname : SPCSPC SPCEQUAL atoms",
970 "spcdef : SPCSPC",
971 "atoms : atoms SPCPLUS atom",
972 "atoms : atom",
973 "atom : SPCNR SPCSPC",
974 "atom : SPCSPC",
975 "initvalues : initvalues assignment semicolon",
976 "initvalues : assignment semicolon",
977 "initvalues : error semicolon",
978 "assignment : INISPC INIEQUAL INIVALUE",
979 "equations : equations equation semicolon",
980 "equations : equation semicolon",
981 "equations : error semicolon",
982 "equation : eqntag lefths righths rate",
983 "equation : lefths righths rate",
984 "rate : RATE rate",
985 "rate : RATE",
986 "eqntag : EQNLESS EQNTAG EQNGREATER",
987 "lefths : expresion EQNEQUAL",
988 "righths : expresion EQNCOLON",
989 "expresion : expresion EQNSIGN term",
990 "expresion : EQNSIGN term",
991 "expresion : term",
992 "term : EQNCOEF EQNSPC",
993 "term : EQNSPC",
994 "lumps : lumps lump semicolon",
995 "lumps : lump semicolon",
996 "lumps : error semicolon",
997 "lump : LMPSPC LMPPLUS lump",
998 "lump : LMPSPC LMPCOLON LMPSPC",
999 "inlinecode : inlinecode INCODE",
1000 "inlinecode : INCODE",
1002 #endif
1003 #ifdef YYSTACKSIZE
1004 #undef YYMAXDEPTH
1005 #define YYMAXDEPTH YYSTACKSIZE
1006 #else
1007 #ifdef YYMAXDEPTH
1008 #define YYSTACKSIZE YYMAXDEPTH
1009 #else
1010 #define YYSTACKSIZE 500
1011 #define YYMAXDEPTH 500
1012 #endif
1013 #endif
1014 int yydebug;
1015 int yynerrs;
1016 int yyerrflag;
1017 int yychar;
1018 short *yyssp;
1019 YYSTYPE *yyvsp;
1020 YYSTYPE yyval;
1021 YYSTYPE yylval;
1022 short yyss[YYSTACKSIZE];
1023 YYSTYPE yyvs[YYSTACKSIZE];
1024 #define yystacksize YYSTACKSIZE
1025 #line 387 "scan.y"
1027 void yyerror( char * str )
1031 void ParserErrorMessage()
1033 yyerrok;
1035 Message("[%d,%s] -> [%d,%s]", crtTokType, crtToken, nextTokType, nextToken );
1037 if( crtToken[0] == ';' ) {
1038 ParserError("Misplaced ';'");
1039 return;
1041 switch( crtTokType ) {
1042 case ATOMID:
1043 ParserError("Missing ';' after '%s'", crtToken );
1044 break;
1046 case SPCSPC:
1047 ParserError("Missing ';' or '+' after '%s'", crtToken );
1048 break;
1049 case SPCNR:
1050 ParserError("Missing species after '%s'", crtToken );
1051 break;
1052 case SPCPLUS:
1053 ParserError("Missing atom after '%s'", crtToken );
1054 break;
1055 case SPCEQUAL:
1056 ParserError("Invalid '=' after '%s'", crtToken );
1057 break;
1059 case INISPC:
1060 ParserError("Missing '=' after '%s'", crtToken );
1061 break;
1062 case INIEQUAL:
1063 ParserError("Missing value after '%s'", crtToken );
1064 break;
1065 case INIVALUE:
1066 ParserError("Missing ';' after '%s'", crtToken );
1067 break;
1069 case EQNSPC:
1070 ParserError("Missing '+' or '=' after '%s'", crtToken );
1071 break;
1072 case EQNEQUAL:
1073 ParserError("Invalid right hand side of equation");
1074 break;
1075 case EQNCOLON:
1076 ParserError("Missing rate after '%s'", crtToken );
1077 break;
1078 case EQNSIGN:
1079 ParserError("Missing coeficient after '%s'", crtToken );
1080 break;
1081 case EQNCOEF:
1082 ParserError("Missing species after '%s'", crtToken );
1083 break;
1084 case RATE:
1085 ParserError("Missing ';' after '%s'", crtToken );
1086 break;
1088 case LMPSPC:
1089 ParserError("Missing '+' or ':' or ';' after '%s'", crtToken );
1090 break;
1091 case LMPPLUS:
1092 ParserError("Missing species after '%s'", crtToken );
1093 break;
1094 case LMPCOLON:
1095 ParserError("Missing species after '%s'", crtToken );
1096 break;
1097 case INLINE:
1098 ParserError("Missing inline option after '%s'", crtToken );
1099 break;
1101 default:
1102 ParserError("Syntax error after '%s'", crtToken );
1107 int Parser( char * filename )
1109 extern int yydebug;
1110 FILE *f;
1112 crt_filename = filename;
1114 f = fopen( crt_filename, "r" );
1115 if( f == 0 ) {
1116 FatalError(7,"%s: File not found", crt_filename);
1119 yyin = f;
1120 nError = 0;
1121 nWarning = 0;
1122 yydebug = 0;
1124 yyparse();
1126 fclose( f );
1128 return nError;
1131 #line 1128 "y.tab.c"
1132 #define YYABORT goto yyabort
1133 #define YYREJECT goto yyabort
1134 #define YYACCEPT goto yyaccept
1135 #define YYERROR goto yyerrlab
1137 #if defined(__STDC__)
1138 yyparse(void)
1139 #else
1140 yyparse()
1141 #endif
1143 register int yym, yyn, yystate;
1144 #if YYDEBUG
1145 register char *yys;
1146 extern char *getenv();
1148 if (yys = getenv("YYDEBUG"))
1150 yyn = *yys;
1151 if (yyn >= '0' && yyn <= '9')
1152 yydebug = yyn - '0';
1154 #endif
1156 yynerrs = 0;
1157 yyerrflag = 0;
1158 yychar = (-1);
1160 yyssp = yyss;
1161 yyvsp = yyvs;
1162 *yyssp = yystate = 0;
1164 yyloop:
1165 if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
1166 if (yychar < 0)
1168 if ((yychar = yylex()) < 0) yychar = 0;
1169 #if YYDEBUG
1170 if (yydebug)
1172 yys = 0;
1173 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1174 if (!yys) yys = "illegal-symbol";
1175 printf("%sdebug: state %d, reading %d (%s)\n",
1176 YYPREFIX, yystate, yychar, yys);
1178 #endif
1180 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1181 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1183 #if YYDEBUG
1184 if (yydebug)
1185 printf("%sdebug: state %d, shifting to state %d\n",
1186 YYPREFIX, yystate, yytable[yyn]);
1187 #endif
1188 if (yyssp >= yyss + yystacksize - 1)
1190 goto yyoverflow;
1192 *++yyssp = yystate = yytable[yyn];
1193 *++yyvsp = yylval;
1194 yychar = (-1);
1195 if (yyerrflag > 0) --yyerrflag;
1196 goto yyloop;
1198 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1199 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1201 yyn = yytable[yyn];
1202 goto yyreduce;
1204 if (yyerrflag) goto yyinrecovery;
1205 yyerror("syntax error");
1206 #ifdef lint
1207 goto yyerrlab;
1208 #endif
1209 yyerrlab:
1210 ++yynerrs;
1211 yyinrecovery:
1212 if (yyerrflag < 3)
1214 yyerrflag = 3;
1215 for (;;)
1217 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1218 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1220 #if YYDEBUG
1221 if (yydebug)
1222 printf("%sdebug: state %d, error recovery shifting\
1223 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
1224 #endif
1225 if (yyssp >= yyss + yystacksize - 1)
1227 goto yyoverflow;
1229 *++yyssp = yystate = yytable[yyn];
1230 *++yyvsp = yylval;
1231 goto yyloop;
1233 else
1235 #if YYDEBUG
1236 if (yydebug)
1237 printf("%sdebug: error recovery discarding state %d\n",
1238 YYPREFIX, *yyssp);
1239 #endif
1240 if (yyssp <= yyss) goto yyabort;
1241 --yyssp;
1242 --yyvsp;
1246 else
1248 if (yychar == 0) goto yyabort;
1249 #if YYDEBUG
1250 if (yydebug)
1252 yys = 0;
1253 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1254 if (!yys) yys = "illegal-symbol";
1255 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
1256 YYPREFIX, yystate, yychar, yys);
1258 #endif
1259 yychar = (-1);
1260 goto yyloop;
1262 yyreduce:
1263 #if YYDEBUG
1264 if (yydebug)
1265 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
1266 YYPREFIX, yystate, yyn, yyrule[yyn]);
1267 #endif
1268 yym = yylen[yyn];
1269 yyval = yyvsp[1-yym];
1270 switch (yyn)
1272 case 3:
1273 #line 95 "scan.y"
1274 { CmdJacobian( yyvsp[0].str );
1276 break;
1277 case 4:
1278 #line 98 "scan.y"
1279 { CmdHessian( yyvsp[0].str );
1281 break;
1282 case 5:
1283 #line 101 "scan.y"
1284 { CmdStoicmat( yyvsp[0].str );
1286 break;
1287 case 6:
1288 #line 104 "scan.y"
1289 { CmdDouble( yyvsp[0].str );
1291 break;
1292 case 7:
1293 #line 107 "scan.y"
1294 { CmdReorder( yyvsp[0].str );
1296 break;
1297 case 8:
1298 #line 110 "scan.y"
1299 { CmdMex( yyvsp[0].str );
1301 break;
1302 case 9:
1303 #line 113 "scan.y"
1304 { CmdDummyindex( yyvsp[0].str );
1306 break;
1307 case 10:
1308 #line 116 "scan.y"
1309 { CmdEqntags( yyvsp[0].str );
1311 break;
1312 case 11:
1313 #line 119 "scan.y"
1314 { CmdFunction( yyvsp[0].str );
1316 break;
1317 case 12:
1318 #line 122 "scan.y"
1319 { CmdStochastic( yyvsp[0].str );
1321 break;
1322 case 13:
1323 #line 125 "scan.y"
1325 break;
1326 case 14:
1327 #line 127 "scan.y"
1329 break;
1330 case 15:
1331 #line 129 "scan.y"
1333 break;
1334 case 16:
1335 #line 131 "scan.y"
1337 break;
1338 case 17:
1339 #line 133 "scan.y"
1341 break;
1342 case 18:
1343 #line 135 "scan.y"
1345 break;
1346 case 19:
1347 #line 137 "scan.y"
1349 break;
1350 case 20:
1351 #line 139 "scan.y"
1353 break;
1354 case 21:
1355 #line 141 "scan.y"
1357 break;
1358 case 22:
1359 #line 143 "scan.y"
1361 break;
1362 case 23:
1363 #line 145 "scan.y"
1365 break;
1366 case 24:
1367 #line 147 "scan.y"
1369 break;
1370 case 25:
1371 #line 149 "scan.y"
1373 break;
1374 case 26:
1375 #line 151 "scan.y"
1377 break;
1378 case 27:
1379 #line 153 "scan.y"
1380 { CheckAll(); }
1381 break;
1382 case 28:
1383 #line 155 "scan.y"
1384 { LookAtAll(); }
1385 break;
1386 case 29:
1387 #line 157 "scan.y"
1388 { TransportAll(); }
1389 break;
1390 case 30:
1391 #line 159 "scan.y"
1392 { WriteAtoms(); }
1393 break;
1394 case 31:
1395 #line 161 "scan.y"
1396 { WriteSpecies(); }
1397 break;
1398 case 32:
1399 #line 163 "scan.y"
1400 { WriteMatrices(); }
1401 break;
1402 case 33:
1403 #line 165 "scan.y"
1404 { WriteOptions(); }
1405 break;
1406 case 34:
1407 #line 167 "scan.y"
1408 { CmdUse( yyvsp[0].str ); }
1409 break;
1410 case 35:
1411 #line 169 "scan.y"
1412 { CmdLanguage( yyvsp[0].str ); }
1413 break;
1414 case 36:
1415 #line 171 "scan.y"
1416 { DefineInitializeNbr( yyvsp[0].str ); }
1417 break;
1418 case 37:
1419 #line 173 "scan.y"
1420 { DefineXGrid( yyvsp[0].str ); }
1421 break;
1422 case 38:
1423 #line 175 "scan.y"
1424 { DefineYGrid( yyvsp[0].str ); }
1425 break;
1426 case 39:
1427 #line 177 "scan.y"
1428 { DefineZGrid( yyvsp[0].str ); }
1429 break;
1430 case 40:
1431 #line 179 "scan.y"
1433 AddInlineCode( yyvsp[-2].str, InlineBuf );
1434 free( InlineBuf );
1436 break;
1437 case 41:
1438 #line 184 "scan.y"
1439 { ParserErrorMessage(); }
1440 break;
1441 case 42:
1442 #line 186 "scan.y"
1443 { CmdIntegrator( yyvsp[0].str ); }
1444 break;
1445 case 43:
1446 #line 188 "scan.y"
1447 { CmdDriver( yyvsp[0].str ); }
1448 break;
1449 case 44:
1450 #line 190 "scan.y"
1451 { CmdRun( yyvsp[0].str ); }
1452 break;
1453 case 45:
1454 #line 192 "scan.y"
1456 break;
1457 case 46:
1458 #line 194 "scan.y"
1459 { SparseData( yyvsp[0].str );
1461 break;
1462 case 47:
1463 #line 197 "scan.y"
1464 { WRFConform();
1466 break;
1467 case 48:
1468 #line 201 "scan.y"
1469 { ScanWarning("Unnecessary ';'");
1471 break;
1472 case 52:
1473 #line 208 "scan.y"
1474 { ParserErrorMessage(); }
1475 break;
1476 case 53:
1477 #line 211 "scan.y"
1478 { switch( crt_section ) {
1479 case ATOMDECL: DeclareAtom( yyvsp[0].str ); break;
1480 case CHECK: SetAtomType( yyvsp[0].str, DO_CHECK ); break;
1483 break;
1484 case 56:
1485 #line 220 "scan.y"
1486 { ParserErrorMessage(); }
1487 break;
1488 case 57:
1489 #line 223 "scan.y"
1490 { AddLookAt( yyvsp[0].str );
1492 break;
1493 case 60:
1494 #line 229 "scan.y"
1495 { ParserErrorMessage(); }
1496 break;
1497 case 61:
1498 #line 232 "scan.y"
1499 { AddMonitor( yyvsp[0].str );
1501 break;
1502 case 64:
1503 #line 238 "scan.y"
1504 { ParserErrorMessage(); }
1505 break;
1506 case 65:
1507 #line 241 "scan.y"
1508 { AddTransport( yyvsp[0].str );
1510 break;
1511 case 68:
1512 #line 247 "scan.y"
1513 { ParserErrorMessage(); }
1514 break;
1515 case 69:
1516 #line 250 "scan.y"
1517 { AddUseFile( yyvsp[0].str );
1519 break;
1520 case 72:
1521 #line 256 "scan.y"
1522 { ParserErrorMessage(); }
1523 break;
1524 case 73:
1525 #line 259 "scan.y"
1526 { switch( crt_section ) {
1527 case SETVAR: SetSpcType( VAR_SPC, yyvsp[0].str ); break;
1528 case SETRAD: SetSpcType( RAD_SPC, yyvsp[0].str ); break;
1529 case SETFIX: SetSpcType( FIX_SPC, yyvsp[0].str ); break;
1532 break;
1533 case 76:
1534 #line 269 "scan.y"
1535 { ParserErrorMessage(); }
1536 break;
1537 case 79:
1538 #line 275 "scan.y"
1539 { switch( crt_section ) {
1540 case DEFVAR: DeclareSpecies( VAR_SPC, yyvsp[-2].str ); break;
1541 case DEFRAD: DeclareSpecies( RAD_SPC, yyvsp[-2].str ); break;
1542 case DEFFIX: DeclareSpecies( FIX_SPC, yyvsp[-2].str ); break;
1545 break;
1546 case 80:
1547 #line 283 "scan.y"
1548 { switch( crt_section ) {
1549 case DEFVAR: DeclareSpecies( VAR_SPC, yyvsp[0].str ); break;
1550 case DEFRAD: DeclareSpecies( RAD_SPC, yyvsp[0].str ); break;
1551 case DEFFIX: DeclareSpecies( FIX_SPC, yyvsp[0].str ); break;
1554 break;
1555 case 83:
1556 #line 294 "scan.y"
1557 { AddAtom( yyvsp[0].str, yyvsp[-1].str );
1559 break;
1560 case 84:
1561 #line 297 "scan.y"
1562 { AddAtom( yyvsp[0].str, "1" );
1564 break;
1565 case 87:
1566 #line 303 "scan.y"
1567 { ParserErrorMessage(); }
1568 break;
1569 case 88:
1570 #line 306 "scan.y"
1571 { AssignInitialValue( yyvsp[-2].str, yyvsp[0].str ); }
1572 break;
1573 case 91:
1574 #line 311 "scan.y"
1575 { ParserErrorMessage();
1576 eqState = LHS;
1578 break;
1579 case 92:
1580 #line 316 "scan.y"
1581 { eqState = LHS;
1582 StoreEquationRate( yyvsp[0].str, yyvsp[-3].str );
1583 CheckEquation();
1585 break;
1586 case 93:
1587 #line 321 "scan.y"
1588 { eqState = LHS;
1589 StoreEquationRate( yyvsp[0].str, " " );
1590 CheckEquation();
1592 break;
1593 case 94:
1594 #line 326 "scan.y"
1595 { strcpy( yyval.str, yyvsp[-1].str );
1596 strcat( yyval.str, yyvsp[0].str );
1598 break;
1599 case 95:
1600 #line 330 "scan.y"
1601 { strcpy( yyval.str, yyvsp[0].str );
1603 break;
1604 case 96:
1605 #line 334 "scan.y"
1606 { strcpy( yyval.str, yyvsp[-1].str );
1608 break;
1609 case 97:
1610 #line 338 "scan.y"
1611 { eqState = RHS; }
1612 break;
1613 case 98:
1614 #line 341 "scan.y"
1615 { eqState = RAT; }
1616 break;
1617 case 99:
1618 #line 344 "scan.y"
1619 { ProcessTerm( eqState, yyvsp[-1].str, crt_coef, crt_term );
1621 break;
1622 case 100:
1623 #line 347 "scan.y"
1624 { ProcessTerm( eqState, yyvsp[-1].str, crt_coef, crt_term );
1626 break;
1627 case 101:
1628 #line 350 "scan.y"
1629 { ProcessTerm( eqState, "+", crt_coef, crt_term );
1631 break;
1632 case 102:
1633 #line 354 "scan.y"
1634 { strcpy( crt_term, yyvsp[0].str );
1635 strcpy( crt_coef, yyvsp[-1].str );
1637 break;
1638 case 103:
1639 #line 358 "scan.y"
1640 { strcpy( crt_term, yyvsp[0].str );
1641 strcpy( crt_coef, "1" );
1643 break;
1644 case 106:
1645 #line 365 "scan.y"
1646 { ParserErrorMessage(); }
1647 break;
1648 case 107:
1649 #line 368 "scan.y"
1650 { AddLumpSpecies( yyvsp[-2].str );
1652 break;
1653 case 108:
1654 #line 371 "scan.y"
1656 AddLumpSpecies( yyvsp[-2].str );
1657 CheckLump( yyvsp[0].str );
1659 break;
1660 case 109:
1661 #line 376 "scan.y"
1663 InlineBuf = AppendString( InlineBuf, yyvsp[0].str, &InlineLen, MAX_INLINE );
1665 break;
1666 case 110:
1667 #line 380 "scan.y"
1669 InlineBuf = malloc( MAX_INLINE );
1670 InlineLen = MAX_INLINE;
1671 strcpy( InlineBuf, yyvsp[0].str);
1673 break;
1674 #line 1671 "y.tab.c"
1676 yyssp -= yym;
1677 yystate = *yyssp;
1678 yyvsp -= yym;
1679 yym = yylhs[yyn];
1680 if (yystate == 0 && yym == 0)
1682 #if YYDEBUG
1683 if (yydebug)
1684 printf("%sdebug: after reduction, shifting from state 0 to\
1685 state %d\n", YYPREFIX, YYFINAL);
1686 #endif
1687 yystate = YYFINAL;
1688 *++yyssp = YYFINAL;
1689 *++yyvsp = yyval;
1690 if (yychar < 0)
1692 if ((yychar = yylex()) < 0) yychar = 0;
1693 #if YYDEBUG
1694 if (yydebug)
1696 yys = 0;
1697 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1698 if (!yys) yys = "illegal-symbol";
1699 printf("%sdebug: state %d, reading %d (%s)\n",
1700 YYPREFIX, YYFINAL, yychar, yys);
1702 #endif
1704 if (yychar == 0) goto yyaccept;
1705 goto yyloop;
1707 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
1708 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
1709 yystate = yytable[yyn];
1710 else
1711 yystate = yydgoto[yym];
1712 #if YYDEBUG
1713 if (yydebug)
1714 printf("%sdebug: after reduction, shifting from state %d \
1715 to state %d\n", YYPREFIX, *yyssp, yystate);
1716 #endif
1717 if (yyssp >= yyss + yystacksize - 1)
1719 goto yyoverflow;
1721 *++yyssp = yystate;
1722 *++yyvsp = yyval;
1723 goto yyloop;
1724 yyoverflow:
1725 yyerror("yacc stack overflow");
1726 yyabort:
1727 return (1);
1728 yyaccept:
1729 return (0);