source: XIOS/dev/branch_yushan/src/parse_expr/lex_parser.cpp @ 1073

Last change on this file since 1073 was 1072, checked in by yushan, 7 years ago

Using threads : modif for xios_initialize

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