ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/loader.c
Revision: 1.6
Committed: Fri May 12 11:36:05 2006 UTC (18 years ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.5: +4 -4 lines
Log Message:
generated files in cvs are evil

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