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

Last change on this file since 895 was 728, checked in by rlacroix, 9 years ago

Add new comparisons operators.

Those new operators return 0.0 if the comparison is false, 1.0 if it is true.

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