ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/loader.c
Revision: 1.4
Committed: Wed Mar 15 15:35:46 2006 UTC (18 years, 2 months ago) by elmex
Content type: text/plain
Branch: MAIN
Changes since 1.3: +13 -13 lines
Log Message:
UPSTREAM merge from 15.03.2006

File Contents

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