source: XIOS/trunk/src/parse_expr/lex_parser.cpp @ 501

Last change on this file since 501 was 501, checked in by ymipsl, 10 years ago

Add licence copyright to all file ond directory src using the command :
svn propset -R copyright -F header_licence src

XIOS is now officialy under CeCILL licence

YM

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
  • Property svn:eol-style set to native
File size: 66.1 KB
Line 
1#line 2 "lex_parser.cpp"
2
3#line 4 "lex_parser.cpp"
4
5#define  YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9#define FLEX_SCANNER
10#define YY_FLEX_MAJOR_VERSION 2
11#define YY_FLEX_MINOR_VERSION 5
12#define YY_FLEX_SUBMINOR_VERSION 35
13#if YY_FLEX_SUBMINOR_VERSION > 0
14#define FLEX_BETA
15#endif
16
17/* First, we deal with  platform-specific or compiler-specific issues. */
18
19/* begin standard C headers. */
20#include <stdio.h>
21#include <string.h>
22#include <errno.h>
23#include <stdlib.h>
24
25/* end standard C headers. */
26
27/* flex integer type definitions */
28
29#ifndef FLEXINT_H
30#define FLEXINT_H
31
32/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33
34#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35
36/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37 * if you want the limit (max/min) macros for int types.
38 */
39#ifndef __STDC_LIMIT_MACROS
40#define __STDC_LIMIT_MACROS 1
41#endif
42
43#include <inttypes.h>
44typedef int8_t flex_int8_t;
45typedef uint8_t flex_uint8_t;
46typedef int16_t flex_int16_t;
47typedef uint16_t flex_uint16_t;
48typedef int32_t flex_int32_t;
49typedef uint32_t flex_uint32_t;
50#else
51typedef signed char flex_int8_t;
52typedef short int flex_int16_t;
53typedef int flex_int32_t;
54typedef unsigned char flex_uint8_t; 
55typedef unsigned short int flex_uint16_t;
56typedef unsigned int flex_uint32_t;
57#endif /* ! C99 */
58
59/* Limits of integral types. */
60#ifndef INT8_MIN
61#define INT8_MIN               (-128)
62#endif
63#ifndef INT16_MIN
64#define INT16_MIN              (-32767-1)
65#endif
66#ifndef INT32_MIN
67#define INT32_MIN              (-2147483647-1)
68#endif
69#ifndef INT8_MAX
70#define INT8_MAX               (127)
71#endif
72#ifndef INT16_MAX
73#define INT16_MAX              (32767)
74#endif
75#ifndef INT32_MAX
76#define INT32_MAX              (2147483647)
77#endif
78#ifndef UINT8_MAX
79#define UINT8_MAX              (255U)
80#endif
81#ifndef UINT16_MAX
82#define UINT16_MAX             (65535U)
83#endif
84#ifndef UINT32_MAX
85#define UINT32_MAX             (4294967295U)
86#endif
87
88#endif /* ! FLEXINT_H */
89
90#ifdef __cplusplus
91
92/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else   /* ! __cplusplus */
96
97/* C99 requires __STDC__ to be defined as 1. */
98#if defined (__STDC__)
99
100#define YY_USE_CONST
101
102#endif  /* defined (__STDC__) */
103#endif  /* ! __cplusplus */
104
105#ifdef YY_USE_CONST
106#define yyconst const
107#else
108#define yyconst
109#endif
110
111/* Returned upon end-of-file. */
112#define YY_NULL 0
113
114/* Promotes a possibly negative, possibly signed char to an unsigned
115 * integer for use as an array index.  If the signed char is negative,
116 * we want to instead treat it as an 8-bit unsigned char, hence the
117 * double cast.
118 */
119#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
121/* Enter a start condition.  This macro really ought to take a parameter,
122 * but we do it the disgusting crufty way forced on us by the ()-less
123 * definition of BEGIN.
124 */
125#define BEGIN (yy_start) = 1 + 2 *
126
127/* Translate the current start state into a value that can be later handed
128 * to BEGIN to return to the state.  The YYSTATE alias is for lex
129 * compatibility.
130 */
131#define YY_START (((yy_start) - 1) / 2)
132#define YYSTATE YY_START
133
134/* Action number for EOF rule of a given start state. */
135#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
136
137/* Special action meaning "start processing a new file". */
138#define YY_NEW_FILE yyrestart(yyin  )
139
140#define YY_END_OF_BUFFER_CHAR 0
141
142/* Size of default input buffer. */
143#ifndef YY_BUF_SIZE
144#define YY_BUF_SIZE 16384
145#endif
146
147/* The state buf must be large enough to hold one state per character in the main buffer.
148 */
149#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
150
151#ifndef YY_TYPEDEF_YY_BUFFER_STATE
152#define YY_TYPEDEF_YY_BUFFER_STATE
153typedef struct yy_buffer_state *YY_BUFFER_STATE;
154#endif
155
156extern int yyleng;
157
158extern FILE *yyin, *yyout;
159
160#define EOB_ACT_CONTINUE_SCAN 0
161#define EOB_ACT_END_OF_FILE 1
162#define EOB_ACT_LAST_MATCH 2
163
164    #define YY_LESS_LINENO(n)
165   
166/* Return all but the first "n" matched characters back to the input stream. */
167#define yyless(n) \
168        do \
169                { \
170                /* Undo effects of setting up yytext. */ \
171        int yyless_macro_arg = (n); \
172        YY_LESS_LINENO(yyless_macro_arg);\
173                *yy_cp = (yy_hold_char); \
174                YY_RESTORE_YY_MORE_OFFSET \
175                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
176                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
177                } \
178        while ( 0 )
179
180#define unput(c) yyunput( c, (yytext_ptr)  )
181
182#ifndef YY_TYPEDEF_YY_SIZE_T
183#define YY_TYPEDEF_YY_SIZE_T
184typedef size_t yy_size_t;
185#endif
186
187#ifndef YY_STRUCT_YY_BUFFER_STATE
188#define YY_STRUCT_YY_BUFFER_STATE
189struct yy_buffer_state
190        {
191        FILE *yy_input_file;
192
193        char *yy_ch_buf;                /* input buffer */
194        char *yy_buf_pos;               /* current position in input buffer */
195
196        /* Size of input buffer in bytes, not including room for EOB
197         * characters.
198         */
199        yy_size_t yy_buf_size;
200
201        /* Number of characters read into yy_ch_buf, not including EOB
202         * characters.
203         */
204        int yy_n_chars;
205
206        /* Whether we "own" the buffer - i.e., we know we created it,
207         * and can realloc() it to grow it, and should free() it to
208         * delete it.
209         */
210        int yy_is_our_buffer;
211
212        /* Whether this is an "interactive" input source; if so, and
213         * if we're using stdio for input, then we want to use getc()
214         * instead of fread(), to make sure we stop fetching input after
215         * each newline.
216         */
217        int yy_is_interactive;
218
219        /* Whether we're considered to be at the beginning of a line.
220         * If so, '^' rules will be active on the next match, otherwise
221         * not.
222         */
223        int yy_at_bol;
224
225    int yy_bs_lineno; /**< The line count. */
226    int yy_bs_column; /**< The column count. */
227   
228        /* Whether to try to fill the input buffer when we reach the
229         * end of it.
230         */
231        int yy_fill_buffer;
232
233        int yy_buffer_status;
234
235#define YY_BUFFER_NEW 0
236#define YY_BUFFER_NORMAL 1
237        /* When an EOF's been seen but there's still some text to process
238         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
239         * shouldn't try reading from the input source any more.  We might
240         * still have a bunch of tokens to match, though, because of
241         * possible backing-up.
242         *
243         * When we actually see the EOF, we change the status to "new"
244         * (via yyrestart()), so that the user can continue scanning by
245         * just pointing yyin at a new input file.
246         */
247#define YY_BUFFER_EOF_PENDING 2
248
249        };
250#endif /* !YY_STRUCT_YY_BUFFER_STATE */
251
252/* Stack of input buffers. */
253static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
254static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
255static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
256
257/* We provide macros for accessing buffer states in case in the
258 * future we want to put the buffer states in a more general
259 * "scanner state".
260 *
261 * Returns the top of the stack, or NULL.
262 */
263#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
264                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
265                          : NULL)
266
267/* Same as previous macro, but useful when we know that the buffer stack is not
268 * NULL or when we need an lvalue. For internal use only.
269 */
270#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
271
272/* yy_hold_char holds the character lost when yytext is formed. */
273static char yy_hold_char;
274static int yy_n_chars;          /* number of characters read into yy_ch_buf */
275int yyleng;
276
277/* Points to current character in buffer. */
278static char *yy_c_buf_p = (char *) 0;
279static int yy_init = 0;         /* whether we need to initialize */
280static int yy_start = 0;        /* start state number */
281
282/* Flag which is used to allow yywrap()'s to do buffer switches
283 * instead of setting up a fresh yyin.  A bit of a hack ...
284 */
285static int yy_did_buffer_switch_on_eof;
286
287void yyrestart (FILE *input_file  );
288void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
289YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
290void yy_delete_buffer (YY_BUFFER_STATE b  );
291void yy_flush_buffer (YY_BUFFER_STATE b  );
292void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
293void yypop_buffer_state (void );
294
295static void yyensure_buffer_stack (void );
296static void yy_load_buffer_state (void );
297static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
298
299#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
300
301YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
302YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
303YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
304
305void *yyalloc (yy_size_t  );
306void *yyrealloc (void *,yy_size_t  );
307void yyfree (void *  );
308
309#define yy_new_buffer yy_create_buffer
310
311#define yy_set_interactive(is_interactive) \
312        { \
313        if ( ! YY_CURRENT_BUFFER ){ \
314        yyensure_buffer_stack (); \
315                YY_CURRENT_BUFFER_LVALUE =    \
316            yy_create_buffer(yyin,YY_BUF_SIZE ); \
317        } \
318        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
319        }
320
321#define yy_set_bol(at_bol) \
322        { \
323        if ( ! YY_CURRENT_BUFFER ){\
324        yyensure_buffer_stack (); \
325                YY_CURRENT_BUFFER_LVALUE =    \
326            yy_create_buffer(yyin,YY_BUF_SIZE ); \
327        } \
328        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
329        }
330
331#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
332
333#define yywrap(n) 1
334#define YY_SKIP_YYWRAP
335
336typedef char YY_CHAR;
337
338FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
339
340typedef int yy_state_type;
341
342extern int yylineno;
343
344int yylineno = 1;
345
346extern char *yytext;
347#define yytext_ptr yytext
348static yyconst flex_int16_t yy_nxt[][128] =
349    {
350    {
351        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
352        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
353        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
354        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
355        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
356        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
357        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
358        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
359        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
360        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
361
362        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
363        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
364        0,    0,    0,    0,    0,    0,    0,    0
365    },
366
367    {
368        3,    4,    4,    4,    4,    4,    4,    4,    4,    5,
369        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
370        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
371        4,    4,    5,    4,    4,    4,    6,    4,    4,    4,
372        7,    8,    9,   10,    4,   11,    4,   12,   13,   13,
373       13,   13,   13,   13,   13,   13,   13,   13,    4,    4,
374        4,    4,    4,    4,   14,   15,   15,   15,   15,   15,
375
376       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
377       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
378       15,    4,    4,    4,   16,    4,    4,   15,   15,   15,
379       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
380       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
381       15,   15,   15,    4,    4,    4,    4,    4
382    },
383
384    {
385        3,    4,    4,    4,    4,    4,    4,    4,    4,    5,
386        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
387        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
388        4,    4,    5,    4,    4,    4,    6,    4,    4,    4,
389
390        7,    8,    9,   10,    4,   11,    4,   12,   13,   13,
391       13,   13,   13,   13,   13,   13,   13,   13,    4,    4,
392        4,    4,    4,    4,   14,   15,   15,   15,   15,   15,
393       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
394       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
395       15,    4,    4,    4,   16,    4,    4,   15,   15,   15,
396       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
397       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
398       15,   15,   15,    4,    4,    4,    4,    4
399    },
400
401    {
402       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
403
404       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
405       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
406       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
407       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
408       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
409       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
410       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
411       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
412       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
413       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
414
415       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
416       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
417    },
418
419    {
420        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
421       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
422       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
423       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
424       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
425       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
426       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
427       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
428
429       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
430       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
431       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
432       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
433       -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
434    },
435
436    {
437        3,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   18,
438       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
439       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
440       -5,   -5,   18,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
441       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
442
443       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
444       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
445       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
446       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
447       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
448       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
449       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
450       -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5
451    },
452
453    {
454        3,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
455       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
456
457       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
458       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
459       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
460       -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
461       -6,   -6,   -6,   -6,   -6,   19,   19,   19,   19,   19,
462       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
463       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
464       19,   -6,   -6,   -6,   -6,   -6,   -6,   19,   19,   19,
465       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
466       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
467
468       19,   19,   19,   -6,   -6,   -6,   -6,   -6
469    },
470
471    {
472        3,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
473       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
474       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
475       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
476       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
477       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
478       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
479       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
480       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
481
482       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
483       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
484       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
485       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7
486    },
487
488    {
489        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
490       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
491       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
492       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
493       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
494       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
495
496       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
497       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
498       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
499       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
500       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
501       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
502       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
503    },
504
505    {
506        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
507       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
508       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
509
510       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
511       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
512       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
513       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
514       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
515       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
516       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
517       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
518       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
519       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9
520
521    },
522
523    {
524        3,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
525      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
526      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
527      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
528      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
529      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
530      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
531      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
532      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
533      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
534
535      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
536      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
537      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10
538    },
539
540    {
541        3,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
542      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
543      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
544      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
545      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
546      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
547      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
548
549      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
550      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
551      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
552      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
553      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
554      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
555    },
556
557    {
558        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
559      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
560      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
561      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
562
563      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
564      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
565      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
566      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
567      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
568      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
569      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
570      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
571      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
572    },
573
574    {
575        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
576
577      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
578      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
579      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
580      -13,  -13,  -13,  -13,  -13,  -13,   20,  -13,   21,   21,
581       21,   21,   21,   21,   21,   21,   21,   21,  -13,  -13,
582      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   22,
583      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
584      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
585      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
586      -13,   22,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
587
588      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
589      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
590    },
591
592    {
593        3,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
594      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
595      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
596      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
597      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
598      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
599      -14,  -14,  -14,  -14,  -14,   23,   23,   23,   23,   23,
600       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
601
602       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
603       23,  -14,  -14,  -14,  -14,  -14,  -14,   23,   23,   23,
604       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
605       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
606       23,   23,   23,  -14,  -14,  -14,  -14,  -14
607    },
608
609    {
610        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
611      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
612      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
613      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
614      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,   24,   24,
615
616       24,   24,   24,   24,   24,   24,   24,   24,  -15,  -15,
617      -15,  -15,  -15,  -15,  -15,   24,   24,   24,   24,   24,
618       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
619       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
620       24,  -15,  -15,  -15,  -15,   24,  -15,   24,   24,   24,
621       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
622       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
623       24,   24,   24,  -15,  -15,  -15,  -15,  -15
624    },
625
626    {
627        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
628      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
629
630      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
631      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
632      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
633      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
634      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
635      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
636      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
637      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
638      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
639      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
640
641      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
642    },
643
644    {
645        3,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
646      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
647      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
648      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
649      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
650      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
651      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
652      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
653      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
654
655      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
656      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
657      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
658      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17
659    },
660
661    {
662        3,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,   18,
663      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
664      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
665      -18,  -18,   18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
666      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
667      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
668
669      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
670      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
671      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
672      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
673      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
674      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
675      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18
676    },
677
678    {
679        3,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
680      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
681      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
682
683      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
684      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,   25,   25,
685       25,   25,   25,   25,   25,   25,   25,   25,  -19,  -19,
686      -19,  -19,  -19,  -19,  -19,   25,   25,   25,   25,   25,
687       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
688       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
689       25,  -19,  -19,  -19,  -19,   25,  -19,   25,   25,   25,
690       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
691       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
692       25,   25,   25,  -19,  -19,  -19,  -19,  -19
693
694    },
695
696    {
697        3,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
698      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
699      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
700      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
701      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,   26,   26,
702       26,   26,   26,   26,   26,   26,   26,   26,  -20,  -20,
703      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
704      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
705      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
706      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
707
708      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
709      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
710      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20
711    },
712
713    {
714        3,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
715      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
716      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
717      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
718      -21,  -21,  -21,  -21,  -21,  -21,   20,  -21,   21,   21,
719       21,   21,   21,   21,   21,   21,   21,   21,  -21,  -21,
720      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,   22,
721
722      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
723      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
724      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
725      -21,   22,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
726      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
727      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21
728    },
729
730    {
731        3,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
732      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
733      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
734      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
735
736      -22,  -22,  -22,   27,  -22,   27,  -22,  -22,   28,   28,
737       28,   28,   28,   28,   28,   28,   28,   28,  -22,  -22,
738      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
739      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
740      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
741      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
742      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
743      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
744      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22
745    },
746
747    {
748        3,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
749
750      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
751      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
752      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
753      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,   29,   29,
754       29,   29,   29,   29,   29,   29,   29,   29,  -23,  -23,
755      -23,  -23,  -23,  -23,  -23,   29,   29,   29,   29,   29,
756       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
757       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
758       29,  -23,  -23,  -23,  -23,   29,  -23,   29,   29,   29,
759       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
760
761       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
762       29,   29,   29,  -23,  -23,  -23,  -23,  -23
763    },
764
765    {
766        3,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
767      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
768      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
769      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
770      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   24,   24,
771       24,   24,   24,   24,   24,   24,   24,   24,  -24,  -24,
772      -24,  -24,  -24,  -24,  -24,   24,   24,   24,   24,   24,
773       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
774
775       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
776       24,  -24,  -24,  -24,  -24,   24,  -24,   24,   24,   24,
777       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
778       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
779       24,   24,   24,  -24,  -24,  -24,  -24,  -24
780    },
781
782    {
783        3,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
784      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
785      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
786      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
787      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,   25,   25,
788
789       25,   25,   25,   25,   25,   25,   25,   25,  -25,  -25,
790      -25,  -25,  -25,  -25,  -25,   25,   25,   25,   25,   25,
791       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
792       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
793       25,  -25,  -25,  -25,  -25,   25,  -25,   25,   25,   25,
794       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
795       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
796       25,   25,   25,  -25,  -25,  -25,  -25,  -25
797    },
798
799    {
800        3,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
801      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
802
803      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
804      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
805      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   26,   26,
806       26,   26,   26,   26,   26,   26,   26,   26,  -26,  -26,
807      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   22,
808      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
809      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
810      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
811      -26,   22,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
812      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
813
814      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26
815    },
816
817    {
818        3,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
819      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
820      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
821      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
822      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,   28,   28,
823       28,   28,   28,   28,   28,   28,   28,   28,  -27,  -27,
824      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
825      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
826      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
827
828      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
829      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
830      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
831      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27
832    },
833
834    {
835        3,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
836      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
837      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
838      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
839      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,   28,   28,
840       28,   28,   28,   28,   28,   28,   28,   28,  -28,  -28,
841
842      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
843      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
844      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
845      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
846      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
847      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
848      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28
849    },
850
851    {
852        3,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
853      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
854      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
855
856      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
857      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,   29,   29,
858       29,   29,   29,   29,   29,   29,   29,   29,  -29,  -29,
859      -29,  -29,  -29,  -29,  -29,   29,   29,   29,   29,   29,
860       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
861       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
862       29,  -29,  -29,  -29,  -29,   29,  -29,   29,   29,   29,
863       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
864       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
865       29,   29,   29,  -29,  -29,  -29,  -29,  -29
866
867    },
868
869    } ;
870
871static yy_state_type yy_get_previous_state (void );
872static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
873static int yy_get_next_buffer (void );
874static void yy_fatal_error (yyconst char msg[]  );
875
876/* Done after the current pattern has been matched and before the
877 * corresponding action - sets up yytext.
878 */
879#define YY_DO_BEFORE_ACTION \
880        (yytext_ptr) = yy_bp; \
881        yyleng = (size_t) (yy_cp - yy_bp); \
882        (yy_hold_char) = *yy_cp; \
883        *yy_cp = '\0'; \
884        (yy_c_buf_p) = yy_cp;
885
886#define YY_NUM_RULES 14
887#define YY_END_OF_BUFFER 15
888/* This struct is not used in this scanner,
889   but its presence is necessary. */
890struct yy_trans_info
891        {
892        flex_int32_t yy_verify;
893        flex_int32_t yy_nxt;
894        };
895static yyconst flex_int16_t yy_accept[30] =
896    {   0,
897        0,    0,   15,   14,    1,   14,   11,   12,    8,    6,
898        7,    9,    2,   14,    5,   10,   13,    1,    4,    0,
899        2,    0,    3,    5,    4,    2,    0,    2,    3
900    } ;
901
902static yy_state_type yy_last_accepting_state;
903static char *yy_last_accepting_cpos;
904
905static yyconst yy_state_type yy_NUL_trans[30] =
906    {   0,
907       17,   17,    0,    0,    0,    0,    0,    0,    0,    0,
908        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
909        0,    0,    0,    0,    0,    0,    0,    0,    0
910    } ;
911
912extern int yy_flex_debug;
913int yy_flex_debug = 0;
914
915/* The intent behind this definition is that it'll catch
916 * any uses of REJECT which flex missed.
917 */
918#define REJECT reject_used_but_not_detected
919#define yymore() yymore_used_but_not_detected
920#define YY_MORE_ADJ 0
921#define YY_RESTORE_YY_MORE_OFFSET
922char *yytext;
923#line 1 "lex_parser.lex"
924#line 3 "lex_parser.lex"
925
926extern "C"
927{
928  int yylex(void);
929}
930#undef  YY_INPUT
931#define YY_INPUT(b,r,s) readInputForLexer(b,&r,s)
932#include <string>
933
934int readInputForLexer( char *buffer, int *numBytesRead, int maxBytesToRead ) ;
935
936
937#include "simple_node_expr.hpp"
938#include "yacc_parser.hpp"
939
940#line 941 "lex_parser.cpp"
941
942#define INITIAL 0
943
944#ifndef YY_NO_UNISTD_H
945/* Special case for "unistd.h", since it is non-ANSI. We include it way
946 * down here because we want the user's section 1 to have been scanned first.
947 * The user has a chance to override it with an option.
948 */
949#include <unistd.h>
950#endif
951
952#ifndef YY_EXTRA_TYPE
953#define YY_EXTRA_TYPE void *
954#endif
955
956static int yy_init_globals (void );
957
958/* Accessor methods to globals.
959   These are made visible to non-reentrant scanners for convenience. */
960
961int yylex_destroy (void );
962
963int yyget_debug (void );
964
965void yyset_debug (int debug_flag  );
966
967YY_EXTRA_TYPE yyget_extra (void );
968
969void yyset_extra (YY_EXTRA_TYPE user_defined  );
970
971FILE *yyget_in (void );
972
973void yyset_in  (FILE * in_str  );
974
975FILE *yyget_out (void );
976
977void yyset_out  (FILE * out_str  );
978
979int yyget_leng (void );
980
981char *yyget_text (void );
982
983int yyget_lineno (void );
984
985void yyset_lineno (int line_number  );
986
987/* Macros after this point can all be overridden by user definitions in
988 * section 1.
989 */
990
991#ifndef YY_SKIP_YYWRAP
992#ifdef __cplusplus
993extern "C" int yywrap (void );
994#else
995extern int yywrap (void );
996#endif
997#endif
998
999    static void yyunput (int c,char *buf_ptr  );
1000   
1001#ifndef yytext_ptr
1002static void yy_flex_strncpy (char *,yyconst char *,int );
1003#endif
1004
1005#ifdef YY_NEED_STRLEN
1006static int yy_flex_strlen (yyconst char * );
1007#endif
1008
1009#ifndef YY_NO_INPUT
1010
1011#ifdef __cplusplus
1012static int yyinput (void );
1013#else
1014static int input (void );
1015#endif
1016
1017#endif
1018
1019/* Amount of stuff to slurp up with each read. */
1020#ifndef YY_READ_BUF_SIZE
1021#define YY_READ_BUF_SIZE 8192
1022#endif
1023
1024/* Copy whatever the last rule matched to the standard output. */
1025#ifndef ECHO
1026/* This used to be an fputs(), but since the string might contain NUL's,
1027 * we now use fwrite().
1028 */
1029#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1030#endif
1031
1032/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1033 * is returned in "result".
1034 */
1035#ifndef YY_INPUT
1036#define YY_INPUT(buf,result,max_size) \
1037        errno=0; \
1038        while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
1039        { \
1040                if( errno != EINTR) \
1041                { \
1042                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
1043                        break; \
1044                } \
1045                errno=0; \
1046                clearerr(yyin); \
1047        }\
1048\
1049
1050#endif
1051
1052/* No semi-colon after return; correct usage is to write "yyterminate();" -
1053 * we don't want an extra ';' after the "return" because that will cause
1054 * some compilers to complain about unreachable statements.
1055 */
1056#ifndef yyterminate
1057#define yyterminate() return YY_NULL
1058#endif
1059
1060/* Number of entries by which start-condition stack grows. */
1061#ifndef YY_START_STACK_INCR
1062#define YY_START_STACK_INCR 25
1063#endif
1064
1065/* Report a fatal error. */
1066#ifndef YY_FATAL_ERROR
1067#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1068#endif
1069
1070/* end tables serialization structures and prototypes */
1071
1072/* Default declaration of generated scanner - a define so the user can
1073 * easily add parameters.
1074 */
1075#ifndef YY_DECL
1076#define YY_DECL_IS_OURS 1
1077
1078extern int yylex (void);
1079
1080#define YY_DECL int yylex (void)
1081#endif /* !YY_DECL */
1082
1083/* Code executed at the beginning of each rule, after yytext and yyleng
1084 * have been set up.
1085 */
1086#ifndef YY_USER_ACTION
1087#define YY_USER_ACTION
1088#endif
1089
1090/* Code executed at the end of each rule. */
1091#ifndef YY_BREAK
1092#define YY_BREAK break;
1093#endif
1094
1095#define YY_RULE_SETUP \
1096        YY_USER_ACTION
1097
1098/** The main scanner function which does all the work.
1099 */
1100YY_DECL
1101{
1102        register yy_state_type yy_current_state;
1103        register char *yy_cp, *yy_bp;
1104        register int yy_act;
1105   
1106#line 29 "lex_parser.lex"
1107
1108
1109#line 1110 "lex_parser.cpp"
1110
1111        if ( !(yy_init) )
1112                {
1113                (yy_init) = 1;
1114
1115#ifdef YY_USER_INIT
1116                YY_USER_INIT;
1117#endif
1118
1119                if ( ! (yy_start) )
1120                        (yy_start) = 1; /* first start state */
1121
1122                if ( ! yyin )
1123                        yyin = stdin;
1124
1125                if ( ! yyout )
1126                        yyout = stdout;
1127
1128                if ( ! YY_CURRENT_BUFFER ) {
1129                        yyensure_buffer_stack ();
1130                        YY_CURRENT_BUFFER_LVALUE =
1131                                yy_create_buffer(yyin,YY_BUF_SIZE );
1132                }
1133
1134                yy_load_buffer_state( );
1135                }
1136
1137        while ( 1 )             /* loops until end-of-file is reached */
1138                {
1139                yy_cp = (yy_c_buf_p);
1140
1141                /* Support of yytext. */
1142                *yy_cp = (yy_hold_char);
1143
1144                /* yy_bp points to the position in yy_ch_buf of the start of
1145                 * the current run.
1146                 */
1147                yy_bp = yy_cp;
1148
1149                yy_current_state = (yy_start);
1150yy_match:
1151                while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 )
1152                        {
1153                        if ( yy_accept[yy_current_state] )
1154                                {
1155                                (yy_last_accepting_state) = yy_current_state;
1156                                (yy_last_accepting_cpos) = yy_cp;
1157                                }
1158
1159                        ++yy_cp;
1160                        }
1161
1162                yy_current_state = -yy_current_state;
1163
1164yy_find_action:
1165                yy_act = yy_accept[yy_current_state];
1166
1167                YY_DO_BEFORE_ACTION;
1168
1169do_action:      /* This label is used only to access EOF actions. */
1170
1171                switch ( yy_act )
1172        { /* beginning of action switch */
1173                        case 0: /* must back up */
1174                        /* undo the effects of YY_DO_BEFORE_ACTION */
1175                        *yy_cp = (yy_hold_char);
1176                        yy_cp = (yy_last_accepting_cpos) + 1;
1177                        yy_current_state = (yy_last_accepting_state);
1178                        goto yy_find_action;
1179
1180case 1:
1181YY_RULE_SETUP
1182#line 31 "lex_parser.lex"
1183{ /* We ignore white characters */ }
1184        YY_BREAK
1185case 2:
1186YY_RULE_SETUP
1187#line 33 "lex_parser.lex"
1188{
1189          yylval.str=new std::string(yytext);
1190          return NUMBER ;
1191        }
1192        YY_BREAK
1193case 3:
1194YY_RULE_SETUP
1195#line 38 "lex_parser.lex"
1196{
1197                  yylval.str=new std::string(yytext+1) ;
1198                  return AVERAGE ;
1199                }
1200        YY_BREAK
1201case 4:
1202YY_RULE_SETUP
1203#line 43 "lex_parser.lex"
1204{
1205                  yylval.str=new std::string(yytext+1) ;
1206                  return VAR ;
1207                }
1208        YY_BREAK
1209case 5:
1210YY_RULE_SETUP
1211#line 48 "lex_parser.lex"
1212{
1213                   yylval.str=new std::string(yytext) ;
1214                   return ID ;
1215                }                   
1216        YY_BREAK
1217case 6:
1218YY_RULE_SETUP
1219#line 54 "lex_parser.lex"
1220return(PLUS);
1221        YY_BREAK
1222case 7:
1223YY_RULE_SETUP
1224#line 55 "lex_parser.lex"
1225return(MINUS);
1226        YY_BREAK
1227case 8:
1228YY_RULE_SETUP
1229#line 57 "lex_parser.lex"
1230return(TIMES);
1231        YY_BREAK
1232case 9:
1233YY_RULE_SETUP
1234#line 58 "lex_parser.lex"
1235return(DIVIDE);
1236        YY_BREAK
1237case 10:
1238YY_RULE_SETUP
1239#line 60 "lex_parser.lex"
1240return(POWER);
1241        YY_BREAK
1242case 11:
1243YY_RULE_SETUP
1244#line 62 "lex_parser.lex"
1245return(LEFT_PARENTHESIS);
1246        YY_BREAK
1247case 12:
1248YY_RULE_SETUP
1249#line 63 "lex_parser.lex"
1250return(RIGHT_PARENTHESIS);
1251        YY_BREAK
1252case 13:
1253YY_RULE_SETUP
1254#line 65 "lex_parser.lex"
1255{
1256       return(END);
1257      }
1258        YY_BREAK
1259case 14:
1260YY_RULE_SETUP
1261#line 68 "lex_parser.lex"
1262ECHO;
1263        YY_BREAK
1264#line 1265 "lex_parser.cpp"
1265case YY_STATE_EOF(INITIAL):
1266        yyterminate();
1267
1268        case YY_END_OF_BUFFER:
1269                {
1270                /* Amount of text matched not including the EOB char. */
1271                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1272
1273                /* Undo the effects of YY_DO_BEFORE_ACTION. */
1274                *yy_cp = (yy_hold_char);
1275                YY_RESTORE_YY_MORE_OFFSET
1276
1277                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1278                        {
1279                        /* We're scanning a new file or input source.  It's
1280                         * possible that this happened because the user
1281                         * just pointed yyin at a new source and called
1282                         * yylex().  If so, then we have to assure
1283                         * consistency between YY_CURRENT_BUFFER and our
1284                         * globals.  Here is the right place to do so, because
1285                         * this is the first action (other than possibly a
1286                         * back-up) that will match for the new input source.
1287                         */
1288                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1289                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1290                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1291                        }
1292
1293                /* Note that here we test for yy_c_buf_p "<=" to the position
1294                 * of the first EOB in the buffer, since yy_c_buf_p will
1295                 * already have been incremented past the NUL character
1296                 * (since all states make transitions on EOB to the
1297                 * end-of-buffer state).  Contrast this with the test
1298                 * in input().
1299                 */
1300                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1301                        { /* This was really a NUL. */
1302                        yy_state_type yy_next_state;
1303
1304                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1305
1306                        yy_current_state = yy_get_previous_state(  );
1307
1308                        /* Okay, we're now positioned to make the NUL
1309                         * transition.  We couldn't have
1310                         * yy_get_previous_state() go ahead and do it
1311                         * for us because it doesn't know how to deal
1312                         * with the possibility of jamming (and we don't
1313                         * want to build jamming into it because then it
1314                         * will run more slowly).
1315                         */
1316
1317                        yy_next_state = yy_try_NUL_trans( yy_current_state );
1318
1319                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1320
1321                        if ( yy_next_state )
1322                                {
1323                                /* Consume the NUL. */
1324                                yy_cp = ++(yy_c_buf_p);
1325                                yy_current_state = yy_next_state;
1326                                goto yy_match;
1327                                }
1328
1329                        else
1330                                {
1331                                yy_cp = (yy_c_buf_p);
1332                                goto yy_find_action;
1333                                }
1334                        }
1335
1336                else switch ( yy_get_next_buffer(  ) )
1337                        {
1338                        case EOB_ACT_END_OF_FILE:
1339                                {
1340                                (yy_did_buffer_switch_on_eof) = 0;
1341
1342                                if ( yywrap( ) )
1343                                        {
1344                                        /* Note: because we've taken care in
1345                                         * yy_get_next_buffer() to have set up
1346                                         * yytext, we can now set up
1347                                         * yy_c_buf_p so that if some total
1348                                         * hoser (like flex itself) wants to
1349                                         * call the scanner after we return the
1350                                         * YY_NULL, it'll still work - another
1351                                         * YY_NULL will get returned.
1352                                         */
1353                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1354
1355                                        yy_act = YY_STATE_EOF(YY_START);
1356                                        goto do_action;
1357                                        }
1358
1359                                else
1360                                        {
1361                                        if ( ! (yy_did_buffer_switch_on_eof) )
1362                                                YY_NEW_FILE;
1363                                        }
1364                                break;
1365                                }
1366
1367                        case EOB_ACT_CONTINUE_SCAN:
1368                                (yy_c_buf_p) =
1369                                        (yytext_ptr) + yy_amount_of_matched_text;
1370
1371                                yy_current_state = yy_get_previous_state(  );
1372
1373                                yy_cp = (yy_c_buf_p);
1374                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1375                                goto yy_match;
1376
1377                        case EOB_ACT_LAST_MATCH:
1378                                (yy_c_buf_p) =
1379                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1380
1381                                yy_current_state = yy_get_previous_state(  );
1382
1383                                yy_cp = (yy_c_buf_p);
1384                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1385                                goto yy_find_action;
1386                        }
1387                break;
1388                }
1389
1390        default:
1391                YY_FATAL_ERROR(
1392                        "fatal flex scanner internal error--no action found" );
1393        } /* end of action switch */
1394                } /* end of scanning one token */
1395} /* end of yylex */
1396
1397/* yy_get_next_buffer - try to read in a new buffer
1398 *
1399 * Returns a code representing an action:
1400 *      EOB_ACT_LAST_MATCH -
1401 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1402 *      EOB_ACT_END_OF_FILE - end of file
1403 */
1404static int yy_get_next_buffer (void)
1405{
1406        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1407        register char *source = (yytext_ptr);
1408        register int number_to_move, i;
1409        int ret_val;
1410
1411        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1412                YY_FATAL_ERROR(
1413                "fatal flex scanner internal error--end of buffer missed" );
1414
1415        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1416                { /* Don't try to fill the buffer, so this is an EOF. */
1417                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1418                        {
1419                        /* We matched a single character, the EOB, so
1420                         * treat this as a final EOF.
1421                         */
1422                        return EOB_ACT_END_OF_FILE;
1423                        }
1424
1425                else
1426                        {
1427                        /* We matched some text prior to the EOB, first
1428                         * process it.
1429                         */
1430                        return EOB_ACT_LAST_MATCH;
1431                        }
1432                }
1433
1434        /* Try to read more data. */
1435
1436        /* First move last chars to start of buffer. */
1437        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1438
1439        for ( i = 0; i < number_to_move; ++i )
1440                *(dest++) = *(source++);
1441
1442        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1443                /* don't do the read, it's not guaranteed to return an EOF,
1444                 * just force an EOF
1445                 */
1446                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1447
1448        else
1449                {
1450                        int num_to_read =
1451                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1452
1453                while ( num_to_read <= 0 )
1454                        { /* Not enough room in the buffer - grow it. */
1455
1456                        /* just a shorter name for the current buffer */
1457                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1458
1459                        int yy_c_buf_p_offset =
1460                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
1461
1462                        if ( b->yy_is_our_buffer )
1463                                {
1464                                int new_size = b->yy_buf_size * 2;
1465
1466                                if ( new_size <= 0 )
1467                                        b->yy_buf_size += b->yy_buf_size / 8;
1468                                else
1469                                        b->yy_buf_size *= 2;
1470
1471                                b->yy_ch_buf = (char *)
1472                                        /* Include room in for 2 EOB chars. */
1473                                        yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1474                                }
1475                        else
1476                                /* Can't grow it, we don't own it. */
1477                                b->yy_ch_buf = 0;
1478
1479                        if ( ! b->yy_ch_buf )
1480                                YY_FATAL_ERROR(
1481                                "fatal error - scanner input buffer overflow" );
1482
1483                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1484
1485                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1486                                                number_to_move - 1;
1487
1488                        }
1489
1490                if ( num_to_read > YY_READ_BUF_SIZE )
1491                        num_to_read = YY_READ_BUF_SIZE;
1492
1493                /* Read in more data. */
1494                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1495                        (yy_n_chars), (size_t) num_to_read );
1496
1497                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1498                }
1499
1500        if ( (yy_n_chars) == 0 )
1501                {
1502                if ( number_to_move == YY_MORE_ADJ )
1503                        {
1504                        ret_val = EOB_ACT_END_OF_FILE;
1505                        yyrestart(yyin  );
1506                        }
1507
1508                else
1509                        {
1510                        ret_val = EOB_ACT_LAST_MATCH;
1511                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1512                                YY_BUFFER_EOF_PENDING;
1513                        }
1514                }
1515
1516        else
1517                ret_val = EOB_ACT_CONTINUE_SCAN;
1518
1519        if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1520                /* Extend the array by 50%, plus the number we really need. */
1521                yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1522                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1523                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1524                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1525        }
1526
1527        (yy_n_chars) += number_to_move;
1528        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1529        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1530
1531        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1532
1533        return ret_val;
1534}
1535
1536/* yy_get_previous_state - get the state just before the EOB char was reached */
1537
1538    static yy_state_type yy_get_previous_state (void)
1539{
1540        register yy_state_type yy_current_state;
1541        register char *yy_cp;
1542   
1543        yy_current_state = (yy_start);
1544
1545        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1546                {
1547                if ( *yy_cp )
1548                        {
1549                        yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)];
1550                        }
1551                else
1552                        yy_current_state = yy_NUL_trans[yy_current_state];
1553                if ( yy_accept[yy_current_state] )
1554                        {
1555                        (yy_last_accepting_state) = yy_current_state;
1556                        (yy_last_accepting_cpos) = yy_cp;
1557                        }
1558                }
1559
1560        return yy_current_state;
1561}
1562
1563/* yy_try_NUL_trans - try to make a transition on the NUL character
1564 *
1565 * synopsis
1566 *      next_state = yy_try_NUL_trans( current_state );
1567 */
1568    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1569{
1570        register int yy_is_jam;
1571        register char *yy_cp = (yy_c_buf_p);
1572
1573        yy_current_state = yy_NUL_trans[yy_current_state];
1574        yy_is_jam = (yy_current_state == 0);
1575
1576        if ( ! yy_is_jam )
1577                {
1578                if ( yy_accept[yy_current_state] )
1579                        {
1580                        (yy_last_accepting_state) = yy_current_state;
1581                        (yy_last_accepting_cpos) = yy_cp;
1582                        }
1583                }
1584
1585        return yy_is_jam ? 0 : yy_current_state;
1586}
1587
1588    static void yyunput (int c, register char * yy_bp )
1589{
1590        register char *yy_cp;
1591   
1592    yy_cp = (yy_c_buf_p);
1593
1594        /* undo effects of setting up yytext */
1595        *yy_cp = (yy_hold_char);
1596
1597        if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1598                { /* need to shift things up to make room */
1599                /* +2 for EOB chars. */
1600                register int number_to_move = (yy_n_chars) + 2;
1601                register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1602                                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1603                register char *source =
1604                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1605
1606                while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1607                        *--dest = *--source;
1608
1609                yy_cp += (int) (dest - source);
1610                yy_bp += (int) (dest - source);
1611                YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1612                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1613
1614                if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1615                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
1616                }
1617
1618        *--yy_cp = (char) c;
1619
1620        (yytext_ptr) = yy_bp;
1621        (yy_hold_char) = *yy_cp;
1622        (yy_c_buf_p) = yy_cp;
1623}
1624
1625#ifndef YY_NO_INPUT
1626#ifdef __cplusplus
1627    static int yyinput (void)
1628#else
1629    static int input  (void)
1630#endif
1631
1632{
1633        int c;
1634   
1635        *(yy_c_buf_p) = (yy_hold_char);
1636
1637        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1638                {
1639                /* yy_c_buf_p now points to the character we want to return.
1640                 * If this occurs *before* the EOB characters, then it's a
1641                 * valid NUL; if not, then we've hit the end of the buffer.
1642                 */
1643                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1644                        /* This was really a NUL. */
1645                        *(yy_c_buf_p) = '\0';
1646
1647                else
1648                        { /* need more input */
1649                        int offset = (yy_c_buf_p) - (yytext_ptr);
1650                        ++(yy_c_buf_p);
1651
1652                        switch ( yy_get_next_buffer(  ) )
1653                                {
1654                                case EOB_ACT_LAST_MATCH:
1655                                        /* This happens because yy_g_n_b()
1656                                         * sees that we've accumulated a
1657                                         * token and flags that we need to
1658                                         * try matching the token before
1659                                         * proceeding.  But for input(),
1660                                         * there's no matching to consider.
1661                                         * So convert the EOB_ACT_LAST_MATCH
1662                                         * to EOB_ACT_END_OF_FILE.
1663                                         */
1664
1665                                        /* Reset buffer status. */
1666                                        yyrestart(yyin );
1667
1668                                        /*FALLTHROUGH*/
1669
1670                                case EOB_ACT_END_OF_FILE:
1671                                        {
1672                                        if ( yywrap( ) )
1673                                                return EOF;
1674
1675                                        if ( ! (yy_did_buffer_switch_on_eof) )
1676                                                YY_NEW_FILE;
1677#ifdef __cplusplus
1678                                        return yyinput();
1679#else
1680                                        return input();
1681#endif
1682                                        }
1683
1684                                case EOB_ACT_CONTINUE_SCAN:
1685                                        (yy_c_buf_p) = (yytext_ptr) + offset;
1686                                        break;
1687                                }
1688                        }
1689                }
1690
1691        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
1692        *(yy_c_buf_p) = '\0';   /* preserve yytext */
1693        (yy_hold_char) = *++(yy_c_buf_p);
1694
1695        return c;
1696}
1697#endif  /* ifndef YY_NO_INPUT */
1698
1699/** Immediately switch to a different input stream.
1700 * @param input_file A readable stream.
1701 *
1702 * @note This function does not reset the start condition to @c INITIAL .
1703 */
1704    void yyrestart  (FILE * input_file )
1705{
1706   
1707        if ( ! YY_CURRENT_BUFFER ){
1708        yyensure_buffer_stack ();
1709                YY_CURRENT_BUFFER_LVALUE =
1710            yy_create_buffer(yyin,YY_BUF_SIZE );
1711        }
1712
1713        yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1714        yy_load_buffer_state( );
1715}
1716
1717/** Switch to a different input buffer.
1718 * @param new_buffer The new input buffer.
1719 *
1720 */
1721    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1722{
1723   
1724        /* TODO. We should be able to replace this entire function body
1725         * with
1726         *              yypop_buffer_state();
1727         *              yypush_buffer_state(new_buffer);
1728     */
1729        yyensure_buffer_stack ();
1730        if ( YY_CURRENT_BUFFER == new_buffer )
1731                return;
1732
1733        if ( YY_CURRENT_BUFFER )
1734                {
1735                /* Flush out information for old buffer. */
1736                *(yy_c_buf_p) = (yy_hold_char);
1737                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1738                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1739                }
1740
1741        YY_CURRENT_BUFFER_LVALUE = new_buffer;
1742        yy_load_buffer_state( );
1743
1744        /* We don't actually know whether we did this switch during
1745         * EOF (yywrap()) processing, but the only time this flag
1746         * is looked at is after yywrap() is called, so it's safe
1747         * to go ahead and always set it.
1748         */
1749        (yy_did_buffer_switch_on_eof) = 1;
1750}
1751
1752static void yy_load_buffer_state  (void)
1753{
1754        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1755        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1756        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1757        (yy_hold_char) = *(yy_c_buf_p);
1758}
1759
1760/** Allocate and initialize an input buffer state.
1761 * @param file A readable stream.
1762 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1763 *
1764 * @return the allocated buffer state.
1765 */
1766    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1767{
1768        YY_BUFFER_STATE b;
1769   
1770        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1771        if ( ! b )
1772                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1773
1774        b->yy_buf_size = size;
1775
1776        /* yy_ch_buf has to be 2 characters longer than the size given because
1777         * we need to put in 2 end-of-buffer characters.
1778         */
1779        b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1780        if ( ! b->yy_ch_buf )
1781                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1782
1783        b->yy_is_our_buffer = 1;
1784
1785        yy_init_buffer(b,file );
1786
1787        return b;
1788}
1789
1790/** Destroy the buffer.
1791 * @param b a buffer created with yy_create_buffer()
1792 *
1793 */
1794    void yy_delete_buffer (YY_BUFFER_STATE  b )
1795{
1796   
1797        if ( ! b )
1798                return;
1799
1800        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1801                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1802
1803        if ( b->yy_is_our_buffer )
1804                yyfree((void *) b->yy_ch_buf  );
1805
1806        yyfree((void *) b  );
1807}
1808
1809#ifndef __cplusplus
1810extern int isatty (int );
1811#endif /* __cplusplus */
1812   
1813/* Initializes or reinitializes a buffer.
1814 * This function is sometimes called more than once on the same buffer,
1815 * such as during a yyrestart() or at EOF.
1816 */
1817    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1818
1819{
1820        int oerrno = errno;
1821   
1822        yy_flush_buffer(b );
1823
1824        b->yy_input_file = file;
1825        b->yy_fill_buffer = 1;
1826
1827    /* If b is the current buffer, then yy_init_buffer was _probably_
1828     * called from yyrestart() or through yy_get_next_buffer.
1829     * In that case, we don't want to reset the lineno or column.
1830     */
1831    if (b != YY_CURRENT_BUFFER){
1832        b->yy_bs_lineno = 1;
1833        b->yy_bs_column = 0;
1834    }
1835
1836        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1837   
1838        errno = oerrno;
1839}
1840
1841/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1842 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1843 *
1844 */
1845    void yy_flush_buffer (YY_BUFFER_STATE  b )
1846{
1847        if ( ! b )
1848                return;
1849
1850        b->yy_n_chars = 0;
1851
1852        /* We always need two end-of-buffer characters.  The first causes
1853         * a transition to the end-of-buffer state.  The second causes
1854         * a jam in that state.
1855         */
1856        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1857        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1858
1859        b->yy_buf_pos = &b->yy_ch_buf[0];
1860
1861        b->yy_at_bol = 1;
1862        b->yy_buffer_status = YY_BUFFER_NEW;
1863
1864        if ( b == YY_CURRENT_BUFFER )
1865                yy_load_buffer_state( );
1866}
1867
1868/** Pushes the new state onto the stack. The new state becomes
1869 *  the current state. This function will allocate the stack
1870 *  if necessary.
1871 *  @param new_buffer The new state.
1872 * 
1873 */
1874void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1875{
1876        if (new_buffer == NULL)
1877                return;
1878
1879        yyensure_buffer_stack();
1880
1881        /* This block is copied from yy_switch_to_buffer. */
1882        if ( YY_CURRENT_BUFFER )
1883                {
1884                /* Flush out information for old buffer. */
1885                *(yy_c_buf_p) = (yy_hold_char);
1886                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1887                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1888                }
1889
1890        /* Only push if top exists. Otherwise, replace top. */
1891        if (YY_CURRENT_BUFFER)
1892                (yy_buffer_stack_top)++;
1893        YY_CURRENT_BUFFER_LVALUE = new_buffer;
1894
1895        /* copied from yy_switch_to_buffer. */
1896        yy_load_buffer_state( );
1897        (yy_did_buffer_switch_on_eof) = 1;
1898}
1899
1900/** Removes and deletes the top of the stack, if present.
1901 *  The next element becomes the new top.
1902 * 
1903 */
1904void yypop_buffer_state (void)
1905{
1906        if (!YY_CURRENT_BUFFER)
1907                return;
1908
1909        yy_delete_buffer(YY_CURRENT_BUFFER );
1910        YY_CURRENT_BUFFER_LVALUE = NULL;
1911        if ((yy_buffer_stack_top) > 0)
1912                --(yy_buffer_stack_top);
1913
1914        if (YY_CURRENT_BUFFER) {
1915                yy_load_buffer_state( );
1916                (yy_did_buffer_switch_on_eof) = 1;
1917        }
1918}
1919
1920/* Allocates the stack if it does not exist.
1921 *  Guarantees space for at least one push.
1922 */
1923static void yyensure_buffer_stack (void)
1924{
1925        int num_to_alloc;
1926   
1927        if (!(yy_buffer_stack)) {
1928
1929                /* First allocation is just for 2 elements, since we don't know if this
1930                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
1931                 * immediate realloc on the next call.
1932         */
1933                num_to_alloc = 1;
1934                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1935                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
1936                                                                );
1937                if ( ! (yy_buffer_stack) )
1938                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1939                                                                 
1940                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1941                               
1942                (yy_buffer_stack_max) = num_to_alloc;
1943                (yy_buffer_stack_top) = 0;
1944                return;
1945        }
1946
1947        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1948
1949                /* Increase the buffer to prepare for a possible push. */
1950                int grow_size = 8 /* arbitrary grow size */;
1951
1952                num_to_alloc = (yy_buffer_stack_max) + grow_size;
1953                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1954                                                                ((yy_buffer_stack),
1955                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
1956                                                                );
1957                if ( ! (yy_buffer_stack) )
1958                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1959
1960                /* zero only the new slots.*/
1961                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1962                (yy_buffer_stack_max) = num_to_alloc;
1963        }
1964}
1965
1966/** Setup the input buffer state to scan directly from a user-specified character buffer.
1967 * @param base the character buffer
1968 * @param size the size in bytes of the character buffer
1969 *
1970 * @return the newly allocated buffer state object.
1971 */
1972YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
1973{
1974        YY_BUFFER_STATE b;
1975   
1976        if ( size < 2 ||
1977             base[size-2] != YY_END_OF_BUFFER_CHAR ||
1978             base[size-1] != YY_END_OF_BUFFER_CHAR )
1979                /* They forgot to leave room for the EOB's. */
1980                return 0;
1981
1982        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1983        if ( ! b )
1984                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1985
1986        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
1987        b->yy_buf_pos = b->yy_ch_buf = base;
1988        b->yy_is_our_buffer = 0;
1989        b->yy_input_file = 0;
1990        b->yy_n_chars = b->yy_buf_size;
1991        b->yy_is_interactive = 0;
1992        b->yy_at_bol = 1;
1993        b->yy_fill_buffer = 0;
1994        b->yy_buffer_status = YY_BUFFER_NEW;
1995
1996        yy_switch_to_buffer();
1997
1998        return b;
1999}
2000
2001/** Setup the input buffer state to scan a string. The next call to yylex() will
2002 * scan from a @e copy of @a str.
2003 * @param yystr a NUL-terminated string to scan
2004 *
2005 * @return the newly allocated buffer state object.
2006 * @note If you want to scan bytes that may contain NUL values, then use
2007 *       yy_scan_bytes() instead.
2008 */
2009YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2010{
2011   
2012        return yy_scan_bytes(yystr,strlen(yystr) );
2013}
2014
2015/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2016 * scan from a @e copy of @a bytes.
2017 * @param bytes the byte buffer to scan
2018 * @param len the number of bytes in the buffer pointed to by @a bytes.
2019 *
2020 * @return the newly allocated buffer state object.
2021 */
2022YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
2023{
2024        YY_BUFFER_STATE b;
2025        char *buf;
2026        yy_size_t n;
2027        int i;
2028   
2029        /* Get memory for full buffer, including space for trailing EOB's. */
2030        n = _yybytes_len + 2;
2031        buf = (char *) yyalloc();
2032        if ( ! buf )
2033                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2034
2035        for ( i = 0; i < _yybytes_len; ++i )
2036                buf[i] = yybytes[i];
2037
2038        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2039
2040        b = yy_scan_buffer(buf,n );
2041        if ( ! b )
2042                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2043
2044        /* It's okay to grow etc. this buffer, and we should throw it
2045         * away when we're done.
2046         */
2047        b->yy_is_our_buffer = 1;
2048
2049        return b;
2050}
2051
2052#ifndef YY_EXIT_FAILURE
2053#define YY_EXIT_FAILURE 2
2054#endif
2055
2056static void yy_fatal_error (yyconst char* msg )
2057{
2058        (void) fprintf( stderr, "%s\n", msg );
2059        exit( YY_EXIT_FAILURE );
2060}
2061
2062/* Redefine yyless() so it works in section 3 code. */
2063
2064#undef yyless
2065#define yyless(n) \
2066        do \
2067                { \
2068                /* Undo effects of setting up yytext. */ \
2069        int yyless_macro_arg = (n); \
2070        YY_LESS_LINENO(yyless_macro_arg);\
2071                yytext[yyleng] = (yy_hold_char); \
2072                (yy_c_buf_p) = yytext + yyless_macro_arg; \
2073                (yy_hold_char) = *(yy_c_buf_p); \
2074                *(yy_c_buf_p) = '\0'; \
2075                yyleng = yyless_macro_arg; \
2076                } \
2077        while ( 0 )
2078
2079/* Accessor  methods (get/set functions) to struct members. */
2080
2081/** Get the current line number.
2082 *
2083 */
2084int yyget_lineno  (void)
2085{
2086       
2087    return yylineno;
2088}
2089
2090/** Get the input stream.
2091 *
2092 */
2093FILE *yyget_in  (void)
2094{
2095        return yyin;
2096}
2097
2098/** Get the output stream.
2099 *
2100 */
2101FILE *yyget_out  (void)
2102{
2103        return yyout;
2104}
2105
2106/** Get the length of the current token.
2107 *
2108 */
2109int yyget_leng  (void)
2110{
2111        return yyleng;
2112}
2113
2114/** Get the current token.
2115 *
2116 */
2117
2118char *yyget_text  (void)
2119{
2120        return yytext;
2121}
2122
2123/** Set the current line number.
2124 * @param line_number
2125 *
2126 */
2127void yyset_lineno (int  line_number )
2128{
2129   
2130    yylineno = line_number;
2131}
2132
2133/** Set the input stream. This does not discard the current
2134 * input buffer.
2135 * @param in_str A readable stream.
2136 *
2137 * @see yy_switch_to_buffer
2138 */
2139void yyset_in (FILE *  in_str )
2140{
2141        yyin = in_str ;
2142}
2143
2144void yyset_out (FILE *  out_str )
2145{
2146        yyout = out_str ;
2147}
2148
2149int yyget_debug  (void)
2150{
2151        return yy_flex_debug;
2152}
2153
2154void yyset_debug (int  bdebug )
2155{
2156        yy_flex_debug = bdebug ;
2157}
2158
2159static int yy_init_globals (void)
2160{
2161        /* Initialization is the same as for the non-reentrant scanner.
2162     * This function is called from yylex_destroy(), so don't allocate here.
2163     */
2164
2165    (yy_buffer_stack) = 0;
2166    (yy_buffer_stack_top) = 0;
2167    (yy_buffer_stack_max) = 0;
2168    (yy_c_buf_p) = (char *) 0;
2169    (yy_init) = 0;
2170    (yy_start) = 0;
2171
2172/* Defined in main.c */
2173#ifdef YY_STDINIT
2174    yyin = stdin;
2175    yyout = stdout;
2176#else
2177    yyin = (FILE *) 0;
2178    yyout = (FILE *) 0;
2179#endif
2180
2181    /* For future reference: Set errno on error, since we are called by
2182     * yylex_init()
2183     */
2184    return 0;
2185}
2186
2187/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2188int yylex_destroy  (void)
2189{
2190   
2191    /* Pop the buffer stack, destroying each element. */
2192        while(YY_CURRENT_BUFFER){
2193                yy_delete_buffer(YY_CURRENT_BUFFER  );
2194                YY_CURRENT_BUFFER_LVALUE = NULL;
2195                yypop_buffer_state();
2196        }
2197
2198        /* Destroy the stack itself. */
2199        yyfree((yy_buffer_stack) );
2200        (yy_buffer_stack) = NULL;
2201
2202    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2203     * yylex() is called, initialization will occur. */
2204    yy_init_globals( );
2205
2206    return 0;
2207}
2208
2209/*
2210 * Internal utility routines.
2211 */
2212
2213#ifndef yytext_ptr
2214static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2215{
2216        register int i;
2217        for ( i = 0; i < n; ++i )
2218                s1[i] = s2[i];
2219}
2220#endif
2221
2222#ifdef YY_NEED_STRLEN
2223static int yy_flex_strlen (yyconst char * s )
2224{
2225        register int n;
2226        for ( n = 0; s[n]; ++n )
2227                ;
2228
2229        return n;
2230}
2231#endif
2232
2233void *yyalloc (yy_size_t  size )
2234{
2235        return (void *) malloc( size );
2236}
2237
2238void *yyrealloc  (void * ptr, yy_size_t  size )
2239{
2240        /* The cast to (char *) in the following accommodates both
2241         * implementations that use char* generic pointers, and those
2242         * that use void* generic pointers.  It works with the latter
2243         * because both ANSI C and C++ allow castless assignment from
2244         * any pointer type to void*, and deal with argument conversions
2245         * as though doing an assignment.
2246         */
2247        return (void *) realloc( (char *) ptr, size );
2248}
2249
2250void yyfree (void * ptr )
2251{
2252        free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
2253}
2254
2255#define YYTABLES_NAME "yytables"
2256
2257#line 68 "lex_parser.lex"
Note: See TracBrowser for help on using the repository browser.