ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/loader.c
Revision: 1.7
Committed: Mon Jun 26 21:46:21 2006 UTC (17 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +0 -0 lines
State: FILE REMOVED
Log Message:
remove generated file

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