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

File Contents

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