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