source: XIOS/dev/branch_yushan_merged/src/parse_expr/lex_parser.cpp @ 1134

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

branch merged with trunk r1130

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