ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/loader.c
Revision: 1.1
Committed: Fri Feb 3 07:11:35 2006 UTC (18 years, 3 months ago) by root
Content type: text/plain
Branch: MAIN
Branch point for: UPSTREAM
Log Message:
Initial revision

File Contents

# Content
1
2 #line 3 "loader.c"
3
4 #define YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 31
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
34 #include <inttypes.h>
35 typedef int8_t flex_int8_t;
36 typedef uint8_t flex_uint8_t;
37 typedef int16_t flex_int16_t;
38 typedef uint16_t flex_uint16_t;
39 typedef int32_t flex_int32_t;
40 typedef uint32_t flex_uint32_t;
41 #else
42 typedef signed char flex_int8_t;
43 typedef short int flex_int16_t;
44 typedef int flex_int32_t;
45 typedef unsigned char flex_uint8_t;
46 typedef unsigned short int flex_uint16_t;
47 typedef unsigned int flex_uint32_t;
48 #endif /* ! C99 */
49
50 /* Limits of integral types. */
51 #ifndef INT8_MIN
52 #define INT8_MIN (-128)
53 #endif
54 #ifndef INT16_MIN
55 #define INT16_MIN (-32767-1)
56 #endif
57 #ifndef INT32_MIN
58 #define INT32_MIN (-2147483647-1)
59 #endif
60 #ifndef INT8_MAX
61 #define INT8_MAX (127)
62 #endif
63 #ifndef INT16_MAX
64 #define INT16_MAX (32767)
65 #endif
66 #ifndef INT32_MAX
67 #define INT32_MAX (2147483647)
68 #endif
69 #ifndef UINT8_MAX
70 #define UINT8_MAX (255U)
71 #endif
72 #ifndef UINT16_MAX
73 #define UINT16_MAX (65535U)
74 #endif
75 #ifndef UINT32_MAX
76 #define UINT32_MAX (4294967295U)
77 #endif
78
79 #endif /* ! FLEXINT_H */
80
81 #ifdef __cplusplus
82
83 /* The "const" storage-class-modifier is valid. */
84 #define YY_USE_CONST
85
86 #else /* ! __cplusplus */
87
88 #if __STDC__
89
90 #define YY_USE_CONST
91
92 #endif /* __STDC__ */
93 #endif /* ! __cplusplus */
94
95 #ifdef YY_USE_CONST
96 #define yyconst const
97 #else
98 #define yyconst
99 #endif
100
101 /* Returned upon end-of-file. */
102 #define YY_NULL 0
103
104 /* Promotes a possibly negative, possibly signed char to an unsigned
105 * integer for use as an array index. If the signed char is negative,
106 * we want to instead treat it as an 8-bit unsigned char, hence the
107 * double cast.
108 */
109 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
110
111 /* Enter a start condition. This macro really ought to take a parameter,
112 * but we do it the disgusting crufty way forced on us by the ()-less
113 * definition of BEGIN.
114 */
115 #define BEGIN (yy_start) = 1 + 2 *
116
117 /* Translate the current start state into a value that can be later handed
118 * to BEGIN to return to the state. The YYSTATE alias is for lex
119 * compatibility.
120 */
121 #define YY_START (((yy_start) - 1) / 2)
122 #define YYSTATE YY_START
123
124 /* Action number for EOF rule of a given start state. */
125 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
126
127 /* Special action meaning "start processing a new file". */
128 #define YY_NEW_FILE yyrestart(yyin )
129
130 #define YY_END_OF_BUFFER_CHAR 0
131
132 /* Size of default input buffer. */
133 #ifndef YY_BUF_SIZE
134 #define YY_BUF_SIZE 16384
135 #endif
136
137 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
138 #define YY_TYPEDEF_YY_BUFFER_STATE
139 typedef struct yy_buffer_state *YY_BUFFER_STATE;
140 #endif
141
142 extern int yyleng;
143
144 extern FILE *yyin, *yyout;
145
146 #define EOB_ACT_CONTINUE_SCAN 0
147 #define EOB_ACT_END_OF_FILE 1
148 #define EOB_ACT_LAST_MATCH 2
149
150 #define YY_LESS_LINENO(n)
151
152 /* Return all but the first "n" matched characters back to the input stream. */
153 #define yyless(n) \
154 do \
155 { \
156 /* Undo effects of setting up yytext. */ \
157 int yyless_macro_arg = (n); \
158 YY_LESS_LINENO(yyless_macro_arg);\
159 *yy_cp = (yy_hold_char); \
160 YY_RESTORE_YY_MORE_OFFSET \
161 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
162 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
163 } \
164 while ( 0 )
165
166 #define unput(c) yyunput( c, (yytext_ptr) )
167
168 /* The following is because we cannot portably get our hands on size_t
169 * (without autoconf's help, which isn't available because we want
170 * flex-generated scanners to compile on their own).
171 */
172
173 #ifndef YY_TYPEDEF_YY_SIZE_T
174 #define YY_TYPEDEF_YY_SIZE_T
175 typedef unsigned int yy_size_t;
176 #endif
177
178 #ifndef YY_STRUCT_YY_BUFFER_STATE
179 #define YY_STRUCT_YY_BUFFER_STATE
180 struct yy_buffer_state
181 {
182 FILE *yy_input_file;
183
184 char *yy_ch_buf; /* input buffer */
185 char *yy_buf_pos; /* current position in input buffer */
186
187 /* Size of input buffer in bytes, not including room for EOB
188 * characters.
189 */
190 yy_size_t yy_buf_size;
191
192 /* Number of characters read into yy_ch_buf, not including EOB
193 * characters.
194 */
195 int yy_n_chars;
196
197 /* Whether we "own" the buffer - i.e., we know we created it,
198 * and can realloc() it to grow it, and should free() it to
199 * delete it.
200 */
201 int yy_is_our_buffer;
202
203 /* Whether this is an "interactive" input source; if so, and
204 * if we're using stdio for input, then we want to use getc()
205 * instead of fread(), to make sure we stop fetching input after
206 * each newline.
207 */
208 int yy_is_interactive;
209
210 /* Whether we're considered to be at the beginning of a line.
211 * If so, '^' rules will be active on the next match, otherwise
212 * not.
213 */
214 int yy_at_bol;
215
216 int yy_bs_lineno; /**< The line count. */
217 int yy_bs_column; /**< The column count. */
218
219 /* Whether to try to fill the input buffer when we reach the
220 * end of it.
221 */
222 int yy_fill_buffer;
223
224 int yy_buffer_status;
225
226 #define YY_BUFFER_NEW 0
227 #define YY_BUFFER_NORMAL 1
228 /* When an EOF's been seen but there's still some text to process
229 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
230 * shouldn't try reading from the input source any more. We might
231 * still have a bunch of tokens to match, though, because of
232 * possible backing-up.
233 *
234 * When we actually see the EOF, we change the status to "new"
235 * (via yyrestart()), so that the user can continue scanning by
236 * just pointing yyin at a new input file.
237 */
238 #define YY_BUFFER_EOF_PENDING 2
239
240 };
241 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
242
243 /* Stack of input buffers. */
244 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
245 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
246 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
247
248 /* We provide macros for accessing buffer states in case in the
249 * future we want to put the buffer states in a more general
250 * "scanner state".
251 *
252 * Returns the top of the stack, or NULL.
253 */
254 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
255 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
256 : NULL)
257
258 /* Same as previous macro, but useful when we know that the buffer stack is not
259 * NULL or when we need an lvalue. For internal use only.
260 */
261 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
262
263 /* yy_hold_char holds the character lost when yytext is formed. */
264 static char yy_hold_char;
265 static int yy_n_chars; /* number of characters read into yy_ch_buf */
266 int yyleng;
267
268 /* Points to current character in buffer. */
269 static char *yy_c_buf_p = (char *) 0;
270 static int yy_init = 1; /* whether we need to initialize */
271 static int yy_start = 0; /* start state number */
272
273 /* Flag which is used to allow yywrap()'s to do buffer switches
274 * instead of setting up a fresh yyin. A bit of a hack ...
275 */
276 static int yy_did_buffer_switch_on_eof;
277
278 void yyrestart (FILE *input_file );
279 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
280 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
281 void yy_delete_buffer (YY_BUFFER_STATE b );
282 void yy_flush_buffer (YY_BUFFER_STATE b );
283 void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
284 void yypop_buffer_state (void );
285
286 static void yyensure_buffer_stack (void );
287 static void yy_load_buffer_state (void );
288 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
289
290 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
291
292 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
293 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
294 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
295
296 void *yyalloc (yy_size_t );
297 void *yyrealloc (void *,yy_size_t );
298 void yyfree (void * );
299
300 #define yy_new_buffer yy_create_buffer
301
302 #define yy_set_interactive(is_interactive) \
303 { \
304 if ( ! YY_CURRENT_BUFFER ){ \
305 yyensure_buffer_stack (); \
306 YY_CURRENT_BUFFER_LVALUE = \
307 yy_create_buffer(yyin,YY_BUF_SIZE ); \
308 } \
309 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
310 }
311
312 #define yy_set_bol(at_bol) \
313 { \
314 if ( ! YY_CURRENT_BUFFER ){\
315 yyensure_buffer_stack (); \
316 YY_CURRENT_BUFFER_LVALUE = \
317 yy_create_buffer(yyin,YY_BUF_SIZE ); \
318 } \
319 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
320 }
321
322 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
323
324 /* Begin user sect3 */
325
326 #define yywrap(n) 1
327 #define YY_SKIP_YYWRAP
328
329 typedef unsigned char YY_CHAR;
330
331 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
332
333 typedef int yy_state_type;
334
335 extern int yylineno;
336
337 int yylineno = 1;
338
339 extern char *yytext;
340 #define yytext_ptr yytext
341
342 static yy_state_type yy_get_previous_state (void );
343 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
344 static int yy_get_next_buffer (void );
345 static void yy_fatal_error (yyconst char msg[] );
346
347 /* Done after the current pattern has been matched and before the
348 * corresponding action - sets up yytext.
349 */
350 #define YY_DO_BEFORE_ACTION \
351 (yytext_ptr) = yy_bp; \
352 yyleng = (size_t) (yy_cp - yy_bp); \
353 (yy_hold_char) = *yy_cp; \
354 *yy_cp = '\0'; \
355 (yy_c_buf_p) = yy_cp;
356
357 #define YY_NUM_RULES 276
358 #define YY_END_OF_BUFFER 277
359 /* This struct is not used in this scanner,
360 but its presence is necessary. */
361 struct yy_trans_info
362 {
363 flex_int32_t yy_verify;
364 flex_int32_t yy_nxt;
365 };
366 static yyconst flex_int16_t yy_accept[2471] =
367 { 0,
368 275, 275, 3, 3, 6, 6, 0, 0, 277, 275,
369 273, 275, 275, 275, 275, 275, 275, 275, 275, 275,
370 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
371 275, 275, 275, 275, 275, 275, 3, 3, 3, 6,
372 6, 6, 276, 276, 275, 275, 274, 275, 273, 275,
373 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
374 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
375 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
376 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
377 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
378
379 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
380 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
381 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
382 275, 275, 275, 275, 275, 275, 275, 3, 3, 3,
383 3, 6, 6, 6, 6, 0, 273, 275, 275, 275,
384 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
385 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
386 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
387 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
388 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
389
390 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
391 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
392 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
393 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
394 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
395 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
396 275, 48, 48, 275, 49, 49, 3, 6, 47, 47,
397 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
398 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
399 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
400
401 275, 275, 275, 275, 19, 275, 275, 275, 275, 275,
402 275, 275, 275, 275, 275, 275, 275, 275, 275, 36,
403 36, 275, 275, 275, 275, 275, 275, 275, 275, 275,
404 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
405 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
406 275, 275, 275, 1, 275, 275, 275, 275, 275, 275,
407 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
408 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
409 275, 275, 275, 275, 275, 275, 275, 38, 38, 275,
410 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
411
412 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
413 275, 46, 46, 275, 275, 275, 275, 275, 275, 3,
414 6, 275, 275, 275, 275, 275, 275, 275, 275, 275,
415 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
416 275, 275, 275, 275, 275, 33, 33, 275, 275, 31,
417 31, 275, 275, 275, 275, 275, 275, 45, 45, 275,
418 275, 30, 30, 275, 275, 275, 275, 275, 275, 42,
419 42, 275, 275, 275, 275, 275, 275, 275, 275, 275,
420 275, 275, 275, 275, 275, 34, 34, 275, 275, 275,
421 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
422
423 275, 275, 275, 275, 275, 275, 275, 275, 4, 275,
424 275, 275, 275, 275, 275, 275, 275, 275, 18, 275,
425 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
426 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
427 275, 275, 35, 35, 275, 275, 275, 275, 275, 275,
428 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
429 275, 275, 275, 275, 275, 29, 29, 275, 275, 275,
430 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
431 275, 275, 275, 275, 275, 32, 32, 116, 116, 275,
432 3, 6, 275, 275, 275, 275, 275, 15, 15, 275,
433
434 275, 275, 275, 275, 275, 229, 275, 275, 275, 275,
435 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
436 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
437 275, 275, 275, 275, 275, 28, 28, 275, 275, 275,
438 44, 44, 275, 275, 275, 275, 275, 275, 275, 275,
439 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
440 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
441 275, 275, 275, 275, 121, 121, 275, 275, 275, 275,
442 275, 275, 275, 275, 275, 275, 275, 8, 8, 275,
443 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
444
445 275, 275, 275, 50, 50, 275, 275, 275, 275, 275,
446 275, 275, 275, 275, 275, 275, 12, 12, 275, 275,
447 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
448 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
449 275, 275, 275, 275, 53, 53, 275, 275, 275, 275,
450 275, 275, 275, 275, 275, 275, 275, 275, 275, 3,
451 6, 275, 67, 67, 275, 275, 275, 275, 275, 275,
452 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
453 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
454 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
455
456 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
457 275, 275, 275, 275, 275, 40, 40, 275, 275, 275,
458 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
459 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
460 275, 275, 275, 51, 51, 275, 65, 65, 275, 275,
461 275, 37, 37, 39, 39, 275, 275, 275, 275, 275,
462 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
463 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
464 275, 275, 275, 275, 275, 275, 275, 275, 275, 231,
465 231, 275, 275, 275, 275, 275, 275, 275, 10, 10,
466
467 275, 145, 145, 275, 275, 24, 24, 275, 275, 275,
468 275, 66, 66, 275, 275, 275, 27, 27, 275, 275,
469 275, 275, 275, 275, 275, 57, 57, 275, 275, 275,
470 275, 275, 275, 275, 141, 141, 3, 2, 6, 275,
471 275, 275, 275, 151, 151, 275, 275, 275, 275, 275,
472 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
473 275, 275, 275, 275, 275, 275, 275, 275, 275, 190,
474 190, 275, 275, 191, 191, 275, 275, 275, 275, 275,
475 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
476 275, 200, 200, 275, 77, 77, 79, 79, 275, 275,
477
478 275, 275, 275, 275, 275, 178, 178, 275, 275, 275,
479 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
480 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
481 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
482 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
483 275, 275, 275, 275, 7, 7, 275, 275, 275, 275,
484 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
485 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
486 275, 275, 275, 275, 275, 275, 275, 111, 111, 275,
487 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
488
489 275, 275, 275, 275, 110, 110, 201, 201, 69, 69,
490 275, 275, 275, 275, 275, 275, 58, 58, 275, 6,
491 5, 275, 275, 275, 68, 68, 275, 275, 275, 275,
492 217, 217, 275, 275, 275, 221, 221, 275, 275, 275,
493 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
494 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
495 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
496 275, 275, 275, 275, 275, 275, 78, 78, 275, 275,
497 275, 275, 275, 105, 105, 275, 275, 275, 275, 275,
498 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
499
500 275, 275, 275, 275, 275, 275, 275, 21, 21, 275,
501 275, 275, 275, 275, 86, 86, 275, 275, 82, 82,
502 275, 275, 275, 9, 9, 70, 70, 71, 71, 87,
503 87, 275, 275, 128, 128, 275, 275, 74, 74, 73,
504 73, 275, 275, 275, 216, 216, 275, 275, 275, 275,
505 275, 275, 275, 123, 123, 275, 275, 275, 275, 275,
506 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
507 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
508 275, 275, 275, 275, 275, 275, 275, 275, 13, 13,
509 275, 275, 275, 275, 275, 275, 188, 188, 54, 54,
510
511 275, 275, 275, 275, 275, 275, 275, 75, 75, 117,
512 117, 275, 275, 275, 275, 275, 275, 275, 275, 275,
513 275, 275, 275, 275, 275, 275, 275, 97, 97, 275,
514 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
515 275, 59, 59, 275, 103, 103, 275, 187, 187, 275,
516 275, 275, 275, 275, 275, 230, 230, 275, 108, 108,
517 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
518 275, 275, 275, 275, 90, 90, 275, 275, 275, 275,
519 275, 275, 275, 14, 275, 275, 211, 211, 275, 275,
520 142, 142, 205, 205, 275, 275, 275, 275, 206, 206,
521
522 275, 275, 275, 275, 23, 23, 275, 275, 143, 143,
523 275, 55, 55, 275, 41, 41, 275, 83, 83, 275,
524 275, 275, 275, 275, 275, 275, 115, 115, 275, 215,
525 215, 275, 275, 275, 275, 275, 275, 275, 43, 43,
526 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
527 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
528 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
529 275, 275, 275, 122, 122, 275, 275, 275, 275, 275,
530 275, 275, 275, 275, 224, 224, 95, 95, 275, 275,
531 275, 76, 76, 275, 275, 275, 275, 17, 17, 275,
532
533 275, 275, 275, 275, 131, 131, 275, 275, 275, 275,
534 219, 219, 275, 275, 275, 275, 275, 275, 275, 275,
535 275, 275, 275, 275, 275, 275, 189, 189, 127, 127,
536 275, 275, 275, 52, 52, 275, 275, 226, 226, 275,
537 275, 275, 275, 275, 275, 275, 251, 251, 275, 275,
538 275, 275, 275, 275, 275, 275, 275, 275, 91, 91,
539 275, 275, 275, 275, 275, 275, 275, 275, 64, 64,
540 275, 275, 275, 275, 93, 93, 275, 275, 204, 204,
541 275, 275, 275, 275, 20, 20, 275, 275, 275, 84,
542 84, 275, 275, 81, 81, 88, 88, 89, 89, 275,
543
544 275, 275, 275, 275, 275, 275, 275, 275, 179, 179,
545 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
546 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
547 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
548 275, 275, 275, 275, 26, 26, 275, 275, 104, 104,
549 275, 275, 120, 120, 275, 275, 275, 275, 275, 275,
550 126, 126, 275, 60, 60, 94, 94, 275, 107, 107,
551 275, 275, 220, 220, 275, 275, 275, 275, 275, 275,
552 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
553 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
554
555 275, 245, 245, 275, 275, 275, 275, 275, 254, 254,
556 275, 275, 275, 275, 257, 257, 275, 275, 275, 275,
557 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
558 101, 101, 203, 203, 275, 275, 275, 275, 275, 100,
559 100, 124, 124, 275, 275, 22, 22, 275, 275, 80,
560 80, 275, 186, 186, 275, 275, 275, 275, 16, 16,
561 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
562 102, 102, 275, 275, 275, 275, 275, 275, 275, 275,
563 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
564 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
565
566 275, 25, 25, 275, 106, 106, 275, 275, 180, 180,
567 223, 223, 129, 129, 275, 275, 275, 275, 275, 275,
568 275, 275, 275, 136, 136, 275, 275, 275, 198, 198,
569 275, 275, 275, 275, 275, 275, 228, 228, 275, 11,
570 11, 275, 275, 275, 236, 236, 275, 275, 275, 275,
571 266, 266, 275, 275, 242, 242, 275, 275, 275, 275,
572 275, 275, 275, 275, 275, 275, 260, 260, 275, 275,
573 275, 275, 269, 269, 275, 275, 275, 275, 210, 210,
574 275, 275, 275, 275, 275, 275, 275, 72, 72, 275,
575 213, 213, 275, 99, 99, 275, 275, 275, 275, 275,
576
577 275, 275, 144, 144, 148, 148, 275, 275, 63, 63,
578 275, 147, 147, 275, 214, 214, 275, 275, 275, 158,
579 158, 275, 275, 275, 156, 156, 275, 275, 275, 275,
580 275, 275, 275, 166, 166, 154, 154, 275, 275, 275,
581 275, 275, 275, 275, 275, 275, 163, 163, 275, 275,
582 275, 275, 227, 227, 146, 146, 275, 275, 275, 275,
583 275, 196, 196, 275, 275, 275, 275, 275, 199, 199,
584 275, 139, 139, 275, 275, 275, 184, 184, 275, 225,
585 225, 275, 233, 233, 275, 275, 275, 275, 239, 239,
586 275, 275, 275, 275, 275, 275, 275, 275, 248, 248,
587
588 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
589 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
590 275, 275, 235, 235, 119, 119, 194, 194, 275, 275,
591 56, 56, 275, 275, 275, 275, 61, 61, 275, 275,
592 275, 275, 275, 174, 174, 275, 170, 170, 275, 275,
593 169, 169, 275, 275, 159, 159, 275, 275, 275, 275,
594 275, 275, 153, 153, 275, 275, 275, 275, 275, 192,
595 192, 275, 112, 112, 275, 275, 275, 275, 275, 275,
596 218, 218, 275, 275, 135, 135, 275, 275, 195, 195,
597 275, 275, 275, 109, 109, 275, 275, 275, 275, 275,
598
599 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
600 275, 275, 275, 275, 275, 275, 275, 263, 263, 275,
601 275, 125, 125, 140, 140, 275, 181, 181, 275, 275,
602 275, 275, 193, 193, 275, 275, 118, 118, 275, 98,
603 98, 62, 62, 275, 275, 275, 114, 114, 275, 275,
604 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
605 275, 162, 162, 275, 275, 96, 96, 275, 275, 275,
606 275, 133, 133, 222, 222, 275, 137, 137, 134, 134,
607 132, 132, 138, 138, 275, 275, 275, 275, 275, 275,
608 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
609
610 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
611 182, 182, 275, 275, 183, 183, 275, 202, 202, 275,
612 209, 209, 275, 232, 232, 275, 275, 275, 275, 168,
613 168, 177, 177, 275, 275, 275, 275, 275, 275, 275,
614 275, 275, 275, 275, 275, 275, 185, 185, 212, 212,
615 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
616 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
617 275, 275, 275, 275, 275, 275, 275, 207, 207, 275,
618 275, 130, 130, 113, 113, 275, 275, 275, 275, 161,
619 161, 172, 172, 173, 173, 175, 175, 275, 164, 164,
620
621 152, 152, 275, 275, 275, 149, 149, 275, 275, 275,
622 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
623 275, 275, 275, 252, 252, 275, 275, 275, 275, 275,
624 275, 275, 275, 275, 275, 197, 197, 208, 208, 275,
625 275, 157, 157, 275, 275, 275, 275, 275, 275, 275,
626 275, 234, 234, 275, 275, 275, 275, 275, 275, 275,
627 275, 275, 246, 246, 275, 275, 253, 253, 275, 255,
628 255, 275, 275, 275, 258, 258, 275, 275, 275, 275,
629 85, 85, 275, 275, 275, 275, 275, 275, 275, 275,
630 275, 275, 237, 237, 275, 275, 275, 267, 267, 275,
631
632 243, 243, 247, 247, 275, 275, 256, 256, 275, 261,
633 261, 259, 259, 275, 270, 270, 275, 275, 275, 275,
634 155, 155, 275, 165, 165, 160, 160, 92, 92, 150,
635 150, 275, 238, 238, 275, 240, 240, 268, 268, 244,
636 244, 275, 249, 249, 262, 262, 271, 271, 275, 275,
637 167, 167, 171, 171, 275, 275, 241, 241, 250, 250,
638 275, 264, 264, 176, 176, 272, 272, 265, 265, 0
639 } ;
640
641 static yyconst flex_int32_t yy_ec[256] =
642 { 0,
643 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
644 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
646 1, 2, 1, 1, 4, 5, 1, 1, 1, 1,
647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649 1, 1, 1, 1, 8, 9, 10, 11, 12, 13,
650 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
651 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
652 1, 1, 1, 6, 7, 1, 8, 9, 10, 11,
653
654 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
655 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
656 32, 33, 1, 1, 1, 1, 1, 1, 1, 1,
657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
661 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
662 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
663 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
664
665 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
666 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
670 1, 1, 1, 1, 1
671 } ;
672
673 static yyconst flex_int32_t yy_meta[34] =
674 { 0,
675 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
676 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
678 1, 1, 1
679 } ;
680
681 static yyconst flex_int16_t yy_base[2762] =
682 { 0,
683 0, 6, 37, 38, 39, 43, 45, 50, 2791, 0,
684 2792, 2787, 0, 47, 40, 68, 53, 86, 63, 35,
685 70, 107, 2768, 127, 69, 86, 83, 148, 72, 164,
686 181, 37, 71, 113, 99, 2786, 0, 62, 2766, 0,
687 101, 2765, 2792, 111, 0, 2782, 2792, 117, 0, 87,
688 2768, 2767, 2759, 110, 2754, 2753, 119, 2757, 2767, 111,
689 2769, 2760, 2754, 115, 2754, 2742, 2747, 2746, 2754, 2757,
690 2757, 2755, 2743, 2755, 2732, 2741, 2746, 2740, 2738, 2751,
691 2732, 2730, 2754, 2743, 2734, 118, 2746, 2740, 2729, 2724,
692 2720, 2735, 2722, 2736, 132, 132, 2731, 2724, 114, 2736,
693
694 2720, 2724, 90, 2725, 2727, 2711, 2712, 2726, 2705, 2712,
695 141, 139, 2712, 2724, 2719, 2714, 146, 2707, 167, 163,
696 2719, 2719, 2699, 2703, 2712, 2700, 188, 2710, 2702, 2701,
697 159, 2717, 164, 175, 2716, 2709, 2714, 0, 193, 0,
698 2704, 0, 200, 0, 2703, 205, 2792, 2711, 2696, 2682,
699 2690, 2690, 2693, 2685, 2698, 2683, 2683, 2677, 2692, 2669,
700 2693, 2674, 2671, 146, 2685, 207, 164, 2669, 210, 2693,
701 2682, 2685, 2665, 2662, 212, 2669, 198, 2677, 209, 2677,
702 2675, 212, 2656, 2675, 2677, 2674, 2680, 2660, 2652, 2677,
703 214, 227, 2658, 2647, 2649, 2663, 2662, 2661, 2654, 2655,
704
705 2658, 2657, 218, 2642, 2655, 2654, 220, 2653, 2653, 2636,
706 250, 2649, 2649, 2653, 2627, 2646, 2632, 2641, 2635, 2636,
707 2651, 2625, 2639, 227, 2631, 2633, 2641, 2622, 2639, 2626,
708 2612, 2631, 2612, 2619, 2638, 2627, 2622, 218, 2629, 2634,
709 2608, 2609, 2614, 2613, 2623, 2618, 2615, 2616, 2603, 2618,
710 2618, 2596, 2602, 2604, 2614, 2618, 2596, 2604, 2598, 2614,
711 2613, 0, 2612, 2581, 0, 2610, 2591, 2591, 0, 2607,
712 2579, 2595, 240, 2590, 2603, 2576, 2593, 2595, 2594, 2588,
713 2581, 2591, 269, 2565, 2580, 2593, 2580, 2572, 2590, 2563,
714 2578, 2581, 2576, 2575, 2564, 2583, 2564, 2571, 2580, 2571,
715
716 2553, 242, 2571, 249, 2792, 2551, 2575, 2548, 2573, 2552,
717 2552, 2570, 2550, 2544, 2544, 2561, 2555, 2541, 2557, 0,
718 2562, 2536, 2541, 2559, 2541, 2538, 2532, 2536, 234, 2548,
719 2536, 2538, 2537, 241, 2526, 252, 2544, 2529, 2542, 2529,
720 2521, 263, 2544, 2535, 2537, 2518, 2517, 2518, 2517, 2512,
721 265, 2531, 269, 2792, 276, 2530, 2511, 2508, 273, 2518,
722 2525, 274, 257, 2530, 2521, 2515, 2522, 2503, 2508, 2519,
723 2518, 2517, 2521, 2510, 2519, 2498, 2507, 2506, 2491, 2508,
724 2503, 280, 2495, 2497, 2489, 2504, 2483, 0, 2507, 2497,
725 2480, 2495, 2478, 2492, 2484, 2500, 2469, 2493, 2487, 2471,
726
727 2471, 2494, 2481, 2486, 2465, 2476, 2481, 2478, 2477, 2481,
728 2457, 0, 2484, 2463, 2469, 2476, 2480, 2479, 2454, 2453,
729 2456, 2469, 2474, 2449, 2447, 2461, 2470, 2446, 2452, 2461,
730 2460, 2442, 2440, 0, 2442, 221, 2456, 2443, 2441, 2453,
731 2438, 2447, 2432, 2441, 2435, 0, 2453, 2438, 2426, 0,
732 2450, 2425, 2440, 2433, 2427, 2436, 2426, 0, 2443, 2422,
733 2432, 0, 2440, 2414, 2424, 2430, 2413, 2410, 2429, 0,
734 2433, 2415, 2431, 278, 2418, 2429, 2419, 2406, 2420, 2402,
735 2424, 2413, 2414, 2407, 2410, 0, 2419, 2398, 2392, 2402,
736 2401, 2400, 2399, 2386, 2391, 2393, 2397, 2385, 2384, 2396,
737
738 2380, 2384, 2382, 2397, 288, 2401, 2394, 302, 2792, 2399,
739 2398, 2383, 2382, 2389, 2394, 2393, 2382, 304, 2792, 299,
740 2391, 2369, 285, 2383, 2363, 2369, 2366, 2356, 2372, 2359,
741 2374, 2367, 297, 2380, 2354, 2364, 2371, 2371, 2369, 302,
742 2364, 2347, 0, 2372, 2363, 2370, 2351, 309, 2360, 2342,
743 2338, 2356, 2345, 2344, 2362, 2342, 2360, 2341, 2345, 310,
744 2332, 2351, 2345, 2354, 2328, 0, 2352, 2330, 2341, 2349,
745 2318, 2321, 2346, 2322, 2335, 2333, 2333, 2321, 2340, 2316,
746 2318, 2323, 2317, 2310, 2328, 0, 2333, 0, 2332, 2331,
747 2318, 2306, 2303, 2327, 2305, 2311, 2315, 0, 2323, 2322,
748
749 308, 2300, 2299, 2303, 2291, 0, 2296, 2292, 2290, 2296,
750 2292, 2292, 2288, 2293, 2299, 2298, 2288, 2294, 2286, 2299,
751 2293, 2277, 2282, 2275, 2299, 2293, 2288, 2296, 2281, 2274,
752 2276, 2287, 2277, 328, 71, 0, 136, 153, 175, 179,
753 0, 225, 240, 279, 262, 310, 317, 312, 305, 311,
754 326, 319, 308, 322, 312, 312, 315, 318, 318, 322,
755 327, 321, 323, 334, 334, 336, 326, 339, 342, 327,
756 341, 333, 355, 329, 0, 358, 359, 341, 355, 354,
757 363, 364, 342, 349, 356, 351, 339, 0, 370, 354,
758 353, 363, 357, 371, 372, 358, 375, 367, 358, 367,
759
760 367, 379, 376, 0, 387, 388, 364, 365, 385, 362,
761 368, 384, 385, 367, 376, 373, 0, 399, 395, 401,
762 384, 378, 399, 399, 406, 377, 381, 410, 399, 412,
763 393, 397, 415, 399, 403, 394, 397, 420, 408, 412,
764 403, 424, 404, 403, 0, 427, 418, 429, 430, 431,
765 413, 433, 428, 424, 405, 412, 438, 418, 440, 441,
766 434, 435, 0, 446, 437, 428, 449, 450, 433, 422,
767 432, 433, 455, 442, 440, 433, 459, 455, 455, 454,
768 440, 447, 460, 461, 455, 463, 457, 445, 462, 462,
769 463, 469, 475, 457, 463, 478, 459, 461, 471, 471,
770
771 463, 463, 468, 476, 473, 483, 477, 492, 493, 494,
772 495, 466, 491, 478, 492, 0, 502, 494, 504, 491,
773 506, 491, 486, 493, 505, 503, 504, 505, 492, 486,
774 492, 490, 513, 515, 498, 512, 495, 498, 519, 501,
775 521, 522, 529, 0, 530, 521, 0, 532, 506, 517,
776 525, 0, 536, 0, 537, 538, 519, 529, 541, 522,
777 537, 523, 545, 546, 547, 548, 541, 538, 551, 531,
778 545, 554, 555, 539, 540, 539, 559, 560, 536, 539,
779 558, 539, 546, 545, 546, 568, 559, 552, 546, 0,
780 572, 553, 569, 578, 545, 576, 549, 564, 0, 579,
781
782 580, 0, 581, 555, 583, 0, 594, 587, 579, 575,
783 575, 0, 604, 605, 607, 580, 0, 609, 600, 601,
784 588, 613, 614, 615, 591, 0, 617, 611, 608, 620,
785 621, 592, 623, 603, 0, 625, 626, 2792, 628, 625,
786 621, 613, 633, 0, 634, 615, 615, 620, 621, 639,
787 630, 611, 637, 643, 638, 628, 630, 617, 648, 635,
788 644, 652, 628, 654, 625, 656, 649, 636, 632, 0,
789 661, 656, 652, 0, 664, 646, 666, 669, 650, 654,
790 653, 650, 656, 671, 658, 671, 650, 661, 659, 665,
791 670, 0, 685, 686, 0, 687, 0, 688, 689, 667,
792
793 668, 678, 663, 694, 685, 0, 696, 687, 668, 689,
794 675, 701, 696, 680, 704, 705, 700, 688, 701, 683,
795 710, 702, 702, 690, 702, 715, 708, 700, 718, 719,
796 706, 721, 722, 723, 716, 725, 726, 699, 703, 719,
797 730, 731, 732, 733, 718, 725, 736, 720, 738, 739,
798 741, 737, 743, 732, 0, 745, 746, 741, 740, 738,
799 724, 737, 742, 753, 754, 746, 736, 747, 749, 741,
800 741, 753, 745, 757, 757, 747, 758, 753, 749, 755,
801 761, 770, 772, 762, 755, 772, 783, 0, 784, 773,
802 763, 788, 779, 763, 780, 781, 780, 781, 796, 797,
803
804 779, 799, 800, 777, 0, 802, 0, 803, 0, 804,
805 795, 789, 807, 808, 809, 789, 0, 811, 795, 813,
806 2792, 795, 807, 817, 0, 818, 792, 810, 791, 808,
807 0, 823, 796, 825, 802, 0, 827, 805, 819, 823,
808 831, 832, 814, 811, 815, 816, 831, 830, 834, 839,
809 827, 842, 826, 848, 849, 850, 842, 835, 840, 855,
810 856, 839, 858, 842, 860, 844, 856, 839, 839, 844,
811 850, 867, 847, 849, 860, 859, 0, 873, 874, 857,
812 876, 851, 873, 0, 879, 871, 872, 881, 883, 874,
813 885, 879, 867, 888, 889, 883, 891, 875, 872, 894,
814
815 895, 873, 873, 884, 899, 890, 901, 0, 902, 903,
816 880, 905, 900, 907, 0, 908, 893, 910, 0, 911,
817 912, 903, 914, 0, 915, 0, 916, 0, 918, 0,
818 919, 920, 921, 0, 922, 917, 924, 0, 925, 0,
819 926, 913, 928, 904, 0, 930, 923, 919, 916, 915,
820 925, 919, 937, 0, 938, 939, 913, 923, 928, 929,
821 923, 933, 932, 933, 929, 943, 933, 945, 929, 948,
822 945, 950, 934, 938, 951, 944, 937, 952, 952, 942,
823 937, 954, 949, 947, 965, 972, 963, 960, 0, 975,
824 976, 967, 953, 979, 963, 960, 0, 982, 0, 983,
825
826 984, 985, 986, 973, 969, 979, 990, 0, 991, 0,
827 992, 983, 964, 976, 996, 997, 988, 999, 1000, 991,
828 1002, 1003, 983, 987, 1006, 1001, 1008, 0, 1009, 1005,
829 993, 984, 990, 995, 996, 1007, 994, 1004, 1005, 1001,
830 1015, 0, 1022, 1005, 0, 1024, 1015, 0, 1026, 1027,
831 1028, 1023, 1020, 1021, 1032, 0, 1033, 1014, 0, 1035,
832 1027, 1037, 1008, 1031, 1030, 1028, 1042, 1017, 1044, 1025,
833 1048, 1021, 1050, 1039, 0, 1052, 1034, 1056, 1033, 1067,
834 1058, 1059, 1059, 2792, 1061, 1053, 0, 1063, 1047, 1046,
835 0, 1066, 0, 1067, 1051, 1069, 1060, 1071, 0, 1072,
836
837 1075, 1076, 1067, 1070, 0, 1079, 1081, 1082, 0, 1083,
838 1070, 0, 1085, 1068, 0, 1087, 1088, 0, 1089, 1092,
839 1072, 1094, 1096, 1097, 1098, 1069, 0, 1100, 1092, 0,
840 1102, 1090, 1088, 1105, 1086, 1097, 1099, 1092, 0, 1110,
841 1111, 1102, 1089, 1103, 1091, 1106, 1117, 1109, 1100, 1112,
842 1101, 1113, 1112, 1105, 1100, 1109, 1117, 1114, 1121, 1107,
843 1121, 1108, 1112, 1104, 1125, 1126, 1123, 1132, 1115, 1116,
844 1113, 1123, 1122, 0, 1144, 1122, 1139, 1147, 1131, 1149,
845 1150, 1134, 1152, 1153, 0, 1154, 0, 1155, 1129, 1132,
846 1158, 0, 1159, 1160, 1161, 1157, 1163, 0, 1164, 1147,
847
848 1166, 1167, 1159, 1169, 0, 1170, 1161, 1152, 1173, 1166,
849 0, 1175, 1167, 1157, 1178, 1160, 1168, 1169, 1182, 1163,
850 1174, 1168, 1177, 1166, 1178, 1189, 0, 1190, 0, 1191,
851 1171, 1193, 1171, 0, 1195, 1187, 1187, 0, 1198, 1199,
852 1184, 1201, 1202, 1203, 1188, 1184, 0, 1210, 1190, 1195,
853 1213, 1194, 1216, 1217, 1198, 1220, 1212, 1197, 0, 1224,
854 1226, 1207, 1208, 1209, 1222, 1225, 1232, 1233, 0, 1234,
855 1236, 1227, 1239, 1230, 0, 1241, 1242, 1243, 0, 1244,
856 1245, 1237, 1241, 1248, 0, 1249, 1243, 1241, 1252, 0,
857 1253, 1244, 1255, 0, 1256, 0, 1257, 0, 1258, 1249,
858
859 1250, 1261, 1262, 1263, 1244, 1256, 1266, 1257, 0, 1268,
860 1269, 1270, 1257, 1248, 1256, 1274, 1275, 1267, 1267, 1254,
861 1279, 1254, 1256, 1269, 1273, 1278, 1266, 1261, 1288, 1289,
862 1265, 1271, 1264, 1270, 1289, 1287, 1279, 1283, 1278, 1299,
863 1295, 1281, 1292, 1286, 0, 1304, 1305, 1306, 0, 1307,
864 1308, 1309, 0, 1310, 1301, 1307, 1313, 1314, 1315, 1295,
865 0, 1317, 1309, 0, 1320, 0, 1321, 1322, 0, 1323,
866 1307, 1299, 0, 1326, 1311, 1322, 1303, 1330, 1331, 1322,
867 1333, 1334, 1318, 1319, 1320, 1338, 1319, 1340, 1341, 1322,
868 1343, 1344, 1331, 1323, 1347, 1328, 1350, 1351, 1332, 1354,
869
870 1336, 0, 1358, 1338, 1343, 1361, 1337, 1337, 0, 1364,
871 1344, 1350, 1368, 1349, 0, 1371, 1351, 1356, 1374, 1355,
872 1354, 1355, 1379, 1352, 1358, 1373, 1360, 1370, 1366, 1380,
873 0, 1387, 0, 1388, 1389, 1390, 1391, 1392, 1393, 0,
874 1394, 0, 1395, 1396, 1380, 0, 1398, 1382, 1400, 0,
875 1401, 1383, 0, 1403, 1381, 1386, 1406, 1407, 0, 1408,
876 1386, 1410, 1411, 1403, 1413, 1404, 1415, 1406, 1403, 1401,
877 0, 1419, 1420, 1421, 1405, 1423, 1424, 1401, 1416, 1427,
878 1403, 1405, 1430, 1408, 1432, 1433, 1421, 1407, 1416, 1418,
879 1414, 1439, 1410, 1433, 1423, 1443, 1418, 1426, 1446, 1437,
880
881 1448, 0, 1449, 1450, 0, 1451, 1452, 1433, 0, 1454,
882 0, 1455, 0, 1456, 1431, 1448, 1440, 1460, 1444, 1439,
883 1463, 1441, 1442, 0, 1466, 1467, 1468, 1469, 0, 1470,
884 1454, 1463, 1473, 1474, 1456, 1476, 0, 1477, 1459, 0,
885 1479, 1480, 1470, 1482, 0, 1483, 1463, 1468, 1486, 1467,
886 0, 1489, 1469, 1474, 0, 1492, 1472, 1477, 1470, 1470,
887 1497, 1478, 1486, 1489, 1477, 1477, 0, 1504, 1484, 1489,
888 1482, 1482, 0, 1509, 1489, 1494, 1512, 1513, 0, 1514,
889 1515, 1497, 1518, 1499, 1503, 1512, 1501, 0, 1523, 1524,
890 0, 1525, 1526, 0, 1527, 1528, 1529, 1520, 1531, 1526,
891
892 1533, 1509, 0, 1535, 0, 1536, 1537, 1538, 0, 1539,
893 1540, 0, 1541, 1523, 0, 1543, 1521, 1528, 1546, 0,
894 1547, 1548, 1532, 1550, 0, 1551, 1538, 1530, 1554, 1545,
895 1546, 1557, 1544, 0, 1559, 0, 1560, 1547, 1552, 1540,
896 1558, 1540, 1566, 1536, 1562, 1569, 0, 1570, 1552, 1554,
897 1573, 1574, 0, 1575, 0, 1576, 1577, 1559, 1555, 1563,
898 1556, 0, 1582, 1583, 1584, 1585, 1570, 1587, 0, 1588,
899 1589, 0, 1590, 1591, 1592, 1593, 0, 1594, 1595, 0,
900 1596, 1592, 0, 1598, 1585, 1600, 1576, 1576, 0, 1603,
901 1583, 1588, 1581, 1581, 1583, 1583, 1596, 1599, 0, 1612,
902
903 1592, 1597, 1595, 1602, 1603, 1606, 1594, 1594, 1607, 1610,
904 1598, 1598, 1625, 1606, 1628, 1629, 1630, 1631, 1615, 1616,
905 1634, 1615, 0, 1636, 0, 1637, 0, 1638, 1639, 1640,
906 0, 1641, 1625, 1643, 1644, 1645, 0, 1646, 1647, 1623,
907 1649, 1640, 1651, 0, 1652, 1647, 0, 1654, 1635, 1632,
908 0, 1657, 1658, 1659, 0, 1660, 1653, 1637, 1640, 1655,
909 1648, 1656, 0, 1667, 1658, 1652, 1670, 1662, 1666, 0,
910 1673, 1674, 0, 1675, 1671, 1664, 1668, 1679, 1680, 1681,
911 0, 1682, 1683, 1684, 0, 1685, 1686, 1687, 0, 1688,
912 1689, 1666, 1681, 0, 1692, 1679, 1682, 1670, 1670, 1683,
913
914 1686, 1685, 1688, 1681, 1688, 1678, 1678, 1686, 1687, 1687,
915 1694, 1695, 1698, 1691, 1698, 1699, 1702, 0, 1715, 1695,
916 1700, 0, 1718, 0, 1719, 1720, 0, 1721, 1705, 1723,
917 1724, 1706, 0, 1726, 1727, 1703, 0, 1729, 1730, 0,
918 1731, 0, 1732, 1733, 1734, 1735, 0, 1736, 1712, 1719,
919 1718, 1740, 1741, 1728, 1743, 1744, 1745, 1746, 1741, 1748,
920 1749, 0, 1750, 1741, 1740, 0, 1753, 1742, 1755, 1750,
921 1757, 0, 1758, 0, 1759, 1760, 0, 1761, 0, 1762,
922 0, 1763, 0, 1764, 1757, 1743, 1747, 1754, 1755, 1758,
923 1751, 1758, 1753, 1760, 1756, 1757, 1763, 1766, 1755, 1780,
924
925 1762, 1763, 1763, 1770, 1766, 1767, 1767, 1774, 1764, 1764,
926 0, 1791, 1792, 1793, 0, 1794, 1795, 0, 1796, 1767,
927 0, 1798, 1799, 0, 1800, 1801, 1788, 1803, 1794, 0,
928 1805, 0, 1806, 1782, 1808, 1809, 1810, 1811, 1795, 1813,
929 1814, 1809, 1802, 1807, 1818, 1795, 0, 1820, 0, 1821,
930 1799, 1823, 1805, 1806, 1806, 1813, 1809, 1810, 1811, 1812,
931 1808, 1833, 1814, 1821, 1836, 1837, 1814, 1839, 1821, 1822,
932 1818, 1843, 1825, 1826, 1832, 1835, 1848, 0, 1849, 1850,
933 1851, 0, 1852, 0, 1853, 1834, 1855, 1839, 1827, 0,
934 1858, 0, 1859, 0, 1860, 0, 1861, 1848, 0, 1863,
935
936 0, 1864, 1856, 1858, 1848, 0, 1868, 1859, 1856, 1871,
937 1848, 1873, 1855, 1856, 1852, 1877, 1854, 1879, 1880, 1881,
938 1863, 1864, 1884, 0, 1885, 1886, 1887, 1864, 1889, 1890,
939 1891, 1868, 1893, 1874, 1881, 0, 1896, 0, 1897, 1898,
940 1880, 0, 1900, 1884, 1902, 1884, 1904, 1905, 1906, 1907,
941 1887, 0, 1909, 1910, 1911, 1888, 1913, 1914, 1915, 1916,
942 1917, 1918, 0, 1919, 1896, 1921, 0, 1922, 1923, 0,
943 1924, 1925, 1926, 1927, 0, 1928, 1929, 1930, 1912, 1913,
944 0, 1933, 1934, 1935, 1936, 1925, 1938, 1939, 1940, 1941,
945 1917, 1943, 0, 1944, 1945, 1946, 1947, 0, 1948, 1949,
946
947 0, 1950, 0, 1951, 1952, 1953, 0, 1954, 1955, 0,
948 1956, 0, 1957, 1958, 0, 1959, 1936, 1961, 1962, 1963,
949 0, 1964, 1965, 0, 1966, 0, 1967, 0, 1968, 0,
950 1969, 1970, 0, 1971, 1972, 0, 1973, 0, 1974, 0,
951 1975, 1976, 0, 1977, 0, 1978, 0, 1979, 1980, 1981,
952 0, 1982, 0, 1983, 1984, 1985, 0, 1986, 0, 1987,
953 1988, 0, 1989, 0, 1990, 0, 1991, 0, 1992, 2792,
954 1994, 1996, 1998, 2000, 2002, 2003, 2005, 2006, 2007, 2008,
955 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
956 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
957
958 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
959 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
960 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
961 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
962 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
963 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
964 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099,
965 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109,
966 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2120,
967 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
968
969 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140,
970 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150,
971 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160,
972 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170,
973 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180,
974 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190,
975 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200,
976 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210,
977 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220,
978 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230,
979
980 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240,
981 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250,
982 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260,
983 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270,
984 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280,
985 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
986 2291
987 } ;
988
989 static yyconst flex_int16_t yy_def[2762] =
990 { 0,
991 2471, 2470, 2472, 2472, 2473, 2473, 2474, 2474, 2470, 2475,
992 2470, 2476, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
993 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
994 2475, 2475, 2475, 2475, 2475, 2475, 2477, 2477, 2477, 2478,
995 2478, 2478, 2470, 2470, 2475, 2476, 2470, 2475, 2475, 2475,
996 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
997 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
998 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
999 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1000 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1001
1002 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1003 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1004 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1005 2475, 2475, 2475, 2475, 2479, 2475, 2480, 2477, 2477, 2477,
1006 2477, 2478, 2478, 2478, 2478, 2470, 2470, 2481, 2475, 2475,
1007 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1008 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1009 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1010 2475, 2475, 2475, 2475, 2475, 2475, 2482, 2475, 2475, 2475,
1011 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1012
1013 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1014 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1015 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1016 2475, 2475, 2475, 2475, 2483, 2475, 2475, 2475, 2475, 2475,
1017 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1018 2475, 2475, 2475, 2475, 2475, 2484, 2475, 2475, 2475, 2475,
1019 2475, 2479, 2479, 2475, 2480, 2480, 2477, 2478, 2481, 2481,
1020 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1021 2475, 2475, 2475, 2475, 2475, 2485, 2475, 2475, 2486, 2475,
1022 2475, 2475, 2475, 2475, 2475, 2487, 2475, 2475, 2488, 2475,
1023
1024 2475, 2475, 2475, 2475, 2470, 2475, 2489, 2475, 2475, 2475,
1025 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2482,
1026 2482, 2475, 2475, 2490, 2475, 2475, 2475, 2475, 2475, 2475,
1027 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1028 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1029 2475, 2475, 2475, 2470, 2475, 2475, 2475, 2475, 2475, 2475,
1030 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1031 2475, 2475, 2491, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1032 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2483, 2483, 2475,
1033 2475, 2475, 2475, 2475, 2475, 2492, 2475, 2475, 2475, 2475,
1034
1035 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1036 2475, 2484, 2484, 2475, 2475, 2475, 2493, 2494, 2475, 2477,
1037 2478, 2475, 2475, 2475, 2475, 2475, 2495, 2475, 2475, 2475,
1038 2475, 2475, 2475, 2496, 2475, 2475, 2475, 2475, 2475, 2475,
1039 2475, 2475, 2475, 2475, 2475, 2485, 2485, 2475, 2475, 2486,
1040 2486, 2475, 2475, 2475, 2475, 2475, 2475, 2487, 2487, 2475,
1041 2475, 2488, 2488, 2475, 2475, 2475, 2475, 2475, 2475, 2489,
1042 2489, 2475, 2497, 2475, 2475, 2498, 2475, 2475, 2475, 2475,
1043 2475, 2475, 2475, 2475, 2475, 2490, 2490, 2475, 2475, 2475,
1044 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1045
1046 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2470, 2499,
1047 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2470, 2475,
1048 2500, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1049 2475, 2475, 2475, 2501, 2475, 2475, 2475, 2475, 2475, 2475,
1050 2475, 2475, 2491, 2491, 2475, 2502, 2475, 2475, 2475, 2475,
1051 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1052 2475, 2475, 2475, 2475, 2475, 2492, 2492, 2475, 2475, 2475,
1053 2475, 2475, 2503, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1054 2475, 2475, 2475, 2475, 2475, 2493, 2493, 2494, 2494, 2475,
1055 2477, 2478, 2475, 2504, 2475, 2475, 2475, 2495, 2495, 2475,
1056
1057 2475, 2475, 2475, 2475, 2475, 2496, 2475, 2475, 2475, 2475,
1058 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1059 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1060 2475, 2475, 2475, 2475, 2475, 2497, 2497, 2475, 2475, 2475,
1061 2498, 2498, 2475, 2475, 2475, 2475, 2505, 2475, 2475, 2475,
1062 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1063 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1064 2475, 2475, 2506, 2475, 2499, 2499, 2507, 2475, 2475, 2475,
1065 2508, 2509, 2475, 2475, 2475, 2475, 2475, 2500, 2500, 2475,
1066 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1067
1068 2475, 2475, 2475, 2501, 2501, 2475, 2475, 2475, 2475, 2475,
1069 2475, 2475, 2475, 2475, 2475, 2475, 2502, 2502, 2475, 2510,
1070 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2511, 2475, 2512,
1071 2475, 2475, 2513, 2475, 2475, 2475, 2475, 2514, 2475, 2475,
1072 2475, 2515, 2475, 2475, 2503, 2503, 2475, 2475, 2475, 2475,
1073 2475, 2516, 2475, 2475, 2475, 2475, 2475, 2475, 2517, 2477,
1074 2478, 2475, 2504, 2504, 2475, 2475, 2475, 2518, 2475, 2475,
1075 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1076 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1077 2475, 2475, 2519, 2475, 2475, 2520, 2475, 2475, 2475, 2475,
1078
1079 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2521, 2475, 2522,
1080 2523, 2475, 2475, 2475, 2475, 2505, 2505, 2475, 2475, 2475,
1081 2524, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1082 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1083 2475, 2475, 2475, 2506, 2506, 2475, 2507, 2507, 2475, 2475,
1084 2475, 2508, 2508, 2509, 2509, 2475, 2475, 2475, 2475, 2475,
1085 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1086 2475, 2475, 2475, 2475, 2475, 2475, 2525, 2475, 2475, 2475,
1087 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2510,
1088 2510, 2475, 2475, 2475, 2475, 2526, 2475, 2475, 2511, 2511,
1089
1090 2475, 2512, 2512, 2475, 2475, 2513, 2513, 2475, 2475, 2475,
1091 2475, 2514, 2514, 2475, 2475, 2475, 2515, 2515, 2475, 2475,
1092 2475, 2527, 2528, 2529, 2475, 2516, 2516, 2475, 2475, 2475,
1093 2475, 2475, 2530, 2475, 2517, 2517, 2477, 2470, 2478, 2475,
1094 2475, 2475, 2531, 2518, 2518, 2475, 2475, 2475, 2475, 2532,
1095 2475, 2475, 2475, 2533, 2475, 2475, 2475, 2475, 2475, 2475,
1096 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2519,
1097 2519, 2475, 2475, 2520, 2520, 2475, 2475, 2475, 2475, 2475,
1098 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1099 2475, 2521, 2521, 2534, 2522, 2522, 2523, 2523, 2475, 2475,
1100
1101 2475, 2475, 2475, 2535, 2475, 2524, 2524, 2475, 2475, 2475,
1102 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1103 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2536, 2475,
1104 2475, 2475, 2475, 2537, 2475, 2475, 2538, 2475, 2475, 2475,
1105 2539, 2540, 2541, 2542, 2475, 2475, 2543, 2475, 2475, 2544,
1106 2545, 2475, 2475, 2475, 2525, 2525, 2546, 2475, 2475, 2475,
1107 2475, 2475, 2475, 2475, 2547, 2475, 2475, 2475, 2475, 2475,
1108 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1109 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2526, 2526, 2475,
1110 2475, 2548, 2475, 2475, 2475, 2475, 2475, 2475, 2549, 2550,
1111
1112 2475, 2475, 2475, 2475, 2527, 2527, 2528, 2528, 2529, 2529,
1113 2475, 2475, 2475, 2551, 2552, 2475, 2530, 2530, 2475, 2478,
1114 2470, 2475, 2475, 2475, 2531, 2531, 2475, 2475, 2475, 2475,
1115 2532, 2532, 2475, 2475, 2475, 2533, 2533, 2475, 2475, 2475,
1116 2475, 2553, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2554,
1117 2475, 2555, 2475, 2556, 2475, 2475, 2475, 2475, 2475, 2475,
1118 2557, 2475, 2558, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1119 2475, 2475, 2475, 2475, 2475, 2475, 2534, 2534, 2559, 2475,
1120 2475, 2475, 2475, 2535, 2535, 2475, 2475, 2560, 2475, 2475,
1121 2561, 2475, 2475, 2562, 2563, 2475, 2475, 2475, 2475, 2564,
1122
1123 2475, 2475, 2475, 2475, 2565, 2475, 2475, 2536, 2536, 2566,
1124 2475, 2567, 2475, 2568, 2537, 2537, 2475, 2569, 2538, 2538,
1125 2475, 2475, 2475, 2539, 2539, 2540, 2540, 2541, 2541, 2542,
1126 2542, 2475, 2475, 2543, 2543, 2475, 2570, 2544, 2544, 2545,
1127 2545, 2475, 2571, 2475, 2546, 2546, 2475, 2475, 2475, 2475,
1128 2475, 2475, 2572, 2547, 2547, 2475, 2475, 2475, 2475, 2475,
1129 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1130 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1131 2475, 2475, 2475, 2475, 2475, 2573, 2475, 2475, 2548, 2548,
1132 2475, 2475, 2475, 2475, 2475, 2475, 2549, 2549, 2550, 2550,
1133
1134 2475, 2574, 2575, 2475, 2475, 2475, 2576, 2551, 2551, 2552,
1135 2552, 2475, 2475, 2475, 2475, 2577, 2475, 2475, 2475, 2475,
1136 2475, 2578, 2475, 2475, 2475, 2475, 2579, 2553, 2553, 2475,
1137 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1138 2475, 2554, 2554, 2475, 2555, 2555, 2475, 2556, 2556, 2580,
1139 2581, 2475, 2475, 2475, 2582, 2583, 2583, 2475, 2584, 2584,
1140 2475, 2585, 2475, 2475, 2475, 2475, 2475, 2475, 2586, 2475,
1141 2475, 2475, 2475, 2475, 2587, 2587, 2475, 2588, 2475, 2475,
1142 2475, 2475, 2589, 2470, 2590, 2475, 2591, 2591, 2475, 2475,
1143 2592, 2592, 2593, 2593, 2475, 2594, 2475, 2475, 2595, 2595,
1144
1145 2596, 2475, 2475, 2475, 2597, 2597, 2475, 2598, 2599, 2599,
1146 2475, 2600, 2600, 2475, 2601, 2601, 2475, 2602, 2602, 2603,
1147 2475, 2475, 2604, 2605, 2606, 2475, 2607, 2607, 2475, 2571,
1148 2571, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2572, 2572,
1149 2608, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1150 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1151 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1152 2475, 2475, 2475, 2573, 2573, 2475, 2475, 2609, 2475, 2475,
1153 2610, 2475, 2475, 2611, 2574, 2574, 2575, 2575, 2475, 2475,
1154 2475, 2576, 2576, 2475, 2475, 2475, 2612, 2577, 2577, 2475,
1155
1156 2613, 2614, 2475, 2615, 2616, 2616, 2475, 2475, 2617, 2475,
1157 2618, 2618, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1158 2475, 2475, 2475, 2475, 2475, 2475, 2580, 2580, 2581, 2581,
1159 2475, 2475, 2475, 2582, 2582, 2475, 2475, 2585, 2585, 2475,
1160 2475, 2475, 2475, 2619, 2475, 2475, 2586, 2586, 2475, 2475,
1161 2620, 2475, 2475, 2621, 2475, 2475, 2475, 2475, 2588, 2588,
1162 2475, 2475, 2475, 2475, 2475, 2475, 2622, 2623, 2590, 2590,
1163 2475, 2475, 2475, 2475, 2594, 2594, 2475, 2624, 2596, 2596,
1164 2625, 2475, 2475, 2626, 2598, 2598, 2475, 2475, 2627, 2603,
1165 2603, 2475, 2628, 2604, 2604, 2605, 2605, 2606, 2606, 2475,
1166
1167 2475, 2475, 2475, 2629, 2475, 2475, 2475, 2475, 2608, 2608,
1168 2475, 2475, 2475, 2475, 2475, 2630, 2475, 2475, 2475, 2475,
1169 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1170 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1171 2475, 2475, 2475, 2475, 2609, 2609, 2475, 2631, 2610, 2610,
1172 2475, 2632, 2611, 2611, 2475, 2475, 2633, 2634, 2635, 2475,
1173 2612, 2612, 2475, 2613, 2613, 2614, 2614, 2475, 2615, 2615,
1174 2475, 2475, 2617, 2617, 2475, 2475, 2475, 2636, 2475, 2475,
1175 2475, 2637, 2475, 2475, 2475, 2475, 2475, 2475, 2638, 2475,
1176 2639, 2475, 2475, 2475, 2640, 2475, 2475, 2641, 2475, 2642,
1177
1178 2475, 2619, 2619, 2475, 2475, 2475, 2475, 2475, 2620, 2620,
1179 2475, 2475, 2643, 2475, 2621, 2621, 2475, 2475, 2644, 2475,
1180 2475, 2475, 2645, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1181 2622, 2622, 2623, 2623, 2646, 2475, 2647, 2475, 2648, 2624,
1182 2624, 2625, 2625, 2475, 2475, 2626, 2626, 2475, 2475, 2627,
1183 2627, 2475, 2628, 2628, 2475, 2475, 2649, 2650, 2629, 2629,
1184 2475, 2475, 2651, 2475, 2652, 2475, 2653, 2475, 2475, 2475,
1185 2630, 2630, 2654, 2475, 2475, 2475, 2655, 2475, 2475, 2475,
1186 2475, 2475, 2475, 2475, 2656, 2657, 2475, 2475, 2475, 2475,
1187 2475, 2475, 2475, 2475, 2475, 2658, 2475, 2475, 2475, 2475,
1188
1189 2659, 2631, 2631, 2660, 2632, 2632, 2475, 2475, 2633, 2633,
1190 2634, 2634, 2635, 2635, 2475, 2475, 2475, 2661, 2475, 2475,
1191 2475, 2475, 2475, 2636, 2636, 2662, 2475, 2663, 2637, 2637,
1192 2475, 2475, 2475, 2664, 2475, 2665, 2638, 2638, 2475, 2639,
1193 2639, 2666, 2475, 2475, 2640, 2640, 2475, 2475, 2667, 2475,
1194 2668, 2668, 2475, 2475, 2669, 2669, 2475, 2475, 2475, 2475,
1195 2670, 2475, 2475, 2475, 2475, 2475, 2643, 2643, 2475, 2475,
1196 2475, 2475, 2644, 2644, 2475, 2475, 2475, 2475, 2645, 2645,
1197 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2646, 2646, 2671,
1198 2647, 2647, 2672, 2648, 2648, 2673, 2475, 2475, 2674, 2475,
1199
1200 2475, 2475, 2649, 2649, 2650, 2650, 2475, 2675, 2651, 2651,
1201 2475, 2652, 2652, 2475, 2653, 2653, 2475, 2475, 2475, 2654,
1202 2654, 2676, 2475, 2677, 2655, 2655, 2475, 2475, 2678, 2475,
1203 2475, 2679, 2475, 2656, 2656, 2657, 2657, 2475, 2475, 2475,
1204 2475, 2475, 2680, 2475, 2475, 2475, 2658, 2658, 2475, 2475,
1205 2681, 2475, 2682, 2682, 2660, 2660, 2683, 2475, 2475, 2475,
1206 2475, 2661, 2661, 2475, 2475, 2684, 2475, 2475, 2662, 2662,
1207 2685, 2663, 2663, 2475, 2475, 2686, 2664, 2664, 2475, 2665,
1208 2665, 2475, 2666, 2666, 2475, 2687, 2475, 2475, 2667, 2667,
1209 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2670, 2670,
1210
1211 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1212 2475, 2475, 2688, 2475, 2689, 2690, 2475, 2691, 2475, 2475,
1213 2475, 2475, 2671, 2671, 2672, 2672, 2673, 2673, 2692, 2475,
1214 2674, 2674, 2475, 2693, 2475, 2694, 2675, 2675, 2695, 2475,
1215 2475, 2475, 2696, 2676, 2676, 2475, 2677, 2677, 2475, 2475,
1216 2678, 2678, 2475, 2475, 2679, 2679, 2475, 2475, 2475, 2475,
1217 2475, 2475, 2680, 2680, 2475, 2475, 2697, 2475, 2475, 2681,
1218 2681, 2698, 2683, 2683, 2475, 2475, 2475, 2475, 2699, 2700,
1219 2684, 2684, 2475, 2701, 2685, 2685, 2702, 2703, 2686, 2686,
1220 2704, 2475, 2475, 2687, 2687, 2475, 2475, 2475, 2475, 2475,
1221
1222 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1223 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2688, 2688, 2475,
1224 2475, 2689, 2689, 2690, 2690, 2705, 2691, 2691, 2475, 2475,
1225 2706, 2475, 2692, 2692, 2707, 2475, 2693, 2693, 2708, 2694,
1226 2694, 2695, 2695, 2475, 2709, 2475, 2696, 2696, 2475, 2475,
1227 2475, 2710, 2711, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1228 2475, 2697, 2697, 2475, 2475, 2698, 2698, 2475, 2475, 2475,
1229 2712, 2699, 2699, 2700, 2700, 2713, 2701, 2701, 2702, 2702,
1230 2703, 2703, 2704, 2704, 2475, 2475, 2475, 2475, 2475, 2475,
1231 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1232
1233 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1234 2705, 2705, 2475, 2714, 2706, 2706, 2475, 2707, 2707, 2475,
1235 2708, 2708, 2715, 2709, 2709, 2716, 2475, 2475, 2475, 2710,
1236 2710, 2711, 2711, 2475, 2717, 2718, 2719, 2720, 2475, 2721,
1237 2722, 2475, 2475, 2475, 2723, 2475, 2712, 2712, 2713, 2713,
1238 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1239 2475, 2475, 2475, 2475, 2475, 2724, 2475, 2475, 2475, 2475,
1240 2475, 2475, 2475, 2475, 2475, 2475, 2725, 2714, 2714, 2726,
1241 2475, 2715, 2715, 2716, 2716, 2475, 2727, 2475, 2475, 2717,
1242 2717, 2718, 2718, 2719, 2719, 2720, 2720, 2475, 2721, 2721,
1243
1244 2722, 2722, 2475, 2475, 2475, 2723, 2723, 2475, 2475, 2728,
1245 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2729,
1246 2475, 2475, 2730, 2724, 2724, 2475, 2731, 2475, 2475, 2475,
1247 2732, 2475, 2475, 2475, 2475, 2725, 2725, 2726, 2726, 2733,
1248 2475, 2727, 2727, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
1249 2475, 2728, 2728, 2475, 2734, 2475, 2475, 2475, 2735, 2475,
1250 2736, 2737, 2729, 2729, 2475, 2475, 2730, 2730, 2738, 2731,
1251 2731, 2475, 2739, 2740, 2732, 2732, 2475, 2741, 2475, 2475,
1252 2733, 2733, 2475, 2475, 2742, 2475, 2743, 2744, 2745, 2746,
1253 2475, 2747, 2734, 2734, 2475, 2748, 2749, 2735, 2735, 2750,
1254
1255 2736, 2736, 2737, 2737, 2475, 2751, 2738, 2738, 2752, 2739,
1256 2739, 2740, 2740, 2753, 2741, 2741, 2475, 2475, 2754, 2755,
1257 2742, 2742, 2475, 2743, 2743, 2744, 2744, 2745, 2745, 2746,
1258 2746, 2475, 2747, 2747, 2756, 2748, 2748, 2749, 2749, 2750,
1259 2750, 2757, 2751, 2751, 2752, 2752, 2753, 2753, 2475, 2758,
1260 2754, 2754, 2755, 2755, 2759, 2760, 2756, 2756, 2757, 2757,
1261 2761, 2758, 2758, 2759, 2759, 2760, 2760, 2761, 2761, 0,
1262 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1263 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1264 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1265
1266 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1267 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1268 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1269 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1270 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1271 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1272 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1273 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1274 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1275 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1276
1277 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1278 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1279 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1280 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1281 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1282 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1283 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1284 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1285 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1286 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1287
1288 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1289 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1290 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1291 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1292 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1293 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1294 2470
1295 } ;
1296
1297 static yyconst flex_int16_t yy_nxt[2826] =
1298 { 0,
1299 2470, 48, 11, 12, 49, 13, 10, 10, 11, 12,
1300 10, 13, 10, 14, 15, 16, 17, 18, 19, 20,
1301 21, 22, 10, 23, 24, 25, 26, 27, 28, 10,
1302 29, 30, 31, 32, 33, 34, 35, 36, 10, 11,
1303 11, 11, 38, 38, 41, 11, 78, 11, 41, 39,
1304 44, 57, 11, 79, 42, 44, 50, 127, 58, 80,
1305 65, 59, 128, 139, 66, 51, 140, 52, 67, 53,
1306 74, 54, 808, 55, 56, 60, 95, 81, 129, 111,
1307 68, 75, 61, 112, 76, 82, 62, 77, 148, 63,
1308 96, 102, 83, 98, 97, 64, 69, 99, 130, 113,
1309
1310 135, 214, 143, 103, 70, 144, 71, 100, 215, 104,
1311 101, 105, 146, 149, 72, 147, 73, 84, 48, 153,
1312 131, 49, 132, 136, 133, 209, 85, 86, 134, 154,
1313 157, 161, 87, 88, 90, 162, 163, 637, 91, 167,
1314 168, 210, 92, 158, 190, 200, 191, 286, 93, 201,
1315 223, 225, 204, 231, 94, 106, 205, 232, 202, 107,
1316 206, 224, 203, 108, 226, 809, 287, 233, 235, 109,
1317 238, 257, 110, 114, 239, 115, 810, 254, 236, 258,
1318 811, 116, 117, 118, 255, 237, 119, 240, 293, 294,
1319 120, 121, 122, 259, 139, 247, 123, 140, 248, 307,
1320
1321 260, 143, 124, 249, 144, 125, 146, 261, 289, 147,
1322 250, 296, 126, 304, 305, 310, 297, 308, 314, 290,
1323 325, 353, 354, 315, 311, 326, 642, 291, 608, 327,
1324 298, 347, 348, 292, 328, 329, 330, 376, 392, 331,
1325 377, 332, 393, 349, 394, 333, 424, 425, 609, 466,
1326 304, 305, 492, 334, 335, 498, 336, 358, 812, 501,
1327 359, 493, 360, 467, 508, 509, 518, 519, 499, 361,
1328 353, 354, 362, 502, 532, 363, 435, 521, 436, 437,
1329 526, 530, 522, 533, 438, 813, 439, 553, 814, 531,
1330 638, 440, 691, 441, 442, 554, 443, 527, 639, 669,
1331
1332 692, 670, 671, 508, 509, 518, 519, 684, 702, 711,
1333 720, 733, 712, 672, 769, 721, 734, 815, 817, 818,
1334 685, 703, 819, 820, 686, 687, 713, 821, 822, 823,
1335 824, 825, 826, 827, 770, 802, 828, 803, 804, 829,
1336 830, 831, 832, 833, 834, 835, 836, 837, 838, 840,
1337 805, 841, 842, 806, 807, 843, 845, 846, 839, 676,
1338 848, 849, 850, 851, 853, 855, 856, 857, 858, 860,
1339 862, 689, 863, 864, 865, 866, 859, 861, 867, 868,
1340 869, 870, 871, 872, 873, 874, 875, 876, 705, 877,
1341 878, 879, 880, 881, 882, 883, 884, 885, 886, 887,
1342
1343 718, 888, 891, 892, 893, 894, 895, 896, 897, 898,
1344 889, 900, 901, 903, 904, 905, 907, 908, 909, 910,
1345 911, 913, 914, 915, 916, 918, 919, 920, 746, 921,
1346 922, 923, 924, 925, 927, 928, 929, 931, 932, 933,
1347 934, 936, 937, 938, 930, 939, 940, 764, 941, 942,
1348 943, 945, 946, 947, 948, 949, 950, 951, 952, 953,
1349 954, 955, 956, 957, 958, 959, 960, 961, 962, 963,
1350 964, 965, 966, 967, 968, 969, 971, 972, 973, 975,
1351 976, 977, 978, 979, 980, 981, 983, 984, 986, 982,
1352 987, 989, 990, 993, 994, 996, 998, 999, 1000, 1001,
1353
1354 985, 991, 1002, 817, 1003, 1004, 1005, 1007, 1008, 988,
1355 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
1356 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
1357 1029, 845, 1030, 848, 1031, 1032, 1033, 853, 855, 1034,
1358 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
1359 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
1360 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
1361 1066, 1067, 1068, 891, 1069, 1070, 1087, 1089, 1090, 1091,
1362 900, 1092, 903, 1093, 1071, 1072, 1073, 1074, 1075, 1076,
1363 1077, 1078, 1079, 1080, 1094, 907, 1081, 1082, 1095, 1096,
1364
1365 1083, 1097, 1098, 1084, 1085, 913, 1099, 1086, 1100, 1101,
1366 918, 1102, 1103, 1104, 1106, 1108, 1110, 1111, 927, 1112,
1367 1113, 1114, 1115, 1116, 1118, 1119, 936, 937, 938, 1120,
1368 1121, 1122, 1123, 1124, 1126, 945, 1127, 1128, 1129, 1130,
1369 1132, 1133, 1134, 1135, 1137, 1138, 1139, 1140, 1141, 1142,
1370 1143, 1144, 1145, 1150, 1151, 1152, 1153, 1154, 1146, 1155,
1371 1156, 1157, 971, 1158, 1159, 975, 1160, 1161, 1147, 1148,
1372 1163, 1164, 1162, 1149, 1165, 1166, 1167, 1168, 1169, 1170,
1373 1171, 1172, 1173, 1174, 1175, 1176, 993, 1178, 996, 998,
1374 1179, 1180, 1181, 1182, 1183, 1185, 1186, 1007, 1187, 1188,
1375
1376 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
1377 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1209,
1378 1210, 1211, 1212, 1214, 1216, 1217, 1218, 1220, 1221, 1222,
1379 1223, 1225, 1227, 1229, 1231, 1232, 1233, 1235, 1236, 1237,
1380 1239, 1213, 1241, 1242, 1243, 1244, 1056, 1246, 1247, 1248,
1381 1249, 1250, 1251, 1252, 1253, 1255, 1256, 1257, 1258, 1259,
1382 1260, 1262, 1263, 1264, 1265, 1271, 1261, 1274, 1268, 1272,
1383 1276, 1266, 1269, 1273, 1275, 1277, 1278, 1279, 1267, 1280,
1384 1283, 1270, 1284, 1285, 1286, 1089, 1281, 1287, 1288, 1290,
1385 1291, 1292, 1293, 1282, 1294, 1295, 1296, 1298, 1300, 1301,
1386
1387 1302, 1303, 1304, 1106, 1108, 1110, 1305, 1306, 1307, 1309,
1388 1311, 1312, 1118, 1313, 1120, 1121, 1314, 1315, 1316, 1126,
1389 1317, 1318, 1319, 1320, 1132, 1321, 1322, 1323, 1137, 1324,
1390 1325, 1326, 1327, 1329, 1330, 1331, 1332, 1333, 1334, 1337,
1391 1343, 1340, 1344, 1346, 1338, 1341, 1335, 1339, 1347, 1349,
1392 1350, 1351, 1336, 1352, 1353, 1354, 1355, 1357, 1358, 1360,
1393 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1371,
1394 1372, 1373, 1374, 1370, 1178, 1376, 1377, 1378, 1379, 1380,
1395 1185, 1381, 1382, 1384, 1385, 1386, 1388, 1389, 1390, 1392,
1396 1394, 1395, 1396, 1397, 1398, 1400, 1401, 1402, 1403, 1404,
1397
1398 1406, 1407, 1408, 1209, 1410, 1411, 1413, 1414, 1416, 1216,
1399 1417, 1419, 1220, 1420, 1422, 1423, 1225, 1227, 1421, 1229,
1400 1231, 1424, 1425, 1235, 1426, 1428, 1239, 1241, 1429, 1431,
1401 1432, 1246, 1433, 1434, 1435, 1436, 1437, 1438, 1440, 1255,
1402 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
1403 1451, 1452, 1455, 1453, 1457, 1458, 1459, 1460, 1461, 1462,
1404 1454, 1463, 1464, 1465, 1466, 1467, 1468, 1456, 1469, 1470,
1405 1471, 1472, 1473, 1475, 1476, 1477, 1290, 1478, 1479, 1480,
1406 1481, 1482, 1483, 1298, 1300, 1484, 1486, 1488, 1489, 1490,
1407 1491, 1493, 1309, 1311, 1494, 1495, 1496, 1497, 1499, 1500,
1408
1409 1501, 1502, 1503, 1504, 1506, 1507, 1508, 1509, 1510, 1512,
1410 1329, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
1411 1522, 1523, 1524, 1343, 1525, 1346, 1526, 1349, 1528, 1530,
1412 1531, 1532, 1533, 1535, 1357, 1536, 1360, 1537, 1539, 1540,
1413 1541, 1542, 1543, 1544, 1546, 1548, 1549, 1550, 1545, 1551,
1414 1553, 1554, 1557, 1376, 1552, 1558, 1555, 1560, 1561, 1567,
1415 1568, 1384, 1570, 1571, 1388, 1572, 1573, 1392, 1394, 1574,
1416 1576, 1577, 1578, 1400, 1556, 1562, 1580, 1581, 1582, 1583,
1417 1406, 1563, 1584, 1586, 1410, 1587, 1413, 1588, 1416, 1589,
1418 1419, 1564, 1565, 1591, 1592, 1593, 1566, 1595, 1597, 1599,
1419
1420 1600, 1428, 1601, 1431, 1602, 1603, 1604, 1605, 1606, 1607,
1421 1608, 1440, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617,
1422 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
1423 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637,
1424 1638, 1639, 1640, 1641, 1642, 1475, 1643, 1644, 1646, 1647,
1425 1648, 1650, 1651, 1652, 1654, 1486, 1488, 1655, 1656, 1657,
1426 1493, 1658, 1659, 1660, 1662, 1499, 1663, 1665, 1667, 1668,
1427 1670, 1506, 1671, 1672, 1674, 1675, 1512, 1676, 1677, 1678,
1428 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
1429 1689, 1528, 1530, 1690, 1691, 1692, 1535, 1693, 1694, 1539,
1430
1431 1695, 1697, 1698, 1700, 1703, 1696, 1706, 1699, 1701, 1704,
1432 1705, 1548, 1707, 1708, 1710, 1711, 1712, 1713, 1716, 1717,
1433 1718, 1719, 1714, 1721, 1722, 1560, 1720, 1723, 1724, 1725,
1434 1726, 1727, 1729, 1732, 1734, 1570, 1730, 1735, 1736, 1728,
1435 1737, 1738, 1576, 1739, 1741, 1580, 1743, 1744, 1745, 1747,
1436 1586, 1748, 1749, 1751, 1591, 1752, 1754, 1595, 1597, 1599,
1437 1755, 1756, 1757, 1758, 1760, 1761, 1762, 1763, 1764, 1610,
1438 1765, 1767, 1768, 1769, 1770, 1772, 1773, 1774, 1775, 1776,
1439 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1766, 1785,
1440 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
1441
1442 1796, 1797, 1798, 1799, 1800, 1646, 1801, 1803, 1650, 1804,
1443 1806, 1654, 1807, 1808, 1810, 1812, 1814, 1815, 1662, 1816,
1444 1817, 1665, 1667, 1818, 1670, 1819, 1820, 1674, 1821, 1822,
1445 1823, 1825, 1826, 1827, 1828, 1830, 1831, 1832, 1833, 1834,
1446 1835, 1836, 1838, 1839, 1841, 1842, 1843, 1844, 1846, 1847,
1447 1848, 1849, 1852, 1853, 1854, 1856, 1850, 1857, 1858, 1703,
1448 1859, 1860, 1861, 1863, 1864, 1710, 1865, 1862, 1866, 1868,
1449 1869, 1870, 1716, 1871, 1872, 1874, 1875, 1876, 1877, 1878,
1450 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1732, 1734,
1451 1889, 1890, 1892, 1893, 1895, 1741, 1743, 1896, 1897, 1747,
1452
1453 1898, 1899, 1751, 1900, 1754, 1901, 1902, 1904, 1906, 1760,
1454 1907, 1908, 1910, 1911, 1913, 1914, 1916, 1917, 1918, 1919,
1455 1772, 1921, 1922, 1923, 1924, 1926, 1927, 1928, 1929, 1930,
1456 1931, 1932, 1933, 1935, 1937, 1938, 1939, 1940, 1941, 1942,
1457 1943, 1944, 1945, 1946, 1948, 1949, 1950, 1951, 1952, 1954,
1458 1803, 1956, 1806, 1957, 1958, 1810, 1812, 1814, 1959, 1960,
1459 1961, 1963, 1964, 1965, 1966, 1967, 1968, 1825, 1970, 1971,
1460 1973, 1830, 1974, 1975, 1976, 1978, 1979, 1981, 1838, 1982,
1461 1841, 1984, 1985, 1986, 1846, 1987, 1988, 1990, 1991, 1992,
1462 1852, 1993, 1994, 1856, 1995, 1996, 1997, 1998, 2000, 2001,
1463
1464 2002, 2003, 2004, 2005, 2006, 1868, 2007, 2008, 2009, 2010,
1465 1874, 2011, 2012, 2013, 2015, 1880, 2016, 2017, 2014, 2018,
1466 2019, 2020, 2021, 2022, 1889, 2024, 1892, 2026, 1895, 2028,
1467 2029, 2030, 2032, 2033, 2034, 2035, 1904, 1906, 2036, 2038,
1468 1910, 2039, 1913, 2040, 1916, 2041, 2042, 2043, 1921, 2045,
1469 2046, 2048, 1926, 2049, 2050, 2052, 2053, 2054, 2056, 2057,
1470 1935, 1937, 2058, 2059, 2060, 2061, 2062, 2064, 2065, 2066,
1471 2067, 1948, 2068, 2069, 2071, 2072, 1954, 1956, 2074, 2075,
1472 2076, 2077, 2078, 1963, 2079, 2080, 2082, 2083, 2084, 1970,
1473 2086, 1973, 2087, 2088, 2090, 1978, 2091, 1981, 2092, 1984,
1474
1475 2093, 2095, 2096, 2097, 1990, 2098, 2099, 2100, 2101, 2102,
1476 2103, 2104, 2105, 2000, 2106, 2107, 2108, 2109, 2110, 2111,
1477 2112, 2113, 2114, 2115, 2116, 2117, 2119, 2120, 2121, 2123,
1478 2125, 2126, 2128, 2129, 2130, 2131, 2132, 2024, 2026, 2028,
1479 2134, 2135, 2032, 2136, 2138, 2139, 2141, 2038, 2143, 2144,
1480 2145, 2146, 2148, 2045, 2149, 2048, 2150, 2151, 2052, 2152,
1481 2153, 2056, 2154, 2155, 2156, 2157, 2158, 2159, 2064, 2160,
1482 2161, 2163, 2164, 2165, 2071, 2167, 2074, 2168, 2169, 2170,
1483 2171, 2173, 2175, 2082, 2176, 2178, 2086, 2180, 2182, 2090,
1484 2184, 2185, 2186, 2095, 2187, 2188, 2189, 2190, 2191, 2192,
1485
1486 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202,
1487 2203, 2204, 2205, 2206, 2207, 2208, 2119, 2209, 2210, 2123,
1488 2125, 2212, 2128, 2213, 2214, 2216, 2217, 2134, 2219, 2220,
1489 2138, 2222, 2141, 2143, 2223, 2225, 2226, 2148, 2227, 2228,
1490 2229, 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240,
1491 2241, 2163, 2242, 2243, 2167, 2244, 2245, 2246, 2248, 2173,
1492 2175, 2250, 2178, 2180, 2182, 2184, 2251, 2252, 2253, 2254,
1493 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264,
1494 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274,
1495 2275, 2276, 2212, 2277, 2279, 2216, 2280, 2219, 2281, 2222,
1496
1497 2283, 2225, 2285, 2286, 2287, 2288, 2231, 2233, 2289, 2291,
1498 2293, 2295, 2297, 2298, 2300, 2302, 2303, 2304, 2305, 2307,
1499 2308, 2248, 2250, 2309, 2310, 2311, 2312, 2313, 2314, 2315,
1500 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2325, 2326,
1501 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2337,
1502 2279, 2339, 2340, 2283, 2285, 2341, 2343, 2344, 2345, 2291,
1503 2293, 2295, 2297, 2346, 2300, 2302, 2347, 2348, 2349, 2307,
1504 2350, 2351, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360,
1505 2361, 2362, 2364, 2365, 2366, 2368, 2325, 2369, 2371, 2372,
1506 2373, 2374, 2376, 2377, 2378, 2379, 2380, 2337, 2339, 2382,
1507
1508 2383, 2343, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391,
1509 2353, 2392, 2394, 2395, 2396, 2397, 2399, 2400, 2402, 2404,
1510 2364, 2405, 2406, 2368, 2408, 2371, 2409, 2411, 2413, 2376,
1511 2414, 2416, 2417, 2418, 2382, 2419, 2420, 2422, 2423, 2425,
1512 2427, 2429, 2431, 2432, 2434, 2394, 2435, 2437, 2439, 2399,
1513 2441, 2402, 2404, 2442, 2444, 2408, 2446, 2411, 2413, 2448,
1514 2416, 2449, 2450, 2452, 2454, 2422, 2455, 2425, 2427, 2429,
1515 2431, 2456, 2434, 2458, 2437, 2439, 2441, 2460, 2444, 2446,
1516 2448, 2461, 2463, 2452, 2454, 2465, 2467, 2458, 2460, 2469,
1517 2463, 2465, 2467, 2469, 10, 10, 37, 37, 40, 40,
1518
1519 43, 43, 45, 46, 46, 138, 142, 262, 265, 269,
1520 320, 388, 412, 446, 450, 458, 462, 470, 486, 543,
1521 566, 586, 588, 598, 606, 636, 641, 675, 688, 704,
1522 717, 745, 763, 816, 844, 847, 852, 854, 890, 899,
1523 902, 906, 912, 917, 926, 935, 944, 970, 974, 992,
1524 995, 997, 1006, 1055, 1088, 1105, 1107, 1109, 1117, 1125,
1525 1131, 1136, 1177, 1184, 1208, 1215, 1219, 1224, 1226, 1228,
1526 1230, 1234, 1238, 1240, 1245, 1254, 1289, 1297, 1299, 1308,
1527 1310, 1328, 1342, 1345, 1348, 1356, 1359, 1375, 1383, 1383,
1528 1387, 1391, 1393, 1399, 1405, 1409, 1412, 1415, 1418, 1427,
1529
1530 1430, 1439, 1474, 1485, 1487, 1492, 1498, 1505, 1511, 1527,
1531 1529, 1534, 1356, 1359, 1538, 1547, 1375, 1559, 1383, 1383,
1532 1569, 1387, 1391, 1393, 1575, 1399, 1579, 1405, 1585, 1409,
1533 1412, 1415, 1418, 1590, 1594, 1596, 1598, 1427, 1609, 1645,
1534 1649, 1653, 1661, 1664, 1666, 1669, 1505, 1673, 1511, 1702,
1535 1709, 1715, 1731, 1733, 1740, 1742, 1746, 1750, 1753, 1759,
1536 1771, 1802, 1805, 1809, 1811, 1813, 1824, 1829, 1837, 1840,
1537 1845, 1851, 1855, 1867, 1873, 1879, 1888, 1891, 1894, 1903,
1538 1905, 1909, 1912, 1915, 1920, 1925, 1934, 1936, 1947, 1953,
1539 1955, 1962, 1969, 1972, 1977, 1980, 1983, 1989, 1851, 1855,
1540
1541 1999, 2023, 2025, 2027, 2031, 2037, 2044, 2047, 2051, 2055,
1542 2063, 2070, 1953, 2073, 2081, 2085, 2089, 2094, 2118, 2122,
1543 2124, 2127, 2133, 2137, 2140, 2142, 2147, 2162, 2166, 2172,
1544 2174, 2177, 2179, 2181, 2183, 2211, 2215, 2218, 2221, 2224,
1545 2230, 2232, 2247, 2249, 2278, 2282, 2284, 2290, 2292, 2294,
1546 2296, 2299, 2301, 2306, 2324, 2336, 2338, 2342, 2352, 2363,
1547 2367, 2370, 2375, 2381, 2393, 2398, 2401, 2403, 2407, 2410,
1548 2412, 2415, 2421, 2424, 2426, 2428, 2430, 2433, 2436, 2438,
1549 2440, 2443, 2445, 2447, 2451, 2453, 2457, 2459, 2462, 2464,
1550 2466, 2468, 801, 800, 799, 798, 797, 796, 795, 794,
1551
1552 793, 792, 791, 790, 789, 788, 787, 786, 785, 784,
1553 783, 782, 781, 780, 779, 778, 777, 776, 775, 774,
1554 773, 772, 771, 768, 599, 767, 766, 765, 764, 762,
1555 761, 760, 759, 589, 587, 758, 757, 756, 755, 754,
1556 753, 752, 751, 750, 749, 748, 747, 746, 744, 743,
1557 742, 741, 740, 567, 739, 738, 737, 736, 735, 732,
1558 731, 730, 729, 728, 727, 726, 725, 724, 723, 722,
1559 719, 718, 716, 544, 715, 714, 710, 709, 708, 707,
1560 706, 705, 701, 700, 699, 698, 697, 696, 695, 694,
1561 693, 690, 689, 683, 682, 681, 680, 679, 678, 677,
1562
1563 676, 674, 673, 668, 667, 666, 665, 664, 663, 662,
1564 661, 660, 659, 658, 657, 656, 655, 654, 653, 652,
1565 487, 651, 650, 649, 648, 647, 646, 645, 644, 643,
1566 642, 640, 637, 635, 471, 634, 633, 632, 631, 630,
1567 629, 463, 628, 627, 459, 626, 625, 624, 623, 622,
1568 621, 451, 620, 619, 447, 618, 617, 616, 615, 614,
1569 613, 612, 611, 610, 607, 605, 604, 603, 602, 601,
1570 600, 599, 597, 596, 595, 594, 593, 592, 591, 590,
1571 589, 587, 585, 584, 583, 413, 582, 581, 580, 579,
1572 578, 577, 576, 575, 574, 573, 572, 571, 570, 569,
1573
1574 568, 567, 565, 564, 563, 562, 561, 560, 389, 559,
1575 558, 557, 556, 555, 552, 551, 550, 549, 548, 547,
1576 546, 545, 544, 542, 541, 540, 539, 538, 537, 536,
1577 535, 534, 529, 528, 525, 524, 523, 520, 517, 516,
1578 515, 514, 513, 512, 511, 510, 507, 506, 505, 504,
1579 503, 500, 497, 496, 495, 494, 491, 490, 489, 488,
1580 487, 485, 484, 321, 483, 482, 481, 480, 479, 478,
1581 477, 476, 475, 474, 473, 472, 471, 469, 468, 465,
1582 464, 463, 461, 460, 459, 457, 456, 455, 454, 453,
1583 452, 451, 449, 448, 447, 445, 444, 434, 433, 432,
1584
1585 431, 430, 429, 428, 427, 426, 423, 422, 270, 421,
1586 420, 266, 419, 263, 418, 417, 416, 415, 414, 413,
1587 411, 410, 409, 408, 407, 406, 405, 404, 403, 402,
1588 401, 400, 399, 398, 397, 396, 395, 391, 390, 389,
1589 387, 386, 385, 384, 383, 382, 381, 380, 379, 378,
1590 375, 374, 373, 372, 371, 370, 369, 368, 367, 366,
1591 365, 364, 357, 356, 355, 352, 351, 350, 346, 345,
1592 344, 343, 342, 341, 340, 339, 338, 337, 324, 323,
1593 322, 321, 319, 318, 317, 316, 313, 312, 309, 306,
1594 303, 302, 301, 300, 299, 295, 288, 285, 284, 283,
1595
1596 282, 281, 280, 279, 278, 277, 276, 275, 274, 273,
1597 272, 271, 270, 268, 267, 266, 264, 263, 256, 253,
1598 252, 251, 246, 245, 244, 243, 242, 241, 234, 230,
1599 229, 228, 227, 222, 221, 220, 219, 218, 217, 216,
1600 213, 212, 211, 208, 207, 199, 198, 197, 196, 195,
1601 194, 193, 192, 189, 188, 187, 186, 185, 184, 183,
1602 182, 181, 180, 179, 178, 177, 176, 175, 174, 173,
1603 172, 171, 170, 169, 166, 165, 164, 160, 159, 156,
1604 155, 152, 151, 150, 47, 145, 141, 137, 89, 47,
1605 2470, 9, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1606
1607 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1608 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1609 2470, 2470, 2470, 2470, 2470
1610 } ;
1611
1612 static yyconst flex_int16_t yy_chk[2826] =
1613 { 0,
1614 0, 13, 1, 1, 13, 1, 2, 2, 2, 2,
1615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1616 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1617 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
1618 4, 5, 3, 4, 5, 6, 20, 7, 6, 4,
1619 7, 15, 8, 20, 6, 8, 14, 32, 15, 20,
1620 17, 15, 32, 38, 17, 14, 38, 14, 17, 14,
1621 19, 14, 635, 14, 14, 16, 25, 21, 33, 29,
1622 17, 19, 16, 29, 19, 21, 16, 19, 50, 16,
1623 25, 27, 21, 26, 25, 16, 18, 26, 33, 29,
1624
1625 35, 103, 41, 27, 18, 41, 18, 26, 103, 27,
1626 26, 27, 44, 50, 18, 44, 18, 22, 48, 54,
1627 34, 48, 34, 35, 34, 99, 22, 22, 34, 54,
1628 57, 60, 22, 22, 24, 60, 60, 637, 24, 64,
1629 64, 99, 24, 57, 86, 95, 86, 164, 24, 95,
1630 111, 112, 96, 117, 24, 28, 96, 117, 95, 28,
1631 96, 111, 95, 28, 112, 638, 164, 117, 119, 28,
1632 120, 133, 28, 30, 120, 30, 639, 131, 119, 133,
1633 640, 30, 30, 30, 131, 119, 30, 120, 167, 167,
1634 30, 30, 31, 134, 139, 127, 31, 139, 127, 177,
1635
1636 134, 143, 31, 127, 143, 31, 146, 134, 166, 146,
1637 127, 169, 31, 175, 175, 179, 169, 177, 182, 166,
1638 191, 207, 207, 182, 179, 191, 642, 166, 436, 191,
1639 169, 203, 203, 166, 192, 192, 192, 224, 238, 192,
1640 224, 192, 238, 203, 238, 192, 273, 273, 436, 302,
1641 304, 304, 329, 192, 192, 334, 192, 211, 643, 336,
1642 211, 329, 211, 302, 342, 342, 351, 351, 334, 211,
1643 353, 353, 211, 336, 363, 211, 283, 355, 283, 283,
1644 359, 362, 355, 363, 283, 644, 283, 382, 645, 362,
1645 474, 283, 523, 283, 283, 382, 283, 359, 474, 505,
1646
1647 523, 505, 505, 508, 508, 518, 518, 520, 533, 540,
1648 548, 560, 540, 505, 601, 548, 560, 646, 647, 648,
1649 520, 533, 649, 650, 520, 520, 540, 651, 652, 653,
1650 654, 655, 656, 657, 601, 634, 658, 634, 634, 659,
1651 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
1652 634, 670, 671, 634, 634, 672, 673, 674, 668, 676,
1653 677, 678, 679, 680, 681, 682, 683, 684, 685, 686,
1654 687, 689, 690, 691, 692, 693, 685, 686, 694, 695,
1655 696, 697, 698, 699, 700, 701, 702, 703, 705, 706,
1656 707, 708, 709, 710, 711, 712, 713, 714, 715, 716,
1657
1658 718, 719, 720, 721, 722, 723, 724, 725, 726, 727,
1659 719, 728, 729, 730, 731, 732, 733, 734, 735, 736,
1660 737, 738, 739, 740, 741, 742, 743, 744, 746, 747,
1661 748, 749, 750, 751, 752, 753, 754, 755, 756, 757,
1662 758, 759, 760, 760, 754, 761, 762, 764, 765, 766,
1663 767, 768, 769, 770, 771, 772, 773, 774, 775, 776,
1664 777, 778, 779, 780, 781, 782, 783, 784, 785, 786,
1665 787, 788, 789, 790, 791, 792, 793, 794, 795, 796,
1666 797, 798, 799, 800, 801, 802, 803, 804, 805, 802,
1667 806, 807, 807, 808, 809, 810, 811, 812, 813, 814,
1668
1669 804, 807, 815, 817, 818, 819, 820, 821, 822, 806,
1670 823, 824, 825, 826, 827, 828, 829, 830, 831, 832,
1671 833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
1672 843, 845, 846, 848, 849, 850, 851, 853, 855, 856,
1673 857, 858, 859, 860, 861, 862, 863, 864, 865, 866,
1674 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
1675 877, 878, 879, 880, 881, 882, 883, 884, 885, 886,
1676 887, 888, 889, 891, 892, 893, 895, 896, 897, 898,
1677 900, 901, 903, 904, 893, 894, 894, 894, 894, 894,
1678 894, 894, 894, 894, 905, 907, 894, 894, 908, 909,
1679
1680 894, 910, 911, 894, 894, 913, 914, 894, 915, 916,
1681 918, 919, 920, 921, 922, 923, 924, 925, 927, 928,
1682 929, 930, 931, 932, 933, 934, 936, 937, 937, 939,
1683 939, 940, 941, 942, 943, 945, 946, 947, 948, 949,
1684 950, 951, 952, 953, 954, 955, 956, 957, 958, 959,
1685 960, 961, 961, 962, 963, 964, 965, 966, 961, 967,
1686 968, 969, 971, 972, 973, 975, 976, 977, 961, 961,
1687 978, 979, 977, 961, 980, 981, 982, 983, 984, 985,
1688 986, 987, 988, 989, 990, 991, 993, 994, 996, 998,
1689 999, 1000, 1001, 1002, 1003, 1004, 1005, 1007, 1008, 1009,
1690
1691 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
1692 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
1693 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
1694 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
1695 1050, 1032, 1051, 1052, 1053, 1054, 1056, 1057, 1058, 1059,
1696 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
1697 1070, 1071, 1072, 1073, 1074, 1076, 1070, 1078, 1075, 1077,
1698 1079, 1074, 1075, 1077, 1078, 1080, 1081, 1082, 1074, 1083,
1699 1084, 1075, 1085, 1086, 1087, 1089, 1083, 1090, 1091, 1092,
1700 1093, 1094, 1095, 1083, 1096, 1097, 1098, 1099, 1100, 1101,
1701
1702 1102, 1103, 1104, 1106, 1108, 1110, 1111, 1112, 1113, 1114,
1703 1115, 1116, 1118, 1119, 1120, 1120, 1122, 1123, 1124, 1126,
1704 1127, 1128, 1129, 1130, 1132, 1133, 1134, 1135, 1137, 1138,
1705 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
1706 1150, 1149, 1151, 1152, 1148, 1149, 1147, 1148, 1153, 1154,
1707 1155, 1156, 1147, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
1708 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1709 1174, 1175, 1176, 1172, 1178, 1179, 1180, 1181, 1182, 1183,
1710 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
1711 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
1712
1713 1205, 1206, 1207, 1209, 1210, 1211, 1212, 1213, 1214, 1216,
1714 1217, 1218, 1220, 1221, 1222, 1223, 1225, 1227, 1221, 1229,
1715 1231, 1232, 1233, 1235, 1236, 1237, 1239, 1241, 1242, 1243,
1716 1244, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1255,
1717 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
1718 1266, 1267, 1268, 1267, 1269, 1270, 1271, 1272, 1273, 1274,
1719 1267, 1275, 1276, 1277, 1278, 1279, 1280, 1268, 1281, 1282,
1720 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293,
1721 1294, 1295, 1296, 1298, 1300, 1301, 1302, 1303, 1304, 1305,
1722 1306, 1307, 1309, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
1723
1724 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
1725 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1726 1339, 1340, 1341, 1343, 1344, 1346, 1347, 1349, 1350, 1351,
1727 1352, 1353, 1354, 1355, 1357, 1358, 1360, 1361, 1362, 1363,
1728 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1370, 1367, 1371,
1729 1372, 1373, 1374, 1376, 1371, 1377, 1373, 1378, 1379, 1381,
1730 1382, 1383, 1385, 1386, 1388, 1389, 1390, 1392, 1394, 1395,
1731 1396, 1397, 1398, 1400, 1373, 1380, 1401, 1402, 1403, 1404,
1732 1406, 1380, 1407, 1408, 1410, 1411, 1413, 1414, 1416, 1417,
1733 1419, 1380, 1380, 1420, 1421, 1422, 1380, 1423, 1424, 1425,
1734
1735 1426, 1428, 1429, 1431, 1432, 1433, 1434, 1435, 1436, 1437,
1736 1438, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448,
1737 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458,
1738 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468,
1739 1469, 1470, 1471, 1472, 1473, 1475, 1476, 1477, 1478, 1479,
1740 1480, 1481, 1482, 1483, 1484, 1486, 1488, 1489, 1490, 1491,
1741 1493, 1494, 1495, 1496, 1497, 1499, 1500, 1501, 1502, 1503,
1742 1504, 1506, 1507, 1508, 1509, 1510, 1512, 1513, 1514, 1515,
1743 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525,
1744 1526, 1528, 1530, 1531, 1532, 1533, 1535, 1536, 1537, 1539,
1745
1746 1540, 1541, 1542, 1543, 1544, 1540, 1546, 1542, 1543, 1545,
1747 1545, 1548, 1549, 1550, 1551, 1552, 1552, 1553, 1554, 1555,
1748 1555, 1556, 1553, 1557, 1558, 1560, 1556, 1561, 1562, 1563,
1749 1564, 1565, 1566, 1567, 1568, 1570, 1566, 1571, 1572, 1565,
1750 1573, 1574, 1576, 1577, 1578, 1580, 1581, 1582, 1583, 1584,
1751 1586, 1587, 1588, 1589, 1591, 1592, 1593, 1595, 1597, 1599,
1752 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1610,
1753 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620,
1754 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1611, 1629,
1755 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
1756
1757 1640, 1641, 1642, 1643, 1644, 1646, 1647, 1648, 1650, 1651,
1758 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1662, 1660,
1759 1663, 1665, 1667, 1668, 1670, 1671, 1672, 1674, 1675, 1676,
1760 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686,
1761 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
1762 1696, 1697, 1698, 1699, 1699, 1700, 1697, 1701, 1701, 1703,
1763 1704, 1705, 1706, 1707, 1708, 1710, 1711, 1706, 1712, 1713,
1764 1714, 1714, 1716, 1717, 1718, 1719, 1720, 1720, 1721, 1722,
1765 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1732, 1734,
1766 1735, 1736, 1737, 1738, 1739, 1741, 1743, 1744, 1745, 1747,
1767
1768 1748, 1749, 1751, 1752, 1754, 1755, 1756, 1757, 1758, 1760,
1769 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
1770 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
1771 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
1772 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801,
1773 1803, 1804, 1806, 1807, 1808, 1810, 1812, 1814, 1815, 1816,
1774 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1825, 1826, 1827,
1775 1828, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1838, 1839,
1776 1841, 1842, 1843, 1844, 1846, 1847, 1848, 1849, 1850, 1850,
1777 1852, 1853, 1854, 1856, 1857, 1858, 1859, 1860, 1861, 1862,
1778
1779 1862, 1863, 1864, 1865, 1866, 1868, 1869, 1870, 1871, 1872,
1780 1874, 1875, 1876, 1877, 1878, 1880, 1881, 1882, 1877, 1883,
1781 1884, 1885, 1886, 1887, 1889, 1890, 1892, 1893, 1895, 1896,
1782 1897, 1898, 1899, 1900, 1901, 1902, 1904, 1906, 1907, 1908,
1783 1910, 1911, 1913, 1914, 1916, 1917, 1918, 1919, 1921, 1922,
1784 1923, 1924, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933,
1785 1935, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945,
1786 1946, 1948, 1949, 1950, 1951, 1952, 1954, 1956, 1957, 1958,
1787 1959, 1960, 1961, 1963, 1964, 1965, 1966, 1967, 1968, 1970,
1788 1971, 1973, 1974, 1975, 1976, 1978, 1979, 1981, 1982, 1984,
1789
1790 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
1791 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
1792 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2014, 2015,
1793 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2024, 2026, 2028,
1794 2029, 2030, 2032, 2033, 2034, 2035, 2036, 2038, 2039, 2040,
1795 2041, 2042, 2043, 2045, 2046, 2048, 2049, 2050, 2052, 2053,
1796 2054, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2064, 2065,
1797 2066, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2076, 2077,
1798 2078, 2079, 2080, 2082, 2083, 2084, 2086, 2087, 2088, 2090,
1799 2091, 2092, 2093, 2095, 2096, 2097, 2098, 2099, 2100, 2101,
1800
1801 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
1802 2112, 2113, 2114, 2115, 2116, 2117, 2119, 2120, 2121, 2123,
1803 2125, 2126, 2128, 2129, 2130, 2131, 2132, 2134, 2135, 2136,
1804 2138, 2139, 2141, 2143, 2144, 2145, 2146, 2148, 2149, 2150,
1805 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160,
1806 2161, 2163, 2164, 2165, 2167, 2168, 2169, 2170, 2171, 2173,
1807 2175, 2176, 2178, 2180, 2182, 2184, 2185, 2186, 2187, 2188,
1808 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198,
1809 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208,
1810 2209, 2210, 2212, 2213, 2214, 2216, 2217, 2219, 2220, 2222,
1811
1812 2223, 2225, 2226, 2227, 2228, 2229, 2231, 2233, 2234, 2235,
1813 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245,
1814 2246, 2248, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257,
1815 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267,
1816 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277,
1817 2279, 2280, 2281, 2283, 2285, 2286, 2287, 2288, 2289, 2291,
1818 2293, 2295, 2297, 2298, 2300, 2302, 2303, 2304, 2305, 2307,
1819 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317,
1820 2318, 2319, 2320, 2321, 2322, 2323, 2325, 2326, 2327, 2328,
1821 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2337, 2339, 2340,
1822
1823 2341, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351,
1824 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362,
1825 2364, 2365, 2366, 2368, 2369, 2371, 2372, 2373, 2374, 2376,
1826 2377, 2378, 2379, 2380, 2382, 2383, 2384, 2385, 2386, 2387,
1827 2388, 2389, 2390, 2391, 2392, 2394, 2395, 2396, 2397, 2399,
1828 2400, 2402, 2404, 2405, 2406, 2408, 2409, 2411, 2413, 2414,
1829 2416, 2417, 2418, 2419, 2420, 2422, 2423, 2425, 2427, 2429,
1830 2431, 2432, 2434, 2435, 2437, 2439, 2441, 2442, 2444, 2446,
1831 2448, 2449, 2450, 2452, 2454, 2455, 2456, 2458, 2460, 2461,
1832 2463, 2465, 2467, 2469, 2471, 2471, 2472, 2472, 2473, 2473,
1833
1834 2474, 2474, 2475, 2476, 2476, 2477, 2478, 2479, 2480, 2481,
1835 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491,
1836 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501,
1837 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511,
1838 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521,
1839 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531,
1840 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
1841 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551,
1842 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2560,
1843 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570,
1844
1845 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580,
1846 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2589,
1847 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599,
1848 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609,
1849 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619,
1850 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629,
1851 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639,
1852 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649,
1853 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659,
1854 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669,
1855
1856 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679,
1857 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689,
1858 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699,
1859 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709,
1860 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719,
1861 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729,
1862 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739,
1863 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749,
1864 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759,
1865 2760, 2761, 633, 632, 631, 630, 629, 628, 627, 626,
1866
1867 625, 624, 623, 622, 621, 620, 619, 618, 617, 616,
1868 615, 614, 613, 612, 611, 610, 609, 608, 607, 605,
1869 604, 603, 602, 600, 599, 597, 596, 595, 594, 593,
1870 592, 591, 590, 589, 587, 585, 584, 583, 582, 581,
1871 580, 579, 578, 577, 576, 575, 574, 573, 572, 571,
1872 570, 569, 568, 567, 565, 564, 563, 562, 561, 559,
1873 558, 557, 556, 555, 554, 553, 552, 551, 550, 549,
1874 547, 546, 545, 544, 542, 541, 539, 538, 537, 536,
1875 535, 534, 532, 531, 530, 529, 528, 527, 526, 525,
1876 524, 522, 521, 517, 516, 515, 514, 513, 512, 511,
1877
1878 510, 507, 506, 504, 503, 502, 501, 500, 499, 498,
1879 497, 496, 495, 494, 493, 492, 491, 490, 489, 488,
1880 487, 485, 484, 483, 482, 481, 480, 479, 478, 477,
1881 476, 475, 473, 472, 471, 469, 468, 467, 466, 465,
1882 464, 463, 461, 460, 459, 457, 456, 455, 454, 453,
1883 452, 451, 449, 448, 447, 445, 444, 443, 442, 441,
1884 440, 439, 438, 437, 435, 433, 432, 431, 430, 429,
1885 428, 427, 426, 425, 424, 423, 422, 421, 420, 419,
1886 418, 417, 416, 415, 414, 413, 411, 410, 409, 408,
1887 407, 406, 405, 404, 403, 402, 401, 400, 399, 398,
1888
1889 397, 396, 395, 394, 393, 392, 391, 390, 389, 387,
1890 386, 385, 384, 383, 381, 380, 379, 378, 377, 376,
1891 375, 374, 373, 372, 371, 370, 369, 368, 367, 366,
1892 365, 364, 361, 360, 358, 357, 356, 352, 350, 349,
1893 348, 347, 346, 345, 344, 343, 341, 340, 339, 338,
1894 337, 335, 333, 332, 331, 330, 328, 327, 326, 325,
1895 324, 323, 322, 321, 319, 318, 317, 316, 315, 314,
1896 313, 312, 311, 310, 309, 308, 307, 306, 303, 301,
1897 300, 299, 298, 297, 296, 295, 294, 293, 292, 291,
1898 290, 289, 288, 287, 286, 285, 284, 282, 281, 280,
1899
1900 279, 278, 277, 276, 275, 274, 272, 271, 270, 268,
1901 267, 266, 264, 263, 261, 260, 259, 258, 257, 256,
1902 255, 254, 253, 252, 251, 250, 249, 248, 247, 246,
1903 245, 244, 243, 242, 241, 240, 239, 237, 236, 235,
1904 234, 233, 232, 231, 230, 229, 228, 227, 226, 225,
1905 223, 222, 221, 220, 219, 218, 217, 216, 215, 214,
1906 213, 212, 210, 209, 208, 206, 205, 204, 202, 201,
1907 200, 199, 198, 197, 196, 195, 194, 193, 190, 189,
1908 188, 187, 186, 185, 184, 183, 181, 180, 178, 176,
1909 174, 173, 172, 171, 170, 168, 165, 163, 162, 161,
1910
1911 160, 159, 158, 157, 156, 155, 154, 153, 152, 151,
1912 150, 149, 148, 145, 141, 137, 136, 135, 132, 130,
1913 129, 128, 126, 125, 124, 123, 122, 121, 118, 116,
1914 115, 114, 113, 110, 109, 108, 107, 106, 105, 104,
1915 102, 101, 100, 98, 97, 94, 93, 92, 91, 90,
1916 89, 88, 87, 85, 84, 83, 82, 81, 80, 79,
1917 78, 77, 76, 75, 74, 73, 72, 71, 70, 69,
1918 68, 67, 66, 65, 63, 62, 61, 59, 58, 56,
1919 55, 53, 52, 51, 46, 42, 39, 36, 23, 12,
1920 9, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1921
1922 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1923 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
1924 2470, 2470, 2470, 2470, 2470
1925 } ;
1926
1927 static yy_state_type yy_last_accepting_state;
1928 static char *yy_last_accepting_cpos;
1929
1930 extern int yy_flex_debug;
1931 int yy_flex_debug = 0;
1932
1933 /* The intent behind this definition is that it'll catch
1934 * any uses of REJECT which flex missed.
1935 */
1936 #define REJECT reject_used_but_not_detected
1937 #define yymore() yymore_used_but_not_detected
1938 #define YY_MORE_ADJ 0
1939 #define YY_RESTORE_YY_MORE_OFFSET
1940 char *yytext;
1941 #line 1 "loader.l"
1942 #line 2 "loader.l"
1943 /*
1944 * static char *rcsid_object_c =
1945 * "$Id: loader.c,v 1.74 2005/12/05 23:01:30 akirschbaum Exp $";
1946 */
1947
1948 /*
1949 CrossFire, A Multiplayer game for X-windows
1950
1951 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
1952 Copyright (C) 1992 Frank Tore Johansen
1953
1954 This program is free software; you can redistribute it and/or modify
1955 it under the terms of the GNU General Public License as published by
1956 the Free Software Foundation; either version 2 of the License, or
1957 (at your option) any later version.
1958
1959 This program is distributed in the hope that it will be useful,
1960 but WITHOUT ANY WARRANTY; without even the implied warranty of
1961 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1962 GNU General Public License for more details.
1963
1964 You should have received a copy of the GNU General Public License
1965 along with this program; if not, write to the Free Software
1966 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1967
1968 The authors can be reached via e-mail at crossfire-devel@real-time.com
1969 */
1970
1971 /* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects.
1972 sub/add_weight will transcend the environment updating the carrying
1973 variable. */
1974
1975
1976 #include <global.h>
1977 #include <loader.h>
1978 #include <newserver.h>
1979 #include <sproto.h>
1980
1981 #define YY_DECL int lex_load(object *op, int map_flags)
1982
1983 static char *yval();
1984
1985 static int lex_error;
1986 static char msgbuf[HUGE_BUF];
1987 static char lorebuf[HUGE_BUF];
1988
1989 /* This table is only necessary to convert objects that existed before the
1990 * spell object conversion to the new object. It was not practical
1991 * to go through every mapping looking for every potion, rod, wand, etc
1992 * that had a sp set and update to the new value. So this maps the
1993 * old spell numbers to the name of the new archs.
1994 * If you are adding a new spell, you should not modify this - you
1995 * new spell won't have been used, and thus won't have any legacy object.
1996 * NULL entries in this table are valid - to denote objects that should
1997 * not be updated for whatever reason.
1998 */
1999 char *spell_mapping[] = {
2000 "spell_magic_bullet", /* 0 */
2001 "spell_small_fireball", /* 1 */
2002 "spell_medium_fireball", /* 2 */
2003 "spell_large_fireball", /* 3 */
2004 "spell_burning_hands", /* 4 */
2005 "spell_sm_lightning", /* 5 */
2006 "spell_large_lightning", /* 6 */
2007 "spell_magic_missile", /* 7 */
2008 "spell_create_bomb", /* 8 */
2009 "spell_summon_golem", /* 9 */
2010 "spell_summon_fire_elemental", /* 10 */
2011 "spell_summon_earth_elemental", /* 11 */
2012 "spell_summon_water_elemental", /* 12 */
2013 "spell_summon_air_elemental", /* 13 */
2014 "spell_dimension_door", /* 14 */
2015 "spell_create_earth_wall", /* 15 */
2016 "spell_paralyze", /* 16 */
2017 "spell_icestorm", /* 17 */
2018 "spell_magic_mapping", /* 18 */
2019 "spell_turn_undead", /* 19 */
2020 "spell_fear", /* 20 */
2021 "spell_poison_cloud", /* 21 */
2022 "spell_wonder", /* 22 */
2023 "spell_destruction", /* 23 */
2024 "spell_perceive_self", /* 24 */
2025 "spell_word_of_recall", /* 25 */
2026 "spell_invisible", /* 26 */
2027 "spell_invisible_to_undead", /* 27 */
2028 "spell_probe", /* 28 */
2029 "spell_lg_magic_bullet", /* 29 */
2030 "spell_improved_invisibility", /* 30 */
2031 "spell_holy_word", /* 31 */
2032 "spell_minor_healing", /* 32 */
2033 "spell_medium_healing", /* 33 */
2034 "spell_major_healing", /* 34 */
2035 "spell_heal", /* 35 */
2036 "spell_create_food", /* 36 */
2037 "spell_earth_to_dust", /* 37 */
2038 "spell_armour", /* 38 */
2039 "spell_strength", /* 39 */
2040 "spell_dexterity", /* 40 */
2041 "spell_constitution", /* 41 */
2042 "spell_charisma", /* 42 */
2043 "spell_create_fire_wall", /* 43 */
2044 "spell_create_frost_wall", /* 44 */
2045 "spell_protection_from_cold", /* 45 */
2046 "spell_protection_from_electricity", /* 46 */
2047 "spell_protection_from_fire", /* 47 */
2048 "spell_protection_from_poison", /* 48 */
2049 "spell_protection_from_slow", /* 49 */
2050 "spell_protection_from_paralysis", /* 50 */
2051 "spell_protection_from_draining", /* 51 */
2052 "spell_protection_from_magic", /* 52 */
2053 "spell_protection_from_attack", /* 53 */
2054 "spell_levitate", /* 54 */
2055 "spell_small_speedball", /* 55 */
2056 "spell_large_speedball", /* 56 */
2057 "spell_hellfire", /* 57 */
2058 "spell_dragonbreath", /* 58 */
2059 "spell_large_icestorm", /* 59 */
2060 "spell_charging", /* 60 */
2061 "spell_polymorph", /* 61 */
2062 "spell_cancellation", /* 62 */
2063 "spell_confusion", /* 63 */
2064 "spell_mass_confusion", /* 64 */
2065 "spell_summon_pet_monster", /* 65 */
2066 "spell_slow", /* 66 */
2067 "spell_regenerate_spellpoints", /* 67 */
2068 "spell_cure_poison", /* 68 */
2069 "spell_protection_from_confusion", /* 69 */
2070 "spell_protection_from_cancellation", /* 70 */
2071 "spell_protection_from_depletion", /* 71 */
2072 "spell_alchemy", /* 72 */
2073 "spell_remove_curse", /* 73 */
2074 "spell_remove_damnation", /* 74 */
2075 "spell_identify", /* 75*/
2076 "spell_detect_magic", /* 76 */
2077 "spell_detect_monster", /* 77 */
2078 "spell_detect_evil", /* 78 */
2079 "spell_detect_curse", /* 79 */
2080 "spell_heroism", /* 80 */
2081 "spell_aggravation", /* 81 */
2082 "spell_firebolt", /* 82 */
2083 "spell_frostbolt", /* 83 */
2084 "spell_shockwave", /* 84 */
2085 "spell_color_spray", /* 85 */
2086 "spell_haste", /* 86 */
2087 "spell_face_of_death", /* 87 */
2088 "spell_ball_lightning", /* 88 */
2089 "spell_meteor_swarm", /* 89 */
2090 "spell_comet", /* 90 */
2091 "spell_mystic_fist", /* 91 */
2092 "spell_raise_dead", /* 92 */
2093 "spell_resurrection", /* 93 */
2094 "spell_reincarnation", /* 94 */
2095 "spell_immunity_to_cold", /* 95 */
2096 "spell_immunity_to_electricity",/* 96 */
2097 "spell_immunity_to_fire", /* 97 */
2098 "spell_immunity_to_poison", /* 98 */
2099 "spell_immunity_to_slow", /* 99 */
2100 "spell_immunity_to_paralysis", /* 100 */
2101 "spell_immunity_to_draining", /* 101 */
2102 "spell_immunity_to_magic", /* 102 */
2103 "spell_immunity_to_attack", /* 103 */
2104 "spell_invulnerability", /* 104 */
2105 "spell_defense", /* 105 */
2106 "spell_rune_of_fire", /* 106 */
2107 "spell_rune_of_frost", /* 107 */
2108 "spell_rune_of_shocking", /* 108 */
2109 "spell_rune_of_blasting", /* 109 */
2110 "spell_rune_of_death", /* 110 */
2111 "spell_marking_rune", /* 111 */
2112 "spell_build_director", /* 112 */
2113 "spell_create_pool_of_chaos", /* 113 */
2114 "spell_build_bullet_wall", /* 114 */
2115 "spell_build_lightning_wall", /* 115 */
2116 "spell_build_fireball_wall", /* 116 */
2117 "spell_magic_rune", /* 117 */
2118 "spell_rune_of_magic_drain", /* 118 */
2119 "spell_antimagic_rune", /* 119 */
2120 "spell_rune_of_transference", /* 120 */
2121 "spell_transference", /* 121 */
2122 "spell_magic_drain", /* 122 */
2123 "spell_counterspell", /* 123 */
2124 "spell_disarm", /* 124 */
2125 "spell_cure_confusion", /* 125 */
2126 "spell_restoration", /* 126 */
2127 "was summon evil monster", /* 127 */ /* Not implenented as nothing used it */
2128 "spell_counterwall", /* 128 */
2129 "spell_cause_light_wounds", /* 129 */
2130 "spell_cause_medium_wounds", /* 130 */
2131 "spell_cause_heavy_wounds", /* 131 */
2132 "spell_charm_monsters", /* 132 */
2133 "spell_banishment", /* 133 */
2134 "spell_create_missile", /* 134 */
2135 "spell_show_invisible", /* 135 */
2136 "spell_xray", /* 136 */
2137 "spell_pacify", /* 137 */
2138 "spell_summon_fog", /* 138 */
2139 "spell_steambolt", /* 139 */
2140 "spell_command_undead", /* 140 */
2141 "spell_holy_orb", /* 141 */
2142 "spell_summon_avatar", /* 142 */
2143 "spell_holy_possession", /* 143 */
2144 "spell_bless", /* 144 */
2145 "spell_curse", /* 145 */
2146 "spell_regeneration", /* 146 */
2147 "spell_consecrate", /* 147 */
2148 "spell_summon_cult_monsters", /* 148 */
2149 "spell_cause_critical_wounds", /* 149 */
2150 "spell_holy_wrath", /* 150 */
2151 "spell_retributive_strike", /* 151 */
2152 "spell_finger_of_death", /* 152 */
2153 "spell_insect_plague", /* 153 */
2154 "spell_call_holy_servant", /* 154 */
2155 "spell_wall_of_thorns", /* 155 */
2156 "spell_staff_to_snake", /* 156 */
2157 "spell_light", /* 157 */
2158 "spell_darkness", /* 158 */
2159 "spell_nightfall", /* 159 */
2160 "spell_daylight", /* 160 */
2161 "spell_sunspear", /* 161 */
2162 "spell_faery_fire", /* 162 */
2163 "spell_cure_blindness", /* 163 */
2164 "spell_dark_vision", /* 164 */
2165 "spell_bullet_swarm", /* 165 */
2166 "spell_bullet_storm", /* 166 */
2167 "spell_cause_many_wounds", /* 167 */
2168 "spell_small_snowstorm", /* 168 */
2169 "spell_medium_snowstorm", /* 169 */
2170 "spell_large_snowstorm", /* 170 */
2171 "spell_cure_disease", /* 171 */
2172 "spell_cause_red_death", /* 172 */
2173 "spell_cause_flu", /* 173 */
2174 "spell_cause_black_death", /* 174 */
2175 "spell_cause_leprosy", /* 175 */
2176 "spell_cause_smallpox", /* 176 */
2177 "spell_cause_white_death", /* 177 */
2178 "spell_cause_anthrax", /* 178 */
2179 "spell_cause_typhoid", /* 179 */
2180 "spell_mana_blast", /* 180 */
2181 "spell_small_manaball", /* 181 */
2182 "spell_medium_manaball", /* 182 */
2183 "spell_large_manaball", /* 183 */
2184 "spell_manabolt", /* 184 */
2185 "spell_dancing_sword", /* 185 */
2186 "spell_animate_weapon", /* 186 */
2187 "spell_cause_cold", /* 187 */
2188 "spell_divine_shock", /* 188 */
2189 "spell_windstorm", /* 189 */
2190 "spell_sanctuary", /* 190 */
2191 "spell_peace", /* 191 */
2192 "spell_spiderweb", /* 192 */
2193 "spell_conflict", /* 193 */
2194 "spell_rage", /* 194 */
2195 "spell_forked_lightning", /* 195 */
2196 "spell_poison_fog", /* 196 */
2197 "spell_flaming_aura", /* 197 */
2198 "spell_vitriol", /* 198 */
2199 "spell_vitriol_splash", /* 199 */
2200 "spell_iron_skin", /* 200 */
2201 "spell_wrathful_eye", /* 201 */
2202 "spell_town_portal", /* 202 */
2203 "spell_missile_swarm", /* 203 */
2204 "spell_cause_rabies", /* 204 */
2205 "spell_glyph", /* 205 */
2206 NULL
2207 };
2208
2209 #define SET_OR_CLEAR_FLAG(op, flag, val) \
2210 { if (val) SET_FLAG(op, flag); else CLEAR_FLAG(op, flag); }
2211
2212 /* SET_RESIST is really only really needed for transition code. We normally
2213 * don't care about multiple values overwriting each other, but this is
2214 * to catch items that have multiple protection/immune/vulnerable.
2215 * This can be simplified later on to just do the set after all the archs
2216 * and maps have been updated.
2217 * We always keep the last value because otherwise the value from the
2218 * arch may take precedence.
2219 * Unfortunately, we will report warnings here simply because an object has
2220 * been modified from the arch.
2221 */
2222 #if 0 /* #if's don't work in #define macros */
2223 #define SET_RESIST(op, type, val) \
2224 {if (op->resist[type]!=0) { \
2225 LOG(llevInfo, "object %s having multiple resistances set, type=%s, old=%d, new=%d\n", \
2226 op->name?op->name:(op->arch?op->arch->name:"unknown"), \
2227 resist_plus[type], op->resist[type], val); \
2228 } op->resist[type] = val; }
2229 #else
2230 #define SET_RESIST(op, type, val) op->resist[type] = val;
2231 #endif
2232
2233 #define IVAL atoi(yval())
2234 #define FVAL atof(yval())
2235 extern int arch_init;
2236
2237 /* Put this here since it is used below */
2238 static void set_protection(object *op, uint32 mask, uint16 pro_val)
2239 {
2240 int i;
2241
2242 if (!mask) return; /* Unlikely, but might as well check */
2243 for (i=0; i<NROFATTACKS; i++) {
2244 if (mask & (1<<i)) SET_RESIST(op, i, pro_val);
2245 }
2246 }
2247
2248
2249 static void set_body_info(object *op, char *params) {
2250 int i;
2251 char *cp;
2252
2253 /* go to first space character */
2254 for (cp=params; !isspace(*cp); cp++) ;
2255
2256 *cp++ = 0; /* null it out */
2257
2258 for (i=0; i<NUM_BODY_LOCATIONS; i++) {
2259 if (!strcmp(params, body_locations[i].save_name)) {
2260 op->body_info[i] = atoi(cp);
2261 return; /* Only one line passed in params */
2262 }
2263 }
2264 LOG(llevError,"set_body_info called with bogus params: %s\n", params);
2265 }
2266
2267
2268 /* This function checks the object after it has been loaded (when we
2269 * get the 'end' in the input stream). This function can be used to
2270 * deal with legacy objects where fields may have changed. It can also be used
2271 * to check for objects to make sure there are no common errors.
2272 */
2273 static void check_loaded_object(object *op) {
2274 int ip;
2275
2276 /* We do some specialized handling to handle legacy cases of name_pl.
2277 * If the object doesn't have a name_pl, we just use the object name -
2278 * this isn't perfect (things won't be properly pluralized), but works to
2279 * that degree (5 heart is still quite understandable). But the case we
2280 * also have to catch is if this object is not using the normal name for
2281 * the object. In that case, we also want to use the loaded name.
2282 * Otherwise, what happens is that the the plural name will lose
2283 * information (appear as just 'hearts' and not 'goblins heart')
2284 */
2285 if (op->arch && op->name != op->arch->clone.name && op->name_pl == op->arch->clone.name_pl) {
2286 if (op->name_pl) free_string(op->name_pl);
2287 op->name_pl = NULL;
2288 }
2289 if (!op->name_pl) op->name_pl = add_string(op->name);
2290
2291 /* objects now have a materialname. try to patch it in */
2292 if (!(IS_WEAPON(op) && op->level > 0)) {
2293 if (op->map != NULL)
2294 set_materialname(op, op->map->difficulty, NULL);
2295 else
2296 set_materialname(op, 5, NULL);
2297 }
2298 /* only do these when program is first run - a bit
2299 * excessive to do this at every run - most of this is
2300 * really just to catch any errors - program will still run, but
2301 * not in the ideal fashion.
2302 */
2303 if ((op->type == WEAPON || op->type==BOW) && arch_init) {
2304 if (!op->skill) {
2305 LOG(llevError,"Weapon %s lacks a skill.\n", op->name);
2306 } else if ((!strcmp(op->skill,"one handed weapons") && op->body_info[1] != -1) ||
2307 (!strcmp(op->skill,"two handed weapons") && op->body_info[1] != -2)) {
2308 LOG(llevError,"weapon %s arm usage does not match skill: %d, %s\n",
2309 op->name, op->body_info[1], op->skill);
2310 }
2311 }
2312
2313 /* We changed last_heal to gen_sp_armour, which is what it
2314 * really does for many objects. Need to catch any in maps
2315 * that may have an old value.
2316 */
2317 if ((op->type == WEAPON) ||
2318 (op->type == ARMOUR) || (op->type == HELMET) ||
2319 (op->type == SHIELD) || (op->type == RING) ||
2320 (op->type == BOOTS) || (op->type == GLOVES) ||
2321 (op->type == AMULET ) || (op->type == GIRDLE) ||
2322 (op->type == BRACERS ) || (op->type == CLOAK)) {
2323 if (op->last_heal) {
2324 LOG(llevDebug,"Object %s still has last_heal set, not gen_sp_armour\n",
2325 op->name?op->name:"NULL");
2326 op->gen_sp_armour = op->last_heal;
2327 op->last_heal = 0;
2328 }
2329 if (editor) ip =0;
2330 else ip = calc_item_power(op, 0);
2331 /* Legacy objects from before item power was in the game */
2332 if (!op->item_power && ip) {
2333 if (ip > 3) {
2334 LOG(llevDebug,"Object %s had no item power, using %d\n",
2335 op->name?op->name:"NULL", ip);
2336 }
2337 op->item_power = ip;
2338 }
2339 /* Check for possibly bogus values. Has to meet both these criteria -
2340 * something that has item_power 1 is probably just fine if our calculated
2341 * value is 1 or 2 - these values are small enough that hard to be precise.
2342 * similarly, it item_power is 0, the first check will always pass,
2343 * but not the second one.
2344 */
2345 if (ip > 2 *op->item_power && ip > (op->item_power + 3)) {
2346 LOG(llevDebug,"Object %s seems to have too low item power? %d > %d\n",
2347 op->name?op->name:"NULL", ip, op->item_power);
2348 }
2349
2350 }
2351 /* Old spellcasting object - need to load in the appropiate object */
2352 if ((op->type == ROD || op->type == WAND || op->type == SCROLL || op->type == HORN
2353 || op->type == FIREWALL ||
2354 /* POTIONS and ALTARS don't always cast spells, but if they do, update them */
2355 ((op->type == POTION || op->type == ALTAR) && op->stats.sp)) && !op->inv && !arch_init) {
2356 object *tmp;
2357
2358 /* Fireall is bizarre in that spell type was stored in dam. Rest are 'normal'
2359 * in that spell was stored in sp.
2360 */
2361 tmp = get_archetype(spell_mapping[op->type == FIREWALL?op->stats.dam:op->stats.sp]);
2362 insert_ob_in_ob(tmp, op);
2363 op->randomitems = NULL; /* So another spell isn't created for this object */
2364 }
2365 /* spellbooks & runes use slaying. But not to arch name, but to spell name */
2366
2367 if ((op->type == SPELLBOOK || op->type == RUNE) && op->slaying && !op->inv && !arch_init) {
2368 object *tmp;
2369
2370 tmp = get_archetype_by_object_name(op->slaying);
2371 insert_ob_in_ob(tmp, op);
2372 op->randomitems = NULL; /* So another spell isn't created for this object */
2373 /* without this, value is all screwed up */
2374 op->value = op->arch->clone.value * op->inv->value;
2375 }
2376
2377 if (QUERY_FLAG(op, FLAG_MONSTER)) {
2378 if (op->stats.hp > op->stats.maxhp)
2379 LOG(llevDebug,"Monster %s has hp set higher than maxhp (%d>%d)\n",
2380 op->name,
2381 op->stats.hp, op->stats.maxhp);
2382
2383 /* The archs just need to be updated for this */
2384 if (op->move_type ==0) op->move_type = MOVE_WALK;
2385 }
2386 if ((QUERY_FLAG(op,FLAG_GENERATOR) && QUERY_FLAG(op,FLAG_CONTENT_ON_GEN))
2387 || op->type == CREATOR
2388 || op->type == CONVERTER) {
2389 /* Object will duplicate it's content as part of the
2390 * generation process. To do this, we must flag inventory
2391 * so it remains unevaluated concerning the randomitems and
2392 * the living (a demonlord shouldn't cast from inside generator!)
2393 */
2394 flag_inv(op,FLAG_IS_A_TEMPLATE);
2395 }
2396
2397 /* Handle player movers. We use move_type for player movers
2398 * because they operate on their own time (move_on
2399 * would potentially cause them to be triggered when someone steps
2400 * on them). If move_type is set, presume person knows what they
2401 * are doing, otherwise, set move_type based on maxhp value.
2402 */
2403 if (op->type == PLAYERMOVER) {
2404 if (!op->move_type) {
2405 if (op->stats.maxhp) {
2406 op->move_type = MOVE_ALL;
2407 op->stats.maxhp=0;
2408 } else {
2409 op->move_type = MOVE_WALK;
2410 }
2411 }
2412 }
2413
2414 }
2415
2416 /* This extracts the key/value from the yytext field -
2417 * calls set_ob_key_value() to actually set the value.
2418 * Function basically has to find spaces, strip out extra,
2419 * etc. strchr doesn't work as good because could also
2420 * be tabs.
2421 */
2422 static void add_key_value(object * op) {
2423 char * key = NULL;
2424 char * value = NULL;
2425 char * cp;
2426 char * end;
2427
2428 /* First, skip over leading whitespace. */
2429 for (cp = yytext; isspace(*cp); cp++) { ; }
2430
2431 key = cp;
2432
2433 /* Now look for the end of the key/field name. */
2434 for (; !isspace(*cp); cp++) {
2435 if (*cp == '\0') {
2436 /* Oops, ran out of string! Set the key with an empty value. */
2437 set_ob_key_value(op, key, NULL, TRUE);
2438 return;
2439 }
2440 }
2441
2442 if (*cp == '\0') {
2443 set_ob_key_value(op, key, NULL, TRUE);
2444 return;
2445 }
2446
2447 /* Chop off the key, and start at the next character. */
2448 *cp = '\0';
2449 cp++;
2450 if (*cp == '\0') {
2451 /* Was followed by one space? */
2452 set_ob_key_value(op, key, NULL, TRUE);
2453 return;
2454 }
2455
2456 /* Now looking for the value. Skip over whitespace. */
2457 for (; isspace(*cp); cp++) {
2458 if (*cp == '\0') {
2459 /* Guess not. */
2460 set_ob_key_value(op, key, NULL, TRUE);
2461 return;
2462 }
2463 }
2464
2465 value = cp;
2466
2467 /* Got last character before null and strip
2468 * off tailing whitespace
2469 */
2470 for (end = value + (strlen(cp)-1); isspace(*end); end--) {
2471 if (end == value) {
2472 /* *blink blink* Still no value? */
2473 set_ob_key_value(op, key, NULL, TRUE);
2474 return;
2475 }
2476 *end='\0';
2477 }
2478 set_ob_key_value(op, key, value, TRUE);
2479 }
2480
2481
2482
2483
2484
2485 /* Don't have to link with -lfl with this */
2486 /* need yy_push_state, yy_pop_state */
2487 #line 2488 "loader.c"
2488
2489 #define INITIAL 0
2490 #define MESSAGE 1
2491 #define LORE 2
2492 #define SCRIPT 3
2493
2494 #ifndef YY_NO_UNISTD_H
2495 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2496 * down here because we want the user's section 1 to have been scanned first.
2497 * The user has a chance to override it with an option.
2498 */
2499 #include <unistd.h>
2500 #endif
2501
2502 #ifndef YY_EXTRA_TYPE
2503 #define YY_EXTRA_TYPE void *
2504 #endif
2505
2506 /* Macros after this point can all be overridden by user definitions in
2507 * section 1.
2508 */
2509
2510 #ifndef YY_SKIP_YYWRAP
2511 #ifdef __cplusplus
2512 extern "C" int yywrap (void );
2513 #else
2514 extern int yywrap (void );
2515 #endif
2516 #endif
2517
2518 static void yyunput (int c,char *buf_ptr );
2519
2520 #ifndef yytext_ptr
2521 static void yy_flex_strncpy (char *,yyconst char *,int );
2522 #endif
2523
2524 #ifdef YY_NEED_STRLEN
2525 static int yy_flex_strlen (yyconst char * );
2526 #endif
2527
2528 #ifndef YY_NO_INPUT
2529
2530 #ifdef __cplusplus
2531 static int yyinput (void );
2532 #else
2533 static int input (void );
2534 #endif
2535
2536 #endif
2537
2538 static int yy_start_stack_ptr = 0;
2539 static int yy_start_stack_depth = 0;
2540 static int *yy_start_stack = 0;
2541
2542 static void yy_push_state (int new_state );
2543
2544 static void yy_pop_state (void );
2545
2546 static int yy_top_state (void );
2547
2548 /* Amount of stuff to slurp up with each read. */
2549 #ifndef YY_READ_BUF_SIZE
2550 #define YY_READ_BUF_SIZE 8192
2551 #endif
2552
2553 /* Copy whatever the last rule matched to the standard output. */
2554 #ifndef ECHO
2555 /* This used to be an fputs(), but since the string might contain NUL's,
2556 * we now use fwrite().
2557 */
2558 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
2559 #endif
2560
2561 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2562 * is returned in "result".
2563 */
2564 #ifndef YY_INPUT
2565 #define YY_INPUT(buf,result,max_size) \
2566 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2567 { \
2568 int c = '*'; \
2569 size_t n; \
2570 for ( n = 0; n < max_size && \
2571 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2572 buf[n] = (char) c; \
2573 if ( c == '\n' ) \
2574 buf[n++] = (char) c; \
2575 if ( c == EOF && ferror( yyin ) ) \
2576 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2577 result = n; \
2578 } \
2579 else \
2580 { \
2581 errno=0; \
2582 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
2583 { \
2584 if( errno != EINTR) \
2585 { \
2586 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2587 break; \
2588 } \
2589 errno=0; \
2590 clearerr(yyin); \
2591 } \
2592 }\
2593 \
2594
2595 #endif
2596
2597 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2598 * we don't want an extra ';' after the "return" because that will cause
2599 * some compilers to complain about unreachable statements.
2600 */
2601 #ifndef yyterminate
2602 #define yyterminate() return YY_NULL
2603 #endif
2604
2605 /* Number of entries by which start-condition stack grows. */
2606 #ifndef YY_START_STACK_INCR
2607 #define YY_START_STACK_INCR 25
2608 #endif
2609
2610 /* Report a fatal error. */
2611 #ifndef YY_FATAL_ERROR
2612 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2613 #endif
2614
2615 /* end tables serialization structures and prototypes */
2616
2617 /* Default declaration of generated scanner - a define so the user can
2618 * easily add parameters.
2619 */
2620 #ifndef YY_DECL
2621 #define YY_DECL_IS_OURS 1
2622
2623 extern int yylex (void);
2624
2625 #define YY_DECL int yylex (void)
2626 #endif /* !YY_DECL */
2627
2628 /* Code executed at the beginning of each rule, after yytext and yyleng
2629 * have been set up.
2630 */
2631 #ifndef YY_USER_ACTION
2632 #define YY_USER_ACTION
2633 #endif
2634
2635 /* Code executed at the end of each rule. */
2636 #ifndef YY_BREAK
2637 #define YY_BREAK break;
2638 #endif
2639
2640 #define YY_RULE_SETUP \
2641 if ( yyleng > 0 ) \
2642 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2643 (yytext[yyleng - 1] == '\n'); \
2644 YY_USER_ACTION
2645
2646 /** The main scanner function which does all the work.
2647 */
2648 YY_DECL
2649 {
2650 register yy_state_type yy_current_state;
2651 register char *yy_cp, *yy_bp;
2652 register int yy_act;
2653
2654 #line 559 "loader.l"
2655
2656
2657
2658 /* Declare some local variables */
2659 int ismore=0;
2660
2661 lex_error=0;
2662
2663
2664
2665 #line 2666 "loader.c"
2666
2667 if ( (yy_init) )
2668 {
2669 (yy_init) = 0;
2670
2671 #ifdef YY_USER_INIT
2672 YY_USER_INIT;
2673 #endif
2674
2675 if ( ! (yy_start) )
2676 (yy_start) = 1; /* first start state */
2677
2678 if ( ! yyin )
2679 yyin = stdin;
2680
2681 if ( ! yyout )
2682 yyout = stdout;
2683
2684 if ( ! YY_CURRENT_BUFFER ) {
2685 yyensure_buffer_stack ();
2686 YY_CURRENT_BUFFER_LVALUE =
2687 yy_create_buffer(yyin,YY_BUF_SIZE );
2688 }
2689
2690 yy_load_buffer_state( );
2691 }
2692
2693 while ( 1 ) /* loops until end-of-file is reached */
2694 {
2695 yy_cp = (yy_c_buf_p);
2696
2697 /* Support of yytext. */
2698 *yy_cp = (yy_hold_char);
2699
2700 /* yy_bp points to the position in yy_ch_buf of the start of
2701 * the current run.
2702 */
2703 yy_bp = yy_cp;
2704
2705 yy_current_state = (yy_start);
2706 yy_current_state += YY_AT_BOL();
2707 yy_match:
2708 do
2709 {
2710 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2711 if ( yy_accept[yy_current_state] )
2712 {
2713 (yy_last_accepting_state) = yy_current_state;
2714 (yy_last_accepting_cpos) = yy_cp;
2715 }
2716 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2717 {
2718 yy_current_state = (int) yy_def[yy_current_state];
2719 if ( yy_current_state >= 2471 )
2720 yy_c = yy_meta[(unsigned int) yy_c];
2721 }
2722 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2723 ++yy_cp;
2724 }
2725 while ( yy_base[yy_current_state] != 2792 );
2726
2727 yy_find_action:
2728 yy_act = yy_accept[yy_current_state];
2729 if ( yy_act == 0 )
2730 { /* have to back up */
2731 yy_cp = (yy_last_accepting_cpos);
2732 yy_current_state = (yy_last_accepting_state);
2733 yy_act = yy_accept[yy_current_state];
2734 }
2735
2736 YY_DO_BEFORE_ACTION;
2737
2738 do_action: /* This label is used only to access EOF actions. */
2739
2740 switch ( yy_act )
2741 { /* beginning of action switch */
2742 case 0: /* must back up */
2743 /* undo the effects of YY_DO_BEFORE_ACTION */
2744 *yy_cp = (yy_hold_char);
2745 yy_cp = (yy_last_accepting_cpos);
2746 yy_current_state = (yy_last_accepting_state);
2747 goto yy_find_action;
2748
2749 case 1:
2750 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2751 (yy_c_buf_p) = yy_cp -= 1;
2752 YY_DO_BEFORE_ACTION; /* set up yytext again */
2753 YY_RULE_SETUP
2754 #line 569 "loader.l"
2755 { BEGIN( MESSAGE ); msgbuf[0]='\0'; }
2756 YY_BREAK
2757 case 2:
2758 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2759 (yy_c_buf_p) = yy_cp -= 1;
2760 YY_DO_BEFORE_ACTION; /* set up yytext again */
2761 YY_RULE_SETUP
2762 #line 570 "loader.l"
2763 { BEGIN( INITIAL );
2764 op->msg=add_string(msgbuf);
2765 /* Just print a warning so we can be reasonably safe
2766 * about not overflowing the buffer.
2767 */
2768 if (strlen(op->msg) > (HUGE_BUF/2))
2769 LOG(llevDebug, "\n\tWarning message length > %d (max allowed=%d): %d\n>%.80s<\n",
2770 HUGE_BUF/2, HUGE_BUF, strlen(op->msg),op->msg);
2771 }
2772 YY_BREAK
2773 case 3:
2774 YY_RULE_SETUP
2775 #line 579 "loader.l"
2776 {strcat(msgbuf, yytext); strcat(msgbuf,"\n"); }
2777 YY_BREAK
2778 case 4:
2779 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2780 (yy_c_buf_p) = yy_cp -= 1;
2781 YY_DO_BEFORE_ACTION; /* set up yytext again */
2782 YY_RULE_SETUP
2783 #line 581 "loader.l"
2784 { BEGIN( LORE ); lorebuf[0]='\0'; }
2785 YY_BREAK
2786 case 5:
2787 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2788 (yy_c_buf_p) = yy_cp -= 1;
2789 YY_DO_BEFORE_ACTION; /* set up yytext again */
2790 YY_RULE_SETUP
2791 #line 582 "loader.l"
2792 { BEGIN( INITIAL );
2793 op->lore=add_string(lorebuf);
2794 /* Just print a warning so we can be reasonably safe
2795 * about not overflowing the buffer.
2796 */
2797 if (strlen(op->lore) > (HUGE_BUF/2))
2798 LOG(llevDebug, "\n\tWarning lore length > %d (max allowed=%d): %d\n>%.80s<\n",
2799 HUGE_BUF/2, HUGE_BUF, strlen(op->lore),op->lore);
2800 }
2801 YY_BREAK
2802 case 6:
2803 YY_RULE_SETUP
2804 #line 591 "loader.l"
2805 {strcat(lorebuf, yytext); strcat(lorebuf,"\n"); }
2806 YY_BREAK
2807 case 7:
2808 YY_RULE_SETUP
2809 #line 593 "loader.l"
2810 { char *yv=yval();
2811
2812 if (*yv=='\0') {
2813 LOG(llevError,"Object lacks name.\n");
2814 return LL_IGNORED;
2815 }
2816 if (!arch_init) {
2817 LOG(llevError,"Got object info when not in arch_init (%s)?\n", yv);
2818 } else {
2819 if (op->arch!=NULL) op->arch->name=add_string(yv);
2820 op->name = add_string(yv);
2821 }
2822 }
2823 YY_BREAK
2824 case 8:
2825 YY_RULE_SETUP
2826 #line 607 "loader.l"
2827 { char *yv=yval();
2828
2829 if (*yv=='\0') LOG(llevError,"Name without val\n");
2830 else FREE_AND_COPY(op->name, yv);
2831 }
2832 YY_BREAK
2833 case 9:
2834 YY_RULE_SETUP
2835 #line 612 "loader.l"
2836 { char *yv=yval();
2837
2838 if (*yv=='\0') LOG(llevError,"Name without val\n");
2839 else FREE_AND_COPY(op->name_pl, yv);
2840 }
2841 YY_BREAK
2842 case 10:
2843 YY_RULE_SETUP
2844 #line 617 "loader.l"
2845 FREE_AND_COPY(op->skill,yval());
2846 YY_BREAK
2847 case 11:
2848 YY_RULE_SETUP
2849 #line 618 "loader.l"
2850 { char *yv=yval();
2851
2852 if (*yv=='\0') LOG(llevError,"Custom name without val\n");
2853 else FREE_AND_COPY(op->custom_name, yv);
2854 }
2855 YY_BREAK
2856 case 12:
2857 YY_RULE_SETUP
2858 #line 623 "loader.l"
2859 FREE_AND_COPY(op->race,yval());
2860 YY_BREAK
2861 case 13:
2862 YY_RULE_SETUP
2863 #line 624 "loader.l"
2864 FREE_AND_COPY(op->slaying, yval());
2865 YY_BREAK
2866 case 14:
2867 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2868 (yy_c_buf_p) = yy_cp -= 1;
2869 YY_DO_BEFORE_ACTION; /* set up yytext again */
2870 YY_RULE_SETUP
2871 #line 625 "loader.l"
2872 LOG(llevError,"Got depreciated Inventory command?\n");
2873 YY_BREAK
2874 case 15:
2875 YY_RULE_SETUP
2876 #line 628 "loader.l"
2877 { /* If op->arch has been set, then this new object
2878 * must be part of the inventory. So process
2879 * appropriately.
2880 */
2881 if (op->arch) {
2882 object *tmp;
2883 char *yv=yval();
2884
2885 tmp=get_object();
2886 tmp->arch = find_archetype(yv);
2887 if (tmp->arch!=NULL)
2888 copy_object(&tmp->arch->clone,tmp);
2889 else {
2890 if (tmp->name) free_string(tmp->name);
2891 /* record the name of the broken object */
2892 tmp->name = add_string(yv);
2893 }
2894 strcpy(msgbuf, "");
2895 strcpy(lorebuf, "");
2896 lex_load(tmp, map_flags);
2897 if (tmp->arch) {
2898 insert_ob_in_ob(tmp,op);
2899 }
2900 else {
2901 LOG(llevDebug,"Discarding object without arch: %s\n", tmp->name?tmp->name:"(null)");
2902 free_object(tmp);
2903 }
2904 }
2905 /* This is the actual archetype definition then */
2906 else {
2907 char *yv=yval();
2908
2909 op->arch=find_archetype(yv);
2910 if (op->arch!=NULL) copy_object(&op->arch->clone,op);
2911 else if (!arch_init) {
2912 if (op->name) free_string(op->name);
2913 /* record the name of the broken object */
2914 op->name = add_string(yv);
2915 }
2916 }
2917 }
2918 YY_BREAK
2919 case 16:
2920 YY_RULE_SETUP
2921 #line 670 "loader.l"
2922 op->other_arch=find_archetype(yval());
2923 YY_BREAK
2924 case 17:
2925 YY_RULE_SETUP
2926 #line 671 "loader.l"
2927 {
2928 if (strcmp (yval(), "NONE") == 0) {
2929 op->animation_id = 0;
2930 CLEAR_FLAG (op, FLAG_ANIMATE);
2931 } else {
2932 op->animation_id = find_animation (yval());
2933 SET_FLAG (op, FLAG_ANIMATE);
2934 }
2935 }
2936 YY_BREAK
2937 case 18:
2938 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2939 (yy_c_buf_p) = yy_cp -= 1;
2940 YY_DO_BEFORE_ACTION; /* set up yytext again */
2941 YY_RULE_SETUP
2942 #line 681 "loader.l"
2943 { /* We need to record that this is a multipart object,
2944 * so the calling function can glue things back together
2945 */
2946 ismore=1;
2947 }
2948 YY_BREAK
2949 case 19:
2950 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2951 (yy_c_buf_p) = yy_cp -= 1;
2952 YY_DO_BEFORE_ACTION; /* set up yytext again */
2953 YY_RULE_SETUP
2954 #line 687 "loader.l"
2955 { check_loaded_object(op);
2956 if (ismore) return LL_MORE;
2957 else return LL_NORMAL;
2958 }
2959 YY_BREAK
2960 case 20:
2961 YY_RULE_SETUP
2962 #line 691 "loader.l"
2963 op->last_heal = IVAL;
2964 YY_BREAK
2965 case 21:
2966 YY_RULE_SETUP
2967 #line 692 "loader.l"
2968 op->last_sp = IVAL;
2969 YY_BREAK
2970 case 22:
2971 YY_RULE_SETUP
2972 #line 693 "loader.l"
2973 op->last_grace = IVAL;
2974 YY_BREAK
2975 case 23:
2976 YY_RULE_SETUP
2977 #line 694 "loader.l"
2978 op->last_eat = IVAL;
2979 YY_BREAK
2980 case 24:
2981 YY_RULE_SETUP
2982 #line 695 "loader.l"
2983 { op->speed = FVAL;
2984 if (!(map_flags & MAP_STYLE)) {
2985 if (op->speed<0) op->speed_left = op->speed_left-RANDOM()%100/100.0;
2986 update_ob_speed(op);
2987 }
2988 }
2989 YY_BREAK
2990 case 25:
2991 YY_RULE_SETUP
2992 #line 701 "loader.l"
2993 op->speed_left = FVAL;
2994 YY_BREAK
2995 case 26:
2996 YY_RULE_SETUP
2997 #line 702 "loader.l"
2998 { op->move_slow |= MOVE_WALK;
2999 op->move_slow_penalty = FVAL;
3000 }
3001 YY_BREAK
3002 case 27:
3003 YY_RULE_SETUP
3004 #line 705 "loader.l"
3005 { char *y=yval();
3006 if (*y=='\0') LOG(llevError,"Title without value.\n");
3007 else FREE_AND_COPY(op->title, y);
3008 }
3009 YY_BREAK
3010 case 28:
3011 YY_RULE_SETUP
3012 #line 710 "loader.l"
3013 op->face = &new_faces[FindFace(yval(), 0)];
3014 YY_BREAK
3015 case 29:
3016 YY_RULE_SETUP
3017 #line 711 "loader.l"
3018 op->stats.Str = IVAL;
3019 YY_BREAK
3020 case 30:
3021 YY_RULE_SETUP
3022 #line 712 "loader.l"
3023 op->stats.Dex = IVAL;
3024 YY_BREAK
3025 case 31:
3026 YY_RULE_SETUP
3027 #line 713 "loader.l"
3028 op->stats.Con = IVAL;
3029 YY_BREAK
3030 case 32:
3031 YY_RULE_SETUP
3032 #line 714 "loader.l"
3033 op->stats.Wis = IVAL;
3034 YY_BREAK
3035 case 33:
3036 YY_RULE_SETUP
3037 #line 715 "loader.l"
3038 op->stats.Cha = IVAL;
3039 YY_BREAK
3040 case 34:
3041 YY_RULE_SETUP
3042 #line 716 "loader.l"
3043 op->stats.Int = IVAL;
3044 YY_BREAK
3045 case 35:
3046 YY_RULE_SETUP
3047 #line 717 "loader.l"
3048 op->stats.Pow = IVAL;
3049 YY_BREAK
3050 case 36:
3051 YY_RULE_SETUP
3052 #line 718 "loader.l"
3053 op->stats.hp = IVAL;
3054 YY_BREAK
3055 case 37:
3056 YY_RULE_SETUP
3057 #line 719 "loader.l"
3058 op->stats.maxhp = IVAL;
3059 YY_BREAK
3060 case 38:
3061 YY_RULE_SETUP
3062 #line 720 "loader.l"
3063 op->stats.sp = IVAL;
3064 YY_BREAK
3065 case 39:
3066 YY_RULE_SETUP
3067 #line 721 "loader.l"
3068 op->stats.maxsp = IVAL;
3069 YY_BREAK
3070 case 40:
3071 YY_RULE_SETUP
3072 #line 722 "loader.l"
3073 op->stats.grace = IVAL;
3074 YY_BREAK
3075 case 41:
3076 YY_RULE_SETUP
3077 #line 723 "loader.l"
3078 op->stats.maxgrace = IVAL;
3079 YY_BREAK
3080 case 42:
3081 YY_RULE_SETUP
3082 #line 724 "loader.l"
3083 op->stats.exp = atoll(yval());
3084 YY_BREAK
3085 case 43:
3086 YY_RULE_SETUP
3087 #line 725 "loader.l"
3088 op->perm_exp = atoll(yval());
3089 YY_BREAK
3090 case 44:
3091 YY_RULE_SETUP
3092 #line 726 "loader.l"
3093 op->stats.food = IVAL;
3094 YY_BREAK
3095 case 45:
3096 YY_RULE_SETUP
3097 #line 727 "loader.l"
3098 op->stats.dam = IVAL;
3099 YY_BREAK
3100 case 46:
3101 YY_RULE_SETUP
3102 #line 728 "loader.l"
3103 op->stats.wc = IVAL;
3104 YY_BREAK
3105 case 47:
3106 YY_RULE_SETUP
3107 #line 729 "loader.l"
3108 op->stats.ac = IVAL;
3109 YY_BREAK
3110 case 48:
3111 YY_RULE_SETUP
3112 #line 730 "loader.l"
3113 {op->x = IVAL; op->ox= op->x; }
3114 YY_BREAK
3115 case 49:
3116 YY_RULE_SETUP
3117 #line 731 "loader.l"
3118 {op->y = IVAL; op->oy= op->y; }
3119 YY_BREAK
3120 case 50:
3121 YY_RULE_SETUP
3122 #line 732 "loader.l"
3123 op->nrof= atol(yval());
3124 YY_BREAK
3125 case 51:
3126 YY_RULE_SETUP
3127 #line 733 "loader.l"
3128 op->level = IVAL;
3129 YY_BREAK
3130 case 52:
3131 YY_RULE_SETUP
3132 #line 734 "loader.l"
3133 op->direction = IVAL;
3134 YY_BREAK
3135 case 53:
3136 YY_RULE_SETUP
3137 #line 735 "loader.l"
3138 op->type = IVAL;
3139 YY_BREAK
3140 case 54:
3141 YY_RULE_SETUP
3142 #line 736 "loader.l"
3143 op->subtype = IVAL;
3144 YY_BREAK
3145 case 55:
3146 YY_RULE_SETUP
3147 #line 737 "loader.l"
3148 op->material = IVAL;
3149 YY_BREAK
3150 case 56:
3151 YY_RULE_SETUP
3152 #line 738 "loader.l"
3153 { char *yv=yval();
3154 if (*yv=='\0')
3155 LOG(llevError,"Materialname without val\n");
3156 else
3157 FREE_AND_COPY(op->materialname, yv);
3158 }
3159 YY_BREAK
3160 case 57:
3161 YY_RULE_SETUP
3162 #line 745 "loader.l"
3163 op->value = IVAL;
3164 YY_BREAK
3165 case 58:
3166 YY_RULE_SETUP
3167 #line 746 "loader.l"
3168 op->weight = atol(yval());
3169 YY_BREAK
3170 case 59:
3171 YY_RULE_SETUP
3172 #line 747 "loader.l"
3173 op->carrying = atol(yval());
3174 YY_BREAK
3175 case 60:
3176 YY_RULE_SETUP
3177 #line 748 "loader.l"
3178 op->attacktype = IVAL;
3179 YY_BREAK
3180 case 61:
3181 YY_RULE_SETUP
3182 #line 749 "loader.l"
3183 op->path_attuned = IVAL;
3184 YY_BREAK
3185 case 62:
3186 YY_RULE_SETUP
3187 #line 750 "loader.l"
3188 op->path_repelled = IVAL;
3189 YY_BREAK
3190 case 63:
3191 YY_RULE_SETUP
3192 #line 751 "loader.l"
3193 op->path_denied = IVAL;
3194 YY_BREAK
3195 case 64:
3196 YY_RULE_SETUP
3197 #line 752 "loader.l"
3198 op->invisible = IVAL;
3199 YY_BREAK
3200 case 65:
3201 YY_RULE_SETUP
3202 #line 753 "loader.l"
3203 op->magic = IVAL;
3204 YY_BREAK
3205 case 66:
3206 YY_RULE_SETUP
3207 #line 754 "loader.l"
3208 op->state = IVAL;
3209 YY_BREAK
3210 case 67:
3211 YY_RULE_SETUP
3212 #line 755 "loader.l"
3213 SET_OR_CLEAR_FLAG(op, FLAG_ALIVE, IVAL);
3214 YY_BREAK
3215 case 68:
3216 YY_RULE_SETUP
3217 #line 756 "loader.l"
3218 SET_OR_CLEAR_FLAG(op, FLAG_APPLIED, IVAL);
3219 YY_BREAK
3220 case 69:
3221 YY_RULE_SETUP
3222 #line 757 "loader.l"
3223 SET_OR_CLEAR_FLAG(op, FLAG_UNPAID, IVAL);
3224 YY_BREAK
3225 case 70:
3226 YY_RULE_SETUP
3227 #line 758 "loader.l"
3228 { /* not used - just ignore */ }
3229 YY_BREAK
3230 case 71:
3231 YY_RULE_SETUP
3232 #line 759 "loader.l"
3233 { /* not used - jsut ignore */ }
3234 YY_BREAK
3235 case 72:
3236 YY_RULE_SETUP
3237 #line 760 "loader.l"
3238 SET_OR_CLEAR_FLAG(op, FLAG_ANIMATE, IVAL);
3239 YY_BREAK
3240 case 73:
3241 YY_RULE_SETUP
3242 #line 761 "loader.l"
3243 SET_OR_CLEAR_FLAG(op, FLAG_NO_PICK, IVAL);
3244 YY_BREAK
3245 /* These are all legacy - any new objects should use the move_ .. values */
3246
3247 case 74:
3248 YY_RULE_SETUP
3249 #line 765 "loader.l"
3250 { if (IVAL) op->move_block = MOVE_ALL; else op->move_block=0; }
3251 YY_BREAK
3252 case 75:
3253 YY_RULE_SETUP
3254 #line 766 "loader.l"
3255 { if (IVAL) op->move_on |= MOVE_WALK; else op->move_on &= ~MOVE_WALK; }
3256 YY_BREAK
3257 case 76:
3258 YY_RULE_SETUP
3259 #line 767 "loader.l"
3260 { if (IVAL) op->move_off |= MOVE_WALK; else op->move_off &= ~MOVE_WALK; }
3261 YY_BREAK
3262 case 77:
3263 YY_RULE_SETUP
3264 #line 768 "loader.l"
3265 { if (IVAL) op->move_on |= MOVE_FLY_LOW; else op->move_on &= ~MOVE_FLY_LOW; }
3266 YY_BREAK
3267 case 78:
3268 YY_RULE_SETUP
3269 #line 769 "loader.l"
3270 { if (IVAL) op->move_off |= MOVE_FLY_LOW; else op->move_off &= ~MOVE_FLY_LOW; }
3271 YY_BREAK
3272 case 79:
3273 YY_RULE_SETUP
3274 #line 770 "loader.l"
3275 { if (IVAL) op->move_type |= MOVE_FLY_LOW; else op->move_type &= ~MOVE_FLY_LOW; }
3276 YY_BREAK
3277 /* These are the new values */
3278
3279 case 80:
3280 YY_RULE_SETUP
3281 #line 774 "loader.l"
3282 op->move_block = IVAL;
3283 YY_BREAK
3284 case 81:
3285 YY_RULE_SETUP
3286 #line 775 "loader.l"
3287 op->move_type = IVAL;
3288 YY_BREAK
3289 case 82:
3290 YY_RULE_SETUP
3291 #line 776 "loader.l"
3292 op->move_on = IVAL;
3293 YY_BREAK
3294 case 83:
3295 YY_RULE_SETUP
3296 #line 777 "loader.l"
3297 op->move_off = IVAL;
3298 YY_BREAK
3299 case 84:
3300 YY_RULE_SETUP
3301 #line 778 "loader.l"
3302 op->move_slow = IVAL;
3303 YY_BREAK
3304 case 85:
3305 YY_RULE_SETUP
3306 #line 779 "loader.l"
3307 op->move_slow_penalty = FVAL;
3308 YY_BREAK
3309 case 86:
3310 YY_RULE_SETUP
3311 #line 782 "loader.l"
3312 SET_OR_CLEAR_FLAG(op, FLAG_MONSTER, IVAL);
3313 YY_BREAK
3314 case 87:
3315 YY_RULE_SETUP
3316 #line 783 "loader.l"
3317 SET_OR_CLEAR_FLAG(op, FLAG_NEUTRAL, IVAL);
3318 YY_BREAK
3319 case 88:
3320 YY_RULE_SETUP
3321 #line 784 "loader.l"
3322 SET_OR_CLEAR_FLAG(op, FLAG_NO_ATTACK, IVAL);
3323 YY_BREAK
3324 case 89:
3325 YY_RULE_SETUP
3326 #line 785 "loader.l"
3327 SET_OR_CLEAR_FLAG(op, FLAG_NO_DAMAGE, IVAL);
3328 YY_BREAK
3329 case 90:
3330 YY_RULE_SETUP
3331 #line 786 "loader.l"
3332 { if (IVAL) {
3333 SET_FLAG(op, FLAG_FRIENDLY);
3334 if (op->type != PLAYER) {
3335 LOG(llevDebug," Adding friendly object %s.\n",op->name);
3336 add_friendly_object(op);
3337 }
3338 }
3339 else CLEAR_FLAG(op, FLAG_FRIENDLY);
3340 }
3341 YY_BREAK
3342 case 91:
3343 YY_RULE_SETUP
3344 #line 795 "loader.l"
3345 SET_OR_CLEAR_FLAG(op, FLAG_GENERATOR, IVAL);
3346 YY_BREAK
3347 case 92:
3348 YY_RULE_SETUP
3349 #line 796 "loader.l"
3350 SET_OR_CLEAR_FLAG (op,FLAG_CONTENT_ON_GEN, IVAL);
3351 YY_BREAK
3352 case 93:
3353 YY_RULE_SETUP
3354 #line 797 "loader.l"
3355 SET_OR_CLEAR_FLAG(op, FLAG_IS_THROWN, IVAL);
3356 YY_BREAK
3357 case 94:
3358 YY_RULE_SETUP
3359 #line 798 "loader.l"
3360 SET_OR_CLEAR_FLAG(op, FLAG_AUTO_APPLY, IVAL);
3361 YY_BREAK
3362 case 95:
3363 YY_RULE_SETUP
3364 #line 799 "loader.l"
3365 SET_OR_CLEAR_FLAG(op, FLAG_TREASURE, IVAL);
3366 YY_BREAK
3367 case 96:
3368 YY_RULE_SETUP
3369 #line 800 "loader.l"
3370 SET_OR_CLEAR_FLAG(op, FLAG_SEE_INVISIBLE, IVAL);
3371 YY_BREAK
3372 case 97:
3373 YY_RULE_SETUP
3374 #line 801 "loader.l"
3375 SET_OR_CLEAR_FLAG(op, FLAG_CAN_ROLL, IVAL);
3376 YY_BREAK
3377 case 98:
3378 YY_RULE_SETUP
3379 #line 802 "loader.l"
3380 SET_OR_CLEAR_FLAG(op, FLAG_OVERLAY_FLOOR, IVAL);
3381 YY_BREAK
3382 case 99:
3383 YY_RULE_SETUP
3384 #line 803 "loader.l"
3385 SET_OR_CLEAR_FLAG(op, FLAG_IS_TURNABLE, IVAL);
3386 YY_BREAK
3387 case 100:
3388 YY_RULE_SETUP
3389 #line 804 "loader.l"
3390 SET_OR_CLEAR_FLAG(op, FLAG_IS_USED_UP, IVAL);
3391 YY_BREAK
3392 case 101:
3393 YY_RULE_SETUP
3394 #line 805 "loader.l"
3395 { if (IVAL) {
3396 SET_FLAG(op, FLAG_IDENTIFIED);
3397 CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL);
3398 }
3399 else CLEAR_FLAG(op, FLAG_IDENTIFIED);
3400 }
3401 YY_BREAK
3402 case 102:
3403 YY_RULE_SETUP
3404 #line 811 "loader.l"
3405 SET_OR_CLEAR_FLAG(op, FLAG_REFLECTING, IVAL);
3406 YY_BREAK
3407 case 103:
3408 YY_RULE_SETUP
3409 #line 812 "loader.l"
3410 SET_OR_CLEAR_FLAG(op, FLAG_CHANGING, IVAL);
3411 YY_BREAK
3412 case 104:
3413 YY_RULE_SETUP
3414 #line 813 "loader.l"
3415 SET_OR_CLEAR_FLAG(op, FLAG_SPLITTING, IVAL);
3416 YY_BREAK
3417 case 105:
3418 YY_RULE_SETUP
3419 #line 814 "loader.l"
3420 SET_OR_CLEAR_FLAG(op, FLAG_HITBACK, IVAL);
3421 YY_BREAK
3422 case 106:
3423 YY_RULE_SETUP
3424 #line 815 "loader.l"
3425 SET_OR_CLEAR_FLAG(op, FLAG_STARTEQUIP, IVAL);
3426 YY_BREAK
3427 case 107:
3428 YY_RULE_SETUP
3429 #line 816 "loader.l"
3430 SET_OR_CLEAR_FLAG(op, FLAG_BLOCKSVIEW, IVAL);
3431 YY_BREAK
3432 case 108:
3433 YY_RULE_SETUP
3434 #line 817 "loader.l"
3435 op->arch->editable = IVAL;
3436 YY_BREAK
3437 case 109:
3438 YY_RULE_SETUP
3439 #line 818 "loader.l"
3440 { }
3441 YY_BREAK
3442 case 110:
3443 YY_RULE_SETUP
3444 #line 819 "loader.l"
3445 SET_OR_CLEAR_FLAG(op, FLAG_UNDEAD, IVAL);
3446 YY_BREAK
3447 case 111:
3448 YY_RULE_SETUP
3449 #line 820 "loader.l"
3450 SET_OR_CLEAR_FLAG(op, FLAG_SCARED, IVAL);
3451 YY_BREAK
3452 case 112:
3453 YY_RULE_SETUP
3454 #line 821 "loader.l"
3455 SET_OR_CLEAR_FLAG(op, FLAG_UNAGGRESSIVE, IVAL);
3456 YY_BREAK
3457 case 113:
3458 YY_RULE_SETUP
3459 #line 822 "loader.l"
3460 SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL);
3461 YY_BREAK
3462 case 114:
3463 YY_RULE_SETUP
3464 #line 823 "loader.l"
3465 SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL);
3466 YY_BREAK
3467 case 115:
3468 YY_RULE_SETUP
3469 #line 824 "loader.l"
3470 SET_OR_CLEAR_FLAG(op, FLAG_NO_MAGIC, IVAL);
3471 YY_BREAK
3472 case 116:
3473 YY_RULE_SETUP
3474 #line 825 "loader.l"
3475 { if (IVAL) {
3476 SET_FLAG(op, FLAG_WIZ);
3477 SET_FLAG(op, FLAG_WAS_WIZ);
3478 SET_FLAG(op, FLAG_WIZPASS);
3479 SET_FLAG(op, FLAG_WIZCAST);
3480 }
3481 else {
3482 CLEAR_FLAG(op, FLAG_WIZ);
3483 CLEAR_FLAG(op, FLAG_WIZPASS);
3484 CLEAR_FLAG(op, FLAG_WIZCAST);
3485 }
3486 }
3487 YY_BREAK
3488 case 117:
3489 YY_RULE_SETUP
3490 #line 837 "loader.l"
3491 SET_OR_CLEAR_FLAG(op, FLAG_WAS_WIZ, IVAL);
3492 YY_BREAK
3493 case 118:
3494 YY_RULE_SETUP
3495 #line 838 "loader.l"
3496 SET_OR_CLEAR_FLAG(op, FLAG_NO_FIX_PLAYER, IVAL);
3497 YY_BREAK
3498 case 119:
3499 YY_RULE_SETUP
3500 #line 839 "loader.l"
3501 SET_OR_CLEAR_FLAG(op, FLAG_IS_LIGHTABLE, IVAL);
3502 YY_BREAK
3503 case 120:
3504 YY_RULE_SETUP
3505 #line 840 "loader.l"
3506 SET_OR_CLEAR_FLAG(op, FLAG_TEAR_DOWN, IVAL);
3507 YY_BREAK
3508 case 121:
3509 YY_RULE_SETUP
3510 #line 841 "loader.l"
3511 op->stats.luck = IVAL;
3512 YY_BREAK
3513 case 122:
3514 YY_RULE_SETUP
3515 #line 842 "loader.l"
3516 op->run_away = IVAL;
3517 YY_BREAK
3518 case 123:
3519 YY_RULE_SETUP
3520 #line 843 "loader.l"
3521 op->pick_up = IVAL;
3522 YY_BREAK
3523 case 124:
3524 YY_RULE_SETUP
3525 #line 844 "loader.l"
3526 op->item_power = IVAL;
3527 YY_BREAK
3528 case 125:
3529 YY_RULE_SETUP
3530 #line 845 "loader.l"
3531 op->gen_sp_armour = IVAL;
3532 YY_BREAK
3533 case 126:
3534 YY_RULE_SETUP
3535 #line 846 "loader.l"
3536 op->anim_speed = IVAL;
3537 YY_BREAK
3538 case 127:
3539 YY_RULE_SETUP
3540 #line 847 "loader.l"
3541 op->weight_limit = IVAL;
3542 YY_BREAK
3543 case 128:
3544 YY_RULE_SETUP
3545 #line 848 "loader.l"
3546 SET_OR_CLEAR_FLAG(op, FLAG_NO_DROP, IVAL);
3547 YY_BREAK
3548 case 129:
3549 YY_RULE_SETUP
3550 #line 849 "loader.l"
3551 op->will_apply = IVAL;
3552 YY_BREAK
3553 case 130:
3554 YY_RULE_SETUP
3555 #line 850 "loader.l"
3556 SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL);
3557 YY_BREAK
3558 case 131:
3559 YY_RULE_SETUP
3560 #line 851 "loader.l"
3561 { }
3562 YY_BREAK
3563 case 132:
3564 YY_RULE_SETUP
3565 #line 852 "loader.l"
3566 SET_OR_CLEAR_FLAG(op, FLAG_USE_SHIELD, IVAL);
3567 YY_BREAK
3568 case 133:
3569 YY_RULE_SETUP
3570 #line 853 "loader.l"
3571 SET_OR_CLEAR_FLAG(op, FLAG_CAST_SPELL, IVAL);
3572 YY_BREAK
3573 case 134:
3574 YY_RULE_SETUP
3575 #line 854 "loader.l"
3576 SET_OR_CLEAR_FLAG(op, FLAG_USE_SCROLL, IVAL);
3577 YY_BREAK
3578 case 135:
3579 YY_RULE_SETUP
3580 #line 855 "loader.l"
3581 SET_OR_CLEAR_FLAG(op, FLAG_USE_RANGE, IVAL);
3582 YY_BREAK
3583 case 136:
3584 YY_RULE_SETUP
3585 #line 856 "loader.l"
3586 SET_OR_CLEAR_FLAG(op, FLAG_USE_BOW, IVAL);
3587 YY_BREAK
3588 case 137:
3589 YY_RULE_SETUP
3590 #line 857 "loader.l"
3591 SET_OR_CLEAR_FLAG(op, FLAG_USE_ARMOUR, IVAL);
3592 YY_BREAK
3593 case 138:
3594 YY_RULE_SETUP
3595 #line 858 "loader.l"
3596 SET_OR_CLEAR_FLAG(op, FLAG_USE_WEAPON, IVAL);
3597 YY_BREAK
3598 case 139:
3599 YY_RULE_SETUP
3600 #line 859 "loader.l"
3601 SET_OR_CLEAR_FLAG(op, FLAG_USE_RING, IVAL);
3602 YY_BREAK
3603 case 140:
3604 YY_RULE_SETUP
3605 #line 860 "loader.l"
3606 SET_OR_CLEAR_FLAG(op, FLAG_READY_BOW, IVAL);
3607 YY_BREAK
3608 case 141:
3609 YY_RULE_SETUP
3610 #line 861 "loader.l"
3611 SET_OR_CLEAR_FLAG(op, FLAG_XRAYS, IVAL);
3612 YY_BREAK
3613 case 142:
3614 YY_RULE_SETUP
3615 #line 862 "loader.l"
3616 SET_OR_CLEAR_FLAG(op, FLAG_IS_FLOOR, IVAL);
3617 YY_BREAK
3618 case 143:
3619 YY_RULE_SETUP
3620 #line 863 "loader.l"
3621 SET_OR_CLEAR_FLAG(op, FLAG_LIFESAVE, IVAL);
3622 YY_BREAK
3623 case 144:
3624 YY_RULE_SETUP
3625 #line 864 "loader.l"
3626 SET_OR_CLEAR_FLAG(op, FLAG_NO_STRENGTH, IVAL);
3627 YY_BREAK
3628 case 145:
3629 YY_RULE_SETUP
3630 #line 865 "loader.l"
3631 {
3632 SET_OR_CLEAR_FLAG(op, FLAG_SLEEP, IVAL);
3633 /*(LOG(llevDebug," Warning: Object %s has sleep set in arch.\n",op->name);*/
3634 }
3635 YY_BREAK
3636 case 146:
3637 YY_RULE_SETUP
3638 #line 869 "loader.l"
3639 SET_OR_CLEAR_FLAG(op, FLAG_STAND_STILL, IVAL);
3640 YY_BREAK
3641 case 147:
3642 YY_RULE_SETUP
3643 #line 870 "loader.l"
3644 SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL);
3645 YY_BREAK
3646 case 148:
3647 YY_RULE_SETUP
3648 #line 871 "loader.l"
3649 SET_OR_CLEAR_FLAG(op, FLAG_ONLY_ATTACK, IVAL);
3650 YY_BREAK
3651 case 149:
3652 YY_RULE_SETUP
3653 #line 873 "loader.l"
3654 SET_OR_CLEAR_FLAG(op, FLAG_ACTIVATE_ON_PUSH, IVAL);
3655 YY_BREAK
3656 case 150:
3657 YY_RULE_SETUP
3658 #line 874 "loader.l"
3659 SET_OR_CLEAR_FLAG(op, FLAG_ACTIVATE_ON_RELEASE, IVAL);
3660 YY_BREAK
3661 /* armour is loaded for compatiblity reasons */
3662 case 151:
3663 YY_RULE_SETUP
3664 #line 877 "loader.l"
3665 SET_RESIST(op, ATNR_PHYSICAL, IVAL);
3666 YY_BREAK
3667 /* Start of various attacktypes */
3668 case 152:
3669 YY_RULE_SETUP
3670 #line 879 "loader.l"
3671 SET_RESIST(op, ATNR_PHYSICAL, IVAL);
3672 YY_BREAK
3673 case 153:
3674 YY_RULE_SETUP
3675 #line 880 "loader.l"
3676 SET_RESIST(op, ATNR_MAGIC, IVAL);
3677 YY_BREAK
3678 case 154:
3679 YY_RULE_SETUP
3680 #line 881 "loader.l"
3681 SET_RESIST(op, ATNR_FIRE, IVAL);
3682 YY_BREAK
3683 case 155:
3684 YY_RULE_SETUP
3685 #line 882 "loader.l"
3686 SET_RESIST(op, ATNR_ELECTRICITY, IVAL);
3687 YY_BREAK
3688 case 156:
3689 YY_RULE_SETUP
3690 #line 883 "loader.l"
3691 SET_RESIST(op, ATNR_COLD, IVAL);
3692 YY_BREAK
3693 case 157:
3694 YY_RULE_SETUP
3695 #line 884 "loader.l"
3696 SET_RESIST(op, ATNR_CONFUSION, IVAL);
3697 YY_BREAK
3698 case 158:
3699 YY_RULE_SETUP
3700 #line 885 "loader.l"
3701 SET_RESIST(op, ATNR_ACID, IVAL);
3702 YY_BREAK
3703 case 159:
3704 YY_RULE_SETUP
3705 #line 886 "loader.l"
3706 SET_RESIST(op, ATNR_DRAIN, IVAL);
3707 YY_BREAK
3708 case 160:
3709 YY_RULE_SETUP
3710 #line 887 "loader.l"
3711 SET_RESIST(op, ATNR_WEAPONMAGIC, IVAL);
3712 YY_BREAK
3713 case 161:
3714 YY_RULE_SETUP
3715 #line 888 "loader.l"
3716 SET_RESIST(op, ATNR_GHOSTHIT, IVAL);
3717 YY_BREAK
3718 case 162:
3719 YY_RULE_SETUP
3720 #line 889 "loader.l"
3721 SET_RESIST(op, ATNR_POISON, IVAL);
3722 YY_BREAK
3723 case 163:
3724 YY_RULE_SETUP
3725 #line 890 "loader.l"
3726 SET_RESIST(op, ATNR_SLOW, IVAL);
3727 YY_BREAK
3728 case 164:
3729 YY_RULE_SETUP
3730 #line 891 "loader.l"
3731 SET_RESIST(op, ATNR_PARALYZE, IVAL);
3732 YY_BREAK
3733 case 165:
3734 YY_RULE_SETUP
3735 #line 892 "loader.l"
3736 SET_RESIST(op, ATNR_TURN_UNDEAD, IVAL);
3737 YY_BREAK
3738 case 166:
3739 YY_RULE_SETUP
3740 #line 893 "loader.l"
3741 SET_RESIST(op, ATNR_FEAR, IVAL);
3742 YY_BREAK
3743 case 167:
3744 YY_RULE_SETUP
3745 #line 894 "loader.l"
3746 SET_RESIST(op, ATNR_CANCELLATION, IVAL);
3747 YY_BREAK
3748 case 168:
3749 YY_RULE_SETUP
3750 #line 895 "loader.l"
3751 SET_RESIST(op, ATNR_DEPLETE, IVAL);
3752 YY_BREAK
3753 case 169:
3754 YY_RULE_SETUP
3755 #line 896 "loader.l"
3756 SET_RESIST(op, ATNR_DEATH, IVAL);
3757 YY_BREAK
3758 case 170:
3759 YY_RULE_SETUP
3760 #line 897 "loader.l"
3761 SET_RESIST(op, ATNR_CHAOS, IVAL);
3762 YY_BREAK
3763 case 171:
3764 YY_RULE_SETUP
3765 #line 898 "loader.l"
3766 SET_RESIST(op, ATNR_COUNTERSPELL, IVAL);
3767 YY_BREAK
3768 case 172:
3769 YY_RULE_SETUP
3770 #line 899 "loader.l"
3771 SET_RESIST(op, ATNR_GODPOWER, IVAL);
3772 YY_BREAK
3773 case 173:
3774 YY_RULE_SETUP
3775 #line 900 "loader.l"
3776 SET_RESIST(op, ATNR_HOLYWORD, IVAL);
3777 YY_BREAK
3778 case 174:
3779 YY_RULE_SETUP
3780 #line 901 "loader.l"
3781 SET_RESIST(op, ATNR_BLIND, IVAL);
3782 YY_BREAK
3783 case 175:
3784 YY_RULE_SETUP
3785 #line 902 "loader.l"
3786 SET_RESIST(op, ATNR_INTERNAL, IVAL);
3787 YY_BREAK
3788 case 176:
3789 YY_RULE_SETUP
3790 #line 903 "loader.l"
3791 SET_RESIST(op, ATNR_LIFE_STEALING, IVAL);
3792 YY_BREAK
3793 case 177:
3794 YY_RULE_SETUP
3795 #line 904 "loader.l"
3796 SET_RESIST(op, ATNR_DISEASE, IVAL);
3797 YY_BREAK
3798 /* Old style resistances */
3799 case 178:
3800 YY_RULE_SETUP
3801 #line 907 "loader.l"
3802 set_protection(op, IVAL, RESIST_IMMUNE);
3803 YY_BREAK
3804 case 179:
3805 YY_RULE_SETUP
3806 #line 908 "loader.l"
3807 set_protection(op, IVAL, RESIST_PROT);
3808 YY_BREAK
3809 case 180:
3810 YY_RULE_SETUP
3811 #line 909 "loader.l"
3812 set_protection(op, IVAL, RESIST_VULN);
3813 YY_BREAK
3814 /* old values - keep them around for now, but they should be removed at some point */
3815 case 181:
3816 YY_RULE_SETUP
3817 #line 912 "loader.l"
3818 SET_OR_CLEAR_FLAG(op, FLAG_READY_RANGE, IVAL);
3819 YY_BREAK
3820 case 182:
3821 YY_RULE_SETUP
3822 #line 913 "loader.l"
3823 SET_OR_CLEAR_FLAG(op, FLAG_READY_RANGE, IVAL);
3824 YY_BREAK
3825 case 183:
3826 YY_RULE_SETUP
3827 #line 914 "loader.l"
3828 SET_OR_CLEAR_FLAG(op, FLAG_READY_RANGE, IVAL);
3829 YY_BREAK
3830 case 184:
3831 YY_RULE_SETUP
3832 #line 915 "loader.l"
3833 SET_OR_CLEAR_FLAG(op, FLAG_USE_RANGE, IVAL);
3834 YY_BREAK
3835 case 185:
3836 YY_RULE_SETUP
3837 #line 917 "loader.l"
3838 op->attack_movement = IVAL;
3839 YY_BREAK
3840 case 186:
3841 YY_RULE_SETUP
3842 #line 918 "loader.l"
3843 op->move_status = IVAL;
3844 YY_BREAK
3845 case 187:
3846 YY_RULE_SETUP
3847 #line 919 "loader.l"
3848 SET_OR_CLEAR_FLAG(op, FLAG_CONFUSED, IVAL);
3849 YY_BREAK
3850 case 188:
3851 YY_RULE_SETUP
3852 #line 920 "loader.l"
3853 SET_OR_CLEAR_FLAG(op, FLAG_STEALTH, IVAL);
3854 YY_BREAK
3855 case 189:
3856 YY_RULE_SETUP
3857 #line 921 "loader.l"
3858 add_button_link(op, op->map, IVAL);
3859 YY_BREAK
3860 case 190:
3861 YY_RULE_SETUP
3862 #line 922 "loader.l"
3863 SET_OR_CLEAR_FLAG(op, FLAG_CURSED, IVAL);
3864 YY_BREAK
3865 case 191:
3866 YY_RULE_SETUP
3867 #line 923 "loader.l"
3868 SET_OR_CLEAR_FLAG(op, FLAG_DAMNED, IVAL);
3869 YY_BREAK
3870 case 192:
3871 YY_RULE_SETUP
3872 #line 924 "loader.l"
3873 SET_OR_CLEAR_FLAG(op, FLAG_SEE_ANYWHERE, IVAL);
3874 YY_BREAK
3875 case 193:
3876 YY_RULE_SETUP
3877 #line 925 "loader.l"
3878 SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL, IVAL);
3879 YY_BREAK
3880 case 194:
3881 YY_RULE_SETUP
3882 #line 926 "loader.l"
3883 SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_CURSED, IVAL);
3884 YY_BREAK
3885 case 195:
3886 YY_RULE_SETUP
3887 #line 927 "loader.l"
3888 SET_OR_CLEAR_FLAG(op, FLAG_CAN_USE_SKILL, IVAL);
3889 YY_BREAK
3890 case 196:
3891 YY_RULE_SETUP
3892 #line 928 "loader.l"
3893 SET_OR_CLEAR_FLAG(op, FLAG_BEEN_APPLIED, IVAL);
3894 YY_BREAK
3895 case 197:
3896 YY_RULE_SETUP
3897 #line 929 "loader.l"
3898 SET_OR_CLEAR_FLAG(op, FLAG_READY_SCROLL, IVAL);
3899 YY_BREAK
3900 case 198:
3901 YY_RULE_SETUP
3902 #line 930 "loader.l"
3903 SET_OR_CLEAR_FLAG(op, FLAG_USE_ROD, IVAL);
3904 YY_BREAK
3905 case 199:
3906 YY_RULE_SETUP
3907 #line 931 "loader.l"
3908 SET_OR_CLEAR_FLAG(op, FLAG_USE_HORN, IVAL);
3909 YY_BREAK
3910 case 200:
3911 YY_RULE_SETUP
3912 #line 932 "loader.l"
3913 op->expmul = FVAL;
3914 YY_BREAK
3915 case 201:
3916 YY_RULE_SETUP
3917 #line 933 "loader.l"
3918 SET_OR_CLEAR_FLAG(op, FLAG_UNIQUE, IVAL);
3919 YY_BREAK
3920 case 202:
3921 YY_RULE_SETUP
3922 #line 934 "loader.l"
3923 SET_OR_CLEAR_FLAG(op, FLAG_MAKE_INVIS, IVAL);
3924 YY_BREAK
3925 case 203:
3926 YY_RULE_SETUP
3927 #line 935 "loader.l"
3928 SET_OR_CLEAR_FLAG(op, FLAG_INV_LOCKED, IVAL);
3929 YY_BREAK
3930 case 204:
3931 YY_RULE_SETUP
3932 #line 936 "loader.l"
3933 SET_OR_CLEAR_FLAG(op, FLAG_IS_WOODED, IVAL);
3934 YY_BREAK
3935 case 205:
3936 YY_RULE_SETUP
3937 #line 937 "loader.l"
3938 SET_OR_CLEAR_FLAG(op, FLAG_IS_HILLY, IVAL);
3939 YY_BREAK
3940 case 206:
3941 YY_RULE_SETUP
3942 #line 938 "loader.l"
3943 SET_OR_CLEAR_FLAG(op, FLAG_IS_WATER, IVAL);
3944 YY_BREAK
3945 case 207:
3946 YY_RULE_SETUP
3947 #line 939 "loader.l"
3948 SET_OR_CLEAR_FLAG(op, FLAG_READY_SKILL, IVAL);
3949 YY_BREAK
3950 case 208:
3951 YY_RULE_SETUP
3952 #line 940 "loader.l"
3953 SET_OR_CLEAR_FLAG(op, FLAG_READY_WEAPON, IVAL);
3954 YY_BREAK
3955 case 209:
3956 YY_RULE_SETUP
3957 #line 941 "loader.l"
3958 SET_OR_CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT, IVAL);
3959 YY_BREAK
3960 case 210:
3961 YY_RULE_SETUP
3962 #line 942 "loader.l"
3963 op->glow_radius = IVAL;
3964 YY_BREAK
3965 case 211:
3966 YY_RULE_SETUP
3967 #line 943 "loader.l"
3968 SET_OR_CLEAR_FLAG(op, FLAG_BLIND, IVAL);
3969 YY_BREAK
3970 case 212:
3971 YY_RULE_SETUP
3972 #line 944 "loader.l"
3973 SET_OR_CLEAR_FLAG(op, FLAG_SEE_IN_DARK, IVAL);
3974 YY_BREAK
3975 case 213:
3976 YY_RULE_SETUP
3977 #line 945 "loader.l"
3978 SET_OR_CLEAR_FLAG(op, FLAG_IS_CAULDRON, IVAL);
3979 YY_BREAK
3980 case 214:
3981 YY_RULE_SETUP
3982 #line 946 "loader.l"
3983 op->randomitems = find_treasurelist(yval());
3984 YY_BREAK
3985 case 215:
3986 YY_RULE_SETUP
3987 #line 947 "loader.l"
3988 SET_OR_CLEAR_FLAG(op, FLAG_NO_STEAL, IVAL);
3989 YY_BREAK
3990 case 216:
3991 YY_RULE_SETUP
3992 #line 948 "loader.l"
3993 SET_OR_CLEAR_FLAG(op, FLAG_ONE_HIT, IVAL);
3994 YY_BREAK
3995 case 217:
3996 YY_RULE_SETUP
3997 #line 949 "loader.l"
3998 SET_OR_CLEAR_FLAG(op, FLAG_BERSERK, IVAL);
3999 YY_BREAK
4000 case 218:
4001 YY_RULE_SETUP
4002 #line 951 "loader.l"
4003 { /* Some archetypes have these values in them */ }
4004 YY_BREAK
4005 case 219:
4006 YY_RULE_SETUP
4007 #line 952 "loader.l"
4008 { /* Probably the pupland archetypes - I imagined */ }
4009 YY_BREAK
4010 case 220:
4011 YY_RULE_SETUP
4012 #line 953 "loader.l"
4013 { /* That these are for the new combat code */ }
4014 YY_BREAK
4015 case 221:
4016 YY_RULE_SETUP
4017 #line 954 "loader.l"
4018 { /* just ignore for now */ }
4019 YY_BREAK
4020 case 222:
4021 YY_RULE_SETUP
4022 #line 955 "loader.l"
4023 { }
4024 YY_BREAK
4025 case 223:
4026 YY_RULE_SETUP
4027 #line 956 "loader.l"
4028 op->weapontype = IVAL;
4029 YY_BREAK
4030 case 224:
4031 YY_RULE_SETUP
4032 #line 957 "loader.l"
4033 op->tooltype = IVAL;
4034 YY_BREAK
4035 case 225:
4036 YY_RULE_SETUP
4037 #line 958 "loader.l"
4038 op->casting_time = FVAL;
4039 YY_BREAK
4040 case 226:
4041 YY_RULE_SETUP
4042 #line 959 "loader.l"
4043 op->elevation = IVAL;
4044 YY_BREAK
4045 case 227:
4046 YY_RULE_SETUP
4047 #line 960 "loader.l"
4048 op->smoothlevel = IVAL;
4049 YY_BREAK
4050 case 228:
4051 YY_RULE_SETUP
4052 #line 961 "loader.l"
4053 op->client_type = IVAL;
4054 YY_BREAK
4055 case 229:
4056 YY_RULE_SETUP
4057 #line 962 "loader.l"
4058 set_body_info(op, yytext);
4059 YY_BREAK
4060 case 230:
4061 YY_RULE_SETUP
4062 #line 963 "loader.l"
4063 op->duration = IVAL;
4064 YY_BREAK
4065 case 231:
4066 YY_RULE_SETUP
4067 #line 964 "loader.l"
4068 op->range = IVAL;
4069 YY_BREAK
4070 case 232:
4071 YY_RULE_SETUP
4072 #line 965 "loader.l"
4073 op->range_modifier = IVAL;
4074 YY_BREAK
4075 case 233:
4076 YY_RULE_SETUP
4077 #line 966 "loader.l"
4078 op->dam_modifier = IVAL;
4079 YY_BREAK
4080 case 234:
4081 YY_RULE_SETUP
4082 #line 967 "loader.l"
4083 op->duration_modifier = IVAL;
4084 YY_BREAK
4085 case 235:
4086 YY_RULE_SETUP
4087 #line 968 "loader.l"
4088 SET_OR_CLEAR_FLAG( op, FLAG_IS_BUILDABLE, IVAL );
4089 YY_BREAK
4090 case 236:
4091 YY_RULE_SETUP
4092 #line 970 "loader.l"
4093 {
4094 char *yv=yval();
4095 if (*yv=='\0')
4096 LOG(llevError,"Event (apply) without val\n");
4097 else
4098 insert_event(op,EVENT_APPLY,yv,NULL,NULL);
4099 }
4100 YY_BREAK
4101 case 237:
4102 YY_RULE_SETUP
4103 #line 978 "loader.l"
4104 {
4105 char *yv=yval();
4106 if (*yv=='\0')
4107 LOG(llevError,"Event (apply) without plugin\n");
4108 else
4109 insert_event(op,EVENT_APPLY,NULL,yv,NULL);
4110 }
4111 YY_BREAK
4112 case 238:
4113 YY_RULE_SETUP
4114 #line 986 "loader.l"
4115 {
4116 char *yv=yval();
4117 if (*yv=='\0')
4118 LOG(llevError,"Event (apply) without options\n");
4119 else
4120 insert_event(op,EVENT_APPLY,NULL,NULL,yv);
4121 }
4122 YY_BREAK
4123 case 239:
4124 YY_RULE_SETUP
4125 #line 994 "loader.l"
4126 {
4127 char *yv=yval();
4128 if (*yv=='\0')
4129 LOG(llevError,"Event (attack) without val\n");
4130 else
4131 insert_event(op,EVENT_ATTACK,yv,NULL,NULL);
4132 }
4133 YY_BREAK
4134 case 240:
4135 YY_RULE_SETUP
4136 #line 1002 "loader.l"
4137 {
4138 char *yv=yval();
4139 if (*yv=='\0')
4140 LOG(llevError,"Event (attack) without plugin\n");
4141 else
4142 insert_event(op,EVENT_ATTACK,NULL,yv,NULL);
4143 }
4144 YY_BREAK
4145 case 241:
4146 YY_RULE_SETUP
4147 #line 1010 "loader.l"
4148 {
4149 char *yv=yval();
4150 if (*yv=='\0')
4151 LOG(llevError,"Event (attack) without options\n");
4152 else
4153 insert_event(op,EVENT_ATTACK,NULL,NULL,yv);
4154 }
4155 YY_BREAK
4156 case 242:
4157 YY_RULE_SETUP
4158 #line 1017 "loader.l"
4159 {
4160 char *yv=yval();
4161 if (*yv=='\0')
4162 LOG(llevError,"Event (death) without val\n");
4163 else
4164 insert_event(op,EVENT_DEATH,yv,NULL,NULL);
4165 }
4166 YY_BREAK
4167 case 243:
4168 YY_RULE_SETUP
4169 #line 1025 "loader.l"
4170 {
4171 char *yv=yval();
4172 if (*yv=='\0')
4173 LOG(llevError,"Event (death) without plugin\n");
4174 else
4175 insert_event(op,EVENT_DEATH,NULL,yv,NULL);
4176 }
4177 YY_BREAK
4178 case 244:
4179 YY_RULE_SETUP
4180 #line 1033 "loader.l"
4181 {
4182 char *yv=yval();
4183 if (*yv=='\0')
4184 LOG(llevError,"Event (death) without options\n");
4185 else
4186 insert_event(op,EVENT_DEATH,NULL,NULL,yv);
4187 }
4188 YY_BREAK
4189 case 245:
4190 YY_RULE_SETUP
4191 #line 1040 "loader.l"
4192 {
4193 char *yv=yval();
4194 if (*yv=='\0')
4195 LOG(llevError,"Event (drop) without val\n");
4196 else
4197 insert_event(op,EVENT_DROP,yv,NULL,NULL);
4198 }
4199 YY_BREAK
4200 case 246:
4201 YY_RULE_SETUP
4202 #line 1048 "loader.l"
4203 {
4204 char *yv=yval();
4205 if (*yv=='\0')
4206 LOG(llevError,"Event (drop) without plugin\n");
4207 else
4208 insert_event(op,EVENT_DROP,NULL,yv,NULL);
4209 }
4210 YY_BREAK
4211 case 247:
4212 YY_RULE_SETUP
4213 #line 1056 "loader.l"
4214 {
4215 char *yv=yval();
4216 if (*yv=='\0')
4217 LOG(llevError,"Event (drop) without options\n");
4218 else
4219 insert_event(op,EVENT_DROP,NULL,NULL,yv);
4220 }
4221 YY_BREAK
4222 case 248:
4223 YY_RULE_SETUP
4224 #line 1063 "loader.l"
4225 {
4226 char *yv=yval();
4227 if (*yv=='\0')
4228 LOG(llevError,"Event (pickup) without val\n");
4229 else
4230 insert_event(op,EVENT_PICKUP,yv,NULL,NULL);
4231 }
4232 YY_BREAK
4233 case 249:
4234 YY_RULE_SETUP
4235 #line 1071 "loader.l"
4236 {
4237 char *yv=yval();
4238 if (*yv=='\0')
4239 LOG(llevError,"Event (pickup) without plugin\n");
4240 else
4241 insert_event(op,EVENT_PICKUP,NULL,yv,NULL);
4242 }
4243 YY_BREAK
4244 case 250:
4245 YY_RULE_SETUP
4246 #line 1079 "loader.l"
4247 {
4248 char *yv=yval();
4249 if (*yv=='\0')
4250 LOG(llevError,"Event (pickup) without options\n");
4251 else
4252 insert_event(op,EVENT_PICKUP,NULL,NULL,yv);
4253 }
4254 YY_BREAK
4255 case 251:
4256 YY_RULE_SETUP
4257 #line 1086 "loader.l"
4258 {
4259 char *yv=yval();
4260 if (*yv=='\0')
4261 LOG(llevError,"Event (say) without val\n");
4262 else
4263 insert_event(op,EVENT_SAY,yv,NULL,NULL);
4264 }
4265 YY_BREAK
4266 case 252:
4267 YY_RULE_SETUP
4268 #line 1094 "loader.l"
4269 {
4270 char *yv=yval();
4271 if (*yv=='\0')
4272 LOG(llevError,"Event (say) without plugin\n");
4273 else
4274 insert_event(op,EVENT_SAY,NULL,yv,NULL);
4275 }
4276 YY_BREAK
4277 case 253:
4278 YY_RULE_SETUP
4279 #line 1102 "loader.l"
4280 {
4281 char *yv=yval();
4282 if (*yv=='\0')
4283 LOG(llevError,"Event (say) without options\n");
4284 else
4285 insert_event(op,EVENT_SAY,NULL,NULL,yv);
4286 }
4287 YY_BREAK
4288 case 254:
4289 YY_RULE_SETUP
4290 #line 1109 "loader.l"
4291 {
4292 char *yv=yval();
4293 if (*yv=='\0')
4294 LOG(llevError,"Event (stop) without val\n");
4295 else
4296 insert_event(op,EVENT_STOP,yv,NULL,NULL);
4297 }
4298 YY_BREAK
4299 case 255:
4300 YY_RULE_SETUP
4301 #line 1117 "loader.l"
4302 {
4303 char *yv=yval();
4304 if (*yv=='\0')
4305 LOG(llevError,"Event (stop) without plugin\n");
4306 else
4307 insert_event(op,EVENT_STOP,NULL,yv,NULL);
4308 }
4309 YY_BREAK
4310 case 256:
4311 YY_RULE_SETUP
4312 #line 1125 "loader.l"
4313 {
4314 char *yv=yval();
4315 if (*yv=='\0')
4316 LOG(llevError,"Event (stop) without options\n");
4317 else
4318 insert_event(op,EVENT_STOP,NULL,NULL,yv);
4319 }
4320 YY_BREAK
4321 case 257:
4322 YY_RULE_SETUP
4323 #line 1132 "loader.l"
4324 {
4325 char *yv=yval();
4326 if (*yv=='\0')
4327 LOG(llevError,"Event (time) without val\n");
4328 else
4329 insert_event(op,EVENT_TIME,yv,NULL,NULL);
4330 }
4331 YY_BREAK
4332 case 258:
4333 YY_RULE_SETUP
4334 #line 1140 "loader.l"
4335 {
4336 char *yv=yval();
4337 if (*yv=='\0')
4338 LOG(llevError,"Event (time) without plugin\n");
4339 else
4340 insert_event(op,EVENT_TIME,NULL,yv,NULL);
4341 }
4342 YY_BREAK
4343 case 259:
4344 YY_RULE_SETUP
4345 #line 1148 "loader.l"
4346 {
4347 char *yv=yval();
4348 if (*yv=='\0')
4349 LOG(llevError,"Event (time) without options\n");
4350 else
4351 insert_event(op,EVENT_TIME,NULL,NULL,yv);
4352 }
4353 YY_BREAK
4354 case 260:
4355 YY_RULE_SETUP
4356 #line 1155 "loader.l"
4357 {
4358 char *yv=yval();
4359 if (*yv=='\0')
4360 LOG(llevError,"Event (throw) without val\n");
4361 else
4362 insert_event(op,EVENT_THROW,yv,NULL,NULL);
4363 }
4364 YY_BREAK
4365 case 261:
4366 YY_RULE_SETUP
4367 #line 1163 "loader.l"
4368 {
4369 char *yv=yval();
4370 if (*yv=='\0')
4371 LOG(llevError,"Event (throw) without plugin\n");
4372 else
4373 insert_event(op,EVENT_THROW,NULL,yv,NULL);
4374 }
4375 YY_BREAK
4376 case 262:
4377 YY_RULE_SETUP
4378 #line 1171 "loader.l"
4379 {
4380 char *yv=yval();
4381 if (*yv=='\0')
4382 LOG(llevError,"Event (apply) without options\n");
4383 else
4384 insert_event(op,EVENT_THROW,NULL,NULL,yv);
4385 }
4386 YY_BREAK
4387 case 263:
4388 YY_RULE_SETUP
4389 #line 1178 "loader.l"
4390 {
4391 char *yv=yval();
4392 if (*yv=='\0')
4393 LOG(llevError,"Event (trigger) without val\n");
4394 else
4395 insert_event(op,EVENT_TRIGGER,yv,NULL,NULL);
4396 }
4397 YY_BREAK
4398 case 264:
4399 YY_RULE_SETUP
4400 #line 1186 "loader.l"
4401 {
4402 char *yv=yval();
4403 if (*yv=='\0')
4404 LOG(llevError,"Event (trigger) without plugin\n");
4405 else
4406 insert_event(op,EVENT_TRIGGER,NULL,yv,NULL);
4407 }
4408 YY_BREAK
4409 case 265:
4410 YY_RULE_SETUP
4411 #line 1194 "loader.l"
4412 {
4413 char *yv=yval();
4414 if (*yv=='\0')
4415 LOG(llevError,"Event (trigger) without options\n");
4416 else
4417 insert_event(op,EVENT_TRIGGER,NULL,NULL,yv);
4418 }
4419 YY_BREAK
4420 case 266:
4421 YY_RULE_SETUP
4422 #line 1201 "loader.l"
4423 {
4424 char *yv=yval();
4425 if (*yv=='\0')
4426 LOG(llevError,"Event (close) without val\n");
4427 else
4428 insert_event(op,EVENT_CLOSE,yv,NULL,NULL);
4429 }
4430 YY_BREAK
4431 case 267:
4432 YY_RULE_SETUP
4433 #line 1209 "loader.l"
4434 {
4435 char *yv=yval();
4436 if (*yv=='\0')
4437 LOG(llevError,"Event (close) without plugin\n");
4438 else
4439 insert_event(op,EVENT_CLOSE,NULL,yv,NULL);
4440 }
4441 YY_BREAK
4442 case 268:
4443 YY_RULE_SETUP
4444 #line 1217 "loader.l"
4445 {
4446 char *yv=yval();
4447 if (*yv=='\0')
4448 LOG(llevError,"Event (close) without options\n");
4449 else
4450 insert_event(op,EVENT_CLOSE,NULL,NULL,yv);
4451 }
4452 YY_BREAK
4453 case 269:
4454 YY_RULE_SETUP
4455 #line 1224 "loader.l"
4456 {
4457 char *yv=yval();
4458 if (*yv=='\0')
4459 LOG(llevError,"Event (timer) without val\n");
4460 else
4461 insert_event(op,EVENT_TIMER,yv,NULL,NULL);
4462 }
4463 YY_BREAK
4464 case 270:
4465 YY_RULE_SETUP
4466 #line 1232 "loader.l"
4467 {
4468 char *yv=yval();
4469 if (*yv=='\0')
4470 LOG(llevError,"Event (timer) without plugin\n");
4471 else
4472 insert_event(op,EVENT_TIMER,NULL,yv,NULL);
4473 }
4474 YY_BREAK
4475 case 271:
4476 YY_RULE_SETUP
4477 #line 1240 "loader.l"
4478 {
4479 char *yv=yval();
4480 if (*yv=='\0')
4481 LOG(llevError,"Event (timer) without options\n");
4482 else
4483 insert_event(op,EVENT_TIMER,NULL,NULL,yv);
4484 }
4485 YY_BREAK
4486 case 272:
4487 YY_RULE_SETUP
4488 #line 1248 "loader.l"
4489 { char *yv=yval();
4490
4491 if (*yv=='\0') LOG(llevError,"Script (current weapon) without val\n");
4492 else
4493 {
4494 FREE_AND_COPY(op->current_weapon_script, yv);
4495 };
4496 }
4497 YY_BREAK
4498 case 273:
4499 /* rule 273 can match eol */
4500 YY_RULE_SETUP
4501 #line 1257 "loader.l"
4502 {/* ignore empty lines, newlines we don't do above */}
4503 YY_BREAK
4504 case 274:
4505 /* rule 274 can match eol */
4506 YY_RULE_SETUP
4507 #line 1258 "loader.l"
4508 {}
4509 YY_BREAK
4510 case YY_STATE_EOF(INITIAL):
4511 case YY_STATE_EOF(MESSAGE):
4512 case YY_STATE_EOF(LORE):
4513 case YY_STATE_EOF(SCRIPT):
4514 #line 1260 "loader.l"
4515 {/* If we got an error, return the error. Otherwise, return that we got EOF */
4516 if (lex_error!=0) return lex_error; else return LL_EOF;}
4517 YY_BREAK
4518 case 275:
4519 YY_RULE_SETUP
4520 #line 1262 "loader.l"
4521 { add_key_value(op); }
4522 YY_BREAK
4523 case 276:
4524 YY_RULE_SETUP
4525 #line 1263 "loader.l"
4526 ECHO;
4527 YY_BREAK
4528 #line 4529 "loader.c"
4529
4530 case YY_END_OF_BUFFER:
4531 {
4532 /* Amount of text matched not including the EOB char. */
4533 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
4534
4535 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4536 *yy_cp = (yy_hold_char);
4537 YY_RESTORE_YY_MORE_OFFSET
4538
4539 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4540 {
4541 /* We're scanning a new file or input source. It's
4542 * possible that this happened because the user
4543 * just pointed yyin at a new source and called
4544 * yylex(). If so, then we have to assure
4545 * consistency between YY_CURRENT_BUFFER and our
4546 * globals. Here is the right place to do so, because
4547 * this is the first action (other than possibly a
4548 * back-up) that will match for the new input source.
4549 */
4550 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4551 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4552 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4553 }
4554
4555 /* Note that here we test for yy_c_buf_p "<=" to the position
4556 * of the first EOB in the buffer, since yy_c_buf_p will
4557 * already have been incremented past the NUL character
4558 * (since all states make transitions on EOB to the
4559 * end-of-buffer state). Contrast this with the test
4560 * in input().
4561 */
4562 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4563 { /* This was really a NUL. */
4564 yy_state_type yy_next_state;
4565
4566 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
4567
4568 yy_current_state = yy_get_previous_state( );
4569
4570 /* Okay, we're now positioned to make the NUL
4571 * transition. We couldn't have
4572 * yy_get_previous_state() go ahead and do it
4573 * for us because it doesn't know how to deal
4574 * with the possibility of jamming (and we don't
4575 * want to build jamming into it because then it
4576 * will run more slowly).
4577 */
4578
4579 yy_next_state = yy_try_NUL_trans( yy_current_state );
4580
4581 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4582
4583 if ( yy_next_state )
4584 {
4585 /* Consume the NUL. */
4586 yy_cp = ++(yy_c_buf_p);
4587 yy_current_state = yy_next_state;
4588 goto yy_match;
4589 }
4590
4591 else
4592 {
4593 yy_cp = (yy_c_buf_p);
4594 goto yy_find_action;
4595 }
4596 }
4597
4598 else switch ( yy_get_next_buffer( ) )
4599 {
4600 case EOB_ACT_END_OF_FILE:
4601 {
4602 (yy_did_buffer_switch_on_eof) = 0;
4603
4604 if ( yywrap( ) )
4605 {
4606 /* Note: because we've taken care in
4607 * yy_get_next_buffer() to have set up
4608 * yytext, we can now set up
4609 * yy_c_buf_p so that if some total
4610 * hoser (like flex itself) wants to
4611 * call the scanner after we return the
4612 * YY_NULL, it'll still work - another
4613 * YY_NULL will get returned.
4614 */
4615 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4616
4617 yy_act = YY_STATE_EOF(YY_START);
4618 goto do_action;
4619 }
4620
4621 else
4622 {
4623 if ( ! (yy_did_buffer_switch_on_eof) )
4624 YY_NEW_FILE;
4625 }
4626 break;
4627 }
4628
4629 case EOB_ACT_CONTINUE_SCAN:
4630 (yy_c_buf_p) =
4631 (yytext_ptr) + yy_amount_of_matched_text;
4632
4633 yy_current_state = yy_get_previous_state( );
4634
4635 yy_cp = (yy_c_buf_p);
4636 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4637 goto yy_match;
4638
4639 case EOB_ACT_LAST_MATCH:
4640 (yy_c_buf_p) =
4641 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4642
4643 yy_current_state = yy_get_previous_state( );
4644
4645 yy_cp = (yy_c_buf_p);
4646 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4647 goto yy_find_action;
4648 }
4649 break;
4650 }
4651
4652 default:
4653 YY_FATAL_ERROR(
4654 "fatal flex scanner internal error--no action found" );
4655 } /* end of action switch */
4656 } /* end of scanning one token */
4657 } /* end of yylex */
4658
4659 /* yy_get_next_buffer - try to read in a new buffer
4660 *
4661 * Returns a code representing an action:
4662 * EOB_ACT_LAST_MATCH -
4663 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4664 * EOB_ACT_END_OF_FILE - end of file
4665 */
4666 static int yy_get_next_buffer (void)
4667 {
4668 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4669 register char *source = (yytext_ptr);
4670 register int number_to_move, i;
4671 int ret_val;
4672
4673 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4674 YY_FATAL_ERROR(
4675 "fatal flex scanner internal error--end of buffer missed" );
4676
4677 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4678 { /* Don't try to fill the buffer, so this is an EOF. */
4679 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4680 {
4681 /* We matched a single character, the EOB, so
4682 * treat this as a final EOF.
4683 */
4684 return EOB_ACT_END_OF_FILE;
4685 }
4686
4687 else
4688 {
4689 /* We matched some text prior to the EOB, first
4690 * process it.
4691 */
4692 return EOB_ACT_LAST_MATCH;
4693 }
4694 }
4695
4696 /* Try to read more data. */
4697
4698 /* First move last chars to start of buffer. */
4699 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
4700
4701 for ( i = 0; i < number_to_move; ++i )
4702 *(dest++) = *(source++);
4703
4704 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4705 /* don't do the read, it's not guaranteed to return an EOF,
4706 * just force an EOF
4707 */
4708 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4709
4710 else
4711 {
4712 size_t num_to_read =
4713 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4714
4715 while ( num_to_read <= 0 )
4716 { /* Not enough room in the buffer - grow it. */
4717
4718 /* just a shorter name for the current buffer */
4719 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
4720
4721 int yy_c_buf_p_offset =
4722 (int) ((yy_c_buf_p) - b->yy_ch_buf);
4723
4724 if ( b->yy_is_our_buffer )
4725 {
4726 int new_size = b->yy_buf_size * 2;
4727
4728 if ( new_size <= 0 )
4729 b->yy_buf_size += b->yy_buf_size / 8;
4730 else
4731 b->yy_buf_size *= 2;
4732
4733 b->yy_ch_buf = (char *)
4734 /* Include room in for 2 EOB chars. */
4735 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
4736 }
4737 else
4738 /* Can't grow it, we don't own it. */
4739 b->yy_ch_buf = 0;
4740
4741 if ( ! b->yy_ch_buf )
4742 YY_FATAL_ERROR(
4743 "fatal error - scanner input buffer overflow" );
4744
4745 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4746
4747 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4748 number_to_move - 1;
4749
4750 }
4751
4752 if ( num_to_read > YY_READ_BUF_SIZE )
4753 num_to_read = YY_READ_BUF_SIZE;
4754
4755 /* Read in more data. */
4756 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4757 (yy_n_chars), num_to_read );
4758
4759 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4760 }
4761
4762 if ( (yy_n_chars) == 0 )
4763 {
4764 if ( number_to_move == YY_MORE_ADJ )
4765 {
4766 ret_val = EOB_ACT_END_OF_FILE;
4767 yyrestart(yyin );
4768 }
4769
4770 else
4771 {
4772 ret_val = EOB_ACT_LAST_MATCH;
4773 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4774 YY_BUFFER_EOF_PENDING;
4775 }
4776 }
4777
4778 else
4779 ret_val = EOB_ACT_CONTINUE_SCAN;
4780
4781 (yy_n_chars) += number_to_move;
4782 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4783 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4784
4785 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4786
4787 return ret_val;
4788 }
4789
4790 /* yy_get_previous_state - get the state just before the EOB char was reached */
4791
4792 static yy_state_type yy_get_previous_state (void)
4793 {
4794 register yy_state_type yy_current_state;
4795 register char *yy_cp;
4796
4797 yy_current_state = (yy_start);
4798 yy_current_state += YY_AT_BOL();
4799
4800 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4801 {
4802 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4803 if ( yy_accept[yy_current_state] )
4804 {
4805 (yy_last_accepting_state) = yy_current_state;
4806 (yy_last_accepting_cpos) = yy_cp;
4807 }
4808 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4809 {
4810 yy_current_state = (int) yy_def[yy_current_state];
4811 if ( yy_current_state >= 2471 )
4812 yy_c = yy_meta[(unsigned int) yy_c];
4813 }
4814 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4815 }
4816
4817 return yy_current_state;
4818 }
4819
4820 /* yy_try_NUL_trans - try to make a transition on the NUL character
4821 *
4822 * synopsis
4823 * next_state = yy_try_NUL_trans( current_state );
4824 */
4825 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
4826 {
4827 register int yy_is_jam;
4828 register char *yy_cp = (yy_c_buf_p);
4829
4830 register YY_CHAR yy_c = 1;
4831 if ( yy_accept[yy_current_state] )
4832 {
4833 (yy_last_accepting_state) = yy_current_state;
4834 (yy_last_accepting_cpos) = yy_cp;
4835 }
4836 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4837 {
4838 yy_current_state = (int) yy_def[yy_current_state];
4839 if ( yy_current_state >= 2471 )
4840 yy_c = yy_meta[(unsigned int) yy_c];
4841 }
4842 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4843 yy_is_jam = (yy_current_state == 2470);
4844
4845 return yy_is_jam ? 0 : yy_current_state;
4846 }
4847
4848 static void yyunput (int c, register char * yy_bp )
4849 {
4850 register char *yy_cp;
4851
4852 yy_cp = (yy_c_buf_p);
4853
4854 /* undo effects of setting up yytext */
4855 *yy_cp = (yy_hold_char);
4856
4857 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4858 { /* need to shift things up to make room */
4859 /* +2 for EOB chars. */
4860 register int number_to_move = (yy_n_chars) + 2;
4861 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4862 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4863 register char *source =
4864 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4865
4866 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4867 *--dest = *--source;
4868
4869 yy_cp += (int) (dest - source);
4870 yy_bp += (int) (dest - source);
4871 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4872 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4873
4874 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4875 YY_FATAL_ERROR( "flex scanner push-back overflow" );
4876 }
4877
4878 *--yy_cp = (char) c;
4879
4880 (yytext_ptr) = yy_bp;
4881 (yy_hold_char) = *yy_cp;
4882 (yy_c_buf_p) = yy_cp;
4883 }
4884
4885 #ifndef YY_NO_INPUT
4886 #ifdef __cplusplus
4887 static int yyinput (void)
4888 #else
4889 static int input (void)
4890 #endif
4891
4892 {
4893 int c;
4894
4895 *(yy_c_buf_p) = (yy_hold_char);
4896
4897 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4898 {
4899 /* yy_c_buf_p now points to the character we want to return.
4900 * If this occurs *before* the EOB characters, then it's a
4901 * valid NUL; if not, then we've hit the end of the buffer.
4902 */
4903 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4904 /* This was really a NUL. */
4905 *(yy_c_buf_p) = '\0';
4906
4907 else
4908 { /* need more input */
4909 int offset = (yy_c_buf_p) - (yytext_ptr);
4910 ++(yy_c_buf_p);
4911
4912 switch ( yy_get_next_buffer( ) )
4913 {
4914 case EOB_ACT_LAST_MATCH:
4915 /* This happens because yy_g_n_b()
4916 * sees that we've accumulated a
4917 * token and flags that we need to
4918 * try matching the token before
4919 * proceeding. But for input(),
4920 * there's no matching to consider.
4921 * So convert the EOB_ACT_LAST_MATCH
4922 * to EOB_ACT_END_OF_FILE.
4923 */
4924
4925 /* Reset buffer status. */
4926 yyrestart(yyin );
4927
4928 /*FALLTHROUGH*/
4929
4930 case EOB_ACT_END_OF_FILE:
4931 {
4932 if ( yywrap( ) )
4933 return EOF;
4934
4935 if ( ! (yy_did_buffer_switch_on_eof) )
4936 YY_NEW_FILE;
4937 #ifdef __cplusplus
4938 return yyinput();
4939 #else
4940 return input();
4941 #endif
4942 }
4943
4944 case EOB_ACT_CONTINUE_SCAN:
4945 (yy_c_buf_p) = (yytext_ptr) + offset;
4946 break;
4947 }
4948 }
4949 }
4950
4951 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4952 *(yy_c_buf_p) = '\0'; /* preserve yytext */
4953 (yy_hold_char) = *++(yy_c_buf_p);
4954
4955 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4956
4957 return c;
4958 }
4959 #endif /* ifndef YY_NO_INPUT */
4960
4961 /** Immediately switch to a different input stream.
4962 * @param input_file A readable stream.
4963 *
4964 * @note This function does not reset the start condition to @c INITIAL .
4965 */
4966 void yyrestart (FILE * input_file )
4967 {
4968
4969 if ( ! YY_CURRENT_BUFFER ){
4970 yyensure_buffer_stack ();
4971 YY_CURRENT_BUFFER_LVALUE =
4972 yy_create_buffer(yyin,YY_BUF_SIZE );
4973 }
4974
4975 yy_init_buffer(YY_CURRENT_BUFFER,input_file );
4976 yy_load_buffer_state( );
4977 }
4978
4979 /** Switch to a different input buffer.
4980 * @param new_buffer The new input buffer.
4981 *
4982 */
4983 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
4984 {
4985
4986 /* TODO. We should be able to replace this entire function body
4987 * with
4988 * yypop_buffer_state();
4989 * yypush_buffer_state(new_buffer);
4990 */
4991 yyensure_buffer_stack ();
4992 if ( YY_CURRENT_BUFFER == new_buffer )
4993 return;
4994
4995 if ( YY_CURRENT_BUFFER )
4996 {
4997 /* Flush out information for old buffer. */
4998 *(yy_c_buf_p) = (yy_hold_char);
4999 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5000 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5001 }
5002
5003 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5004 yy_load_buffer_state( );
5005
5006 /* We don't actually know whether we did this switch during
5007 * EOF (yywrap()) processing, but the only time this flag
5008 * is looked at is after yywrap() is called, so it's safe
5009 * to go ahead and always set it.
5010 */
5011 (yy_did_buffer_switch_on_eof) = 1;
5012 }
5013
5014 static void yy_load_buffer_state (void)
5015 {
5016 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5017 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5018 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5019 (yy_hold_char) = *(yy_c_buf_p);
5020 }
5021
5022 /** Allocate and initialize an input buffer state.
5023 * @param file A readable stream.
5024 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
5025 *
5026 * @return the allocated buffer state.
5027 */
5028 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
5029 {
5030 YY_BUFFER_STATE b;
5031
5032 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
5033 if ( ! b )
5034 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5035
5036 b->yy_buf_size = size;
5037
5038 /* yy_ch_buf has to be 2 characters longer than the size given because
5039 * we need to put in 2 end-of-buffer characters.
5040 */
5041 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
5042 if ( ! b->yy_ch_buf )
5043 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5044
5045 b->yy_is_our_buffer = 1;
5046
5047 yy_init_buffer(b,file );
5048
5049 return b;
5050 }
5051
5052 /** Destroy the buffer.
5053 * @param b a buffer created with yy_create_buffer()
5054 *
5055 */
5056 void yy_delete_buffer (YY_BUFFER_STATE b )
5057 {
5058
5059 if ( ! b )
5060 return;
5061
5062 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5063 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
5064
5065 if ( b->yy_is_our_buffer )
5066 yyfree((void *) b->yy_ch_buf );
5067
5068 yyfree((void *) b );
5069 }
5070
5071 #ifndef __cplusplus
5072 extern int isatty (int );
5073 #endif /* __cplusplus */
5074
5075 /* Initializes or reinitializes a buffer.
5076 * This function is sometimes called more than once on the same buffer,
5077 * such as during a yyrestart() or at EOF.
5078 */
5079 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5080
5081 {
5082 int oerrno = errno;
5083
5084 yy_flush_buffer(b );
5085
5086 b->yy_input_file = file;
5087 b->yy_fill_buffer = 1;
5088
5089 /* If b is the current buffer, then yy_init_buffer was _probably_
5090 * called from yyrestart() or through yy_get_next_buffer.
5091 * In that case, we don't want to reset the lineno or column.
5092 */
5093 if (b != YY_CURRENT_BUFFER){
5094 b->yy_bs_lineno = 1;
5095 b->yy_bs_column = 0;
5096 }
5097
5098 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5099
5100 errno = oerrno;
5101 }
5102
5103 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
5104 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
5105 *
5106 */
5107 void yy_flush_buffer (YY_BUFFER_STATE b )
5108 {
5109 if ( ! b )
5110 return;
5111
5112 b->yy_n_chars = 0;
5113
5114 /* We always need two end-of-buffer characters. The first causes
5115 * a transition to the end-of-buffer state. The second causes
5116 * a jam in that state.
5117 */
5118 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5119 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5120
5121 b->yy_buf_pos = &b->yy_ch_buf[0];
5122
5123 b->yy_at_bol = 1;
5124 b->yy_buffer_status = YY_BUFFER_NEW;
5125
5126 if ( b == YY_CURRENT_BUFFER )
5127 yy_load_buffer_state( );
5128 }
5129
5130 /** Pushes the new state onto the stack. The new state becomes
5131 * the current state. This function will allocate the stack
5132 * if necessary.
5133 * @param new_buffer The new state.
5134 *
5135 */
5136 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
5137 {
5138 if (new_buffer == NULL)
5139 return;
5140
5141 yyensure_buffer_stack();
5142
5143 /* This block is copied from yy_switch_to_buffer. */
5144 if ( YY_CURRENT_BUFFER )
5145 {
5146 /* Flush out information for old buffer. */
5147 *(yy_c_buf_p) = (yy_hold_char);
5148 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5149 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5150 }
5151
5152 /* Only push if top exists. Otherwise, replace top. */
5153 if (YY_CURRENT_BUFFER)
5154 (yy_buffer_stack_top)++;
5155 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5156
5157 /* copied from yy_switch_to_buffer. */
5158 yy_load_buffer_state( );
5159 (yy_did_buffer_switch_on_eof) = 1;
5160 }
5161
5162 /** Removes and deletes the top of the stack, if present.
5163 * The next element becomes the new top.
5164 *
5165 */
5166 void yypop_buffer_state (void)
5167 {
5168 if (!YY_CURRENT_BUFFER)
5169 return;
5170
5171 yy_delete_buffer(YY_CURRENT_BUFFER );
5172 YY_CURRENT_BUFFER_LVALUE = NULL;
5173 if ((yy_buffer_stack_top) > 0)
5174 --(yy_buffer_stack_top);
5175
5176 if (YY_CURRENT_BUFFER) {
5177 yy_load_buffer_state( );
5178 (yy_did_buffer_switch_on_eof) = 1;
5179 }
5180 }
5181
5182 /* Allocates the stack if it does not exist.
5183 * Guarantees space for at least one push.
5184 */
5185 static void yyensure_buffer_stack (void)
5186 {
5187 int num_to_alloc;
5188
5189 if (!(yy_buffer_stack)) {
5190
5191 /* First allocation is just for 2 elements, since we don't know if this
5192 * scanner will even need a stack. We use 2 instead of 1 to avoid an
5193 * immediate realloc on the next call.
5194 */
5195 num_to_alloc = 1;
5196 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
5197 (num_to_alloc * sizeof(struct yy_buffer_state*)
5198 );
5199
5200 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5201
5202 (yy_buffer_stack_max) = num_to_alloc;
5203 (yy_buffer_stack_top) = 0;
5204 return;
5205 }
5206
5207 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
5208
5209 /* Increase the buffer to prepare for a possible push. */
5210 int grow_size = 8 /* arbitrary grow size */;
5211
5212 num_to_alloc = (yy_buffer_stack_max) + grow_size;
5213 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
5214 ((yy_buffer_stack),
5215 num_to_alloc * sizeof(struct yy_buffer_state*)
5216 );
5217
5218 /* zero only the new slots.*/
5219 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
5220 (yy_buffer_stack_max) = num_to_alloc;
5221 }
5222 }
5223
5224 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5225 * @param base the character buffer
5226 * @param size the size in bytes of the character buffer
5227 *
5228 * @return the newly allocated buffer state object.
5229 */
5230 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
5231 {
5232 YY_BUFFER_STATE b;
5233
5234 if ( size < 2 ||
5235 base[size-2] != YY_END_OF_BUFFER_CHAR ||
5236 base[size-1] != YY_END_OF_BUFFER_CHAR )
5237 /* They forgot to leave room for the EOB's. */
5238 return 0;
5239
5240 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
5241 if ( ! b )
5242 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5243
5244 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
5245 b->yy_buf_pos = b->yy_ch_buf = base;
5246 b->yy_is_our_buffer = 0;
5247 b->yy_input_file = 0;
5248 b->yy_n_chars = b->yy_buf_size;
5249 b->yy_is_interactive = 0;
5250 b->yy_at_bol = 1;
5251 b->yy_fill_buffer = 0;
5252 b->yy_buffer_status = YY_BUFFER_NEW;
5253
5254 yy_switch_to_buffer(b );
5255
5256 return b;
5257 }
5258
5259 /** Setup the input buffer state to scan a string. The next call to yylex() will
5260 * scan from a @e copy of @a str.
5261 * @param str a NUL-terminated string to scan
5262 *
5263 * @return the newly allocated buffer state object.
5264 * @note If you want to scan bytes that may contain NUL values, then use
5265 * yy_scan_bytes() instead.
5266 */
5267 YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str )
5268 {
5269
5270 return yy_scan_bytes(yy_str,strlen(yy_str) );
5271 }
5272
5273 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5274 * scan from a @e copy of @a bytes.
5275 * @param bytes the byte buffer to scan
5276 * @param len the number of bytes in the buffer pointed to by @a bytes.
5277 *
5278 * @return the newly allocated buffer state object.
5279 */
5280 YY_BUFFER_STATE yy_scan_bytes (yyconst char * bytes, int len )
5281 {
5282 YY_BUFFER_STATE b;
5283 char *buf;
5284 yy_size_t n;
5285 int i;
5286
5287 /* Get memory for full buffer, including space for trailing EOB's. */
5288 n = len + 2;
5289 buf = (char *) yyalloc(n );
5290 if ( ! buf )
5291 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5292
5293 for ( i = 0; i < len; ++i )
5294 buf[i] = bytes[i];
5295
5296 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
5297
5298 b = yy_scan_buffer(buf,n );
5299 if ( ! b )
5300 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5301
5302 /* It's okay to grow etc. this buffer, and we should throw it
5303 * away when we're done.
5304 */
5305 b->yy_is_our_buffer = 1;
5306
5307 return b;
5308 }
5309
5310 static void yy_push_state (int new_state )
5311 {
5312 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
5313 {
5314 yy_size_t new_size;
5315
5316 (yy_start_stack_depth) += YY_START_STACK_INCR;
5317 new_size = (yy_start_stack_depth) * sizeof( int );
5318
5319 if ( ! (yy_start_stack) )
5320 (yy_start_stack) = (int *) yyalloc(new_size );
5321
5322 else
5323 (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size );
5324
5325 if ( ! (yy_start_stack) )
5326 YY_FATAL_ERROR(
5327 "out of memory expanding start-condition stack" );
5328 }
5329
5330 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
5331
5332 BEGIN(new_state);
5333 }
5334
5335 static void yy_pop_state (void)
5336 {
5337 if ( --(yy_start_stack_ptr) < 0 )
5338 YY_FATAL_ERROR( "start-condition stack underflow" );
5339
5340 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
5341 }
5342
5343 static int yy_top_state (void)
5344 {
5345 return (yy_start_stack)[(yy_start_stack_ptr) - 1];
5346 }
5347
5348 #ifndef YY_EXIT_FAILURE
5349 #define YY_EXIT_FAILURE 2
5350 #endif
5351
5352 static void yy_fatal_error (yyconst char* msg )
5353 {
5354 (void) fprintf( stderr, "%s\n", msg );
5355 exit( YY_EXIT_FAILURE );
5356 }
5357
5358 /* Redefine yyless() so it works in section 3 code. */
5359
5360 #undef yyless
5361 #define yyless(n) \
5362 do \
5363 { \
5364 /* Undo effects of setting up yytext. */ \
5365 int yyless_macro_arg = (n); \
5366 YY_LESS_LINENO(yyless_macro_arg);\
5367 yytext[yyleng] = (yy_hold_char); \
5368 (yy_c_buf_p) = yytext + yyless_macro_arg; \
5369 (yy_hold_char) = *(yy_c_buf_p); \
5370 *(yy_c_buf_p) = '\0'; \
5371 yyleng = yyless_macro_arg; \
5372 } \
5373 while ( 0 )
5374
5375 /* Accessor methods (get/set functions) to struct members. */
5376
5377 /** Get the current line number.
5378 *
5379 */
5380 int yyget_lineno (void)
5381 {
5382
5383 return yylineno;
5384 }
5385
5386 /** Get the input stream.
5387 *
5388 */
5389 FILE *yyget_in (void)
5390 {
5391 return yyin;
5392 }
5393
5394 /** Get the output stream.
5395 *
5396 */
5397 FILE *yyget_out (void)
5398 {
5399 return yyout;
5400 }
5401
5402 /** Get the length of the current token.
5403 *
5404 */
5405 int yyget_leng (void)
5406 {
5407 return yyleng;
5408 }
5409
5410 /** Get the current token.
5411 *
5412 */
5413
5414 char *yyget_text (void)
5415 {
5416 return yytext;
5417 }
5418
5419 /** Set the current line number.
5420 * @param line_number
5421 *
5422 */
5423 void yyset_lineno (int line_number )
5424 {
5425
5426 yylineno = line_number;
5427 }
5428
5429 /** Set the input stream. This does not discard the current
5430 * input buffer.
5431 * @param in_str A readable stream.
5432 *
5433 * @see yy_switch_to_buffer
5434 */
5435 void yyset_in (FILE * in_str )
5436 {
5437 yyin = in_str ;
5438 }
5439
5440 void yyset_out (FILE * out_str )
5441 {
5442 yyout = out_str ;
5443 }
5444
5445 int yyget_debug (void)
5446 {
5447 return yy_flex_debug;
5448 }
5449
5450 void yyset_debug (int bdebug )
5451 {
5452 yy_flex_debug = bdebug ;
5453 }
5454
5455 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
5456 int yylex_destroy (void)
5457 {
5458
5459 /* Pop the buffer stack, destroying each element. */
5460 while(YY_CURRENT_BUFFER){
5461 yy_delete_buffer(YY_CURRENT_BUFFER );
5462 YY_CURRENT_BUFFER_LVALUE = NULL;
5463 yypop_buffer_state();
5464 }
5465
5466 /* Destroy the stack itself. */
5467 yyfree((yy_buffer_stack) );
5468 (yy_buffer_stack) = NULL;
5469
5470 /* Destroy the start condition stack. */
5471 yyfree((yy_start_stack) );
5472 (yy_start_stack) = NULL;
5473
5474 return 0;
5475 }
5476
5477 /*
5478 * Internal utility routines.
5479 */
5480
5481 #ifndef yytext_ptr
5482 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
5483 {
5484 register int i;
5485 for ( i = 0; i < n; ++i )
5486 s1[i] = s2[i];
5487 }
5488 #endif
5489
5490 #ifdef YY_NEED_STRLEN
5491 static int yy_flex_strlen (yyconst char * s )
5492 {
5493 register int n;
5494 for ( n = 0; s[n]; ++n )
5495 ;
5496
5497 return n;
5498 }
5499 #endif
5500
5501 void *yyalloc (yy_size_t size )
5502 {
5503 return (void *) malloc( size );
5504 }
5505
5506 void *yyrealloc (void * ptr, yy_size_t size )
5507 {
5508 /* The cast to (char *) in the following accommodates both
5509 * implementations that use char* generic pointers, and those
5510 * that use void* generic pointers. It works with the latter
5511 * because both ANSI C and C++ allow castless assignment from
5512 * any pointer type to void*, and deal with argument conversions
5513 * as though doing an assignment.
5514 */
5515 return (void *) realloc( (char *) ptr, size );
5516 }
5517
5518 void yyfree (void * ptr )
5519 {
5520 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
5521 }
5522
5523 #define YYTABLES_NAME "yytables"
5524
5525 #undef YY_NEW_FILE
5526 #undef YY_FLUSH_BUFFER
5527 #undef yy_set_bol
5528 #undef yy_new_buffer
5529 #undef yy_set_interactive
5530 #undef yytext_ptr
5531 #undef YY_DO_BEFORE_ACTION
5532
5533 #ifdef YY_DECL_IS_OURS
5534 #undef YY_DECL_IS_OURS
5535 #undef YY_DECL
5536 #endif
5537 #line 1263 "loader.l"
5538
5539
5540
5541
5542 int yyerror(char *s)
5543 {
5544 LOG(llevError, "%s: %s\n", s, yytext);
5545 return -1;
5546 }
5547
5548
5549 /* Our save file syntax is very simple, so we can use a very simple
5550 * processing mechanism here instead using something like bison
5551 * This skips over the space and returns the value, or "" if no value
5552 * is found. Modified 4/26/2000 to also strip spaces at end of
5553 * line
5554 */
5555 static char *yval()
5556 {
5557 static char *em="";
5558 char *cp,*end;
5559
5560 /* First skip over start of line, like animation or name */
5561 for (cp=yytext; *cp!=' '; cp++) {
5562 if (*cp=='\0') {
5563 return em;
5564 }
5565 }
5566
5567 /* Skip over whitespace */
5568 for (; *cp==' '; cp++) {
5569 if (*cp=='\0') {
5570 return em;
5571 }
5572 }
5573 /* Got last character before null and strip
5574 * off tailing whitespace
5575 */
5576 for (end=cp+strlen(cp)-1; *end==' '; end--) {
5577 if (end==cp) return em;
5578 *end='\0';
5579 }
5580 return cp;
5581 }
5582
5583
5584 /*
5585 * Loads an object from the given file-pointer.
5586 * Variables will be read and parsed and patched into the object
5587 * until the string "end" is reached, or the end of the file.
5588 *
5589 * bufstat is used to determine various file attributes:
5590 * LO_REPATE (0): We are reading from the same buffer as the last call.
5591 * LO_LINEMODE (1): file that is being read from is multi purpose (ie, other functions
5592 * will also be reading from this (treasure file, artifacts.)
5593 * LO_NEWFILE (2): This is the first read from a particular file, so the buffers should
5594 * be reset.
5595 * LO_NOREAD (3): Reset the buffers, but don't read from it. (op can be null)
5596 *
5597 */
5598
5599 int load_object(FILE *fp, object *op, int bufstate, int map_flags) {
5600 int retval;
5601 char inbuf[MAX_BUF];
5602
5603 strcpy(msgbuf, "");
5604 strcpy(lorebuf, "");
5605 if (bufstate==LO_NEWFILE || bufstate==LO_NOREAD) {
5606 /* LOG(llevDebug,"Switching lex buffers\n");*/
5607 yy_delete_buffer(YY_CURRENT_BUFFER);
5608 yy_switch_to_buffer(yy_create_buffer(fp,YY_BUF_SIZE));
5609 if (bufstate==LO_NOREAD) return LL_NORMAL;
5610 }
5611 if (bufstate==LO_LINEMODE) {
5612 YY_BUFFER_STATE yybufstate;
5613 while (fgets(inbuf, MAX_BUF-3, fp)) {
5614 yybufstate=yy_scan_string(inbuf);
5615 retval=lex_load(op, map_flags);
5616 yy_delete_buffer(yybufstate);
5617 if (retval==LL_NORMAL) return retval;
5618 }
5619 LOG(llevDebug,"Got eof while scanning strings\n");
5620 return LL_EOF;
5621 }
5622
5623 retval=lex_load(op, map_flags);
5624 if (op->current_weapon_script != NULL)
5625 {
5626 op->current_weapon = find_best_weapon_used_match(op, op->current_weapon_script);
5627 LOG(llevDebug, "CurrentWeapon Loaded !\n");
5628 };
5629
5630 /* LOG(llevDebug," load completed, object=%s\n",op->name);*/
5631 return retval;
5632 }
5633
5634
5635 /* This takes a buffer, scans it for variables, and sets those variables
5636 * as appropriate in op.
5637 *
5638 * This function appears to be used in only 2 places - in crossedit to
5639 * override values and in c_wiz to mutate values.
5640 */
5641 int set_variable(object *op,char *buf) {
5642 YY_BUFFER_STATE yybufstate,yycurbuf=YY_CURRENT_BUFFER;
5643 int retval;
5644
5645 strcpy(msgbuf, "");
5646 strcpy(lorebuf, "");
5647 yy_push_state(INITIAL);
5648 yybufstate=yy_scan_string(buf);
5649 retval=lex_load(op,0);
5650 yy_switch_to_buffer(yycurbuf);
5651 yy_delete_buffer(yybufstate);
5652 yy_pop_state();
5653 return retval;
5654 }
5655
5656 /* Start of C code */
5657
5658 /* This array equates the FLAG_ values with the V_ values. Use -1 to
5659 * put gaps in the array that should not be processed.
5660 * The order matches the order of the define values in 'define.h'.
5661 */
5662 /* This is a list of pointers that correspond to the FLAG_.. values.
5663 * This is a simple 1:1 mapping - if FLAG_FRIENDLY is 15, then
5664 * the 15'th element of this array should match that name.
5665 * If an entry is NULL, that is a flag not to loaded/saved.
5666 */
5667 static char *flag_names[NUM_FLAGS+1] = {
5668 "alive", "wiz", NULL, NULL, "was_wiz", "applied", "unpaid",
5669 "can_use_shield", "no_pick", NULL /* walk_on*/, NULL /* no_pass */, /* 10 */
5670 "is_animated", NULL /* slow_move */,
5671 NULL /* flying */, "monster", "friendly", "generator",
5672 "is_thrown", "auto_apply", "treasure", "player sold", /* 20 */
5673 "see_invisible", "can_roll", "overlay_floor",
5674 "is_turnable", NULL /* walk_off */, NULL /* fly_on */,
5675 NULL /*fly_off*/, "is_used_up", "identified", "reflecting", /* 30 */
5676 "changing", "splitting", "hitback", "startequip",
5677 "blocksview", "undead", "scared", "unaggressive",
5678 "reflect_missile", "reflect_spell", /* 40 */
5679 "no_magic", "no_fix_player", "is_lightable", "tear_down",
5680 "run_away", NULL /*pass_thru */, NULL /*can_pass_thru*/,
5681 "pick_up", "unique", "no_drop", /* 50 */
5682 NULL /* wizcast*/, "can_cast_spell", "can_use_scroll", "can_use_range",
5683 "can_use_bow", "can_use_armour", "can_use_weapon",
5684 "can_use_ring", "has_ready_range", "has_ready_bow", /* 60 */
5685 "xrays", NULL, "is_floor", "lifesave", "no_strength", "sleep",
5686 "stand_still", "random_move", "only_attack", "confused", /* 70 */
5687 "stealth", NULL, NULL, "cursed", "damned",
5688 "see_anywhere", "known_magical", "known_cursed",
5689 "can_use_skill", "been_applied", /* 80 */
5690 "has_ready_scroll", "can_use_rod", NULL,
5691 "can_use_horn", "make_invisible", "inv_locked", "is_wooded",
5692 "is_hilly", "has_ready_skill", "has_ready_weapon", /* 90 */
5693 "no_skill_ident", "is_blind", "can_see_in_dark", "is_cauldron",
5694 "is_dust", "no_steal", "one_hit", NULL, "berserk", "neutral", /* 100 */
5695 "no_attack", "no_damage", NULL, NULL, "activate_on_push",
5696 "activate_on_release", "is_water", "use_content_on_gen", NULL, "is_buildable", /* 110 */
5697 NULL
5698 };
5699
5700
5701 void save_double(char *buf,char *name,double v)
5702 {
5703 char tbuf[200];
5704
5705 sprintf(tbuf,"%s %f\n",name,v);
5706 strcat(buf,tbuf);
5707 }
5708
5709 /*
5710 * Initialises the array of variable-names. Needed before any
5711 * objects can be loaded. Called by init_library().
5712 */
5713
5714 void init_vars() {
5715 }
5716
5717 /*For get_ob_diff speed reason*/
5718 typedef struct {
5719 char* name;
5720 int length;
5721 }genericname;
5722 static genericname evtnames[13]=
5723 {
5724 {"event_none ",11},
5725 {"event_apply ",12},
5726 {"event_attack ",13},
5727 {"event_death ",12},
5728 {"event_drop ",11},
5729 {"event_pickup ",13},
5730 {"event_say ",10},
5731 {"event_stop ",11},
5732 {"event_time ",11},
5733 {"event_throw ",12},
5734 {"event_trigger ",14},
5735 {"event_close ",12},
5736 {"event_timer ",12}
5737 } ;
5738
5739 static genericname plgnames[13]=
5740 {
5741 {"event_none_plugin ",18},
5742 {"event_apply_plugin ",19},
5743 {"event_attack_plugin ",20},
5744 {"event_death_plugin ",19},
5745 {"event_drop_plugin ",18},
5746 {"event_pickup_plugin ",20},
5747 {"event_say_plugin ",17},
5748 {"event_stop_plugin ",18},
5749 {"event_time_plugin ",18},
5750 {"event_throw_plugin ",19},
5751 {"event_trigger_plugin ",21},
5752 {"event_close_plugin ",19},
5753 {"event_timer_plugin ",19}
5754 };
5755
5756 static genericname plgoptions[13]=
5757 {
5758 {"event_none_options ",19},
5759 {"event_apply_options ",20},
5760 {"event_attack_options ",21},
5761 {"event_death_options ",20},
5762 {"event_drop_options ",19},
5763 {"event_pickup_options ",21},
5764 {"event_say_options ",18},
5765 {"event_stop_options ",19},
5766 {"event_time_options ",19},
5767 {"event_throw_options ",20},
5768 {"event_trigger_options ",22},
5769 {"event_close_options ",20},
5770 {"event_timer_options ",20}
5771 };
5772
5773 /*
5774 * Returns a pointer to a static string which contains all variables
5775 * which are different in the two given objects. op is the what object
5776 * the different values will be taken from. This function is
5777 * typically used to dump objects (op2=empty object), or to save objects
5778 * (op2 is the objects original archetype)
5779 * Note by MSW 2003-09-22: It's a bug that we need to pass entrysize -
5780 * we should use strlen entryname instead. Any smart compiler should
5781 * optimize that out.
5782 */
5783
5784
5785 /*static int eol_size=strlen("\n");*/
5786 static int eol_size=sizeof("\n")-1; /*Substract 1 to suppress terminal 0*/
5787 #define ADD_STRINGLINE_ENTRY(buf__,entryname__,entryvalue__,entrysize__){\
5788 FAST_STRNCAT(buf__,entryname__,entrysize__);\
5789 FAST_STRCAT(buf__,entryvalue__);\
5790 FAST_STRNCAT(buf__,"\n",eol_size);}
5791 #define FAST_SAVE_LONG(buf__,entryname__,entryvalue__,entrysize__) \
5792 ADD_STRINGLINE_ENTRY(buf__,entryname__,ltostr10(entryvalue__),entrysize__)
5793 #define FAST_SAVE_DOUBLE(buf__,entryname__,entryvalue__,entrysize__) \
5794 ADD_STRINGLINE_ENTRY(buf__,entryname__,doubletostr10(entryvalue__),entrysize__)
5795
5796
5797
5798 char *get_ob_diff(object *op,object *op2) {/* I plan to optimize this heavily */
5799
5800 /* Too late, have done it already :P
5801 * Tchize
5802 */
5803
5804 /*
5805 * A bit of explantion on strings handling in this function:
5806 * buf is never null terminated until the end. So
5807 * works only with buf2 and fastbuf. What concern fastbuf,
5808 * use ONLY through the FAST macros. Classical C string handling
5809 * functions will fail since it is a pointer to the end of the
5810 * string.
5811 * NEVER touch buf between PREPARE_FASTCAT(buf) and
5812 * FINISH_FASTCAT(buf)
5813 */
5814 static int already_run = 0;
5815 static int flag_lens[NUM_FLAGS];
5816 static char buf2[HUGE_BUF];
5817 static char buf[HUGE_BUF];
5818 char* fastbuf;
5819 int tmp;
5820 int i;
5821 #if 0
5822 /*Memory polluting code. Should help detect problems, very slow*/
5823 for (i=0;i<HUGE_BUF;i++){
5824 buf[i]='a'+(unsigned short)(i%25);
5825 }
5826 #endif
5827 event *etmp;
5828 event *etmp2;
5829 key_value * my_field;
5830 key_value * arch_field;
5831
5832 /*first init this function if first call*/
5833 if (!already_run){
5834 for (i=0;i<NUM_FLAGS;i++)
5835 flag_lens[i]=flag_names[i]?strlen(flag_names[i]):0; /* some flags may be null? :/*/
5836 already_run=1;
5837 }
5838 buf[0]='\0';
5839 fastbuf=PREPARE_FASTCAT(buf);
5840
5841 /* This saves the key/value lists. We do it first so that any
5842 * keys that match field names will be overwritten by the loader.
5843 */
5844 for (my_field = op->key_values; my_field != NULL; my_field = my_field->next) {
5845 /* Find the field in the opposing member. */
5846 arch_field = get_ob_key_link(op2, my_field->key);
5847
5848 /* If there's no partnering field, or it's got a different value, save our field. */
5849 if (arch_field == NULL || my_field->value != arch_field->value) {
5850 FAST_STRCAT(fastbuf, my_field->key);
5851 FAST_STRNCAT(fastbuf, " ", 1);
5852 /* If this is null, then saving it as a space should
5853 * cause it to be null again.
5854 */
5855 if (my_field->value) FAST_STRCAT(fastbuf, my_field->value);
5856 FAST_STRNCAT(fastbuf, "\n", eol_size);
5857 }
5858 }
5859 /* We don't need to worry about the arch's extra fields - they
5860 * will get taken care of the copy_object function.
5861 */
5862
5863
5864 if(op->name && op->name!=op2->name) {
5865 ADD_STRINGLINE_ENTRY(fastbuf,"name ",op->name,5);
5866 }
5867 if(op->name_pl && op->name_pl!=op2->name_pl) {
5868 ADD_STRINGLINE_ENTRY(fastbuf,"name_pl ",op->name_pl,8);
5869 }
5870 if(op->custom_name && op->custom_name!=op2->custom_name) {
5871 ADD_STRINGLINE_ENTRY(fastbuf,"custom_name ",op->custom_name,12);
5872 }
5873 if(op->title && op->title!=op2->title) {
5874 ADD_STRINGLINE_ENTRY(fastbuf,"title ",op->title,6);
5875 }
5876 if(op->race && op->race!=op2->race) {
5877 ADD_STRINGLINE_ENTRY(fastbuf,"race ",op->race,5);
5878 }
5879 if(op->slaying && op->slaying!=op2->slaying) {
5880 ADD_STRINGLINE_ENTRY(fastbuf,"slaying ",op->slaying,8);
5881 }
5882 if(op->skill && op->skill!=op2->skill) {
5883 ADD_STRINGLINE_ENTRY(fastbuf,"skill ",op->skill,6);
5884 }
5885 if(op->msg && op->msg!=op2->msg) {
5886 FAST_STRNCAT(fastbuf,"msg\n",3+eol_size);
5887 FAST_STRCAT(fastbuf,op->msg);
5888 FAST_STRNCAT(fastbuf,"endmsg\n",6+eol_size);
5889 }
5890 if(op->lore && op->lore!=op2->lore) {
5891 FAST_STRNCAT(fastbuf,"lore\n",4+eol_size);
5892 FAST_STRCAT(fastbuf,op->lore);
5893 FAST_STRNCAT(fastbuf,"endlore\n",7+eol_size);
5894
5895 }
5896 if(op->other_arch!=op2->other_arch&&op->other_arch!=NULL &&
5897 op->other_arch->name) {
5898 ADD_STRINGLINE_ENTRY(fastbuf,"other_arch ",op->other_arch->name,11);
5899 }
5900 if(op->face!=op2->face) {
5901 ADD_STRINGLINE_ENTRY(fastbuf,"face ",op->face->name,5);
5902 }
5903
5904 for(etmp=op->events;etmp!=NULL;etmp=etmp->next)
5905 {
5906 /* First we find the event for the reference object */
5907 etmp2=find_event(op2,etmp->type);
5908 if ((etmp->hook != NULL) && ((etmp2 == NULL) || (etmp2->hook == NULL) || (strcmp(etmp2->hook,etmp->hook))))
5909 /* Either there's no matching event in the reference object,
5910 * or the hook is different */
5911 {
5912 ADD_STRINGLINE_ENTRY(fastbuf,evtnames[etmp->type].name,etmp->hook,evtnames[etmp->type].length);
5913 }
5914 if ((etmp->plugin != NULL) && ((etmp2 == NULL) || (etmp2->plugin == NULL) || (strcmp(etmp2->plugin,etmp->plugin))))
5915 {
5916
5917 ADD_STRINGLINE_ENTRY(fastbuf,plgnames[etmp->type].name,etmp->plugin,plgnames[etmp->type].length);
5918 }
5919 if ((etmp->options != NULL) && ((etmp2 == NULL) || (etmp2->options == NULL) || (strcmp(etmp2->options,etmp->options))))
5920 {
5921 ADD_STRINGLINE_ENTRY(fastbuf,plgoptions[etmp->type].name,etmp->options,plgoptions[etmp->type].length);
5922 }
5923
5924 }
5925
5926 if (op->animation_id != op2->animation_id) {
5927 if (op->animation_id) {
5928 ADD_STRINGLINE_ENTRY(fastbuf,"animation ",animations[GET_ANIM_ID(op)].name,10);
5929 if ( ! QUERY_FLAG (op, FLAG_ANIMATE)) {
5930 FAST_STRNCAT(fastbuf,"is_animated 0\n",13+eol_size);
5931 }
5932 } else {
5933 FAST_STRNCAT(fastbuf,"animation NONE\n",14+eol_size);
5934 }
5935 }
5936 if(op->stats.Str!=op2->stats.Str)
5937 FAST_SAVE_LONG(fastbuf,"Str ",op->stats.Str,4);
5938 if(op->stats.Dex!=op2->stats.Dex)
5939 FAST_SAVE_LONG(fastbuf,"Dex ",op->stats.Dex,4);
5940 if(op->stats.Con!=op2->stats.Con)
5941 FAST_SAVE_LONG(fastbuf,"Con ",op->stats.Con,4);
5942 if(op->stats.Wis!=op2->stats.Wis)
5943 FAST_SAVE_LONG(fastbuf,"Wis ",op->stats.Wis,4);
5944 if(op->stats.Pow!=op2->stats.Pow)
5945 FAST_SAVE_LONG(fastbuf,"Pow ",op->stats.Pow,4);
5946 if(op->stats.Cha!=op2->stats.Cha)
5947 FAST_SAVE_LONG(fastbuf,"Cha ",op->stats.Cha,4);
5948 if(op->stats.Int!=op2->stats.Int)
5949 FAST_SAVE_LONG(fastbuf,"Int ",op->stats.Int,4);
5950 if(op->stats.hp!=op2->stats.hp)
5951 FAST_SAVE_LONG(fastbuf,"hp ",op->stats.hp,3);
5952 if(op->stats.maxhp!=op2->stats.maxhp)
5953 FAST_SAVE_LONG(fastbuf,"maxhp ",op->stats.maxhp,6);
5954 if(op->stats.sp!=op2->stats.sp)
5955 FAST_SAVE_LONG(fastbuf,"sp ",op->stats.sp,3);
5956 if(op->stats.maxsp!=op2->stats.maxsp)
5957 FAST_SAVE_LONG(fastbuf,"maxsp ",op->stats.maxsp,6);
5958 if(op->stats.grace!=op2->stats.grace)
5959 FAST_SAVE_LONG(fastbuf,"grace ",op->stats.grace,6);
5960 if(op->stats.maxgrace!=op2->stats.maxgrace)
5961 FAST_SAVE_LONG(fastbuf,"maxgrace ",op->stats.maxgrace,9);
5962
5963 if(op->stats.exp!=op2->stats.exp) {
5964 #ifndef WIN32
5965 sprintf(buf2,"%lld\n", op->stats.exp);
5966 #else
5967 sprintf(buf2,"%I64d\n", op->stats.exp);
5968 #endif
5969 ADD_STRINGLINE_ENTRY(fastbuf,"exp ", buf2, 4);
5970 }
5971
5972 if(op->perm_exp!=op2->perm_exp) {
5973 #ifndef WIN32
5974 sprintf(buf2,"%lld\n", op->perm_exp);
5975 #else
5976 sprintf(buf2,"%I64d\n", op->perm_exp);
5977 #endif
5978 ADD_STRINGLINE_ENTRY(fastbuf,"perm_exp ", buf2, 9);
5979 }
5980
5981 if(op->expmul!=op2->expmul)
5982 FAST_SAVE_DOUBLE(fastbuf,"expmul ",op->expmul,7);
5983 if(op->stats.food!=op2->stats.food)
5984 FAST_SAVE_LONG(fastbuf,"food ",op->stats.food,5);
5985 if(op->stats.dam!=op2->stats.dam)
5986 FAST_SAVE_LONG(fastbuf,"dam ",op->stats.dam,4);
5987 if(op->stats.luck!=op2->stats.luck)
5988 FAST_SAVE_LONG(fastbuf,"luck ",op->stats.luck,5);
5989 if(op->stats.wc!=op2->stats.wc)
5990 FAST_SAVE_LONG(fastbuf,"wc ",op->stats.wc,3);
5991 if(op->stats.ac!=op2->stats.ac)
5992 FAST_SAVE_LONG(fastbuf,"ac ",op->stats.ac,3);
5993 if(op->x!=op2->x)
5994 FAST_SAVE_LONG(fastbuf,"x ",op->x,2);
5995 if(op->y!=op2->y)
5996 FAST_SAVE_LONG(fastbuf,"y ",op->y,2);
5997 if(op->speed!=op2->speed) {
5998 FAST_SAVE_DOUBLE(fastbuf,"speed ",op->speed,6);
5999 }
6000 if(op->speed > 0 && op->speed_left!=op2->speed_left) {
6001 FAST_SAVE_DOUBLE(fastbuf,"speed_left ",op->speed_left,11);
6002 }
6003 if(op->move_status != op2->move_status)
6004 FAST_SAVE_LONG(fastbuf,"move_state ",op->move_status,11);
6005 if(op->attack_movement != op2->attack_movement)
6006 FAST_SAVE_LONG(fastbuf,"attack_movement ",op->attack_movement,16);
6007 if(op->nrof!=op2->nrof)
6008 FAST_SAVE_LONG(fastbuf,"nrof ",op->nrof,5);
6009 if(op->level!=op2->level)
6010 FAST_SAVE_LONG(fastbuf,"level ",op->level,6);
6011 if(op->direction!=op2->direction)
6012 FAST_SAVE_LONG(fastbuf,"direction ",op->direction,10);
6013 if(op->type!=op2->type)
6014 FAST_SAVE_LONG(fastbuf,"type ",op->type,5);
6015 if(op->subtype!=op2->subtype)
6016 FAST_SAVE_LONG(fastbuf,"subtype ",op->subtype,8);
6017 if(op->attacktype!=op2->attacktype)
6018 FAST_SAVE_LONG(fastbuf,"attacktype ",op->attacktype,11);
6019
6020 for (tmp=0; tmp < NROFATTACKS; tmp++) {
6021 if (op->resist[tmp] != op2->resist[tmp]) {
6022 FAST_STRNCAT(fastbuf,"resist_",7);
6023 FAST_SAVE_LONG(fastbuf,resist_save[tmp],op->resist[tmp],strlen(resist_save[tmp]));
6024 }
6025 }
6026
6027 if(op->path_attuned!=op2->path_attuned)
6028 FAST_SAVE_LONG(fastbuf,"path_attuned ",op->path_attuned,13);
6029 if(op->path_repelled!=op2->path_repelled)
6030 FAST_SAVE_LONG(fastbuf,"path_repelled ",op->path_repelled,14);
6031 if(op->path_denied!=op2->path_denied)
6032 FAST_SAVE_LONG(fastbuf,"path_denied ",op->path_denied,12);
6033 if(op->material!=op2->material)
6034 FAST_SAVE_LONG(fastbuf,"material ",op->material,9);
6035 if(op->materialname && op->materialname!=op2->materialname) {
6036 ADD_STRINGLINE_ENTRY(fastbuf,"materialname ",op->materialname,13);
6037 }
6038 if(op->value!=op2->value)
6039 FAST_SAVE_LONG(fastbuf,"value ",op->value,6);
6040 if(op->carrying!=op2->carrying)
6041 FAST_SAVE_LONG(fastbuf,"carrying ",op->carrying,9);
6042 if(op->weight!=op2->weight)
6043 FAST_SAVE_LONG(fastbuf,"weight ",op->weight,7);
6044 if(op->invisible!=op2->invisible)
6045 FAST_SAVE_LONG(fastbuf,"invisible ",op->invisible,10);
6046 if(op->state!=op2->state)
6047 FAST_SAVE_LONG(fastbuf,"state ",op->state,6);
6048 if(op->magic!=op2->magic)
6049 FAST_SAVE_LONG(fastbuf,"magic ",op->magic,6);
6050 if(op->last_heal!=op2->last_heal)
6051 FAST_SAVE_LONG(fastbuf,"last_heal ",op->last_heal,10);
6052 if(op->last_sp!=op2->last_sp)
6053 FAST_SAVE_LONG(fastbuf,"last_sp ",op->last_sp,8);
6054 if(op->last_grace!=op2->last_grace)
6055 FAST_SAVE_LONG(fastbuf,"last_grace ",op->last_grace,11);
6056 if(op->last_eat!=op2->last_eat)
6057 FAST_SAVE_LONG(fastbuf,"last_eat ",op->last_eat,9);
6058 if(QUERY_FLAG(op,FLAG_IS_LINKED) && (tmp = get_button_value(op)))
6059 FAST_SAVE_LONG(fastbuf,"connected ",tmp,10);
6060 if(op->glow_radius!=op2->glow_radius)
6061 FAST_SAVE_LONG(fastbuf,"glow_radius ",op->glow_radius,12);
6062 if (op->randomitems!=op2->randomitems) {
6063 ADD_STRINGLINE_ENTRY(fastbuf,"randomitems ",(op->randomitems?op->randomitems->name:"none"),12);
6064 }
6065 #ifdef NPC_PROG
6066 if(op->npc_status!=op2->npc_status)
6067 FAST_SAVE_LONG(fastbuf,"npc_status ",op->npc_status,11);
6068 if(op->npc_program!=op2->npc_program)
6069 FAST_SAVE_LONG(fastbuf,"npc_program ",op->npc_program,12);
6070 #endif
6071
6072
6073 if(op->run_away!=op2->run_away)
6074 FAST_SAVE_LONG(fastbuf,"run_away ",op->run_away,9);
6075 if(op->pick_up!=op2->pick_up)
6076 FAST_SAVE_LONG(fastbuf,"pick_up ",op->pick_up,8);
6077 if(op->weight_limit!=op2->weight_limit)
6078 FAST_SAVE_LONG(fastbuf,"container ",op->weight_limit,10);
6079 if (op->will_apply!=op2->will_apply)
6080 FAST_SAVE_LONG(fastbuf,"will_apply ",op->will_apply,11);
6081 if(op->smoothlevel!=op2->smoothlevel)
6082 FAST_SAVE_LONG(fastbuf,"smoothlevel ",op->smoothlevel,12);
6083
6084 if (op->current_weapon_script!=op2->current_weapon_script){
6085 ADD_STRINGLINE_ENTRY(fastbuf,"current_weapon_script ",op->current_weapon_script,22);
6086 };
6087
6088 if(op->weapontype && op->weapontype!=op2->weapontype) {
6089 FAST_SAVE_LONG(fastbuf,"weapontype ",op->weapontype,11);
6090 }
6091 if(op->tooltype && op->tooltype!=op2->tooltype) {
6092 FAST_SAVE_LONG(fastbuf,"tooltype ",op->tooltype,9);
6093 }
6094 if (op->elevation && op->elevation != op2->elevation) {
6095 FAST_SAVE_LONG(fastbuf,"elevation ",op->elevation,10);
6096 }
6097 if (op->client_type && op->client_type != op2->client_type) {
6098 FAST_SAVE_LONG(fastbuf,"client_type ",op->client_type,12);
6099 }
6100
6101 if (op->item_power != op2->item_power) {
6102 FAST_SAVE_LONG(fastbuf,"item_power ",op->item_power,11);
6103 }
6104
6105 if (op->duration != op2->duration)
6106 FAST_SAVE_LONG(fastbuf,"duration ",op->duration,9);
6107
6108 if (op->range != op2->range)
6109 FAST_SAVE_LONG(fastbuf,"range ",op->range,6);
6110
6111 if (op->range_modifier != op2->range_modifier)
6112 FAST_SAVE_LONG(fastbuf,"range_modifier ",op->range_modifier,15);
6113
6114 if (op->duration_modifier != op2->duration_modifier)
6115 FAST_SAVE_LONG(fastbuf,"duration_modifier ", op->duration_modifier,18);
6116
6117 if (op->dam_modifier != op2->dam_modifier)
6118 FAST_SAVE_LONG(fastbuf,"dam_modifier ", op->dam_modifier,13);
6119
6120 if (op->gen_sp_armour != op2->gen_sp_armour) {
6121 FAST_SAVE_LONG(fastbuf,"gen_sp_armour ",op->gen_sp_armour,14);
6122 }
6123
6124 if (op->move_type != op2->move_type) {
6125 FAST_SAVE_LONG(fastbuf,"move_type ",op->move_type,10);
6126 }
6127
6128 if (op->move_block != op2->move_block) {
6129 FAST_SAVE_LONG(fastbuf,"move_block ",op->move_block,11);
6130 }
6131
6132 if (op->move_on != op2->move_on) {
6133 FAST_SAVE_LONG(fastbuf,"move_on ",op->move_on,8);
6134 }
6135
6136 if (op->move_off != op2->move_off) {
6137 FAST_SAVE_LONG(fastbuf,"move_off ",op->move_off,9);
6138 }
6139 if (op->move_slow != op2->move_slow) {
6140 FAST_SAVE_LONG(fastbuf,"move_slow ",op->move_slow,10);
6141 }
6142
6143 if (op->move_slow_penalty != op2->move_slow_penalty) {
6144 FAST_SAVE_LONG(fastbuf,"move_slow_penalty ",op->move_slow_penalty,18);
6145 }
6146
6147 if (!COMPARE_FLAGS(op,op2)) {
6148 for (tmp=0; tmp <= NUM_FLAGS; tmp++) {
6149 if (flag_names[tmp] && (QUERY_FLAG(op, tmp) != QUERY_FLAG(op2, tmp))) {
6150 ADD_STRINGLINE_ENTRY(fastbuf,flag_names[tmp],QUERY_FLAG(op, tmp)?" 1":" 0",flag_lens[tmp]);
6151 }
6152 }
6153 }
6154
6155 /* Save body locations */
6156 for (i=0; i<NUM_BODY_LOCATIONS; i++) {
6157 if (op->body_info[i] != op2->body_info[i]) {
6158 FAST_STRCAT(fastbuf,body_locations[i].save_name);
6159 FAST_SAVE_LONG(fastbuf," ",op->body_info[i],1);
6160 }
6161 }
6162 FINISH_FASTCAT(fastbuf);
6163 if(buf[0]=='\0') /*did not cat anything...*/
6164 return NULL;
6165
6166 return buf;
6167 }
6168
6169 /*
6170 * Dumps all variables in an object to a file.
6171 * If bit 0 of flag is set, unpaid objects will be saved. As of now,
6172 * the only place this is not set is when saving the player.
6173 * If bit 1 of flag is set, don't remove the object after save. As of now,
6174 * all of the callers are setting this.
6175 */
6176
6177 void save_object(FILE *fp,object *op, int flag) {
6178 archetype *at;
6179 char *cp;
6180 object *tmp,*old;
6181
6182 /* Even if the object does have an owner, it would seem that we should
6183 * still save it.
6184 */
6185 if(op->owner!=NULL || fp == NULL)
6186 return;
6187
6188 /* If it is unpaid and we don't want to save those, just return. */
6189 if(!(flag&1)&&(QUERY_FLAG(op, FLAG_UNPAID))) {
6190 return;
6191 }
6192
6193 if((at=op->arch)==NULL) at=empty_archetype;
6194 fprintf(fp,"arch %s\n",at->name);
6195
6196 if((cp=get_ob_diff(op,&at->clone))!=NULL)
6197 fputs(cp,fp); /* We really should do some status checking on this */
6198
6199 /* Eneq(@csd.uu.se): Added this to allow containers being saved with contents*/
6200
6201 old=NULL;
6202
6203 if (flag & 2 )
6204 for(tmp=op->inv;tmp!=NULL;tmp=tmp->below)
6205 save_object(fp,tmp,flag);
6206
6207 /* Slightly different logic because tmp/op will be removed by
6208 * the save_object we call. So we just keep looking at op->inv
6209 * until there is nothing left. In theory, the variable old
6210 * should not be needed, as recursive loops shouldn't happen.
6211 */
6212 else while ((tmp=op->inv)!=NULL) {
6213 if(old==tmp) {
6214 LOG(llevError," Recursive loop in inventory\n");
6215 break;
6216 }
6217 save_object(fp,tmp,flag);
6218 old=tmp;
6219 }
6220
6221 if (!(flag&2)) {
6222 remove_ob(op);
6223 free_object (op);
6224 }
6225
6226 fprintf(fp,"end\n");
6227 }
6228
6229 void insert_event(object* op, int etype, char *ehook, char *eplug, char *eoptions)
6230 {
6231 event *evt;
6232 event *tmp;
6233
6234 evt = find_event(op,etype);
6235 if (evt == NULL)
6236 {
6237 evt = (event *)malloc(sizeof(event));
6238 evt->next = NULL;
6239 evt->type = etype;
6240 evt->hook = NULL;
6241 evt->plugin = NULL;
6242 evt->options = NULL;
6243 if (op->events==NULL)
6244 {
6245 op->events=evt;
6246 }
6247 else
6248 {
6249 for(tmp=op->events;;tmp=tmp->next)
6250 {
6251 if (tmp->next == NULL)
6252 {
6253 tmp->next = evt;
6254 break;
6255 }
6256 }
6257 }
6258 }
6259 if (ehook != NULL)
6260 FREE_AND_COPY(evt->hook,ehook);
6261 if (eplug != NULL)
6262 FREE_AND_COPY(evt->plugin,eplug);
6263 if (eoptions != NULL)
6264 FREE_AND_COPY(evt->options,eoptions);
6265 }
6266
6267 event* find_event(object* op, int etype)
6268 {
6269 event *found;
6270 for(found=op->events;found!=NULL;found=found->next)
6271 {
6272 if (found->type == etype)
6273 return found;
6274 }
6275 return NULL;
6276 }
6277