ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/loader.c
Revision: 1.3
Committed: Wed Feb 22 18:53:48 2006 UTC (18 years, 3 months ago) by elmex
Content type: text/plain
Branch: MAIN
Changes since 1.2: +2001 -1886 lines
Log Message:
UPSTREAM_2006-02-22 merge

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