* Bug #9560 fixed - (1./M) was parsed as (1. / M) instead of (1 ./ M)
[scilab.git] / scilab / modules / ast / src / cpp / parse / scanscilab.cpp
1
2 #line 3 "src/cpp/parse/scanscilab.cpp"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 35
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types.
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56
57 /* Limits of integral types. */
58 #ifndef INT8_MIN
59 #define INT8_MIN               (-128)
60 #endif
61 #ifndef INT16_MIN
62 #define INT16_MIN              (-32767-1)
63 #endif
64 #ifndef INT32_MIN
65 #define INT32_MIN              (-2147483647-1)
66 #endif
67 #ifndef INT8_MAX
68 #define INT8_MAX               (127)
69 #endif
70 #ifndef INT16_MAX
71 #define INT16_MAX              (32767)
72 #endif
73 #ifndef INT32_MAX
74 #define INT32_MAX              (2147483647)
75 #endif
76 #ifndef UINT8_MAX
77 #define UINT8_MAX              (255U)
78 #endif
79 #ifndef UINT16_MAX
80 #define UINT16_MAX             (65535U)
81 #endif
82 #ifndef UINT32_MAX
83 #define UINT32_MAX             (4294967295U)
84 #endif
85
86 #endif /* ! C99 */
87
88 #endif /* ! FLEXINT_H */
89
90 #ifdef __cplusplus
91
92 /* The "const" storage-class-modifier is valid. */
93 #define YY_USE_CONST
94
95 #else   /* ! __cplusplus */
96
97 /* C99 requires __STDC__ to be defined as 1. */
98 #if defined (__STDC__)
99
100 #define YY_USE_CONST
101
102 #endif  /* defined (__STDC__) */
103 #endif  /* ! __cplusplus */
104
105 #ifdef YY_USE_CONST
106 #define yyconst const
107 #else
108 #define yyconst
109 #endif
110
111 /* Returned upon end-of-file. */
112 #define YY_NULL 0
113
114 /* Promotes a possibly negative, possibly signed char to an unsigned
115  * integer for use as an array index.  If the signed char is negative,
116  * we want to instead treat it as an 8-bit unsigned char, hence the
117  * double cast.
118  */
119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
121 /* Enter a start condition.  This macro really ought to take a parameter,
122  * but we do it the disgusting crufty way forced on us by the ()-less
123  * definition of BEGIN.
124  */
125 #define BEGIN (yy_start) = 1 + 2 *
126
127 /* Translate the current start state into a value that can be later handed
128  * to BEGIN to return to the state.  The YYSTATE alias is for lex
129  * compatibility.
130  */
131 #define YY_START (((yy_start) - 1) / 2)
132 #define YYSTATE YY_START
133
134 /* Action number for EOF rule of a given start state. */
135 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
136
137 /* Special action meaning "start processing a new file". */
138 #define YY_NEW_FILE yyrestart(yyin  )
139
140 #define YY_END_OF_BUFFER_CHAR 0
141
142 /* Size of default input buffer. */
143 #ifndef YY_BUF_SIZE
144 #ifdef __ia64__
145 /* On IA-64, the buffer size is 16k, not 8k.
146  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
147  * Ditto for the __ia64__ case accordingly.
148  */
149 #define YY_BUF_SIZE 32768
150 #else
151 #define YY_BUF_SIZE 16384
152 #endif /* __ia64__ */
153 #endif
154
155 /* The state buf must be large enough to hold one state per character in the main buffer.
156  */
157 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
158
159 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
160 #define YY_TYPEDEF_YY_BUFFER_STATE
161 typedef struct yy_buffer_state *YY_BUFFER_STATE;
162 #endif
163
164 extern int yyleng;
165
166 extern FILE *yyin, *yyout;
167
168 #define EOB_ACT_CONTINUE_SCAN 0
169 #define EOB_ACT_END_OF_FILE 1
170 #define EOB_ACT_LAST_MATCH 2
171
172 #define YY_LESS_LINENO(n)
173
174 /* Return all but the first "n" matched characters back to the input stream. */
175 #define yyless(n) \
176         do \
177                 { \
178                 /* Undo effects of setting up yytext. */ \
179         int yyless_macro_arg = (n); \
180         YY_LESS_LINENO(yyless_macro_arg);\
181                 *yy_cp = (yy_hold_char); \
182                 YY_RESTORE_YY_MORE_OFFSET \
183                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
184                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
185                 } \
186         while ( 0 )
187
188 #define unput(c) yyunput( c, (yytext_ptr)  )
189
190 #ifndef YY_TYPEDEF_YY_SIZE_T
191 #define YY_TYPEDEF_YY_SIZE_T
192 typedef size_t yy_size_t;
193 #endif
194
195 #ifndef YY_STRUCT_YY_BUFFER_STATE
196 #define YY_STRUCT_YY_BUFFER_STATE
197 struct yy_buffer_state
198 {
199 FILE *yy_input_file;
200
201 char *yy_ch_buf;                /* input buffer */
202 char *yy_buf_pos;               /* current position in input buffer */
203
204 /* Size of input buffer in bytes, not including room for EOB
205  * characters.
206  */
207 yy_size_t yy_buf_size;
208
209 /* Number of characters read into yy_ch_buf, not including EOB
210  * characters.
211  */
212 int yy_n_chars;
213
214 /* Whether we "own" the buffer - i.e., we know we created it,
215  * and can realloc() it to grow it, and should free() it to
216  * delete it.
217  */
218 int yy_is_our_buffer;
219
220 /* Whether this is an "interactive" input source; if so, and
221  * if we're using stdio for input, then we want to use getc()
222  * instead of fread(), to make sure we stop fetching input after
223  * each newline.
224  */
225 int yy_is_interactive;
226
227 /* Whether we're considered to be at the beginning of a line.
228  * If so, '^' rules will be active on the next match, otherwise
229  * not.
230  */
231 int yy_at_bol;
232
233 int yy_bs_lineno; /**< The line count. */
234 int yy_bs_column; /**< The column count. */
235
236 /* Whether to try to fill the input buffer when we reach the
237  * end of it.
238  */
239 int yy_fill_buffer;
240
241 int yy_buffer_status;
242
243 #define YY_BUFFER_NEW 0
244 #define YY_BUFFER_NORMAL 1
245 /* When an EOF's been seen but there's still some text to process
246  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
247  * shouldn't try reading from the input source any more.  We might
248  * still have a bunch of tokens to match, though, because of
249  * possible backing-up.
250  *
251  * When we actually see the EOF, we change the status to "new"
252  * (via yyrestart()), so that the user can continue scanning by
253  * just pointing yyin at a new input file.
254  */
255 #define YY_BUFFER_EOF_PENDING 2
256
257 };
258 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
259
260 /* Stack of input buffers. */
261 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
262 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
263 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
264
265 /* We provide macros for accessing buffer states in case in the
266  * future we want to put the buffer states in a more general
267  * "scanner state".
268  *
269  * Returns the top of the stack, or NULL.
270  */
271 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
272                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
273                           : NULL)
274
275 /* Same as previous macro, but useful when we know that the buffer stack is not
276  * NULL or when we need an lvalue. For internal use only.
277  */
278 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
279
280 /* yy_hold_char holds the character lost when yytext is formed. */
281 static char yy_hold_char;
282 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
283 int yyleng;
284
285 /* Points to current character in buffer. */
286 static char *yy_c_buf_p = (char *) 0;
287 static int yy_init = 0;         /* whether we need to initialize */
288 static int yy_start = 0;        /* start state number */
289
290 /* Flag which is used to allow yywrap()'s to do buffer switches
291  * instead of setting up a fresh yyin.  A bit of a hack ...
292  */
293 static int yy_did_buffer_switch_on_eof;
294
295 void yyrestart (FILE *input_file  );
296 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
297 YY_BUFFER_STATE yy_create_buffer (FILE *file, int size  );
298 void yy_delete_buffer (YY_BUFFER_STATE b  );
299 void yy_flush_buffer (YY_BUFFER_STATE b  );
300 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
301 void yypop_buffer_state (void );
302
303 static void yyensure_buffer_stack (void );
304 static void yy_load_buffer_state (void );
305 static void yy_init_buffer (YY_BUFFER_STATE b, FILE *file  );
306
307 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
308
309 YY_BUFFER_STATE yy_scan_buffer (char *base, yy_size_t size  );
310 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
311 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes, int len  );
312
313 void *yyalloc (yy_size_t  );
314 void *yyrealloc (void *, yy_size_t  );
315 void yyfree (void *  );
316
317 #define yy_new_buffer yy_create_buffer
318
319 #define yy_set_interactive(is_interactive) \
320         { \
321         if ( ! YY_CURRENT_BUFFER ){ \
322         yyensure_buffer_stack (); \
323                 YY_CURRENT_BUFFER_LVALUE =    \
324             yy_create_buffer(yyin,YY_BUF_SIZE ); \
325         } \
326         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
327         }
328
329 #define yy_set_bol(at_bol) \
330         { \
331         if ( ! YY_CURRENT_BUFFER ){\
332         yyensure_buffer_stack (); \
333                 YY_CURRENT_BUFFER_LVALUE =    \
334             yy_create_buffer(yyin,YY_BUF_SIZE ); \
335         } \
336         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
337         }
338
339 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
340
341 /* Begin user sect3 */
342
343 #define yywrap(n) 1
344 #define YY_SKIP_YYWRAP
345
346 typedef unsigned char YY_CHAR;
347
348 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
349
350 typedef int yy_state_type;
351
352 extern int yylineno;
353
354 int yylineno = 1;
355
356 extern char *yytext;
357 #define yytext_ptr yytext
358
359 static yy_state_type yy_get_previous_state (void );
360 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
361 static int yy_get_next_buffer (void );
362 static void yy_fatal_error (yyconst char msg[]  );
363
364 /* Done after the current pattern has been matched and before the
365  * corresponding action - sets up yytext.
366  */
367 #define YY_DO_BEFORE_ACTION \
368         (yytext_ptr) = yy_bp; \
369         yyleng = (size_t) (yy_cp - yy_bp); \
370         (yy_hold_char) = *yy_cp; \
371         *yy_cp = '\0'; \
372         (yy_c_buf_p) = yy_cp;
373
374 #define YY_NUM_RULES 145
375 #define YY_END_OF_BUFFER 146
376 /* This struct is not used in this scanner,
377    but its presence is necessary. */
378 struct yy_trans_info
379 {
380 flex_int32_t yy_verify;
381 flex_int32_t yy_nxt;
382 };
383 static yyconst flex_int16_t yy_acclist[945] =
384 {
385 0,
386 16408,  123,  123,  133,  133,  113,  113,  109,  109,  146,
387 84,  145,   80,   84,  145,   81,  145,   81,   84,  145,
388 78,   84,  145,   75,   84,  145,   27,   84,  145,   75,
389 84,  145,   30,   84,  145,   79,   84,  145,   34,   84,
390 145,   35,   84,  145,   48,   84,  145,   47,   84,  145,
391 37,   84,  145,   46,   84,  145,   67,   84,  145,   49,
392 84,  145,   69,   84,  145,   38,   84,  145,   36,   84,
393 145,   60,   84,  145,   64,   84,  145,   61,   84,  145,
394 26,   84,  145,   65,   84,  145,   50,   84,  145,   66,
395 84,  145,   51,   84,  145,   75,   84,  145,   75,   84,
396
397 145,   75,   84,  145,   75,   84,  145,   75,   84,  145,
398 75,   84,  145,   75,   84,  145,   75,   84,  145,   75,
399 84,  145,   75,   84,  145,   75,   84,  145,   39,   84,
400 145,   32,   84,  145,   40,   84,  145,   26,   84,  145,
401 84,  145,   84,  145,   84,  145,   84,  145,   84,  145,
402 84,  145,   84,  145,   84,  145,   84,  145,   80,   84,
403 145, 16408,   75,   84,  145,   27,   84,  145,   75,   84,
404 145,   75,   84,  145,   75,   84,  145,   75,   84,  145,
405 75,   84,  145,   75,   84,  145,   75,   84,  145,   75,
406 84,  145,   75,   84,  145,   75,   84,  145,   75,   84,
407
408 145,   75,   84,  145,   84,  145,   84,  145,   84,  145,
409 84,  145,   84,  145,   84,  145,   84,  145,   84,  145,
410 84,  145,  123,  124,  145,  122,  145,  122,  124,  145,
411 120,  124,  145,  119,  124,  145,  124,  145,  133,  134,
412 145,  132,  145,  132,  134,  145,  129,  134,  145,  130,
413 134,  145,  134,  145,  113,  114,  145,  112,  145,  112,
414 114,  145,  114,  145,  114,  145,  109,  145,  108,  145,
415 108,  145,  107,  145,  106,  107,  145,  103,  145,  103,
416 107,  145,  107,  145,   98,  145,   80,   98,  145,   89,
417 145,   89,   98,  145,   78,   98,  145,   75,   98,  145,
418
419 27,   98,  145,   75,   98,  145,   30,   98,  145,   79,
420 98,  145,   85,   87,   98,  145,   86,   98,  145,   48,
421 98,  145,   92,   98,  145,   37,   98,  145,   94,   98,
422 145,   67,   98,  145,   49,   98,  145,   69,   98,  145,
423 38,   88,   98,  145,   36,   98,  145,   60,   98,  145,
424 64,   98,  145,   61,   98,  145,   26,   98,  145,   65,
425 98,  145,   50,   98,  145,   90,   98,  145,   51,   98,
426 145,   39,   98,  145,   32,   98,  145,   91,   98,  145,
427 26,   98,  145,   98,  145,   98,  145,   98,  145,   98,
428 145,   98,  145,   98,  145,   98,  145,   98,  145,  144,
429
430 145,  135,  145,  138,  145,  138,  145,   78,  145,   79,
431 145,  140,  144,  145,  137,  145,  136,  145,  141,  144,
432 145,  139,  144,  145,  142,  144,  145,  143,  144,  145,
433 145,   25,  145,  145,   25,  145,   25,  145,   25,  145,
434 25,  145,   25,  145,   25,  145,   25,  145,   25,  145,
435 25,  145,   25,  145,   25,  145,   25,  145,  145,  145,
436 145,  145,  145,  145,  145,  145,   80,   82,   82,   81,
437 75,   75,    3,   29,   75,    2,   28,   75,   31,   51,
438 41,   42,   68,   43,   74,   44,   45,   76,   77,   73,
439 69,   62,   59,   58,   63,   75,   75,   75,   17,   75,
440
441 75,   75,   75,   75,    4,   75,   75,   75,   75,   75,
442 75,   75,   75,   33,   75,   80, 16408,   75,   75,    3,
443 29,   75,    2,   28,   75,   75,   75,   75,   17,   75,
444 75,   75,   75,   75,    4,   75,   75,   75,   75,   75,
445 75,   75,   75,   75,  123,  122,  115,  116,  117,  118,
446 133,  132,  125,  126,  127,  128,  113,  112,  110,  111,
447 109,  108,  106,  103,  104,  105,   80,   87,   96,   97,
448 88,   89,   29,   75,   28,   75,   88,  144,  135,  138,
449 25,   25,    3,   25,    2,   25,   25,   25,   25,   17,
450 25,   25,   25,   25,   25,    4,   25,   25,   25,   25,
451
452 25,   25,   25,   25,   25,   83,   83,   55,   52,   53,
453 54,   56,   72,   73,   70,   71,   57,   75,   75,   75,
454 75,   75,    8,   75,   15,   75,   75,   75,   75,   75,
455 75,   75,   75,   20,   75,   75,    1,   75, 8216, 8216,
456 75,   75,   75,   75,   75,    8,   75,   15,   75,   75,
457 75,   75,   75,   75,   75,   75,   20,   75,   75,    1,
458 75,  121,  121,  131,  131,   93,   95,   99,   99,   25,
459 25,   25,   25,   25,    8,   25,   15,   25,   25,   25,
460 25,   25,   25,   25,   25,   20,   25,   25,   75,   12,
461 75,   75,   75,    6,   75,   75,   75,   75,   75,   75,
462
463 75,   75,    5,   75,   75,    1,    1,   75,    1,    1,
464 1,    1,    1,    1,    1,    1,   75, 8216,   75,   12,
465 75,   75,   75,    6,   75,   75,   75,   75,   75,   75,
466 75,   75,    5,   75,   75,    1,    1,   75,    1,    1,
467 1,    1,    1,    1,    1,    1,   75,  101,  101,   25,
468 12,   25,   25,   25,    6,   25,   25,   25,   25,   25,
469 25,   25,   25,    5,   25,   25,   25,   75,   75,   18,
470 75,   21,   75,   75,   75,   75,   75,   75,   75,   75,
471 75,   75,   16,   75,    1,    1,    1,    1,    1,    1,
472 1,   75,   75,   18,   75,   21,   75,   75,   75,   75,
473
474 75,   75,   75,   75,   75,   75,   16,   75,    1, 8216,
475 1, 8216,    1,    1,    1,    1,    1,    1,    1,  100,
476 100,   25,   25,   18,   25,   21,   25,   25,   25,   25,
477 25,   25,   25,   25,   25,   25,   16,   25,   75,    7,
478 75,   75,   75,   75,   23,   75,   22,   75,    9,   75,
479 10,   75,    1,    1,    1,   75,    7,   75,   75,   75,
480 75,   23,   75,   22,   75,    9,   75,   10,   75,    1,
481 8216,    1,    1,    1,  102,  102,  100,   25,    7,   25,
482 25,   25,   25,   23,   25,   22,   25,    9,   25,   10,
483 25,   75,   75,   75,   75,    1,   75,   75,   75,   75,
484
485 75,    1,   75,  102,   25,   25,   25,   25,   19,   75,
486 75,   13,   75,   75,   19,   75,   75,   13,   75,   75,
487 19,   25,   25,   13,   25,   25,   75,   11,   75,   75,
488 11,   75,   25,   11,   25,   75,   75,   25,   14,   75,
489 14,   75,   14,   25
490 } ;
491
492 static yyconst flex_int16_t yy_accept[826] =
493 {
494 0,
495 1,    1,    2,    3,    4,    5,    6,    7,    8,    9,
496 10,   10,   10,   10,   10,   10,   10,   10,   10,   11,
497 13,   16,   18,   21,   24,   27,   30,   33,   36,   39,
498 42,   45,   48,   51,   54,   57,   60,   63,   66,   69,
499 72,   75,   78,   81,   84,   87,   90,   93,   96,   99,
500 102,  105,  108,  111,  114,  117,  120,  123,  126,  129,
501 132,  135,  138,  141,  143,  145,  147,  149,  151,  153,
502 155,  157,  159,  163,  166,  169,  172,  175,  178,  181,
503 184,  187,  190,  193,  196,  199,  202,  205,  207,  209,
504 211,  213,  215,  217,  219,  221,  223,  226,  228,  231,
505
506 234,  237,  239,  242,  244,  247,  250,  253,  255,  258,
507 260,  263,  265,  267,  269,  271,  273,  275,  278,  280,
508 283,  285,  287,  290,  292,  295,  298,  301,  304,  307,
509 310,  313,  317,  320,  323,  326,  329,  332,  335,  338,
510 341,  345,  348,  351,  354,  357,  360,  363,  366,  369,
511 372,  375,  378,  381,  384,  386,  388,  390,  392,  394,
512 396,  398,  400,  402,  404,  406,  408,  410,  412,  415,
513 417,  419,  422,  425,  428,  431,  432,  434,  435,  437,
514 439,  441,  443,  445,  447,  449,  451,  453,  455,  457,
515 459,  460,  461,  462,  463,  464,  465,  466,  467,  468,
516
517 469,  470,  470,  470,  471,  472,  472,  472,  472,  472,
518 472,  472,  472,  472,  473,  473,  473,  473,  473,  473,
519 473,  473,  473,  476,  479,  480,  481,  481,  482,  483,
520 484,  485,  486,  487,  488,  489,  489,  490,  491,  492,
521 492,  492,  492,  493,  494,  494,  495,  495,  496,  496,
522 496,  497,  498,  499,  501,  502,  503,  504,  505,  507,
523 508,  509,  510,  511,  512,  513,  514,  515,  515,  516,
524 516,  516,  516,  516,  516,  516,  516,  516,  518,  518,
525 518,  518,  518,  518,  518,  518,  518,  518,  518,  518,
526 519,  519,  519,  519,  519,  519,  519,  519,  519,  520,
527
528 520,  520,  520,  520,  520,  520,  520,  520,  523,  526,
529 527,  528,  529,  531,  532,  533,  534,  535,  537,  538,
530 539,  540,  541,  542,  543,  544,  545,  545,  545,  545,
531 545,  545,  545,  545,  545,  546,  547,  548,  549,  550,
532 551,  551,  552,  553,  554,  555,  556,  557,  557,  558,
533 559,  560,  561,  562,  563,  564,  565,  566,  567,  568,
534 569,  570,  571,  571,  572,  573,  575,  577,  577,  578,
535 579,  580,  581,  582,  582,  582,  582,  582,  582,  582,
536 582,  582,  583,  583,  583,  583,  583,  583,  583,  583,
537 583,  585,  587,  588,  589,  590,  592,  593,  594,  595,
538
539 596,  598,  599,  600,  601,  602,  603,  604,  605,  606,
540 606,  606,  606,  606,  606,  606,  606,  607,  608,  608,
541 608,  608,  608,  608,  608,  608,  608,  608,  608,  608,
542 608,  608,  608,  609,  610,  611,  612,  613,  614,  615,
543 615,  616,  616,  617,  618,  619,  620,  621,  622,  623,
544 625,  627,  628,  629,  630,  631,  632,  633,  634,  636,
545 637,  639,  639,  639,  639,  639,  639,  639,  639,  639,
546 639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
547 639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
548 640,  641,  641,  641,  641,  641,  641,  641,  641,  641,
549
550 641,  641,  641,  641,  641,  641,  642,  643,  644,  645,
551 646,  648,  650,  651,  652,  653,  654,  655,  656,  657,
552 659,  660,  662,  662,  662,  662,  663,  664,  665,  666,
553 667,  668,  668,  668,  669,  670,  670,  670,  670,  670,
554 670,  670,  670,  670,  670,  670,  670,  670,  670,  670,
555 670,  671,  672,  673,  674,  675,  677,  679,  680,  681,
556 682,  683,  684,  685,  686,  688,  689,  689,  689,  689,
557 689,  689,  689,  689,  689,  689,  690,  692,  693,  694,
558 696,  697,  698,  699,  700,  701,  702,  703,  705,  706,
559 707,  709,  710,  711,  712,  713,  714,  715,  716,  717,
560
561 718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
562 718,  718,  718,  718,  718,  718,  718,  718,  719,  719,
563 719,  719,  719,  719,  719,  720,  722,  723,  724,  726,
564 727,  728,  729,  730,  731,  732,  733,  735,  736,  737,
565 739,  740,  741,  742,  743,  744,  745,  746,  747,  748,
566 748,  749,  750,  750,  750,  750,  750,  750,  750,  750,
567 750,  751,  753,  754,  755,  757,  758,  759,  760,  761,
568 762,  763,  764,  766,  767,  768,  769,  770,  772,  774,
569 775,  776,  777,  778,  779,  780,  781,  782,  783,  785,
570 786,  787,  788,  789,  790,  791,  792,  792,  792,  792,
571
572 792,  792,  792,  792,  793,  794,  796,  798,  799,  800,
573 801,  802,  803,  804,  805,  806,  807,  809,  811,  813,
574 814,  815,  816,  817,  818,  819,  820,  820,  820,  821,
575 822,  823,  824,  826,  828,  829,  830,  831,  832,  833,
576 834,  835,  836,  837,  839,  840,  842,  843,  844,  845,
577 847,  849,  851,  853,  854,  855,  856,  856,  856,  857,
578 859,  860,  861,  862,  864,  866,  868,  870,  872,  873,
579 874,  875,  875,  876,  877,  878,  879,  881,  882,  883,
580 884,  886,  888,  890,  892,  893,  894,  895,  896,  898,
581 899,  900,  901,  902,  904,  905,  906,  907,  908,  909,
582
583 911,  912,  914,  915,  917,  918,  920,  921,  923,  924,
584 926,  927,  928,  930,  931,  933,  934,  936,  937,  938,
585 939,  941,  943,  945,  945
586 } ;
587
588 static yyconst flex_int32_t yy_ec[256] =
589 {
590 0,
591 1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
592 2,    2,    4,    1,    1,    1,    1,    1,    1,    1,
593 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
594 1,    2,    1,    5,    6,    7,    8,    9,   10,   11,
595 12,   13,   14,   15,   16,   17,   18,   19,   19,   19,
596 19,   19,   19,   19,   19,   19,   19,   20,   21,   22,
597 23,   24,    6,   25,    6,    6,    6,   26,   27,   28,
598 6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
599 6,    6,    6,   29,    6,    6,    6,    6,    6,    6,
600 30,   31,   32,   33,    6,    1,   34,   35,   36,   37,
601
602 38,   39,    6,   40,   41,    6,   42,   43,   44,   45,
603 46,    6,    6,   47,   48,   49,   50,    6,   51,    6,
604 52,    6,   53,   54,   55,   56,    1,   57,   57,   57,
605 57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
606 57,   57,   57,   58,   58,   58,   58,   58,   58,   58,
607 58,   58,   58,   58,   58,   58,   58,   58,   58,   59,
608 59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
609 59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
610 59,   59,   59,   59,   59,   59,   60,   59,   59,   59,
611 61,    1,    1,   62,   62,   62,   62,   62,   62,   62,
612
613 62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
614 62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
615 62,   62,   62,   63,   64,   64,   64,   64,   64,   64,
616 64,   64,   64,   64,   64,   64,   65,   66,   67,   68,
617 69,   69,   69,   70,    1,    1,    1,    1,    1,    1,
618 1,    1,    1,    1,    1
619 } ;
620
621 static yyconst flex_int32_t yy_meta[71] =
622 {
623 0,
624 1,    2,    3,    4,    5,    6,    6,    7,    1,    5,
625 8,    1,    9,    1,   10,    1,   11,    9,   12,    1,
626 10,    8,    8,    8,    1,    6,    6,    6,    6,    1,
627 1,    1,    1,    6,    6,    6,    6,    6,    6,    6,
628 6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
629 6,    6,    1,    1,    1,    1,    1,    1,    1,    1,
630 1,    6,    6,    6,    6,    6,    6,    6,    6,    6
631 } ;
632
633 static yyconst flex_int16_t yy_base[853] =
634 {
635 0,
636 0,   70,  138,  141,  149,  157,  160,  166,  146,  153,
637 173,  178,  196,    0,  265,  320,  376,    0,  908, 4195,
638 183,  270,  279, 4195,  239,  248,  419,  895, 4195, 4195,
639 4195,  155, 4195, 4195, 4195,  319,  175,  329, 4195, 4195,
640 269,  272,  275,  276, 4195,  885, 4195, 4195,  325,  421,
641 423,  451,  425,  463,  469,  475,  477,  482,  504, 4195,
642 840, 4195,  317,  300,  267,  477,  132,  488,  497,  310,
643 502,  835,  562,  515,  524,  631,  567,  569,  571,  606,
644 573,  491,  608,  614,  633,  636,  638,  513,  417,  631,
645 137,  645,  650,  580,  655,  829,    0, 4195,  877,  274,
646
647 329,  861,    0, 4195,  858,  451,  599,  834,    0, 4195,
648 846,  829,  831,    0, 4195,  831, 4195,  790, 4195,  782,
649 655, 4195,  715,  718,  719, 4195,  699,  687,  730,  765,
650 4195, 4195, 4195,  334, 4195, 4195, 4195,  753,  724,  756,
651 765, 4195,  721,  646,  656,  723, 4195,  748, 4195, 4195,
652 4195,  682, 4195,  741,  730,  491,  738,  239,  743,  747,
653 752,  673,    0,  722, 4195,  683, 4195, 4195,    0, 4195,
654 4195,    0,    0,    0,    0, 4195,  752,  761,  804,  807,
655 811,  809,  836,  813,  848,  854,  860,  862,  867,  889,
656 862,  701,  873,  305,  882,  866,  887,  624,  774, 4195,
657
658 671,  947,  950,  954,  931,  924,  876,  929,  408,  934,
659 918,  939,  599,    0,  944,  913,  949,  484,  954,  958,
660 963,  597,  997,  999, 4195, 4195,    0, 4195,  446,  633,
661 629, 1013,  627, 4195, 4195,    0, 4195, 1016, 1038,  896,
662 947, 1035, 4195, 4195,  745, 4195,  882, 4195, 1029,    0,
663 1032, 1034, 1039, 1051, 1057, 1064, 1069, 1081, 1083, 1095,
664 1099, 1111, 1114, 1123, 1117, 1129, 4195, 1043, 1136, 1122,
665 1129, 1134, 1139, 1144, 1149, 1154, 1159, 1219, 1165, 1174,
666 1188, 1191, 1196,  510, 1201, 1205, 1210,  564, 1031, 1251,
667 1215, 1232, 1237,  518, 1244, 1248, 1253,  556, 1275, 1258,
668
669 1261, 1266,  723, 1271, 1275, 1289,  554, 1323, 1325, 1327,
670 1329, 1341, 1332, 1354, 1359, 1366, 1371, 1378, 1383, 1390,
671 1397, 1402, 1406, 1419, 1421, 1424, 1417, 1422, 1427, 1432,
672 1437, 1442, 1447, 1452,    0, 4195, 4195, 4195, 4195, 4195,
673 1511,    0, 4195, 4195, 4195, 4195, 4195, 1513,    0, 4195,
674 4195, 4195,    0, 4195,  605, 4195, 4195, 4195, 1518, 4195,
675 603,  537,  510,  523, 1100, 1497, 1511, 1539,  521,    0,
676 507, 4195, 1516, 1509, 1405, 1514,  900, 1519, 1493, 1524,
677 450, 1524, 1538, 1488, 1543, 1037, 1548, 1503, 1553,  444,
678 1587, 1589, 1591, 1593, 1605, 1596, 1618, 1623, 1630, 1635,
679
680 1642, 1647, 1654, 1661, 1666, 1670, 1683, 1685, 1688, 1681,
681 1686, 1691, 1696, 1701, 1706, 1711, 4195,  496, 1716, 1721,
682 1726, 1731, 1736, 1741, 1746, 1751, 1756, 1761, 1766, 1771,
683 1776, 1781, 4195, 4195, 4195, 4195, 4195, 4195, 1824,  476,
684 474,  454,  438, 4195, 1818, 1816, 1820, 1835, 1842, 1844,
685 1847, 1849, 1861, 1866, 1873, 1875, 1878, 1880, 1892, 1904,
686 1953, 1877, 1891, 1967, 2027, 1973, 1669, 1978, 1079, 1983,
687 1987, 1992,  318, 2052, 1998, 1885, 2003, 1116, 2008, 2012,
688 2017,  316, 2022, 2027, 2041, 2046, 2051, 2066, 2071, 4195,
689 2131, 2077, 2086, 2091, 2099, 2104, 2109, 2114, 2119, 2124,
690
691 2129, 2134, 2139, 2144, 2149, 2183, 2185, 2190, 2192, 2199,
692 2207, 2214, 2216, 2221, 2229, 2233, 2238, 2245, 2252, 2257,
693 2260, 2309, 2323, 2328, 2333, 4195,  362, 4195,  346,  331,
694 318, 2393, 2396, 4195,  280,  255, 2344, 2358, 2363, 2368,
695 2373, 2378, 2383, 2388, 2393, 2398, 2403, 2408, 2413, 2418,
696 2452, 2454, 2459, 2461, 2468, 2476, 2483, 2485, 2490, 2498,
697 2502, 2507, 2514, 2521, 2526, 2529, 2522, 2527, 2532, 2537,
698 2542, 2547, 2552, 2557, 2562, 2596, 2598, 2600, 2602, 2605,
699 2624, 2627, 2630, 2636, 2639, 2653, 2655, 2667, 2669,    0,
700 0, 2652, 2080, 2662, 1119, 2667, 2348, 2672,  126, 2706,
701
702 2679, 2689, 2699, 2704, 2709, 2714, 2719, 2724, 2729, 2734,
703 2739, 2744, 2749, 2754, 2759, 2764, 2769, 2829, 2775, 2784,
704 2789, 2797, 2802, 2807, 2841, 2843, 2845, 2847, 2850, 2869,
705 2872, 2875, 2881, 2884, 2898, 2900, 2912, 2914, 2943,    0,
706 2898, 2601, 2912, 1167, 2917, 2683, 2922,  114, 2956, 2697,
707 4195,  162,  129, 1381, 2929, 2943, 2949, 2954, 2959, 2964,
708 2998, 3000, 3002, 3004, 3007, 3026, 3029, 3032, 3038, 3041,
709 3055, 3057, 3069, 3071, 3073, 3085,    0, 3087, 3099, 3101,
710 3103, 3115, 3127, 3130, 3133, 3145, 3149, 3157, 3163, 3150,
711 3156, 3161, 3166, 3171, 3176, 3181, 3186, 3191, 3196, 3201,
712
713 3206, 3211,    0, 3245,    0, 3247, 3249, 3252, 3254, 3261,
714 3276, 3279, 3283, 3295, 3298, 3310, 3307,    0, 3339, 3294,
715 3306, 3311, 3316, 3321, 3326, 3331, 1388, 1453, 4195, 1515,
716 3365,    0, 3367, 3369, 3372, 3374, 3381, 3396, 3399, 3403,
717 3415, 3418, 3430, 3427, 3433, 3445, 3449, 3458, 3452, 3461,
718 3467, 3474, 3480, 3467, 3473, 3478,    0,    0, 3512, 3514,
719 3516, 3518, 3530, 3521, 3544, 3546, 3548, 3578, 3531, 3545,
720 3550, 1520, 4195, 1555, 4195, 3584, 3586, 3588, 3590, 3602,
721 3593, 3616, 3618, 3620, 3624, 3632, 3646, 3648,    0, 3650,
722 3654, 3672, 3676,    0, 4195, 3680, 3684, 3698, 3702, 3706,
723
724 3720, 3724, 3728, 3736, 3742, 3750, 3758, 3764, 3773, 3766,
725 3780, 3782, 3788, 3795, 3797, 3804, 3810, 3819, 3826, 3828,
726 3823, 3841, 3850, 4195, 3899, 3911, 3923, 3935, 3947, 3959,
727 3966, 3973, 3984, 3990, 3997, 4009, 4021, 4033, 4045, 4057,
728 4064, 4071, 4083, 4094, 4105, 4115, 4122, 4134, 4146, 4158,
729 4170, 4182
730 } ;
731
732 static yyconst flex_int16_t yy_def[853] =
733 {
734 0,
735 824,  824,  825,  825,  826,  826,  827,  827,  828,  828,
736 829,  829,  824,   13,  830,  830,  824,   17,  824,  824,
737 824,  824,  824,  824,  831,  832,  831,  824,  824,  824,
738 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
739 824,  824,  824,  824,  824,  824,  824,  824,   27,   27,
740 27,   27,   27,   27,   27,   27,   27,   27,   27,  824,
741 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
742 824,  824,  833,  834,  835,  834,   76,   76,   76,   76,
743 76,   76,   76,   76,   76,   76,   76,  824,  824,  824,
744 824,  824,  824,  824,  824,  824,  836,  824,  824,  824,
745
746 824,  824,  837,  824,  824,  824,  824,  824,  838,  824,
747 824,  824,  824,  839,  824,  824,  824,  824,  824,  824,
748 824,  824,  824,  824,  824,  824,   27,  832,   27,  824,
749 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
750 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
751 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
752 824,  824,  840,  824,  824,  824,  824,  824,  840,  824,
753 824,  840,  840,  840,  840,  824,  841,  842,  841,  179,
754 179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
755 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
756
757 824,  824,  824,  824,   27,  824,  824,  824,  824,  824,
758 824,  824,  824,  128,  824,  824,  824,  824,  824,  824,
759 824,  824,   27,   27,  824,  824,  843,  824,  824,  824,
760 824,  824,  824,  824,  824,  844,  824,  824,  824,  824,
761 824,  824,  824,  824,  824,  824,  824,  824,  824,  845,
762 27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
763 27,   27,   27,   27,   27,   27,  824,  824,   27,  824,
764 824,  824,  824,  824,  824,  824,  824,  833,  846,  847,
765 824,  824,  824,  824,  824,  824,  824,  824,  848,   76,
766 824,  824,  824,  824,  824,  824,  824,  824,  835,  824,
767
768 824,  824,  824,  824,  824,  824,  824,   76,   76,   76,
769 76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
770 76,   76,   76,   76,   76,   76,  824,  824,  824,  824,
771 824,  824,  824,  824,  836,  824,  824,  824,  824,  824,
772 824,  837,  824,  824,  824,  824,  824,  824,  838,  824,
773 824,  824,  839,  824,  824,  824,  824,  824,  824,  824,
774 824,  824,  824,  824,  824,   27,   27,  824,  824,  840,
775 824,  824,  179,  824,  824,  824,  824,  824,  824,  824,
776 824,  842,  824,  824,  824,  824,  824,  824,  824,  824,
777 179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
778
779 179,  179,  179,  179,  179,  179,  179,  179,  179,  824,
780 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
781 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
782 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
783 824,  824,  824,  824,   27,   27,   27,   27,   27,   27,
784 27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
785 824,  824,  824,  824,  846,  824,  824,  824,  824,  824,
786 824,  824,  824,  847,  824,  824,  824,  824,  824,  824,
787 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
788 848,  824,  824,  824,  824,  824,  824,  824,  824,  824,
789
790 824,  824,  824,  824,  824,   76,   76,   76,   76,   76,
791 76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
792 76,  824,  824,  824,  824,  824,  824,  824,  824,  824,
793 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
794 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
795 179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
796 179,  179,  179,  179,  179,  179,  824,  824,  824,  824,
797 824,  824,  824,  824,  824,   27,   27,   27,   27,   27,
798 27,   27,   27,   27,   27,   27,   27,   27,   27,  849,
799 461,  849,  849,  849,  849,  849,  849,  849,  849,   27,
800
801 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
802 824,  824,  824,  824,  824,  824,  824,  848,  824,  824,
803 824,  824,  824,  824,   76,   76,   76,   76,   76,   76,
804 76,   76,   76,   76,   76,   76,   76,   76,  850,  522,
805 849,  849,  849,  849,  849,  849,  849,  849,   76,  824,
806 824,  824,  824,  851,  824,  824,  824,  824,  824,  824,
807 179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
808 179,  179,  179,  179,  179,   27,  128,   27,   27,   27,
809 27,   27,   27,   27,   27,   27,   27,   27,   27,  849,
810 849,  849,  849,  849,  849,  849,  824,  824,  824,  824,
811
812 824,  824,  465,   76,  299,   76,   76,   76,   76,   76,
813 76,   76,   76,   76,   76,   76,   76,  849,  850,  849,
814 849,  849,  849,  849,  849,  849,  852,  851,  824,  851,
815 179,  382,  179,  179,  179,  179,  179,  179,  179,  179,
816 179,  179,  179,  179,   27,   27,   27,   27,   27,   27,
817 27,   27,   27,  849,  849,  849,  465,  474,   76,   76,
818 76,   76,   76,   76,   76,   76,   76,  850,  849,  849,
819 849,  852,  824,  852,  824,  179,  179,  179,  179,  179,
820 179,  179,  179,  179,   27,   27,   27,   27,  461,   76,
821 76,   76,   76,  522,  824,  179,  179,  179,  179,   27,
822
823 27,   27,   27,   76,   76,   76,   76,  179,  179,  179,
824 179,   27,   27,   76,   76,  179,  179,   27,   76,  179,
825 27,   76,  179,    0,  824,  824,  824,  824,  824,  824,
826 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
827 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
828 824,  824
829 } ;
830
831 static yyconst flex_int16_t yy_nxt[4266] =
832 {
833 0,
834 20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
835 30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
836 40,   41,   42,   43,   44,   25,   25,   25,   25,   45,
837 46,   47,   48,   25,   49,   50,   51,   52,   53,   25,
838 54,   25,   25,   25,   25,   55,   56,   57,   58,   25,
839 59,   25,   60,   61,   62,   63,   20,   20,   20,   20,
840 20,   64,   65,   66,   67,   68,   69,   70,   71,   72,
841 20,   73,   22,   23,   24,   74,   75,   76,   28,   29,
842 30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
843 40,   41,   42,   43,   44,   74,   74,   74,   74,   45,
844
845 46,   47,   48,   74,   77,   78,   79,   80,   81,   74,
846 82,   74,   74,   74,   74,   83,   84,   85,   86,   74,
847 87,   74,   60,   61,   62,   63,   20,   20,   20,   20,
848 20,   88,   89,   90,   91,   92,   93,   94,   95,   96,
849 98,   99,  100,   98,   99,  100,  727,  101,  115,  116,
850 101,  104,  105,  106,  102,  115,  116,  102,  107,  104,
851 105,  106,  110,  111,  651,  108,  107,  226,  110,  111,
852 726,  227,  112,  108,  118,  119,  120,  113,  112,  118,
853 119,  120,  696,  113,  199,  200,  201,  235,  272,  272,
854 121,  236,  237,  329,  329,  121,  122,  123,  124,  125,
855
856 126,  127,  128,  129,  130,  131,  132,  133,  134,  135,
857 136,  137,  138,  139,  140,  141,  142,  143,  144,  145,
858 146,  127,  127,  127,  127,  147,  148,  149,  150,  127,
859 127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
860 127,  127,  127,  127,  127,  127,  127,  127,  151,  152,
861 153,  154,  122,  122,  122,  122,  122,  155,  156,  157,
862 158,  159,  159,  160,  161,  162,  164,  165,  166,  167,
863 242,  202,  654,  245,  168,  169,  247,  249,  337,  170,
864 202,  204,  534,  338,  203,  171,  172,  173,  174,  175,
865 203,  243,  244,  203,  246,  272,  272,  248,  244,  203,
866
867 206,  207,  208,  209,  210,  210,  211,  212,  213,  215,
868 216,  217,  218,  219,  219,  220,  221,  222,  268,  531,
869 175,  164,  165,  166,  167,  270,  270,  270,  228,  168,
870 169,  229,  530,  339,  170,  230,  231,  232,  340,  244,
871 171,  172,  173,  174,  175,  238,  226,  239,  528,  233,
872 227,  234,  205,  205,  240,  241,  269,  269,  269,  269,
873 269,  412,  412,  205,  526,  240,  241,  275,  275,  275,
874 275,  251,  614,  205,  607,  175,  176,  176,  176,  176,
875 176,  177,  178,  179,  176,  176,  176,  176,  176,  176,
876 176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
877
878 176,  177,  177,  177,  177,  176,  176,  176,  176,  177,
879 180,  181,  182,  183,  184,  177,  185,  177,  177,  177,
880 177,  186,  187,  188,  189,  177,  190,  177,  176,  176,
881 176,  176,  176,  176,  176,  176,  176,  191,  192,  193,
882 194,  195,  195,  196,  197,  198,  223,  224,  205,  205,
883 205,  205,  205,  205,  252,  344,  443,  223,  234,  205,
884 345,  205,  434,  205,  421,  421,  253,  224,  254,  205,
885 257,  205,  443,  205,  258,  327,  327,  327,  205,  205,
886 206,  207,  208,  209,  210,  210,  211,  212,  213,  205,
887 205,  205,  441,  255,  441,  256,  205,  205,  417,  205,
888
889 550,  259,  205,  205,  205,  205,  543,  205,  371,  205,
890 205,  205,  261,  205,  262,  205,  289,  260,  290,  290,
891 205,  264,  369,  205,  369,  205,  532,  263,  265,  318,
892 205,  205,  205,  271,  271,  271,  271,  271,  531,  290,
893 428,  428,  205,  266,  273,  273,  273,  273,  273,  270,
894 270,  270,  205,  273,  273,  273,  274,  273,  276,  276,
895 276,  276,  276,  278,  200,  201,  485,  485,  280,  326,
896 326,  326,  326,  326,  494,  494,  291,  292,  293,  294,
897 295,  295,  296,  297,  298,  300,  301,  302,  303,  304,
898 304,  305,  306,  307,  290,  290,  290,  290,  290,  290,
899
900 290,  290,  311,  346,  530,  290,  355,  290,  347,  290,
901 505,  290,  498,  310,  312,  290,  313,  290,  316,  290,
902 489,  290,  317,  281,  282,  283,  284,  285,  285,  286,
903 287,  288,  289,  290,  290,  290,  290,  332,  332,  332,
904 332,  290,  290,  436,  290,  435,  290,  245,  314,  230,
905 315,  320,  290,  432,  290,  425,  319,  247,  308,  309,
906 290,  290,  290,  290,  290,  290,  290,  357,  246,  308,
907 321,  290,  358,  200,  290,  323,  290,  325,  248,  309,
908 416,  290,  324,  322,  290,  372,  290,  328,  328,  328,
909 328,  328,  291,  292,  293,  294,  295,  295,  296,  297,
910
911 298,  330,  330,  330,  330,  330,  330,  330,  330,  331,
912 330,  333,  333,  333,  333,  333,  359,  200,  201,  202,
913 202,  365,  242,  371,  249,  360,  205,  205,  361,  277,
914 362,  363,  203,  203,  364,  267,  235,  205,  203,  203,
915 236,  237,  268,  243,  244,  244,  245,  205,  215,  216,
916 217,  218,  219,  219,  220,  221,  222,  366,  367,  410,
917 410,  410,  228,  244,  250,  229,  369,  246,  366,  368,
918 231,  232,  238,  225,  239,  199,  200,  201,  367,  501,
919 501,  240,  241,  233,  356,  234,  269,  269,  269,  269,
920 269,  355,  240,  241,  271,  271,  271,  271,  271,  273,
921
922 273,  273,  273,  273,  275,  275,  275,  275,  276,  276,
923 276,  276,  276,  374,  375,  376,  377,  378,  378,  379,
924 380,  381,  383,  384,  385,  386,  387,  387,  388,  389,
925 390,  391,  392,  354,  373,  373,  373,  373,  373,  373,
926 373,  373,  391,  352,  394,  373,  351,  373,  350,  373,
927 348,  373,  392,  393,  396,  373,  395,  373,  399,  373,
928 343,  373,  400,  373,  373,  374,  375,  376,  377,  378,
929 378,  379,  380,  381,  373,  373,  373,  341,  397,  336,
930 398,  373,  373,  247,  373,  334,  401,  373,  373,  373,
931 373,  277,  373,  267,  373,  373,  373,  403,  373,  404,
932
933 373,  250,  402,  225,  248,  373,  406,  824,  373,  440,
934 373,  440,  405,  407,  441,  373,  373,  373,  409,  409,
935 409,  409,  409,  414,  414,  414,  414,  373,  408,  411,
936 411,  411,  411,  411,  419,  419,  419,  373,  413,  413,
937 413,  413,  413,  415,  415,  415,  415,  415,  202,  417,
938 418,  202,  417,  418,  824,  202,  539,  539,  205,  205,
939 442,  203,  442,  824,  203,  443,  824,  203,  203,  205,
940 203,  426,  426,  426,  203,  423,  423,  423,  423,  205,
941 205,  205,  205,  205,  205,  420,  420,  420,  420,  420,
942 422,  422,  422,  422,  422,  424,  424,  424,  424,  424,
943
944 214,  214,  214,  214,  214,  427,  427,  427,  427,  427,
945 429,  429,  429,  429,  429,  430,  430,  430,  430,  431,
946 431,  431,  431,  431,  205,  205,  205,  205,  438,  824,
947 249,  232,  289,  438,  439,  205,  242,  205,  240,  241,
948 824,  240,  241,  824,  268,  205,  438,  205,  438,  240,
949 241,  244,  240,  241,  238,  491,  239,  243,  244,  205,
950 205,  205,  205,  240,  241,  244,  205,  205,  824,  445,
951 205,  824,  205,  824,  240,  241,  824,  205,  205,  205,
952 205,  446,  447,  448,  205,  205,  491,  205,  824,  205,
953 824,  205,  205,  546,  546,  205,  205,  205,  824,  205,
954
955 450,  202,  205,  824,  449,  205,  824,  205,  205,  205,
956 205,  205,  205,  824,  203,  451,  824,  205,  824,  205,
957 203,  205,  205,  205,  824,  452,  205,  205,  824,  205,
958 824,  205,  824,  205,  453,  603,  603,  205,  205,  205,
959 824,  205,  205,  205,  205,  205,  454,  455,  824,  205,
960 205,  205,  205,  456,  457,  205,  205,  205,  824,  205,
961 458,  205,  205,  205,  205,  205,  289,  205,  459,  460,
962 824,  205,  610,  610,  205,  692,  692,  205,  269,  269,
963 269,  269,  269,  824,  205,  269,  269,  269,  269,  269,
964 269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
965
966 269,  269,  269,  269,  461,  462,  462,  462,  462,  462,
967 463,  463,  463,  463,  463,  464,  464,  464,  464,  464,
968 278,  200,  201,  722,  722,  280,  466,  467,  468,  469,
969 470,  470,  471,  472,  473,  475,  476,  477,  478,  479,
970 479,  480,  481,  482,  279,  279,  279,  279,  279,  483,
971 483,  483,  484,  484,  484,  484,  484,  486,  486,  486,
972 486,  486,  487,  487,  487,  487,  488,  488,  488,  488,
973 488,  290,  290,  290,  290,  290,  289,  824,  290,  290,
974 281,  282,  283,  284,  285,  285,  286,  287,  288,  290,
975 492,  492,  492,  493,  493,  493,  493,  493,  824,  290,
976
977 495,  495,  495,  495,  495,  496,  496,  496,  496,  497,
978 497,  497,  497,  497,  299,  299,  299,  299,  299,  499,
979 499,  499,  500,  500,  500,  500,  500,  502,  502,  502,
980 502,  502,  503,  503,  503,  503,  300,  301,  302,  303,
981 304,  304,  305,  306,  307,  504,  504,  504,  504,  504,
982 290,  290,  290,  290,  290,  290,  290,  290,  824,  290,
983 290,  290,  824,  290,  506,  290,  824,  290,  290,  290,
984 290,  290,  824,  290,  824,  290,  507,  508,  824,  290,
985 290,  290,  290,  729,  730,  509,  290,  290,  824,  290,
986 773,  774,  290,  290,  290,  511,  824,  290,  290,  290,
987
988 824,  510,  290,  824,  290,  290,  290,  290,  824,  290,
989 290,  290,  512,  824,  290,  513,  290,  290,  290,  290,
990 824,  290,  514,  824,  290,  290,  290,  824,  290,  290,
991 290,  290,  824,  290,  290,  290,  824,  515,  516,  517,
992 290,  824,  518,  519,  290,  290,  290,  290,  290,  290,
993 290,  290,  290,  824,  290,  729,  730,  290,  824,  290,
994 824,  521,  290,  537,  537,  537,  824,  290,  824,  290,
995 520,  824,  290,  326,  326,  326,  326,  326,  326,  326,
996 326,  326,  326,  326,  326,  326,  326,  326,  326,  326,
997 326,  326,  326,  326,  326,  326,  326,  522,  523,  523,
998
999 523,  523,  523,  524,  524,  524,  524,  524,  525,  525,
1000 525,  525,  525,  526,  527,  528,  529,  775,  730,  359,
1001 200,  201,  773,  774,  205,  205,  824,  341,  360,  348,
1002 824,  361,  824,  362,  363,  205,  824,  364,  205,  205,
1003 533,  534,  535,  373,  373,  205,  544,  544,  544,  205,
1004 541,  541,  541,  541,  373,  368,  536,  795,  774,  205,
1005 548,  548,  548,  548,  373,  373,  373,  373,  373,  373,
1006 538,  538,  538,  538,  538,  540,  540,  540,  540,  540,
1007 542,  542,  542,  542,  542,  383,  384,  385,  386,  387,
1008 387,  388,  389,  390,  382,  382,  382,  382,  382,  545,
1009
1010 545,  545,  545,  545,  547,  547,  547,  547,  547,  549,
1011 549,  549,  549,  549,  373,  373,  373,  373,  373,  373,
1012 373,  373,  824,  373,  373,  373,  824,  373,  551,  373,
1013 824,  373,  373,  373,  373,  373,  824,  373,  824,  373,
1014 552,  553,  824,  373,  373,  373,  373,  824,  824,  554,
1015 373,  373,  824,  373,  824,  824,  373,  373,  373,  556,
1016 824,  373,  373,  373,  824,  555,  373,  824,  373,  373,
1017 373,  373,  824,  373,  373,  373,  557,  824,  373,  558,
1018 373,  373,  373,  373,  824,  373,  559,  824,  373,  373,
1019 373,  824,  373,  373,  373,  373,  824,  373,  373,  373,
1020
1021 824,  560,  561,  562,  373,  824,  563,  564,  373,  373,
1022 373,  373,  373,  373,  373,  373,  373,  824,  373,  824,
1023 824,  373,  824,  373,  824,  566,  373,  601,  601,  601,
1024 824,  373,  824,  373,  565,  824,  373,  409,  409,  409,
1025 409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
1026 409,  409,  409,  409,  409,  409,  409,  567,  567,  567,
1027 567,  567,  568,  568,  568,  568,  568,  569,  569,  569,
1028 569,  569,  205,  205,  205,  205,  205,  205,  205,  205,
1029 205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
1030 205,  205,  570,  570,  570,  570,  570,  571,  571,  571,
1031
1032 571,  571,  572,  572,  572,  572,  572,  214,  214,  214,
1033 214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
1034 214,  214,  214,  214,  214,  214,  214,  573,  573,  573,
1035 573,  573,  574,  574,  574,  574,  574,  575,  575,  575,
1036 575,  575,  439,  205,  205,  205,  205,  205,  205,  240,
1037 241,  576,  824,  577,  205,  578,  205,  824,  205,  824,
1038 240,  241,  205,  205,  205,  824,  205,  824,  205,  205,
1039 205,  205,  205,  205,  205,  205,  205,  205,  824,  580,
1040 205,  824,  581,  579,  582,  205,  824,  205,  205,  205,
1041 205,  824,  205,  205,  205,  205,  824,  205,  583,  205,
1042
1043 205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
1044 824,  205,  586,  205,  205,  584,  205,  824,  205,  205,
1045 205,  205,  585,  205,  588,  824,  587,  824,  205,  824,
1046 205,  205,  205,  600,  600,  600,  600,  600,  824,  824,
1047 205,  824,  205,  608,  608,  608,  589,  600,  600,  600,
1048 600,  600,  205,  590,  590,  824,  590,  590,  591,  591,
1049 590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
1050 590,  591,  590,  590,  590,  590,  590,  590,  591,  591,
1051 591,  591,  590,  590,  590,  590,  591,  591,  591,  591,
1052 591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
1053
1054 591,  591,  591,  591,  591,  590,  590,  590,  590,  590,
1055 590,  590,  590,  590,  592,  593,  594,  595,  596,  596,
1056 597,  598,  599,  600,  600,  600,  600,  600,  289,  465,
1057 465,  465,  465,  465,  602,  602,  602,  602,  602,  604,
1058 604,  604,  604,  604,  605,  605,  605,  605,  606,  606,
1059 606,  606,  606,  289,  474,  474,  474,  474,  474,  609,
1060 609,  609,  609,  609,  611,  611,  611,  611,  611,  612,
1061 612,  612,  612,  613,  613,  613,  613,  613,  279,  279,
1062 279,  279,  279,  279,  279,  279,  279,  279,  466,  467,
1063 468,  469,  470,  470,  471,  472,  473,  279,  279,  279,
1064
1065 279,  279,  279,  279,  279,  279,  279,  615,  615,  615,
1066 615,  615,  824,  475,  476,  477,  478,  479,  479,  480,
1067 481,  482,  616,  616,  616,  616,  616,  617,  617,  617,
1068 617,  617,  618,  290,  290,  290,  290,  290,  690,  690,
1069 690,  490,  290,  290,  290,  290,  290,  290,  290,  290,
1070 290,  290,  490,  824,  490,  290,  290,  290,  290,  290,
1071 619,  619,  619,  619,  619,  620,  620,  620,  620,  620,
1072 621,  621,  621,  621,  621,  299,  299,  299,  299,  299,
1073 299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
1074 299,  299,  299,  299,  299,  622,  622,  622,  622,  622,
1075
1076 623,  623,  623,  623,  623,  624,  624,  624,  624,  624,
1077 290,  290,  290,  290,  824,  824,  625,  290,  290,  290,
1078 290,  290,  626,  290,  824,  627,  290,  290,  290,  824,
1079 290,  290,  824,  290,  290,  290,  629,  290,  290,  824,
1080 628,  290,  290,  290,  290,  630,  824,  290,  290,  290,
1081 824,  631,  290,  824,  290,  290,  290,  290,  632,  290,
1082 290,  290,  290,  824,  290,  290,  290,  290,  824,  290,
1083 824,  290,  290,  290,  824,  635,  290,  290,  633,  290,
1084 290,  290,  634,  290,  290,  290,  290,  290,  290,  824,
1085 290,  824,  824,  636,  824,  290,  637,  824,  290,  824,
1086
1087 290,  824,  638,  824,  824,  290,  824,  824,  290,  590,
1088 639,  824,  590,  590,  640,  640,  590,  590,  590,  590,
1089 590,  590,  590,  590,  590,  590,  590,  640,  590,  590,
1090 590,  590,  590,  590,  640,  640,  640,  640,  590,  590,
1091 590,  590,  640,  640,  640,  640,  640,  640,  640,  640,
1092 640,  640,  640,  640,  640,  640,  640,  640,  640,  640,
1093 640,  590,  590,  590,  590,  590,  590,  590,  590,  590,
1094 641,  642,  643,  644,  645,  645,  646,  647,  648,  649,
1095 649,  649,  649,  649,  649,  649,  649,  649,  649,  649,
1096 649,  649,  649,  649,  650,  651,  652,  533,  534,  535,
1097
1098 373,  373,  373,  373,  373,  694,  694,  694,  694,  532,
1099 653,  824,  824,  536,  373,  373,  373,  373,  373,  373,
1100 373,  373,  373,  373,  373,  373,  373,  373,  373,  655,
1101 655,  655,  655,  655,  656,  656,  656,  656,  656,  657,
1102 657,  657,  657,  657,  382,  382,  382,  382,  382,  382,
1103 382,  382,  382,  382,  382,  382,  382,  382,  382,  382,
1104 382,  382,  382,  382,  658,  658,  658,  658,  658,  659,
1105 659,  659,  659,  659,  660,  660,  660,  660,  660,  373,
1106 373,  373,  373,  824,  824,  661,  373,  373,  373,  373,
1107 373,  662,  373,  824,  663,  373,  373,  373,  824,  373,
1108
1109 373,  824,  373,  373,  373,  665,  373,  373,  824,  664,
1110 373,  373,  373,  373,  666,  824,  373,  373,  373,  824,
1111 667,  373,  824,  373,  373,  373,  373,  668,  373,  373,
1112 373,  373,  824,  373,  373,  373,  373,  824,  373,  824,
1113 373,  373,  373,  824,  671,  373,  373,  669,  373,  373,
1114 373,  670,  373,  373,  373,  373,  373,  373,  824,  373,
1115 824,  824,  672,  824,  373,  673,  824,  373,  824,  373,
1116 824,  674,  824,  824,  373,  824,  824,  373,  675,  675,
1117 675,  675,  675,  675,  675,  675,  675,  675,  675,  675,
1118 675,  675,  675,  676,  676,  676,  676,  676,  676,  676,
1119
1120 676,  676,  676,  676,  676,  676,  676,  676,  677,  677,
1121 677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1122 677,  677,  677,  205,  205,  205,  205,  205,  205,  205,
1123 205,  824,  205,  205,  205,  824,  205,  678,  205,  679,
1124 205,  824,  680,  205,  205,  681,  205,  824,  205,  824,
1125 205,  205,  205,  205,  205,  205,  824,  205,  205,  720,
1126 720,  720,  205,  205,  205,  205,  205,  205,  205,  824,
1127 824,  824,  205,  682,  205,  683,  684,  205,  205,  685,
1128 205,  205,  205,  205,  205,  686,  824,  205,  687,  824,
1129 688,  205,  824,  205,  205,  205,  205,  205,  650,  651,
1130
1131 652,  205,  824,  205,  824,  205,  689,  205,  591,  591,
1132 591,  591,  591,  824,  653,  205,  824,  205,  691,  691,
1133 691,  691,  691,  693,  693,  693,  693,  693,  695,  695,
1134 695,  695,  695,  205,  205,  465,  465,  465,  465,  465,
1135 724,  724,  724,  724,  205,  465,  465,  465,  465,  465,
1136 824,  824,  824,  824,  205,  465,  465,  465,  465,  465,
1137 465,  465,  465,  465,  465,  697,  697,  697,  697,  697,
1138 698,  698,  698,  698,  698,  699,  699,  699,  699,  699,
1139 474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
1140 474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
1141
1142 700,  700,  700,  700,  700,  701,  701,  701,  701,  701,
1143 702,  702,  702,  702,  702,  703,  703,  703,  703,  703,
1144 703,  703,  703,  703,  703,  703,  703,  703,  703,  703,
1145 618,  704,  704,  704,  704,  704,  824,  824,  824,  490,
1146 704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
1147 490,  824,  490,  705,  705,  705,  705,  705,  705,  705,
1148 705,  705,  705,  705,  705,  705,  705,  705,  290,  290,
1149 290,  290,  290,  290,  290,  290,  824,  290,  290,  290,
1150 824,  290,  706,  290,  707,  290,  824,  708,  290,  290,
1151 709,  290,  824,  290,  824,  290,  290,  290,  290,  290,
1152
1153 290,  824,  290,  290,  824,  824,  824,  290,  290,  290,
1154 290,  290,  290,  290,  824,  824,  824,  290,  710,  290,
1155 711,  712,  290,  290,  713,  290,  290,  290,  290,  290,
1156 714,  824,  290,  715,  824,  716,  290,  824,  290,  290,
1157 290,  290,  290,  824,  639,  490,  290,  824,  290,  824,
1158 290,  717,  290,  590,  640,  640,  640,  640,  640,  824,
1159 290,  824,  290,  824,  590,  590,  590,  719,  721,  721,
1160 721,  721,  721,  723,  723,  723,  723,  723,  725,  725,
1161 725,  725,  725,  290,  290,  731,  731,  731,  731,  731,
1162 824,  824,  824,  824,  290,  824,  824,  824,  719,  731,
1163
1164 731,  731,  731,  731,  290,  731,  731,  731,  731,  731,
1165 732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
1166 732,  732,  732,  732,  732,  373,  373,  373,  373,  373,
1167 373,  373,  373,  824,  373,  373,  373,  824,  373,  733,
1168 373,  734,  373,  824,  735,  373,  373,  736,  373,  824,
1169 373,  824,  373,  373,  373,  373,  373,  373,  824,  373,
1170 373,  824,  824,  824,  373,  373,  373,  373,  373,  373,
1171 373,  824,  824,  824,  373,  737,  373,  738,  739,  373,
1172 373,  740,  373,  373,  373,  373,  373,  741,  824,  373,
1173 742,  824,  743,  373,  824,  373,  373,  373,  373,  373,
1174
1175 373,  373,  824,  373,  824,  373,  824,  373,  744,  373,
1176 824,  373,  205,  205,  205,  205,  824,  373,  824,  373,
1177 824,  373,  824,  205,  824,  205,  205,  205,  205,  205,
1178 205,  205,  824,  205,  824,  205,  824,  205,  824,  205,
1179 824,  746,  205,  205,  824,  745,  824,  205,  824,  205,
1180 824,  205,  824,  205,  205,  205,  824,  205,  205,  747,
1181 205,  205,  824,  205,  824,  205,  824,  748,  205,  824,
1182 750,  205,  205,  205,  824,  205,  205,  205,  205,  824,
1183 749,  205,  824,  205,  205,  205,  824,  205,  824,  751,
1184 205,  205,  824,  205,  824,  205,  753,  752,  824,  824,
1185
1186 824,  205,  824,  824,  824,  205,  591,  591,  591,  591,
1187 591,  205,  591,  591,  591,  591,  591,  591,  591,  591,
1188 591,  591,  591,  591,  591,  591,  591,  754,  754,  754,
1189 754,  754,  755,  755,  755,  755,  755,  756,  756,  756,
1190 756,  756,  757,  757,  757,  757,  757,  757,  757,  757,
1191 757,  757,  757,  757,  757,  757,  757,  758,  758,  758,
1192 758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
1193 758,  758,  290,  290,  290,  290,  290,  290,  824,  290,
1194 290,  290,  290,  290,  824,  290,  824,  290,  290,  290,
1195 290,  824,  760,  290,  824,  290,  759,  290,  824,  290,
1196
1197 290,  824,  290,  290,  290,  761,  290,  290,  824,  290,
1198 290,  290,  824,  824,  290,  824,  762,  290,  824,  824,
1199 764,  290,  290,  290,  290,  290,  290,  290,  824,  763,
1200 824,  290,  824,  290,  290,  290,  290,  290,  290,  765,
1201 768,  490,  824,  290,  824,  290,  766,  824,  290,  767,
1202 640,  640,  640,  640,  640,  290,  824,  824,  290,  824,
1203 824,  590,  640,  640,  640,  640,  640,  640,  640,  640,
1204 640,  640,  640,  640,  640,  640,  640,  769,  769,  769,
1205 769,  769,  770,  770,  770,  770,  770,  771,  771,  771,
1206 771,  771,  373,  373,  373,  373,  373,  373,  824,  373,
1207
1208 373,  373,  373,  373,  824,  373,  824,  373,  373,  373,
1209 373,  824,  777,  373,  824,  373,  776,  373,  824,  373,
1210 373,  824,  373,  373,  373,  778,  373,  373,  824,  373,
1211 373,  373,  824,  824,  373,  824,  779,  373,  824,  824,
1212 781,  373,  373,  373,  373,  373,  373,  373,  824,  780,
1213 824,  373,  824,  373,  373,  373,  373,  373,  373,  782,
1214 205,  205,  824,  373,  824,  373,  783,  824,  373,  784,
1215 824,  205,  205,  205,  824,  373,  205,  205,  373,  205,
1216 205,  205,  785,  205,  786,  205,  205,  205,  205,  205,
1217 205,  824,  788,  205,  205,  205,  205,  205,  824,  205,
1218
1219 205,  205,  205,  787,  824,  205,  205,  205,  205,  205,
1220 824,  824,  205,  824,  824,  205,  824,  824,  205,  824,
1221 824,  824,  205,  789,  789,  789,  789,  789,  205,  789,
1222 789,  789,  789,  789,  789,  789,  789,  789,  789,  290,
1223 290,  290,  290,  290,  290,  290,  290,  824,  290,  290,
1224 290,  791,  290,  824,  290,  824,  290,  290,  290,  290,
1225 290,  790,  290,  792,  290,  824,  290,  824,  290,  290,
1226 793,  290,  290,  290,  290,  290,  290,  824,  290,  768,
1227 490,  824,  290,  824,  290,  824,  290,  794,  794,  794,
1228 794,  794,  290,  824,  290,  824,  290,  824,  824,  824,
1229
1230 590,  794,  794,  794,  794,  794,  794,  794,  794,  794,
1231 794,  373,  373,  373,  373,  373,  373,  373,  373,  824,
1232 373,  373,  373,  797,  373,  824,  373,  824,  373,  373,
1233 373,  373,  373,  796,  373,  798,  373,  824,  373,  824,
1234 373,  373,  799,  373,  373,  373,  373,  373,  373,  824,
1235 373,  205,  205,  824,  373,  824,  373,  824,  373,  205,
1236 205,  800,  205,  824,  373,  824,  373,  824,  373,  824,
1237 205,  824,  205,  205,  205,  205,  205,  290,  290,  824,
1238 801,  290,  290,  824,  205,  824,  205,  804,  290,  824,
1239 802,  824,  290,  824,  205,  803,  205,  824,  290,  290,
1240
1241 290,  824,  805,  290,  290,  824,  824,  373,  373,  824,
1242 290,  373,  373,  824,  290,  824,  806,  808,  373,  824,
1243 290,  824,  373,  807,  290,  373,  373,  824,  373,  373,
1244 373,  824,  809,  205,  205,  824,  373,  824,  824,  824,
1245 373,  824,  810,  824,  205,  824,  373,  205,  205,  811,
1246 373,  205,  205,  824,  205,  205,  205,  824,  205,  824,
1247 812,  824,  205,  290,  290,  813,  205,  824,  205,  290,
1248 290,  824,  205,  824,  290,  824,  205,  290,  290,  824,
1249 290,  824,  814,  824,  290,  290,  290,  824,  290,  824,
1250 290,  373,  373,  373,  373,  815,  290,  824,  290,  824,
1251
1252 373,  373,  373,  824,  373,  824,  290,  373,  373,  205,
1253 205,  373,  373,  816,  373,  205,  205,  817,  373,  824,
1254 205,  373,  290,  290,  290,  290,  205,  818,  373,  824,
1255 205,  373,  373,  290,  824,  290,  205,  373,  373,  824,
1256 819,  824,  373,  290,  824,  290,  205,  205,  373,  820,
1257 205,  205,  373,  290,  290,  373,  373,  205,  373,  824,
1258 824,  205,  824,  821,  290,  824,  373,  205,  290,  290,
1259 822,  205,  823,  824,  290,  824,  373,  373,  373,  290,
1260 824,  824,  824,  824,  824,  824,  824,  824,  373,  290,
1261 824,  824,  824,  824,  824,  824,  824,  824,  373,   97,
1262
1263 97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1264 97,  103,  103,  103,  103,  103,  103,  103,  103,  103,
1265 103,  103,  103,  109,  109,  109,  109,  109,  109,  109,
1266 109,  109,  109,  109,  109,  114,  114,  114,  114,  114,
1267 114,  114,  114,  114,  114,  114,  114,  117,  117,  117,
1268 117,  117,  117,  117,  117,  117,  117,  117,  117,  163,
1269 163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
1270 163,  205,  824,  824,  824,  824,  824,  205,  214,  824,
1271 824,  824,  824,  824,  214,  279,  279,  279,  824,  279,
1272 279,  290,  824,  824,  824,  290,  824,  824,  824,  824,
1273
1274 824,  290,  299,  824,  824,  824,  824,  824,  299,  335,
1275 335,  824,  824,  824,  335,  335,  335,  335,  335,  824,
1276 335,  342,  342,  824,  824,  824,  342,  342,  342,  342,
1277 342,  824,  342,  349,  349,  824,  824,  349,  349,  349,
1278 349,  824,  349,  349,  349,  353,  353,  824,  824,  353,
1279 353,  353,  353,  353,  353,  353,  353,  370,  824,  824,
1280 824,  824,  370,  370,  370,  370,  824,  370,  370,  373,
1281 824,  824,  824,  824,  824,  373,  382,  824,  824,  824,
1282 824,  824,  382,  433,  433,  433,  433,  433,  433,  433,
1283 433,  433,  433,  433,  437,  437,  437,  437,  437,  437,
1284
1285 437,  437,  437,  437,  437,  444,  444,  444,  444,  444,
1286 444,  444,  444,  444,  444,  444,  465,  824,  824,  824,
1287 465,  824,  824,  824,  824,  824,  465,  474,  824,  824,
1288 824,  824,  824,  474,  490,  490,  490,  490,  490,  490,
1289 490,  824,  490,  490,  490,  490,  590,  590,  824,  590,
1290 590,  590,  590,  590,  590,  590,  590,  590,  718,  718,
1291 718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
1292 728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
1293 728,  728,  772,  772,  772,  772,  772,  772,  772,  772,
1294 772,  772,  772,  772,   19,  824,  824,  824,  824,  824,
1295
1296 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1297 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1298 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1299 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1300 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1301 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1302 824,  824,  824,  824,  824
1303 } ;
1304
1305 static yyconst flex_int16_t yy_chk[4266] =
1306 {
1307 0,
1308 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1309 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1310 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1311 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1312 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1313 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1314 1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1315 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1316 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1317 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1318
1319 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1320 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1321 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1322 2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1323 3,    3,    3,    4,    4,    4,  653,    3,    9,    9,
1324 4,    5,    5,    5,    3,   10,   10,    4,    5,    6,
1325 6,    6,    7,    7,  652,    5,    6,   32,    8,    8,
1326 648,   32,    7,    6,   11,   11,   11,    7,    8,   12,
1327 12,   12,  599,    8,   21,   21,   21,   37,   67,   67,
1328 11,   37,   37,   91,   91,   12,   13,   13,   13,   13,
1329
1330 13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1331 13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1332 13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1333 13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1334 13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1335 13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1336 13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
1337 41,   22,  536,   42,   15,   15,   43,   44,  100,   15,
1338 23,   23,  535,  100,   22,   15,   15,   15,   15,   15,
1339 22,   41,   41,   23,   42,  158,  158,   43,   44,   23,
1340
1341 25,   25,   25,   25,   25,   25,   25,   25,   25,   26,
1342 26,   26,   26,   26,   26,   26,   26,   26,   63,  531,
1343 15,   16,   16,   16,   16,   65,   65,   65,   36,   16,
1344 16,   36,  530,  101,   16,   36,   36,   36,  101,   63,
1345 16,   16,   16,   16,   16,   38,  134,   38,  529,   36,
1346 134,   36,   49,   49,   38,   38,   64,   64,   64,   64,
1347 64,  194,  194,   49,  527,   38,   38,   70,   70,   70,
1348 70,   49,  482,   49,  473,   16,   17,   17,   17,   17,
1349 17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1350 17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1351
1352 17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1353 17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1354 17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1355 17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1356 17,   17,   17,   17,   17,   17,   27,   27,   50,   50,
1357 51,   51,   53,   53,   50,  106,  443,   27,  229,   50,
1358 106,   51,  229,   53,  209,  209,   50,   27,   51,   50,
1359 53,   51,  442,   53,   53,   89,   89,   89,   52,   52,
1360 27,   27,   27,   27,   27,   27,   27,   27,   27,   52,
1361 54,   54,  441,   52,  440,   52,   55,   55,  418,   52,
1362
1363 390,   54,   56,   56,   57,   57,  381,   55,  371,   58,
1364 58,   54,   56,   56,   57,   57,   74,   55,   82,   82,
1365 58,   58,  369,   56,  364,   57,  363,   57,   58,   82,
1366 58,   59,   59,   66,   66,   66,   66,   66,  362,   82,
1367 218,  218,   59,   59,   68,   68,   68,   68,   68,  156,
1368 156,  156,   59,   69,   69,   69,   69,   69,   71,   71,
1369 71,   71,   71,   73,   73,   73,  284,  284,   73,   88,
1370 88,   88,   88,   88,  294,  294,   74,   74,   74,   74,
1371 74,   74,   74,   74,   74,   75,   75,   75,   75,   75,
1372 75,   75,   75,   75,   77,   77,   78,   78,   79,   79,
1373
1374 81,   81,   78,  107,  361,   77,  355,   78,  107,   79,
1375 307,   81,  298,   77,   78,   77,   79,   78,   81,   79,
1376 288,   81,   81,   73,   73,   73,   73,   73,   73,   73,
1377 73,   73,   76,   80,   80,   83,   83,   94,   94,   94,
1378 94,   84,   84,  233,   80,  231,   83,  144,   80,  230,
1379 80,   84,   84,  222,   80,  213,   83,  145,   76,   76,
1380 85,   85,   84,   86,   86,   87,   87,  121,  144,   76,
1381 85,   85,  121,  201,   86,   86,   87,   87,  145,   76,
1382 198,   85,   86,   85,   86,  166,   87,   90,   90,   90,
1383 90,   90,   76,   76,   76,   76,   76,   76,   76,   76,
1384
1385 76,   92,   92,   92,   92,   92,   93,   93,   93,   93,
1386 93,   95,   95,   95,   95,   95,  123,  123,  123,  124,
1387 125,  125,  143,  164,  146,  123,  127,  127,  123,  162,
1388 123,  123,  124,  125,  123,  152,  139,  127,  124,  125,
1389 139,  139,  154,  143,  143,  146,  245,  127,  128,  128,
1390 128,  128,  128,  128,  128,  128,  128,  129,  129,  192,
1391 192,  192,  138,  154,  148,  138,  141,  245,  129,  138,
1392 138,  138,  140,  130,  140,  199,  199,  199,  129,  303,
1393 303,  140,  140,  138,  120,  138,  155,  155,  155,  155,
1394 155,  118,  140,  140,  157,  157,  157,  157,  157,  159,
1395
1396 159,  159,  159,  159,  160,  160,  160,  160,  161,  161,
1397 161,  161,  161,  177,  177,  177,  177,  177,  177,  177,
1398 177,  177,  178,  178,  178,  178,  178,  178,  178,  178,
1399 178,  179,  179,  116,  180,  180,  182,  182,  181,  181,
1400 184,  184,  179,  113,  181,  180,  112,  182,  111,  181,
1401 108,  184,  179,  180,  182,  180,  181,  182,  184,  181,
1402 105,  184,  184,  183,  183,  179,  179,  179,  179,  179,
1403 179,  179,  179,  179,  183,  185,  185,  102,  183,   99,
1404 183,  186,  186,  247,  183,   96,  185,  187,  187,  188,
1405 188,   72,  186,   61,  189,  189,  185,  187,  187,  188,
1406
1407 188,   46,  186,   28,  247,  189,  189,   19,  187,  240,
1408 188,  240,  188,  189,  240,  189,  190,  190,  191,  191,
1409 191,  191,  191,  196,  196,  196,  196,  190,  190,  193,
1410 193,  193,  193,  193,  207,  207,  207,  190,  195,  195,
1411 195,  195,  195,  197,  197,  197,  197,  197,  202,  202,
1412 202,  203,  203,  203,    0,  204,  377,  377,  205,  205,
1413 241,  202,  241,    0,  203,  241,    0,  202,  204,  205,
1414 203,  216,  216,  216,  204,  211,  211,  211,  211,  205,
1415 206,  206,  206,  206,  206,  208,  208,  208,  208,  208,
1416 210,  210,  210,  210,  210,  212,  212,  212,  212,  212,
1417
1418 215,  215,  215,  215,  215,  217,  217,  217,  217,  217,
1419 219,  219,  219,  219,  219,  220,  220,  220,  220,  221,
1420 221,  221,  221,  221,  223,  223,  224,  224,  238,    0,
1421 249,  232,  289,  238,  238,  223,  242,  224,  232,  232,
1422 0,  238,  238,    0,  268,  223,  238,  224,  238,  232,
1423 232,  249,  238,  238,  239,  289,  239,  242,  242,  251,
1424 251,  252,  252,  239,  239,  268,  253,  253,    0,  251,
1425 251,    0,  252,    0,  239,  239,    0,  253,  254,  254,
1426 251,  252,  252,  253,  255,  255,  289,  253,    0,  254,
1427 0,  256,  256,  386,  386,  255,  257,  257,    0,  254,
1428
1429 256,  365,  256,    0,  255,  255,    0,  257,  258,  258,
1430 259,  259,  256,    0,  365,  257,    0,  257,    0,  258,
1431 365,  259,  260,  260,    0,  258,  261,  261,    0,  258,
1432 0,  259,    0,  260,  260,  469,  469,  261,  262,  262,
1433 0,  263,  263,  260,  265,  265,  261,  261,    0,  262,
1434 264,  264,  263,  262,  263,  265,  266,  266,    0,  262,
1435 264,  264,  263,  269,  269,  265,  279,  266,  265,  266,
1436 0,  264,  478,  478,  269,  595,  595,  266,  270,  270,
1437 270,  270,  270,    0,  269,  271,  271,  271,  271,  271,
1438 272,  272,  272,  272,  272,  273,  273,  273,  273,  273,
1439
1440 274,  274,  274,  274,  274,  275,  275,  275,  275,  275,
1441 276,  276,  276,  276,  276,  277,  277,  277,  277,  277,
1442 278,  278,  278,  644,  644,  278,  279,  279,  279,  279,
1443 279,  279,  279,  279,  279,  280,  280,  280,  280,  280,
1444 280,  280,  280,  280,  281,  281,  281,  281,  281,  282,
1445 282,  282,  283,  283,  283,  283,  283,  285,  285,  285,
1446 285,  285,  286,  286,  286,  286,  287,  287,  287,  287,
1447 287,  291,  291,  291,  291,  291,  299,    0,  290,  290,
1448 278,  278,  278,  278,  278,  278,  278,  278,  278,  290,
1449 292,  292,  292,  293,  293,  293,  293,  293,    0,  290,
1450
1451 295,  295,  295,  295,  295,  296,  296,  296,  296,  297,
1452 297,  297,  297,  297,  300,  300,  300,  300,  300,  301,
1453 301,  301,  302,  302,  302,  302,  302,  304,  304,  304,
1454 304,  304,  305,  305,  305,  305,  299,  299,  299,  299,
1455 299,  299,  299,  299,  299,  306,  306,  306,  306,  306,
1456 308,  308,  309,  309,  310,  310,  311,  311,    0,  313,
1457 313,  308,    0,  309,  310,  310,    0,  311,  312,  312,
1458 313,  308,    0,  309,    0,  310,  311,  311,    0,  312,
1459 313,  314,  314,  654,  654,  312,  315,  315,    0,  312,
1460 727,  727,  314,  316,  316,  315,    0,  315,  317,  317,
1461
1462 0,  314,  314,    0,  316,  318,  318,  315,    0,  317,
1463 319,  319,  316,    0,  316,  317,  318,  320,  320,  317,
1464 0,  319,  319,    0,  321,  321,  318,    0,  320,  322,
1465 322,  319,    0,  323,  323,  321,    0,  320,  320,  321,
1466 322,    0,  322,  323,  323,  321,  324,  324,  325,  325,
1467 322,  326,  326,    0,  323,  728,  728,  324,    0,  325,
1468 0,  325,  326,  375,  375,  375,    0,  324,    0,  325,
1469 324,    0,  326,  327,  327,  327,  327,  327,  328,  328,
1470 328,  328,  328,  329,  329,  329,  329,  329,  330,  330,
1471 330,  330,  330,  331,  331,  331,  331,  331,  332,  332,
1472
1473 332,  332,  332,  333,  333,  333,  333,  333,  334,  334,
1474 334,  334,  334,  341,  341,  348,  348,  730,  730,  359,
1475 359,  359,  772,  772,  366,  366,    0,  341,  359,  348,
1476 0,  359,    0,  359,  359,  366,    0,  359,  367,  367,
1477 368,  368,  368,  373,  373,  366,  384,  384,  384,  367,
1478 379,  379,  379,  379,  373,  368,  368,  774,  774,  367,
1479 388,  388,  388,  388,  373,  374,  374,  374,  374,  374,
1480 376,  376,  376,  376,  376,  378,  378,  378,  378,  378,
1481 380,  380,  380,  380,  380,  382,  382,  382,  382,  382,
1482 382,  382,  382,  382,  383,  383,  383,  383,  383,  385,
1483
1484 385,  385,  385,  385,  387,  387,  387,  387,  387,  389,
1485 389,  389,  389,  389,  391,  391,  392,  392,  393,  393,
1486 394,  394,    0,  396,  396,  391,    0,  392,  393,  393,
1487 0,  394,  395,  395,  396,  391,    0,  392,    0,  393,
1488 394,  394,    0,  395,  396,  397,  397,    0,    0,  395,
1489 398,  398,    0,  395,    0,    0,  397,  399,  399,  398,
1490 0,  398,  400,  400,    0,  397,  397,    0,  399,  401,
1491 401,  398,    0,  400,  402,  402,  399,    0,  399,  400,
1492 401,  403,  403,  400,    0,  402,  402,    0,  404,  404,
1493 401,    0,  403,  405,  405,  402,    0,  406,  406,  404,
1494
1495 0,  403,  403,  404,  405,    0,  405,  406,  406,  404,
1496 407,  407,  408,  408,  405,  409,  409,    0,  406,    0,
1497 0,  407,    0,  408,    0,  408,  409,  467,  467,  467,
1498 0,  407,    0,  408,  407,    0,  409,  410,  410,  410,
1499 410,  410,  411,  411,  411,  411,  411,  412,  412,  412,
1500 412,  412,  413,  413,  413,  413,  413,  414,  414,  414,
1501 414,  414,  415,  415,  415,  415,  415,  416,  416,  416,
1502 416,  416,  419,  419,  419,  419,  419,  420,  420,  420,
1503 420,  420,  421,  421,  421,  421,  421,  422,  422,  422,
1504 422,  422,  423,  423,  423,  423,  423,  424,  424,  424,
1505
1506 424,  424,  425,  425,  425,  425,  425,  426,  426,  426,
1507 426,  426,  427,  427,  427,  427,  427,  428,  428,  428,
1508 428,  428,  429,  429,  429,  429,  429,  430,  430,  430,
1509 430,  430,  431,  431,  431,  431,  431,  432,  432,  432,
1510 432,  432,  439,  446,  446,  445,  445,  447,  447,  439,
1511 439,  445,    0,  446,  446,  447,  445,    0,  447,    0,
1512 439,  439,  448,  448,  446,    0,  445,    0,  447,  449,
1513 449,  450,  450,  448,  451,  451,  452,  452,    0,  449,
1514 449,    0,  450,  448,  452,  451,    0,  452,  453,  453,
1515 449,    0,  450,  454,  454,  451,    0,  452,  453,  453,
1516
1517 455,  455,  456,  456,  454,  457,  457,  458,  458,  453,
1518 0,  455,  456,  456,  454,  454,  457,    0,  458,  459,
1519 459,  455,  455,  456,  458,    0,  457,    0,  458,    0,
1520 459,  460,  460,  462,  462,  462,  462,  462,    0,    0,
1521 459,    0,  460,  476,  476,  476,  460,  463,  463,  463,
1522 463,  463,  460,  461,  461,    0,  461,  461,  461,  461,
1523 461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1524 461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1525 461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1526 461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1527
1528 461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1529 461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1530 461,  461,  461,  464,  464,  464,  464,  464,  465,  466,
1531 466,  466,  466,  466,  468,  468,  468,  468,  468,  470,
1532 470,  470,  470,  470,  471,  471,  471,  471,  472,  472,
1533 472,  472,  472,  474,  475,  475,  475,  475,  475,  477,
1534 477,  477,  477,  477,  479,  479,  479,  479,  479,  480,
1535 480,  480,  480,  481,  481,  481,  481,  481,  483,  483,
1536 483,  483,  483,  484,  484,  484,  484,  484,  465,  465,
1537 465,  465,  465,  465,  465,  465,  465,  485,  485,  485,
1538
1539 485,  485,  486,  486,  486,  486,  486,  487,  487,  487,
1540 487,  487,    0,  474,  474,  474,  474,  474,  474,  474,
1541 474,  474,  488,  488,  488,  488,  488,  489,  489,  489,
1542 489,  489,  491,  492,  492,  492,  492,  492,  593,  593,
1543 593,  491,  493,  493,  493,  493,  493,  494,  494,  494,
1544 494,  494,  491,    0,  491,  495,  495,  495,  495,  495,
1545 496,  496,  496,  496,  496,  497,  497,  497,  497,  497,
1546 498,  498,  498,  498,  498,  499,  499,  499,  499,  499,
1547 500,  500,  500,  500,  500,  501,  501,  501,  501,  501,
1548 502,  502,  502,  502,  502,  503,  503,  503,  503,  503,
1549
1550 504,  504,  504,  504,  504,  505,  505,  505,  505,  505,
1551 506,  506,  507,  507,    0,    0,  506,  508,  508,  509,
1552 509,  506,  507,  507,    0,  508,  510,  510,  508,    0,
1553 509,  506,    0,  507,  511,  511,  510,  510,  508,    0,
1554 509,  512,  512,  513,  513,  511,    0,  510,  514,  514,
1555 0,  513,  512,    0,  513,  511,  515,  515,  514,  514,
1556 516,  516,  512,    0,  513,  517,  517,  515,    0,  514,
1557 0,  516,  518,  518,    0,  517,  517,  515,  515,  519,
1558 519,  516,  516,  518,  520,  520,  517,  521,  521,    0,
1559 519,    0,    0,  518,    0,  520,  519,    0,  521,    0,
1560
1561 519,    0,  521,    0,    0,  520,    0,    0,  521,  522,
1562 522,    0,  522,  522,  522,  522,  522,  522,  522,  522,
1563 522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
1564 522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
1565 522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
1566 522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
1567 522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
1568 522,  522,  522,  522,  522,  522,  522,  522,  522,  523,
1569 523,  523,  523,  523,  524,  524,  524,  524,  524,  525,
1570 525,  525,  525,  525,  532,  532,  532,  533,  533,  533,
1571
1572 537,  537,  537,  537,  537,  597,  597,  597,  597,  532,
1573 532,    0,    0,  533,  538,  538,  538,  538,  538,  539,
1574 539,  539,  539,  539,  540,  540,  540,  540,  540,  541,
1575 541,  541,  541,  541,  542,  542,  542,  542,  542,  543,
1576 543,  543,  543,  543,  544,  544,  544,  544,  544,  545,
1577 545,  545,  545,  545,  546,  546,  546,  546,  546,  547,
1578 547,  547,  547,  547,  548,  548,  548,  548,  548,  549,
1579 549,  549,  549,  549,  550,  550,  550,  550,  550,  551,
1580 551,  552,  552,    0,    0,  551,  553,  553,  554,  554,
1581 551,  552,  552,    0,  553,  555,  555,  553,    0,  554,
1582
1583 551,    0,  552,  556,  556,  555,  555,  553,    0,  554,
1584 557,  557,  558,  558,  556,    0,  555,  559,  559,    0,
1585 558,  557,    0,  558,  556,  560,  560,  559,  559,  561,
1586 561,  557,    0,  558,  562,  562,  560,    0,  559,    0,
1587 561,  563,  563,    0,  562,  562,  560,  560,  564,  564,
1588 561,  561,  563,  565,  565,  562,  566,  566,    0,  564,
1589 0,    0,  563,    0,  565,  564,    0,  566,    0,  564,
1590 0,  566,    0,    0,  565,    0,    0,  566,  567,  567,
1591 567,  567,  567,  568,  568,  568,  568,  568,  569,  569,
1592 569,  569,  569,  570,  570,  570,  570,  570,  571,  571,
1593
1594 571,  571,  571,  572,  572,  572,  572,  572,  573,  573,
1595 573,  573,  573,  574,  574,  574,  574,  574,  575,  575,
1596 575,  575,  575,  576,  576,  577,  577,  578,  578,  579,
1597 579,    0,  580,  580,  576,    0,  577,  576,  578,  578,
1598 579,    0,  579,  580,  576,  580,  577,    0,  578,    0,
1599 579,  581,  581,  580,  582,  582,    0,  583,  583,  642,
1600 642,  642,  581,  584,  584,  582,  585,  585,  583,    0,
1601 0,    0,  581,  581,  584,  582,  583,  585,  583,  584,
1602 586,  586,  587,  587,  584,  585,    0,  585,  586,    0,
1603 587,  586,    0,  587,  588,  588,  589,  589,  650,  650,
1604
1605 650,  586,    0,  587,    0,  588,  589,  589,  592,  592,
1606 592,  592,  592,    0,  650,  588,    0,  589,  594,  594,
1607 594,  594,  594,  596,  596,  596,  596,  596,  598,  598,
1608 598,  598,  598,  600,  600,  601,  601,  601,  601,  601,
1609 646,  646,  646,  646,  600,  602,  602,  602,  602,  602,
1610 0,    0,    0,    0,  600,  603,  603,  603,  603,  603,
1611 604,  604,  604,  604,  604,  605,  605,  605,  605,  605,
1612 606,  606,  606,  606,  606,  607,  607,  607,  607,  607,
1613 608,  608,  608,  608,  608,  609,  609,  609,  609,  609,
1614 610,  610,  610,  610,  610,  611,  611,  611,  611,  611,
1615
1616 612,  612,  612,  612,  612,  613,  613,  613,  613,  613,
1617 614,  614,  614,  614,  614,  615,  615,  615,  615,  615,
1618 616,  616,  616,  616,  616,  617,  617,  617,  617,  617,
1619 618,  619,  619,  619,  619,  619,    0,    0,    0,  618,
1620 620,  620,  620,  620,  620,  621,  621,  621,  621,  621,
1621 618,    0,  618,  622,  622,  622,  622,  622,  623,  623,
1622 623,  623,  623,  624,  624,  624,  624,  624,  625,  625,
1623 626,  626,  627,  627,  628,  628,    0,  629,  629,  625,
1624 0,  626,  625,  627,  627,  628,    0,  628,  629,  625,
1625 629,  626,    0,  627,    0,  628,  630,  630,  629,  631,
1626
1627 631,    0,  632,  632,    0,    0,    0,  630,  633,  633,
1628 631,  634,  634,  632,    0,    0,    0,  630,  630,  633,
1629 631,  632,  634,  632,  633,  635,  635,  636,  636,  633,
1630 634,    0,  634,  635,    0,  636,  635,    0,  636,  637,
1631 637,  638,  638,    0,  639,  639,  635,    0,  636,    0,
1632 637,  638,  638,  639,  641,  641,  641,  641,  641,    0,
1633 637,    0,  638,    0,  639,  639,  639,  639,  643,  643,
1634 643,  643,  643,  645,  645,  645,  645,  645,  647,  647,
1635 647,  647,  647,  649,  649,  655,  655,  655,  655,  655,
1636 0,    0,    0,    0,  649,    0,    0,    0,  639,  656,
1637
1638 656,  656,  656,  656,  649,  657,  657,  657,  657,  657,
1639 658,  658,  658,  658,  658,  659,  659,  659,  659,  659,
1640 660,  660,  660,  660,  660,  661,  661,  662,  662,  663,
1641 663,  664,  664,    0,  665,  665,  661,    0,  662,  661,
1642 663,  663,  664,    0,  664,  665,  661,  665,  662,    0,
1643 663,    0,  664,  666,  666,  665,  667,  667,    0,  668,
1644 668,    0,    0,    0,  666,  669,  669,  667,  670,  670,
1645 668,    0,    0,    0,  666,  666,  669,  667,  668,  670,
1646 668,  669,  671,  671,  672,  672,  669,  670,    0,  670,
1647 671,    0,  672,  671,    0,  672,  673,  673,  674,  674,
1648
1649 675,  675,    0,  671,    0,  672,    0,  673,  674,  674,
1650 0,  675,  676,  676,  678,  678,    0,  673,    0,  674,
1651 0,  675,    0,  676,    0,  678,  679,  679,  680,  680,
1652 681,  681,    0,  676,    0,  678,    0,  679,    0,  680,
1653 0,  681,  682,  682,    0,  680,    0,  679,    0,  680,
1654 0,  681,    0,  682,  683,  683,    0,  684,  684,  682,
1655 685,  685,    0,  682,    0,  683,    0,  683,  684,    0,
1656 685,  685,  686,  686,    0,  683,  687,  687,  684,    0,
1657 684,  685,    0,  686,  688,  688,    0,  687,    0,  686,
1658 689,  689,    0,  686,    0,  688,  688,  687,    0,    0,
1659
1660 0,  689,    0,    0,    0,  688,  690,  690,  690,  690,
1661 690,  689,  691,  691,  691,  691,  691,  692,  692,  692,
1662 692,  692,  693,  693,  693,  693,  693,  694,  694,  694,
1663 694,  694,  695,  695,  695,  695,  695,  696,  696,  696,
1664 696,  696,  697,  697,  697,  697,  697,  698,  698,  698,
1665 698,  698,  699,  699,  699,  699,  699,  700,  700,  700,
1666 700,  700,  701,  701,  701,  701,  701,  702,  702,  702,
1667 702,  702,  704,  704,  706,  706,  707,  707,    0,  708,
1668 708,  709,  709,  704,    0,  706,    0,  707,  710,  710,
1669 708,    0,  709,  704,    0,  706,  708,  707,    0,  710,
1670
1671 708,    0,  709,  711,  711,  710,  712,  712,    0,  710,
1672 713,  713,    0,    0,  711,    0,  711,  712,    0,    0,
1673 713,  713,  714,  714,  711,  715,  715,  712,    0,  712,
1674 0,  713,    0,  714,  717,  717,  715,  716,  716,  714,
1675 719,  719,    0,  714,    0,  717,  715,    0,  716,  716,
1676 720,  720,  720,  720,  720,  717,    0,    0,  716,    0,
1677 0,  719,  721,  721,  721,  721,  721,  722,  722,  722,
1678 722,  722,  723,  723,  723,  723,  723,  724,  724,  724,
1679 724,  724,  725,  725,  725,  725,  725,  726,  726,  726,
1680 726,  726,  731,  731,  733,  733,  734,  734,    0,  735,
1681
1682 735,  736,  736,  731,    0,  733,    0,  734,  737,  737,
1683 735,    0,  736,  731,    0,  733,  735,  734,    0,  737,
1684 735,    0,  736,  738,  738,  737,  739,  739,    0,  737,
1685 740,  740,    0,    0,  738,    0,  738,  739,    0,    0,
1686 740,  740,  741,  741,  738,  742,  742,  739,    0,  739,
1687 0,  740,    0,  741,  744,  744,  742,  743,  743,  741,
1688 745,  745,    0,  741,    0,  744,  742,    0,  743,  743,
1689 0,  745,  746,  746,    0,  744,  747,  747,  743,  749,
1690 749,  745,  745,  746,  747,  748,  748,  747,  750,  750,
1691 749,    0,  749,  746,  751,  751,  748,  747,    0,  750,
1692
1693 749,  752,  752,  748,    0,  751,  748,  753,  753,  750,
1694 0,    0,  752,    0,    0,  751,    0,    0,  753,    0,
1695 0,    0,  752,  754,  754,  754,  754,  754,  753,  755,
1696 755,  755,  755,  755,  756,  756,  756,  756,  756,  759,
1697 759,  760,  760,  761,  761,  762,  762,    0,  764,  764,
1698 759,  761,  760,    0,  761,    0,  762,  763,  763,  764,
1699 759,  759,  760,  762,  761,    0,  762,    0,  763,  764,
1700 763,  765,  765,  766,  766,  767,  767,    0,  763,  768,
1701 768,    0,  765,    0,  766,    0,  767,  769,  769,  769,
1702 769,  769,  765,    0,  766,    0,  767,    0,    0,    0,
1703
1704 768,  770,  770,  770,  770,  770,  771,  771,  771,  771,
1705 771,  776,  776,  777,  777,  778,  778,  779,  779,    0,
1706 781,  781,  776,  778,  777,    0,  778,    0,  779,  780,
1707 780,  781,  776,  776,  777,  779,  778,    0,  779,    0,
1708 780,  781,  780,  782,  782,  783,  783,  784,  784,    0,
1709 780,  785,  785,    0,  782,    0,  783,    0,  784,  786,
1710 786,  785,  785,    0,  782,    0,  783,    0,  784,    0,
1711 786,    0,  785,  787,  787,  788,  788,  790,  790,    0,
1712 786,  791,  791,    0,  787,    0,  788,  790,  790,    0,
1713 787,    0,  791,    0,  787,  788,  788,    0,  790,  792,
1714
1715 792,    0,  791,  793,  793,    0,    0,  796,  796,    0,
1716 792,  797,  797,    0,  793,    0,  792,  796,  796,    0,
1717 792,    0,  797,  793,  793,  798,  798,    0,  796,  799,
1718 799,    0,  797,  800,  800,    0,  798,    0,    0,    0,
1719 799,    0,  798,    0,  800,    0,  798,  801,  801,  799,
1720 799,  802,  802,    0,  800,  803,  803,    0,  801,    0,
1721 801,    0,  802,  804,  804,  803,  803,    0,  801,  805,
1722 805,    0,  802,    0,  804,    0,  803,  806,  806,    0,
1723 805,    0,  805,    0,  804,  807,  807,    0,  806,    0,
1724 805,  808,  808,  810,  810,  807,  807,    0,  806,    0,
1725
1726 809,  809,  808,    0,  810,    0,  807,  811,  811,  812,
1727 812,  809,  808,  809,  810,  813,  813,  811,  811,    0,
1728 812,  809,  814,  814,  815,  815,  813,  812,  811,    0,
1729 812,  816,  816,  814,    0,  815,  813,  817,  817,    0,
1730 814,    0,  816,  814,    0,  815,  818,  818,  817,  816,
1731 821,  821,  816,  819,  819,  820,  820,  818,  817,    0,
1732 0,  821,    0,  818,  819,    0,  820,  818,  822,  822,
1733 819,  821,  820,    0,  819,    0,  820,  823,  823,  822,
1734 0,    0,    0,    0,    0,    0,    0,    0,  823,  822,
1735 0,    0,    0,    0,    0,    0,    0,    0,  823,  825,
1736
1737 825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
1738 825,  826,  826,  826,  826,  826,  826,  826,  826,  826,
1739 826,  826,  826,  827,  827,  827,  827,  827,  827,  827,
1740 827,  827,  827,  827,  827,  828,  828,  828,  828,  828,
1741 828,  828,  828,  828,  828,  828,  828,  829,  829,  829,
1742 829,  829,  829,  829,  829,  829,  829,  829,  829,  830,
1743 830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
1744 830,  831,    0,    0,    0,    0,    0,  831,  832,    0,
1745 0,    0,    0,    0,  832,  833,  833,  833,    0,  833,
1746 833,  834,    0,    0,    0,  834,    0,    0,    0,    0,
1747
1748 0,  834,  835,    0,    0,    0,    0,    0,  835,  836,
1749 836,    0,    0,    0,  836,  836,  836,  836,  836,    0,
1750 836,  837,  837,    0,    0,    0,  837,  837,  837,  837,
1751 837,    0,  837,  838,  838,    0,    0,  838,  838,  838,
1752 838,    0,  838,  838,  838,  839,  839,    0,    0,  839,
1753 839,  839,  839,  839,  839,  839,  839,  840,    0,    0,
1754 0,    0,  840,  840,  840,  840,    0,  840,  840,  841,
1755 0,    0,    0,    0,    0,  841,  842,    0,    0,    0,
1756 0,    0,  842,  843,  843,  843,  843,  843,  843,  843,
1757 843,  843,  843,  843,  844,  844,  844,  844,  844,  844,
1758
1759 844,  844,  844,  844,  844,  845,  845,  845,  845,  845,
1760 845,  845,  845,  845,  845,  845,  846,    0,    0,    0,
1761 846,    0,    0,    0,    0,    0,  846,  847,    0,    0,
1762 0,    0,    0,  847,  848,  848,  848,  848,  848,  848,
1763 848,    0,  848,  848,  848,  848,  849,  849,    0,  849,
1764 849,  849,  849,  849,  849,  849,  849,  849,  850,  850,
1765 850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1766 851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
1767 851,  851,  852,  852,  852,  852,  852,  852,  852,  852,
1768 852,  852,  852,  852,  824,  824,  824,  824,  824,  824,
1769
1770 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1771 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1772 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1773 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1774 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1775 824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
1776 824,  824,  824,  824,  824
1777 } ;
1778
1779 extern int yy_flex_debug;
1780 int yy_flex_debug = 0;
1781
1782 static yy_state_type *yy_state_buf = 0, *yy_state_ptr = 0;
1783 static char *yy_full_match;
1784 static int yy_lp;
1785 static int yy_looking_for_trail_begin = 0;
1786 static int yy_full_lp;
1787 static int *yy_full_state;
1788 #define YY_TRAILING_MASK 0x2000
1789 #define YY_TRAILING_HEAD_MASK 0x4000
1790 #define REJECT \
1791 { \
1792 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
1793 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
1794 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
1795 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
1796 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
1797 ++(yy_lp); \
1798 goto find_rule; \
1799 }
1800
1801 #define yymore() yymore_used_but_not_detected
1802 #define YY_MORE_ADJ 0
1803 #define YY_RESTORE_YY_MORE_OFFSET
1804 char *yytext;
1805 /*
1806  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
1807  *  Copyright (C) 2008-2012 - Scilab Enterprises - Bruno JOFRET
1808  *
1809  * Copyright (C) 2012 - 2016 - Scilab Enterprises
1810  *
1811  * This file is hereby licensed under the terms of the GNU GPL v2.0,
1812  * pursuant to article 5.3.4 of the CeCILL v.2.1.
1813  * This file was originally licensed under the terms of the CeCILL v2.1,
1814  * and continues to be available under such terms.
1815  * For more information, see the COPYING file which you should have received
1816  * along with this program.
1817  * === LICENSE_END ===
1818  *
1819  */
1820
1821 #include <stack>
1822
1823 #include "isatty.hxx"
1824 #include "parse.hxx"
1825 #include "parser_private.hxx"
1826
1827 #include "context.hxx"
1828
1829 extern "C"
1830 {
1831 #include "charEncoding.h"
1832 #include "sci_malloc.h"
1833 }
1834
1835 static std::stack<int> paren_levels;
1836
1837 static int comment_level = 0;
1838 static int last_token = 0;
1839 static int exit_status = PARSE_ERROR;
1840 static int str_opener_column = 0;
1841 static std::string current_file;
1842 static std::string program_name;
1843
1844 static std::string pstBuffer;
1845
1846 extern void yyerror(std::string);
1847
1848 #define YY_USER_ACTION                          \
1849     yylloc.first_column = yylloc.last_column; yylloc.last_column += yyleng;
1850 //yylloc.last_column += yyleng;
1851
1852 /* -*- Verbose Special Debug -*- */
1853 //#define DEV
1854 //#define TOKENDEV
1855
1856 #ifdef DEV
1857 #define DEBUG(x) std::cout << "[DEBUG] " << x << std::endl;
1858 #else
1859 #define DEBUG(x) /* Nothing */
1860 #endif
1861
1862 #define INITIAL 0
1863 #define SIMPLESTRING 1
1864 #define DOUBLESTRING 2
1865 #define REGIONCOMMENT 3
1866 #define LINECOMMENT 4
1867 #define LINEBREAK 5
1868 #define MATRIX 6
1869 #define SHELLMODE 7
1870 #define BEGINID 8
1871
1872 #ifndef YY_EXTRA_TYPE
1873 #define YY_EXTRA_TYPE void *
1874 #endif
1875
1876 static int yy_init_globals (void );
1877
1878 /* Accessor methods to globals.
1879    These are made visible to non-reentrant scanners for convenience. */
1880
1881 int yylex_destroy (void );
1882
1883 int yyget_debug (void );
1884
1885 void yyset_debug (int debug_flag  );
1886
1887 YY_EXTRA_TYPE yyget_extra (void );
1888
1889 void yyset_extra (YY_EXTRA_TYPE user_defined  );
1890
1891 FILE *yyget_in (void );
1892
1893 void yyset_in  (FILE * in_str  );
1894
1895 FILE *yyget_out (void );
1896
1897 void yyset_out  (FILE * out_str  );
1898
1899 int yyget_leng (void );
1900
1901 char *yyget_text (void );
1902
1903 int yyget_lineno (void );
1904
1905 void yyset_lineno (int line_number  );
1906
1907 /* Macros after this point can all be overridden by user definitions in
1908  * section 1.
1909  */
1910
1911 #ifndef YY_SKIP_YYWRAP
1912 #ifdef __cplusplus
1913 extern "C" int yywrap (void );
1914 #else
1915 extern int yywrap (void );
1916 #endif
1917 #endif
1918
1919 static void yyunput (int c, char *buf_ptr  );
1920
1921 #ifndef yytext_ptr
1922 static void yy_flex_strncpy (char *, yyconst char *, int );
1923 #endif
1924
1925 #ifdef YY_NEED_STRLEN
1926 static int yy_flex_strlen (yyconst char * );
1927 #endif
1928
1929 #ifndef YY_NO_INPUT
1930
1931 #ifdef __cplusplus
1932 static int yyinput (void );
1933 #else
1934 static int input (void );
1935 #endif
1936
1937 #endif
1938
1939 static int yy_start_stack_ptr = 0;
1940 static int yy_start_stack_depth = 0;
1941 static int *yy_start_stack = NULL;
1942
1943 static void yy_push_state (int new_state );
1944
1945 static void yy_pop_state (void );
1946
1947 static int yy_top_state (void );
1948
1949 /* Amount of stuff to slurp up with each read. */
1950 #ifndef YY_READ_BUF_SIZE
1951 #ifdef __ia64__
1952 /* On IA-64, the buffer size is 16k, not 8k */
1953 #define YY_READ_BUF_SIZE 16384
1954 #else
1955 #define YY_READ_BUF_SIZE 8192
1956 #endif /* __ia64__ */
1957 #endif
1958
1959 /* Copy whatever the last rule matched to the standard output. */
1960 #ifndef ECHO
1961 /* This used to be an fputs(), but since the string might contain NUL's,
1962  * we now use fwrite().
1963  */
1964 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1965 #endif
1966
1967 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1968  * is returned in "result".
1969  */
1970 #ifndef YY_INPUT
1971 #define YY_INPUT(buf,result,max_size) \
1972         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1973                 { \
1974                 int c = '*'; \
1975                 size_t n; \
1976                 for ( n = 0; n < max_size && \
1977                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1978                         buf[n] = (char) c; \
1979                 if ( c == '\n' ) \
1980                         buf[n++] = (char) c; \
1981                 if ( c == EOF && ferror( yyin ) ) \
1982                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1983                 result = n; \
1984                 } \
1985         else \
1986                 { \
1987                 errno=0; \
1988                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1989                         { \
1990                         if( errno != EINTR) \
1991                                 { \
1992                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1993                                 break; \
1994                                 } \
1995                         errno=0; \
1996                         clearerr(yyin); \
1997                         } \
1998                 }\
1999 \
2000  
2001 #endif
2002
2003 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2004  * we don't want an extra ';' after the "return" because that will cause
2005  * some compilers to complain about unreachable statements.
2006  */
2007 #ifndef yyterminate
2008 #define yyterminate() return YY_NULL
2009 #endif
2010
2011 /* Number of entries by which start-condition stack grows. */
2012 #ifndef YY_START_STACK_INCR
2013 #define YY_START_STACK_INCR 25
2014 #endif
2015
2016 /* Report a fatal error. */
2017 #ifndef YY_FATAL_ERROR
2018 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2019 #endif
2020
2021 /* end tables serialization structures and prototypes */
2022
2023 /* Default declaration of generated scanner - a define so the user can
2024  * easily add parameters.
2025  */
2026 #ifndef YY_DECL
2027 #define YY_DECL_IS_OURS 1
2028
2029 extern int yylex (void);
2030
2031 #define YY_DECL int yylex (void)
2032 #endif /* !YY_DECL */
2033
2034 /* Code executed at the beginning of each rule, after yytext and yyleng
2035  * have been set up.
2036  */
2037 #ifndef YY_USER_ACTION
2038 #define YY_USER_ACTION
2039 #endif
2040
2041 /* Code executed at the end of each rule. */
2042 #ifndef YY_BREAK
2043 #define YY_BREAK break;
2044 #endif
2045
2046 #define YY_RULE_SETUP \
2047         if ( yyleng > 0 ) \
2048                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2049                                 (yytext[yyleng - 1] == '\n'); \
2050         YY_USER_ACTION
2051
2052 /** The main scanner function which does all the work.
2053  */
2054 YY_DECL
2055 {
2056 register yy_state_type yy_current_state;
2057 register char * yy_cp, *yy_bp;
2058 register int yy_act;
2059
2060 if ( !(yy_init) )
2061 {
2062     (yy_init) = 1;
2063
2064 #ifdef YY_USER_INIT
2065     YY_USER_INIT;
2066 #endif
2067
2068     /* Create the reject buffer large enough to save one state per allowed character. */
2069     if ( ! (yy_state_buf) )
2070     {
2071         (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE  );
2072     }
2073     if ( ! (yy_state_buf) )
2074     {
2075         YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
2076     }
2077
2078     if ( ! (yy_start) )
2079     {
2080         (yy_start) = 1;    /* first start state */
2081     }
2082
2083     if ( ! yyin )
2084     {
2085         yyin = stdin;
2086     }
2087
2088     if ( ! yyout )
2089     {
2090         yyout = stdout;
2091     }
2092
2093     if ( ! YY_CURRENT_BUFFER )
2094     {
2095         yyensure_buffer_stack ();
2096         YY_CURRENT_BUFFER_LVALUE =
2097             yy_create_buffer(yyin, YY_BUF_SIZE );
2098     }
2099
2100     yy_load_buffer_state( );
2101 }
2102
2103 while ( 1 )             /* loops until end-of-file is reached */
2104 {
2105     yy_cp = (yy_c_buf_p);
2106
2107     /* Support of yytext. */
2108     *yy_cp = (yy_hold_char);
2109
2110     /* yy_bp points to the position in yy_ch_buf of the start of
2111      * the current run.
2112      */
2113     yy_bp = yy_cp;
2114
2115     yy_current_state = (yy_start);
2116     yy_current_state += YY_AT_BOL();
2117
2118     (yy_state_ptr) = (yy_state_buf);
2119     *(yy_state_ptr)++ = yy_current_state;
2120
2121 yy_match:
2122     do
2123     {
2124         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2125         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2126         {
2127             yy_current_state = (int) yy_def[yy_current_state];
2128             if ( yy_current_state >= 825 )
2129             {
2130                 yy_c = yy_meta[(unsigned int) yy_c];
2131             }
2132         }
2133         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2134         *(yy_state_ptr)++ = yy_current_state;
2135         ++yy_cp;
2136     }
2137     while ( yy_base[yy_current_state] != 4195 );
2138
2139 yy_find_action:
2140     yy_current_state = *--(yy_state_ptr);
2141     (yy_lp) = yy_accept[yy_current_state];
2142 find_rule: /* we branch to this label when backing up */
2143     for ( ; ; ) /* until we find what rule we matched */
2144     {
2145         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
2146         {
2147             yy_act = yy_acclist[(yy_lp)];
2148             if ( yy_act & YY_TRAILING_HEAD_MASK ||
2149                     (yy_looking_for_trail_begin) )
2150             {
2151                 if ( yy_act == (yy_looking_for_trail_begin) )
2152                 {
2153                     (yy_looking_for_trail_begin) = 0;
2154                     yy_act &= ~YY_TRAILING_HEAD_MASK;
2155                     break;
2156                 }
2157             }
2158             else if ( yy_act & YY_TRAILING_MASK )
2159             {
2160                 (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
2161                 (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
2162             }
2163             else
2164             {
2165                 (yy_full_match) = yy_cp;
2166                 (yy_full_state) = (yy_state_ptr);
2167                 (yy_full_lp) = (yy_lp);
2168                 break;
2169             }
2170             ++(yy_lp);
2171             goto find_rule;
2172         }
2173         --yy_cp;
2174         yy_current_state = *--(yy_state_ptr);
2175         (yy_lp) = yy_accept[yy_current_state];
2176     }
2177
2178     YY_DO_BEFORE_ACTION;
2179
2180 do_action:      /* This label is used only to access EOF actions. */
2181
2182     switch ( yy_act )
2183     {
2184             /* beginning of action switch */
2185         case 1:
2186             *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2187             (yy_c_buf_p) = yy_cp = yy_bp + 3;
2188             YY_DO_BEFORE_ACTION; /* set up yytext again */
2189             YY_RULE_SETUP
2190             {
2191                 // BOM found ==> ignored
2192             }
2193             YY_BREAK
2194         case 2:
2195             YY_RULE_SETUP
2196             {
2197                 BEGIN(INITIAL);
2198                 return scan_throw(BOOLTRUE);
2199             }
2200             YY_BREAK
2201         case 3:
2202             YY_RULE_SETUP
2203             {
2204                 BEGIN(INITIAL);
2205                 return scan_throw(BOOLFALSE);
2206             }
2207             YY_BREAK
2208         case 4:
2209             YY_RULE_SETUP
2210             {
2211                 if (last_token != DOT)
2212                 {
2213                     ParserSingleInstance::pushControlStatus(Parser::WithinIf);
2214                 }
2215                 DEBUG("BEGIN(INITIAL)");
2216                 BEGIN(INITIAL);
2217                 return scan_throw(IF);
2218             }
2219             YY_BREAK
2220         case 5:
2221             YY_RULE_SETUP
2222             {
2223                 DEBUG("BEGIN(INITIAL)");
2224                 BEGIN(INITIAL);
2225                 return scan_throw(THEN);
2226             }
2227             YY_BREAK
2228         case 6:
2229             YY_RULE_SETUP
2230             {
2231                 if (last_token != DOT)
2232                 {
2233                     // Pop to step out IF
2234                     ParserSingleInstance::popControlStatus();
2235                     ParserSingleInstance::pushControlStatus(Parser::WithinElse);
2236                 }
2237                 DEBUG("BEGIN(INITIAL)");
2238                 BEGIN(INITIAL);
2239                 return scan_throw(ELSE);
2240             }
2241             YY_BREAK
2242         case 7:
2243             YY_RULE_SETUP
2244             {
2245                 if (last_token != DOT)
2246                 {
2247                     ParserSingleInstance::popControlStatus();
2248                     ParserSingleInstance::pushControlStatus(Parser::WithinElseIf);
2249                 }
2250                 DEBUG("BEGIN(INITIAL)");
2251                 BEGIN(INITIAL);
2252                 return scan_throw(ELSEIF);
2253             }
2254             YY_BREAK
2255         case 8:
2256             YY_RULE_SETUP
2257             {
2258                 if (last_token != DOT)
2259                 {
2260                     ParserSingleInstance::popControlStatus();
2261                 }
2262                 DEBUG("BEGIN(INITIAL)");
2263                 BEGIN(INITIAL);
2264                 return scan_throw(END);
2265             }
2266             YY_BREAK
2267         case 9:
2268             YY_RULE_SETUP
2269             {
2270                 if (last_token != DOT)
2271                 {
2272                     ParserSingleInstance::pushControlStatus(Parser::WithinSelect);
2273                 }
2274                 DEBUG("BEGIN(INITIAL)");
2275                 BEGIN(INITIAL);
2276                 return scan_throw(SELECT);
2277             }
2278             YY_BREAK
2279         case 10:
2280             YY_RULE_SETUP
2281             {
2282                 if (last_token != DOT)
2283                 {
2284                     ParserSingleInstance::pushControlStatus(Parser::WithinSwitch);
2285                 }
2286                 DEBUG("BEGIN(INITIAL)");
2287                 BEGIN(INITIAL);
2288                 return scan_throw(SWITCH);
2289             }
2290             YY_BREAK
2291         case 11:
2292             YY_RULE_SETUP
2293             {
2294                 if (last_token != DOT)
2295                 {
2296                     ParserSingleInstance::popControlStatus();
2297                     ParserSingleInstance::pushControlStatus(Parser::WithinOtherwise);
2298                 }
2299                 DEBUG("BEGIN(INITIAL)");
2300                 BEGIN(INITIAL);
2301                 return scan_throw(OTHERWISE);
2302             }
2303             YY_BREAK
2304         case 12:
2305             YY_RULE_SETUP
2306             {
2307                 if (last_token != DOT)
2308                 {
2309                     ParserSingleInstance::popControlStatus();
2310                     ParserSingleInstance::pushControlStatus(Parser::WithinCase);
2311                 }
2312                 DEBUG("BEGIN(INITIAL)");
2313                 BEGIN(INITIAL);
2314                 return scan_throw(CASE);
2315             }
2316             YY_BREAK
2317         case 13:
2318             YY_RULE_SETUP
2319             {
2320                 if (last_token != DOT)
2321                 {
2322                     ParserSingleInstance::pushControlStatus(Parser::WithinFunction);
2323                 }
2324                 DEBUG("BEGIN(INITIAL)");
2325                 BEGIN(INITIAL);
2326                 return scan_throw(FUNCTION);
2327             }
2328             YY_BREAK
2329         case 14:
2330             YY_RULE_SETUP
2331             {
2332                 if (last_token != DOT)
2333                 {
2334                     ParserSingleInstance::popControlStatus();
2335                 }
2336                 DEBUG("BEGIN(INITIAL)");
2337                 BEGIN(INITIAL);
2338                 return scan_throw(ENDFUNCTION);
2339             }
2340             YY_BREAK
2341         case 15:
2342             YY_RULE_SETUP
2343             {
2344                 if (last_token != DOT)
2345                 {
2346                     ParserSingleInstance::pushControlStatus(Parser::WithinFor);
2347                 }
2348                 BEGIN(INITIAL);
2349                 return scan_throw(FOR);
2350             }
2351             YY_BREAK
2352         case 16:
2353             YY_RULE_SETUP
2354             {
2355                 if (last_token != DOT)
2356                 {
2357                     ParserSingleInstance::pushControlStatus(Parser::WithinWhile);
2358                 }
2359                 BEGIN(INITIAL);
2360                 return scan_throw(WHILE);
2361             }
2362             YY_BREAK
2363         case 17:
2364             YY_RULE_SETUP
2365             {
2366                 BEGIN(INITIAL);
2367                 return scan_throw(DO);
2368             }
2369             YY_BREAK
2370         case 18:
2371             YY_RULE_SETUP
2372             {
2373                 BEGIN(INITIAL);
2374                 return scan_throw(BREAK);
2375             }
2376             YY_BREAK
2377         case 19:
2378             YY_RULE_SETUP
2379             {
2380                 BEGIN(INITIAL);
2381                 return scan_throw(CONTINUE);
2382             }
2383             YY_BREAK
2384         case 20:
2385             YY_RULE_SETUP
2386             {
2387                 ParserSingleInstance::pushControlStatus(Parser::WithinTry);
2388                 BEGIN(INITIAL);
2389                 return scan_throw(TRY);
2390             }
2391             YY_BREAK
2392         case 21:
2393             YY_RULE_SETUP
2394             {
2395                 // Pop to step out TRY
2396                 ParserSingleInstance::popControlStatus();
2397                 ParserSingleInstance::pushControlStatus(Parser::WithinCatch);
2398                 BEGIN(INITIAL);
2399                 return scan_throw(CATCH);
2400             }
2401             YY_BREAK
2402         case 22:
2403             YY_RULE_SETUP
2404             {
2405                 BEGIN(INITIAL);
2406                 return scan_throw(RETURN);
2407             }
2408             YY_BREAK
2409         case 23:
2410             YY_RULE_SETUP
2411             {
2412                 BEGIN(INITIAL);
2413                 return scan_throw(RETURN);
2414             }
2415             YY_BREAK
2416         case 24:
2417             /* rule 24 can match eol */
2418             YY_RULE_SETUP
2419             {
2420                 BEGIN(BEGINID);
2421             }
2422             YY_BREAK
2423
2424         case 25:
2425             YY_RULE_SETUP
2426             {
2427                 wchar_t *pwText = to_wide_string(yytext);
2428                 if (yytext != NULL && pwText == NULL)
2429                 {
2430                     std::string str = "Can\'t convert \'";
2431                     str += yytext;
2432                     str += "\' to UTF-8";
2433                     BEGIN(INITIAL);
2434                     yyerror(str);
2435                     return scan_throw(FLEX_ERROR);
2436                 }
2437                 yylval.str = new std::wstring(pwText);
2438                 FREE(pwText);
2439                 types::InternalType * pIT = symbol::Context::getInstance()->get(symbol::Symbol(*yylval.str));
2440                 if (pIT && pIT->isCallable())
2441                 {
2442                     scan_throw(ID);
2443                     BEGIN(SHELLMODE);
2444                 }
2445                 else
2446                 {
2447                     BEGIN(INITIAL);
2448                     return scan_throw(ID);
2449                 }
2450             }
2451             YY_BREAK
2452
2453         case 26:
2454             YY_RULE_SETUP
2455             {
2456                 return scan_throw(NOT);
2457             }
2458             YY_BREAK
2459         case 27:
2460             YY_RULE_SETUP
2461             {
2462                 return scan_throw(DOLLAR);
2463             }
2464             YY_BREAK
2465         case 28:
2466             YY_RULE_SETUP
2467             {
2468                 return scan_throw(BOOLTRUE);
2469             }
2470             YY_BREAK
2471         case 29:
2472             YY_RULE_SETUP
2473             {
2474                 return scan_throw(BOOLFALSE);
2475             }
2476             YY_BREAK
2477         case 30:
2478             YY_RULE_SETUP
2479             {
2480                 return scan_throw(AND);
2481             }
2482             YY_BREAK
2483         case 31:
2484             YY_RULE_SETUP
2485             {
2486                 return scan_throw(ANDAND);
2487             }
2488             YY_BREAK
2489         case 32:
2490             YY_RULE_SETUP
2491             {
2492                 return scan_throw(OR);
2493             }
2494             YY_BREAK
2495         case 33:
2496             YY_RULE_SETUP
2497             {
2498                 return scan_throw(OROR);
2499             }
2500             YY_BREAK
2501         case 34:
2502             YY_RULE_SETUP
2503             {
2504                 return scan_throw(LPAREN);
2505             }
2506             YY_BREAK
2507         case 35:
2508             YY_RULE_SETUP
2509             {
2510                 return scan_throw(RPAREN);
2511             }
2512             YY_BREAK
2513         case 36:
2514             YY_RULE_SETUP
2515             {
2516                 scan_step();
2517                 return scan_throw(SEMI);
2518             }
2519             YY_BREAK
2520         case 37:
2521             YY_RULE_SETUP
2522             {
2523                 scan_step();
2524                 return scan_throw(COMMA);
2525             }
2526             YY_BREAK
2527         case 38:
2528             YY_RULE_SETUP
2529             {
2530                 return scan_throw(COLON);
2531             }
2532             YY_BREAK
2533         case 39:
2534             YY_RULE_SETUP
2535             {
2536                 yy_push_state(MATRIX);
2537                 paren_levels.push(0);
2538                 ParserSingleInstance::pushControlStatus(Parser::WithinCell);
2539                 return scan_throw(LBRACE);
2540             }
2541             YY_BREAK
2542         case 40:
2543             YY_RULE_SETUP
2544             {
2545                 return scan_throw(RBRACE);
2546             }
2547             YY_BREAK
2548         case 41:
2549             YY_RULE_SETUP
2550             {
2551                 return scan_throw(DOTQUOTE);
2552             }
2553             YY_BREAK
2554         case 42:
2555             YY_RULE_SETUP
2556             {
2557                 return scan_throw(DOTTIMES);
2558             }
2559             YY_BREAK
2560         case 43:
2561             YY_RULE_SETUP
2562             {
2563                 return scan_throw(DOTRDIVIDE);
2564             }
2565             YY_BREAK
2566         case 44:
2567             YY_RULE_SETUP
2568             {
2569                 return scan_throw(DOTLDIVIDE);
2570             }
2571             YY_BREAK
2572         case 45:
2573             YY_RULE_SETUP
2574             {
2575                 return scan_throw(DOTPOWER);
2576             }
2577             YY_BREAK
2578         case 46:
2579             YY_RULE_SETUP
2580             {
2581                 return scan_throw(MINUS);
2582             }
2583             YY_BREAK
2584         case 47:
2585             YY_RULE_SETUP
2586             {
2587                 return scan_throw(PLUS);
2588             }
2589             YY_BREAK
2590         case 48:
2591             YY_RULE_SETUP
2592             {
2593                 return scan_throw(TIMES);
2594             }
2595             YY_BREAK
2596         case 49:
2597             YY_RULE_SETUP
2598             {
2599                 return scan_throw(RDIVIDE);
2600             }
2601             YY_BREAK
2602         case 50:
2603             YY_RULE_SETUP
2604             {
2605                 return scan_throw(LDIVIDE);
2606             }
2607             YY_BREAK
2608         case 51:
2609             YY_RULE_SETUP
2610             {
2611                 return scan_throw(POWER);
2612             }
2613             YY_BREAK
2614         case 52:
2615             YY_RULE_SETUP
2616             {
2617                 return scan_throw(KRONTIMES);
2618             }
2619             YY_BREAK
2620         case 53:
2621             YY_RULE_SETUP
2622             {
2623                 return scan_throw(KRONRDIVIDE);
2624             }
2625             YY_BREAK
2626         case 54:
2627             YY_RULE_SETUP
2628             {
2629                 return scan_throw(KRONLDIVIDE);
2630             }
2631             YY_BREAK
2632         case 55:
2633             /* rule 55 can match eol */
2634             YY_RULE_SETUP
2635             {
2636                 unput(yytext[yyleng - 1]);
2637                 return scan_throw(CONTROLTIMES);
2638             }
2639             YY_BREAK
2640         case 56:
2641             /* rule 56 can match eol */
2642             YY_RULE_SETUP
2643             {
2644                 unput(yytext[yyleng - 1]);
2645                 return scan_throw(CONTROLRDIVIDE);
2646             }
2647             YY_BREAK
2648         case 57:
2649             /* rule 57 can match eol */
2650             YY_RULE_SETUP
2651             {
2652                 unput(yytext[yyleng - 1]);
2653                 return scan_throw(CONTROLLDIVIDE);
2654             }
2655             YY_BREAK
2656         case 58:
2657             YY_RULE_SETUP
2658             {
2659                 return scan_throw(EQ);
2660             }
2661             YY_BREAK
2662         case 59:
2663             YY_RULE_SETUP
2664             {
2665                 return scan_throw(NE);
2666             }
2667             YY_BREAK
2668         case 60:
2669             YY_RULE_SETUP
2670             {
2671                 return scan_throw(LT);
2672             }
2673             YY_BREAK
2674         case 61:
2675             YY_RULE_SETUP
2676             {
2677                 return scan_throw(GT);
2678             }
2679             YY_BREAK
2680         case 62:
2681             YY_RULE_SETUP
2682             {
2683                 return scan_throw(LE);
2684             }
2685             YY_BREAK
2686         case 63:
2687             YY_RULE_SETUP
2688             {
2689                 return scan_throw(GE);
2690             }
2691             YY_BREAK
2692         case 64:
2693             YY_RULE_SETUP
2694             {
2695                 return scan_throw(ASSIGN);
2696             }
2697             YY_BREAK
2698         case 65:
2699             YY_RULE_SETUP
2700             {
2701                 DEBUG("yy_push_state(MATRIX)");
2702                 yy_push_state(MATRIX);
2703                 paren_levels.push(0);
2704                 ParserSingleInstance::pushControlStatus(Parser::WithinMatrix);
2705                 return scan_throw(LBRACK);
2706             }
2707             YY_BREAK
2708         case 66:
2709             YY_RULE_SETUP
2710             {
2711                 return scan_throw(RBRACK);
2712             }
2713             YY_BREAK
2714         case 67:
2715             YY_RULE_SETUP
2716             {
2717                 return scan_throw(DOT);
2718             }
2719             YY_BREAK
2720         case 68:
2721             YY_RULE_SETUP
2722             {
2723                 ParserSingleInstance::pushControlStatus(Parser::WithinDots);
2724                 yy_push_state(LINEBREAK);
2725             }
2726             YY_BREAK
2727         case 69:
2728             YY_RULE_SETUP
2729             {
2730                 yylval.number = atof(yytext);
2731 #ifdef TOKENDEV
2732                 std::cout << "--> [DEBUG] INTEGER : " << yytext << std::endl;
2733 #endif
2734                 //  scan_step();
2735                 return scan_throw(VARINT);
2736             }
2737             YY_BREAK
2738         case 70:
2739             YY_RULE_SETUP
2740             {
2741                 scan_exponent_convert(yytext);
2742                 yylval.number = atof(yytext);
2743 #ifdef TOKENDEV
2744                 std::cout << "--> [DEBUG] FLOATING : " << yytext << std::endl;
2745 #endif
2746                 //scan_step();
2747                 return scan_throw(VARFLOAT);
2748             }
2749             YY_BREAK
2750         case 71:
2751             YY_RULE_SETUP
2752             {
2753                 yylval.number = atof(yytext);
2754 #ifdef TOKENDEV
2755                 std::cout << "--> [DEBUG] FLOATING : " << yytext << std::endl;
2756 #endif
2757                 //scan_step();
2758                 return scan_throw(VARFLOAT);
2759             }
2760             YY_BREAK
2761         case 72:
2762             *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2763             (yy_c_buf_p) = yy_cp -= 1;
2764             YY_DO_BEFORE_ACTION; /* set up yytext again */
2765             YY_RULE_SETUP
2766             {
2767
2768                 yylval.number = atof(yytext);
2769 #ifdef TOKENDEV
2770                 std::cout << "--> [DEBUG] NUMBER WITH DOT AS LAST CHARACTER : " << yytext << std::endl;
2771 #endif
2772                 //  scan_step();
2773                 unput('.');
2774                 yylloc.last_column--;
2775                 return scan_throw(NUM);
2776             }
2777             YY_BREAK
2778         case 73:
2779             YY_RULE_SETUP
2780             {
2781                 yylval.number = atof(yytext);
2782 #ifdef TOKENDEV
2783                 std::cout << "--> [DEBUG] NUMBER : " << yytext << std::endl;
2784 #endif
2785                 //  scan_step();
2786                 return scan_throw(NUM);
2787             }
2788             YY_BREAK
2789         case 74:
2790             YY_RULE_SETUP
2791             {
2792                 yylval.number = atof(yytext);
2793 #ifdef TOKENDEV
2794                 std::cout << "--> [DEBUG] LITTLE : " << yytext << std::endl;
2795 #endif
2796                 //  scan_step();
2797                 return scan_throw(NUM);
2798             }
2799             YY_BREAK
2800         case 75:
2801             YY_RULE_SETUP
2802             {
2803                 wchar_t *pwText = to_wide_string(yytext);
2804                 if (yytext != NULL && pwText == NULL)
2805                 {
2806                     std::string str = "Can\'t convert \'";
2807                     str += yytext;
2808                     str += "\' to UTF-8";
2809                     BEGIN(INITIAL);
2810                     yyerror(str);
2811                     return scan_throw(FLEX_ERROR);
2812                 }
2813                 yylval.str = new std::wstring(pwText);
2814                 FREE(pwText);
2815 #ifdef TOKENDEV
2816                 std::cout << "--> [DEBUG] ID : " << yytext << std::endl;
2817 #endif
2818                 //  scan_step();
2819                 return scan_throw(ID);
2820             }
2821             YY_BREAK
2822         case 76:
2823             YY_RULE_SETUP
2824             {
2825                 yylval.comment = new std::wstring();
2826                 comment_level = 1;
2827                 ParserSingleInstance::pushControlStatus(Parser::WithinBlockComment);
2828                 yy_push_state(REGIONCOMMENT);
2829             }
2830             YY_BREAK
2831         case 77:
2832             YY_RULE_SETUP
2833             {
2834                 pstBuffer.clear();
2835                 yy_push_state(LINECOMMENT);
2836             }
2837             YY_BREAK
2838         case 78:
2839             YY_RULE_SETUP
2840             {
2841                 pstBuffer.clear();
2842                 str_opener_column = yylloc.first_column;
2843                 yy_push_state(DOUBLESTRING);
2844             }
2845             YY_BREAK
2846         case 79:
2847             YY_RULE_SETUP
2848             {
2849                 /*
2850                 ** Matrix Transposition special behaviour
2851                 ** ID' []' toto()' are transposition call
2852                 */
2853                 if (last_token == ID
2854                 || last_token == RBRACK
2855                 || last_token == RPAREN
2856                 || last_token == RBRACE
2857                 || last_token == VARINT
2858                 || last_token == VARFLOAT
2859                 || last_token == NUM
2860                 || last_token == BOOLTRUE
2861                 || last_token == BOOLFALSE)
2862                 {
2863                     return scan_throw(QUOTE);
2864                 }
2865                 else
2866                 {
2867                     pstBuffer.clear();
2868                     str_opener_column = yylloc.first_column;
2869                     yy_push_state(SIMPLESTRING);
2870                 }
2871             }
2872             YY_BREAK
2873         case 80:
2874             YY_RULE_SETUP
2875             {
2876                 scan_step();
2877                 scan_throw(SPACES);
2878             }
2879             YY_BREAK
2880         case 81:
2881             /* rule 81 can match eol */
2882             YY_RULE_SETUP
2883             {
2884                 yylloc.last_line += 1;
2885                 yylloc.last_column = 1;
2886                 scan_step();
2887                 if (last_token != EOL)
2888                 {
2889                     return scan_throw(EOL);
2890                 }
2891
2892             }
2893             YY_BREAK
2894         case 82:
2895             /* rule 82 can match eol */
2896             YY_RULE_SETUP
2897             {
2898                 yylloc.last_line += 1;
2899                 yylloc.last_column = 1;
2900                 scan_step();
2901                 if (last_token != EOL)
2902                 {
2903                     return scan_throw(EOL);
2904                 }
2905                 scan_throw(EOL);
2906             }
2907             YY_BREAK
2908         case 83:
2909             /* rule 83 can match eol */
2910             YY_RULE_SETUP
2911             {
2912                 yylloc.last_line += 2;
2913                 yylloc.last_column = 1;
2914                 scan_step();
2915                 if (last_token != EOL)
2916                 {
2917                     return scan_throw(EOL);
2918                 }
2919                 scan_throw(EOL);
2920             }
2921             YY_BREAK
2922         case 84:
2923             YY_RULE_SETUP
2924             {
2925                 std::string str = "Unexpected token \'";
2926                 str += yytext;
2927                 str += "\'";
2928                 BEGIN(INITIAL);
2929                 yyerror(str);
2930                 return scan_throw(FLEX_ERROR);
2931             }
2932             YY_BREAK
2933
2934         case 85:
2935             YY_RULE_SETUP
2936             {
2937                 ++paren_levels.top();
2938                 return scan_throw(LPAREN);
2939             }
2940             YY_BREAK
2941         case 86:
2942             YY_RULE_SETUP
2943             {
2944                 --paren_levels.top();
2945                 return scan_throw(RPAREN);
2946             }
2947             YY_BREAK
2948         case 87:
2949             YY_RULE_SETUP
2950             {
2951                 unput(yytext[yyleng - 1]);
2952                 if (last_token == ID
2953                 || last_token == RPAREN
2954                 || last_token == QUOTE
2955                 || last_token == VARINT
2956                 || last_token == VARFLOAT
2957                 || last_token == NUM)
2958                 {
2959                     return scan_throw(COMMA);
2960                 }
2961             }
2962             YY_BREAK
2963         case 88:
2964             YY_RULE_SETUP
2965             {
2966                 return scan_throw(COLON);
2967             }
2968             YY_BREAK
2969         case 89:
2970             /* rule 89 can match eol */
2971             YY_RULE_SETUP
2972             {
2973                 yylloc.last_line += 1;
2974                 yylloc.last_column = 1;
2975                 if (last_token != DOTS && last_token != EOL)
2976                 {
2977                     return scan_throw(EOL);
2978                 }
2979                 scan_throw(EOL);
2980             }
2981             YY_BREAK
2982         case 90:
2983             YY_RULE_SETUP
2984             {
2985                 DEBUG("yy_pop_state()");
2986                 yy_pop_state();
2987                 paren_levels.pop();
2988                 ParserSingleInstance::popControlStatus();
2989                 return scan_throw(RBRACK);
2990             }
2991             YY_BREAK
2992         case 91:
2993             YY_RULE_SETUP
2994             {
2995                 yy_pop_state();
2996                 paren_levels.pop();
2997                 ParserSingleInstance::popControlStatus();
2998                 return scan_throw(RBRACE);
2999             }
3000             YY_BREAK
3001         case 92:
3002         case 93:
3003             YY_RULE_SETUP
3004             {
3005                 return scan_throw(PLUS);
3006             }
3007             YY_BREAK
3008         case 94:
3009         case 95:
3010             YY_RULE_SETUP
3011             {
3012                 return scan_throw(MINUS);
3013             }
3014             YY_BREAK
3015         case 96:
3016             YY_RULE_SETUP
3017             {
3018                 // no need to unput the '+'
3019                 if (last_token != LBRACK
3020                 && last_token != EOL
3021                 && last_token != SEMI
3022                 && last_token != COMMA
3023                 && last_token != DOTTIMES
3024                 && last_token != DOTRDIVIDE
3025                 && last_token != DOTLDIVIDE
3026                 && last_token != DOTPOWER
3027                 && last_token != MINUS
3028                 && last_token != PLUS
3029                 && last_token != TIMES
3030                 && last_token != RDIVIDE
3031                 && last_token != LDIVIDE
3032                 && last_token != POWER
3033                 && last_token != KRONTIMES
3034                 && last_token != KRONRDIVIDE
3035                 && last_token != KRONLDIVIDE
3036                 && last_token != EQ
3037                 && last_token != NE
3038                 && last_token != LT
3039                 && last_token != GT
3040                 && last_token != LE
3041                 && last_token != GE
3042                 && paren_levels.top() == 0)
3043                 {
3044                     return scan_throw(COMMA);
3045                 }
3046                 else
3047                 {
3048                     unput('+');
3049                     yylloc.last_column--;
3050                 }
3051             }
3052             YY_BREAK
3053         case 97:
3054             YY_RULE_SETUP
3055             {
3056                 unput('-');
3057                 yylloc.last_column--;
3058                 if (last_token != LBRACK
3059                 && last_token != EOL
3060                 && last_token != SEMI
3061                 && last_token != COMMA
3062                 && last_token != DOTTIMES
3063                 && last_token != DOTRDIVIDE
3064                 && last_token != DOTLDIVIDE
3065                 && last_token != DOTPOWER
3066                 && last_token != MINUS
3067                 && last_token != PLUS
3068                 && last_token != TIMES
3069                 && last_token != RDIVIDE
3070                 && last_token != LDIVIDE
3071                 && last_token != POWER
3072                 && last_token != KRONTIMES
3073                 && last_token != KRONRDIVIDE
3074                 && last_token != KRONLDIVIDE
3075                 && last_token != EQ
3076                 && last_token != NE
3077                 && last_token != LT
3078                 && last_token != GT
3079                 && last_token != LE
3080                 && last_token != GE
3081                 && paren_levels.top() == 0)
3082                 {
3083                     return scan_throw(COMMA);
3084                 }
3085             }
3086             YY_BREAK
3087         case 98:
3088             YY_RULE_SETUP
3089             {
3090                 std::string str = "Unexpected token \'";
3091                 str += yytext;
3092                 str += "\' within a matrix.";
3093                 BEGIN(INITIAL);
3094                 yyerror(str);
3095                 return scan_throw(FLEX_ERROR);
3096             }
3097             YY_BREAK
3098         case 99:
3099             /* rule 99 can match eol */
3100             YY_RULE_SETUP
3101             {
3102                 yylloc.last_line += 1;
3103                 yylloc.last_column = 1;
3104                 scan_step();
3105             }
3106             YY_BREAK
3107         case 100:
3108             /* rule 100 can match eol */
3109             YY_RULE_SETUP
3110             {
3111                 yylloc.last_line += 1;
3112                 yylloc.last_column = 1;
3113                 scan_step();
3114             }
3115             YY_BREAK
3116         case 101:
3117             /* rule 101 can match eol */
3118             YY_RULE_SETUP
3119             {
3120                 yylloc.last_line += 1;
3121                 yylloc.last_column = 1;
3122                 scan_step();
3123                 unput(' ');
3124                 yylloc.last_column--;
3125             }
3126             YY_BREAK
3127         case 102:
3128             /* rule 102 can match eol */
3129             YY_RULE_SETUP
3130             {
3131                 yylloc.last_line += 1;
3132                 yylloc.last_column = 1;
3133                 scan_step();
3134                 unput(' ');
3135                 yylloc.last_column--;
3136             }
3137             YY_BREAK
3138         case YY_STATE_EOF(MATRIX):
3139         {
3140             yy_pop_state();
3141             paren_levels.pop();
3142         }
3143         YY_BREAK
3144
3145         case 103:
3146             /* rule 103 can match eol */
3147             YY_RULE_SETUP
3148             {
3149                 yylloc.last_line += 1;
3150                 yylloc.last_column = 1;
3151                 scan_step();
3152                 yy_pop_state();
3153                 ParserSingleInstance::popControlStatus();
3154             }
3155             YY_BREAK
3156         case 104:
3157             YY_RULE_SETUP
3158             {
3159                 ++comment_level;
3160                 yy_push_state(REGIONCOMMENT);
3161             }
3162             YY_BREAK
3163         case 105:
3164             YY_RULE_SETUP
3165             {
3166                 scan_throw(DOTS);
3167                 pstBuffer.clear();
3168                 yy_push_state(LINECOMMENT);
3169             }
3170             YY_BREAK
3171         case 106:
3172             YY_RULE_SETUP
3173             {
3174                 /* Do nothing... */
3175             }
3176             YY_BREAK
3177         case YY_STATE_EOF(LINEBREAK):
3178         {
3179             yy_pop_state();
3180         }
3181         YY_BREAK
3182         case 107:
3183             YY_RULE_SETUP
3184             {
3185                 std::string str = "Unexpected token \'";
3186                 str += yytext;
3187                 str += "\' after line break with .. or ...";
3188                 BEGIN(INITIAL);
3189                 yyerror(str);
3190                 return scan_throw(FLEX_ERROR);
3191             }
3192             YY_BREAK
3193
3194         case 108:
3195             /* rule 108 can match eol */
3196             YY_RULE_SETUP
3197             {
3198                 //yylloc.last_line += 1;
3199                 //yylloc.last_column = 1;
3200                 //scan_step();
3201                 yy_pop_state();
3202                 for (int i = yyleng - 1 ; i >= 0 ; --i)
3203                 {
3204                     //std::cerr << "Unputting i = {" << i << "}" << std::endl;
3205                     //std::cerr << "Unputting {" << yytext[i] << "}" << std::endl;
3206                     unput(yytext[i]);
3207                     yylloc.last_column--;
3208                 }
3209                 /*
3210                 ** To forgot comments after lines break
3211                 */
3212                 if (last_token != DOTS)
3213                 {
3214                     //std::cerr << "pstBuffer = {" << *pstBuffer << "}" << std::endl;
3215                     //std::cerr << "pstBuffer->c_str() = {" << pstBuffer->c_str() << "}" << std::endl;
3216                     wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3217                     //std::wcerr << L"pwstBuffer = W{" << pwstBuffer << L"}" << std::endl;
3218                     if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3219                     {
3220                         pstBuffer.clear();
3221                         std::string str = "Can\'t convert \'";
3222                         str += pstBuffer.c_str();
3223                         str += "\' to UTF-8";
3224                         BEGIN(INITIAL);
3225                         yyerror(str);
3226                         return scan_throw(FLEX_ERROR);
3227                     }
3228                     yylval.comment = new std::wstring(pwstBuffer);
3229                     pstBuffer.clear();
3230                     FREE (pwstBuffer);
3231                     return scan_throw(COMMENT);
3232                 }
3233                 else
3234                 {
3235                     pstBuffer.clear();
3236                 }
3237             }
3238             YY_BREAK
3239         case YY_STATE_EOF(LINECOMMENT):
3240         {
3241             yy_pop_state();
3242             wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3243             if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3244             {
3245                 pstBuffer.clear();
3246                 std::string str = "Can\'t convert \'";
3247                 str += pstBuffer.c_str();
3248                 str += "\' to UTF-8";
3249                 BEGIN(INITIAL);
3250                 yyerror(str);
3251                 return scan_throw(FLEX_ERROR);
3252             }
3253             yylval.comment = new std::wstring(pwstBuffer);
3254             pstBuffer.clear();
3255             FREE (pwstBuffer);
3256             return scan_throw(COMMENT);
3257         }
3258         YY_BREAK
3259         case 109:
3260             YY_RULE_SETUP
3261             {
3262                 // Put the char in a temporary CHAR buffer to go through UTF-8 trouble
3263                 // only translate to WCHAR_T when popping state.
3264                 pstBuffer += yytext;
3265             }
3266             YY_BREAK
3267
3268         case 110:
3269             YY_RULE_SETUP
3270             {
3271                 --comment_level;
3272                 if (comment_level == 0)
3273                 {
3274                     ParserSingleInstance::popControlStatus();
3275                     yy_pop_state();
3276                     //return scan_throw(BLOCKCOMMENT);
3277                 }
3278             }
3279             YY_BREAK
3280         case 111:
3281             YY_RULE_SETUP
3282             {
3283                 ++comment_level;
3284                 yy_push_state(REGIONCOMMENT);
3285             }
3286             YY_BREAK
3287         case 112:
3288             /* rule 112 can match eol */
3289             YY_RULE_SETUP
3290             {
3291                 yylloc.last_line += 1;
3292                 yylloc.last_column = 1;
3293                 scan_step();
3294                 *yylval.comment += L"\n//";
3295             }
3296             YY_BREAK
3297         case 113:
3298         case 114:
3299             YY_RULE_SETUP
3300             {
3301                 wchar_t *pwText = to_wide_string(yytext);
3302                 *yylval.comment += std::wstring(pwText);
3303                 FREE(pwText);
3304             }
3305             YY_BREAK
3306         case YY_STATE_EOF(REGIONCOMMENT):
3307         {
3308             yy_pop_state();
3309             //    std::string str = "unexpected end of file in a comment";
3310             //    scan_error(str);
3311         }
3312         YY_BREAK
3313
3314         case 115:
3315             YY_RULE_SETUP
3316             {
3317                 pstBuffer += "\"";
3318             }
3319             YY_BREAK
3320         case 116:
3321             YY_RULE_SETUP
3322             {
3323                 pstBuffer += "'";
3324             }
3325             YY_BREAK
3326         case 117:
3327             YY_RULE_SETUP
3328             {
3329                 pstBuffer += "\"";
3330             }
3331             YY_BREAK
3332         case 118:
3333             YY_RULE_SETUP
3334             {
3335                 pstBuffer += "'";
3336             }
3337             YY_BREAK
3338         case 119:
3339             YY_RULE_SETUP
3340             {
3341                 yy_pop_state();
3342                 //scan_step();
3343                 wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3344                 if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3345                 {
3346                     pstBuffer.clear();
3347                     std::string str = "Can\'t convert \'";
3348                     str += pstBuffer.c_str();
3349                     str += "\' to UTF-8";
3350                     BEGIN(INITIAL);
3351                     yyerror(str);
3352                     return scan_throw(FLEX_ERROR);
3353                 }
3354                 yylval.str = new std::wstring(pwstBuffer);
3355                 pstBuffer.clear();
3356                 FREE(pwstBuffer);
3357                 yylloc.first_column = str_opener_column;
3358                 return scan_throw(STR);
3359             }
3360             YY_BREAK
3361         case 120:
3362             YY_RULE_SETUP
3363             {
3364                 pstBuffer.clear();
3365                 BEGIN(INITIAL);
3366                 yyerror("Heterogeneous string detected, starting with \' and ending with \".");
3367                 return scan_throw(FLEX_ERROR);
3368             }
3369             YY_BREAK
3370         case 121:
3371             /* rule 121 can match eol */
3372             YY_RULE_SETUP
3373             {
3374                 yylloc.last_line += 1;
3375                 yylloc.last_column = 1;
3376                 /* Do nothing... Just skip */
3377             }
3378             YY_BREAK
3379         case 122:
3380             /* rule 122 can match eol */
3381             YY_RULE_SETUP
3382             {
3383                 pstBuffer.clear();
3384                 yylloc.last_line += 1;
3385                 yylloc.last_column = 1;
3386                 BEGIN(INITIAL);
3387                 yyerror("Unexpected end of line in a string.");
3388                 return scan_throw(FLEX_ERROR);
3389             }
3390             YY_BREAK
3391         case YY_STATE_EOF(SIMPLESTRING):
3392         {
3393             pstBuffer.clear();
3394             BEGIN(INITIAL);
3395             yyerror("Unexpected end of file in a string.");
3396             return scan_throw(FLEX_ERROR);
3397         }
3398         YY_BREAK
3399         case 123:
3400         case 124:
3401             YY_RULE_SETUP
3402             {
3403                 //scan_step();
3404                 pstBuffer += yytext;
3405             }
3406             YY_BREAK
3407
3408         case 125:
3409             YY_RULE_SETUP
3410             {
3411                 pstBuffer += "\"";
3412             }
3413             YY_BREAK
3414         case 126:
3415             YY_RULE_SETUP
3416             {
3417                 pstBuffer += "'";
3418             }
3419             YY_BREAK
3420         case 127:
3421             YY_RULE_SETUP
3422             {
3423                 pstBuffer += "\"";
3424             }
3425             YY_BREAK
3426         case 128:
3427             YY_RULE_SETUP
3428             {
3429                 pstBuffer += "'";
3430             }
3431             YY_BREAK
3432         case 129:
3433             YY_RULE_SETUP
3434             {
3435                 yy_pop_state();
3436                 //scan_step();
3437                 wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3438                 if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3439                 {
3440                     pstBuffer.clear();
3441                     std::string str = "Can\'t convert \'";
3442                     str += pstBuffer.c_str();
3443                     str += "\' to UTF-8";
3444                     BEGIN(INITIAL);
3445                     yyerror(str);
3446                     return scan_throw(FLEX_ERROR);
3447                 }
3448                 yylval.str = new std::wstring(pwstBuffer);
3449                 pstBuffer.clear();
3450                 FREE(pwstBuffer);
3451                 yylloc.first_column = str_opener_column;
3452                 return scan_throw(STR);
3453             }
3454             YY_BREAK
3455         case 130:
3456             YY_RULE_SETUP
3457             {
3458                 pstBuffer.clear();
3459                 BEGIN(INITIAL);
3460                 yyerror("Heterogeneous string detected, starting with \" and ending with \'.");
3461                 return scan_throw(FLEX_ERROR);
3462             }
3463             YY_BREAK
3464         case 131:
3465             /* rule 131 can match eol */
3466             YY_RULE_SETUP
3467             {
3468                 yylloc.last_line += 1;
3469                 yylloc.last_column = 1;
3470                 /* Do nothing... Just skip */
3471             }
3472             YY_BREAK
3473         case 132:
3474             /* rule 132 can match eol */
3475             YY_RULE_SETUP
3476             {
3477                 pstBuffer.clear();
3478                 yylloc.last_line += 1;
3479                 yylloc.last_column = 1;
3480                 BEGIN(INITIAL);
3481                 yyerror("Unexpected end of line in a string.");
3482                 return scan_throw(FLEX_ERROR);
3483             }
3484             YY_BREAK
3485         case YY_STATE_EOF(DOUBLESTRING):
3486         {
3487             pstBuffer.clear();
3488             BEGIN(INITIAL);
3489             yyerror("Unexpected end of file in a string.");
3490             return scan_throw(FLEX_ERROR);
3491         }
3492         YY_BREAK
3493         case 133:
3494         case 134:
3495             YY_RULE_SETUP
3496             {
3497                 //scan_step();
3498                 pstBuffer += yytext;
3499             }
3500             YY_BREAK
3501
3502         case 135:
3503             YY_RULE_SETUP
3504             {
3505                 if (last_token == ID)
3506                 {
3507                     scan_throw(SPACES);
3508                     return ID;
3509                 }
3510             }
3511             YY_BREAK
3512         case 136:
3513             YY_RULE_SETUP
3514             {
3515                 BEGIN(INITIAL);
3516                 scan_step();
3517                 return scan_throw(SEMI);
3518             }
3519             YY_BREAK
3520         case 137:
3521             YY_RULE_SETUP
3522             {
3523                 BEGIN(INITIAL);
3524                 scan_step();
3525                 return scan_throw(COMMA);
3526             }
3527             YY_BREAK
3528         case 138:
3529             /* rule 138 can match eol */
3530             YY_RULE_SETUP
3531             {
3532                 BEGIN(INITIAL);
3533                 yylloc.last_line += 1;
3534                 yylloc.last_column = 1;
3535                 scan_step();
3536                 return scan_throw(EOL);
3537             }
3538             YY_BREAK
3539         case 139:
3540             YY_RULE_SETUP
3541             {
3542                 if (last_token == STR || last_token == SPACES)
3543                 {
3544                     wchar_t *pwText = to_wide_string(yytext);
3545                     yylval.str = new std::wstring(pwText);
3546                     FREE(pwText);
3547                     return scan_throw(STR);
3548                 }
3549                 else
3550                 {
3551                     BEGIN(INITIAL);
3552                     return scan_throw(ASSIGN);
3553                 }
3554             }
3555             YY_BREAK
3556         case 140:
3557             YY_RULE_SETUP
3558             {
3559                 if (last_token == STR || last_token == SPACES)
3560                 {
3561                     wchar_t *pwText = to_wide_string(yytext);
3562                     yylval.str = new std::wstring(pwText);
3563                     FREE(pwText);
3564                     return scan_throw(STR);
3565                 }
3566                 else
3567                 {
3568                     BEGIN(INITIAL);
3569                     return scan_throw(LPAREN);
3570                 }
3571             }
3572             YY_BREAK
3573         case 141:
3574             YY_RULE_SETUP
3575             {
3576                 if (last_token == STR || last_token == SPACES)
3577                 {
3578                     wchar_t *pwText = to_wide_string(yytext);
3579                     yylval.str = new std::wstring(pwText);
3580                     FREE(pwText);
3581                     return scan_throw(STR);
3582                 }
3583                 else
3584                 {
3585                     BEGIN(INITIAL);
3586                     return scan_throw(LT);
3587                 }
3588             }
3589             YY_BREAK
3590         case 142:
3591             YY_RULE_SETUP
3592             {
3593                 if (last_token == STR || last_token == SPACES)
3594                 {
3595                     wchar_t *pwText = to_wide_string(yytext);
3596                     yylval.str = new std::wstring(pwText);
3597                     FREE(pwText);
3598                     return scan_throw(STR);
3599                 }
3600                 else
3601                 {
3602                     BEGIN(INITIAL);
3603                     return scan_throw(GT);
3604                 }
3605             }
3606             YY_BREAK
3607         case 143:
3608             YY_RULE_SETUP
3609             {
3610                 if (last_token == STR || last_token == SPACES)
3611                 {
3612                     wchar_t *pwText = to_wide_string(yytext);
3613                     yylval.str = new std::wstring(pwText);
3614                     FREE(pwText);
3615                     return scan_throw(STR);
3616                 }
3617                 else
3618                 {
3619                     BEGIN(INITIAL);
3620                     return scan_throw(NOT);
3621                 }
3622             }
3623             YY_BREAK
3624         case 144:
3625             YY_RULE_SETUP
3626             {
3627                 wchar_t *pwText = to_wide_string(yytext);
3628                 yylval.str = new std::wstring(pwText);
3629                 FREE(pwText);
3630                 return scan_throw(STR);
3631             }
3632             YY_BREAK
3633         case YY_STATE_EOF(SHELLMODE):
3634         {
3635             BEGIN(INITIAL);
3636         }
3637         YY_BREAK
3638
3639         case 145:
3640             YY_RULE_SETUP
3641             ECHO;
3642             YY_BREAK
3643         case YY_STATE_EOF(INITIAL):
3644         case YY_STATE_EOF(BEGINID):
3645             yyterminate();
3646
3647         case YY_END_OF_BUFFER:
3648         {
3649             /* Amount of text matched not including the EOB char. */
3650             int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3651
3652             /* Undo the effects of YY_DO_BEFORE_ACTION. */
3653             *yy_cp = (yy_hold_char);
3654             YY_RESTORE_YY_MORE_OFFSET
3655
3656             if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3657             {
3658                 /* We're scanning a new file or input source.  It's
3659                  * possible that this happened because the user
3660                  * just pointed yyin at a new source and called
3661                  * yylex().  If so, then we have to assure
3662                  * consistency between YY_CURRENT_BUFFER and our
3663                  * globals.  Here is the right place to do so, because
3664                  * this is the first action (other than possibly a
3665                  * back-up) that will match for the new input source.
3666                  */
3667                 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3668                 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3669                 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3670             }
3671
3672             /* Note that here we test for yy_c_buf_p "<=" to the position
3673              * of the first EOB in the buffer, since yy_c_buf_p will
3674              * already have been incremented past the NUL character
3675              * (since all states make transitions on EOB to the
3676              * end-of-buffer state).  Contrast this with the test
3677              * in input().
3678              */
3679             if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3680             {
3681                 /* This was really a NUL. */
3682                 yy_state_type yy_next_state;
3683
3684                 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3685
3686                 yy_current_state = yy_get_previous_state(  );
3687
3688                 /* Okay, we're now positioned to make the NUL
3689                  * transition.  We couldn't have
3690                  * yy_get_previous_state() go ahead and do it
3691                  * for us because it doesn't know how to deal
3692                  * with the possibility of jamming (and we don't
3693                  * want to build jamming into it because then it
3694                  * will run more slowly).
3695                  */
3696
3697                 yy_next_state = yy_try_NUL_trans( yy_current_state );
3698
3699                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3700
3701                 if ( yy_next_state )
3702                 {
3703                     /* Consume the NUL. */
3704                     yy_cp = ++(yy_c_buf_p);
3705                     yy_current_state = yy_next_state;
3706                     goto yy_match;
3707                 }
3708
3709                 else
3710                 {
3711                     yy_cp = (yy_c_buf_p);
3712                     goto yy_find_action;
3713                 }
3714             }
3715
3716             else switch ( yy_get_next_buffer(  ) )
3717                 {
3718                     case EOB_ACT_END_OF_FILE:
3719                     {
3720                         (yy_did_buffer_switch_on_eof) = 0;
3721
3722                         if ( yywrap( ) )
3723                         {
3724                             /* Note: because we've taken care in
3725                              * yy_get_next_buffer() to have set up
3726                              * yytext, we can now set up
3727                              * yy_c_buf_p so that if some total
3728                              * hoser (like flex itself) wants to
3729                              * call the scanner after we return the
3730                              * YY_NULL, it'll still work - another
3731                              * YY_NULL will get returned.
3732                              */
3733                             (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3734
3735                             yy_act = YY_STATE_EOF(YY_START);
3736                             goto do_action;
3737                         }
3738
3739                         else
3740                         {
3741                             if ( ! (yy_did_buffer_switch_on_eof) )
3742                             {
3743                                 YY_NEW_FILE;
3744                             }
3745                         }
3746                         break;
3747                     }
3748
3749                     case EOB_ACT_CONTINUE_SCAN:
3750                         (yy_c_buf_p) =
3751                             (yytext_ptr) + yy_amount_of_matched_text;
3752
3753                         yy_current_state = yy_get_previous_state(  );
3754
3755                         yy_cp = (yy_c_buf_p);
3756                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3757                         goto yy_match;
3758
3759                     case EOB_ACT_LAST_MATCH:
3760                         (yy_c_buf_p) =
3761                             &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3762
3763                         yy_current_state = yy_get_previous_state(  );
3764
3765                         yy_cp = (yy_c_buf_p);
3766                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3767                         goto yy_find_action;
3768                 }
3769             break;
3770         }
3771
3772         default:
3773             YY_FATAL_ERROR(
3774                 "fatal flex scanner internal error--no action found" );
3775     } /* end of action switch */
3776 } /* end of scanning one token */
3777 } /* end of yylex */
3778
3779 /* yy_get_next_buffer - try to read in a new buffer
3780  *
3781  * Returns a code representing an action:
3782  *      EOB_ACT_LAST_MATCH -
3783  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3784  *      EOB_ACT_END_OF_FILE - end of file
3785  */
3786 static int yy_get_next_buffer (void)
3787 {
3788 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3789 register char *source = (yytext_ptr);
3790 register int number_to_move, i;
3791 int ret_val;
3792
3793 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3794     YY_FATAL_ERROR(
3795         "fatal flex scanner internal error--end of buffer missed" );
3796
3797 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3798 {
3799     /* Don't try to fill the buffer, so this is an EOF. */
3800     if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3801     {
3802         /* We matched a single character, the EOB, so
3803          * treat this as a final EOF.
3804          */
3805         return EOB_ACT_END_OF_FILE;
3806     }
3807
3808     else
3809     {
3810         /* We matched some text prior to the EOB, first
3811          * process it.
3812          */
3813         return EOB_ACT_LAST_MATCH;
3814     }
3815 }
3816
3817 /* Try to read more data. */
3818
3819 /* First move last chars to start of buffer. */
3820 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3821
3822 for ( i = 0; i < number_to_move; ++i )
3823 {
3824     *(dest++) = *(source++);
3825 }
3826
3827 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3828     /* don't do the read, it's not guaranteed to return an EOF,
3829      * just force an EOF
3830      */
3831 {
3832     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3833 }
3834
3835 else
3836 {
3837     int num_to_read =
3838         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3839
3840     while ( num_to_read <= 0 )
3841     {
3842         /* Not enough room in the buffer - grow it. */
3843
3844         YY_FATAL_ERROR(
3845             "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3846
3847     }
3848
3849     if ( num_to_read > YY_READ_BUF_SIZE )
3850     {
3851         num_to_read = YY_READ_BUF_SIZE;
3852     }
3853
3854     /* Read in more data. */
3855     YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3856               (yy_n_chars), (size_t) num_to_read );
3857
3858     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3859 }
3860
3861 if ( (yy_n_chars) == 0 )
3862 {
3863     if ( number_to_move == YY_MORE_ADJ )
3864     {
3865         ret_val = EOB_ACT_END_OF_FILE;
3866         yyrestart(yyin  );
3867     }
3868
3869     else
3870     {
3871         ret_val = EOB_ACT_LAST_MATCH;
3872         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3873             YY_BUFFER_EOF_PENDING;
3874     }
3875 }
3876
3877 else
3878 {
3879     ret_val = EOB_ACT_CONTINUE_SCAN;
3880 }
3881
3882 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size)
3883 {
3884     /* Extend the array by 50%, plus the number we really need. */
3885     yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3886     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size  );
3887     if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3888     {
3889         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3890     }
3891 }
3892
3893 (yy_n_chars) += number_to_move;
3894 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3895 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3896
3897 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3898
3899 return ret_val;
3900 }
3901
3902 /* yy_get_previous_state - get the state just before the EOB char was reached */
3903
3904 static yy_state_type yy_get_previous_state (void)
3905 {
3906 register yy_state_type yy_current_state;
3907 register char *yy_cp;
3908
3909 yy_current_state = (yy_start);
3910 yy_current_state += YY_AT_BOL();
3911
3912 (yy_state_ptr) = (yy_state_buf);
3913 *(yy_state_ptr)++ = yy_current_state;
3914
3915 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3916 {
3917     register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3918     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3919     {
3920         yy_current_state = (int) yy_def[yy_current_state];
3921         if ( yy_current_state >= 825 )
3922         {
3923             yy_c = yy_meta[(unsigned int) yy_c];
3924         }
3925     }
3926     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3927     *(yy_state_ptr)++ = yy_current_state;
3928 }
3929
3930 return yy_current_state;
3931 }
3932
3933 /* yy_try_NUL_trans - try to make a transition on the NUL character
3934  *
3935  * synopsis
3936  *      next_state = yy_try_NUL_trans( current_state );
3937  */
3938 static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3939 {
3940 register int yy_is_jam;
3941
3942 register YY_CHAR yy_c = 1;
3943 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3944 {
3945     yy_current_state = (int) yy_def[yy_current_state];
3946     if ( yy_current_state >= 825 )
3947     {
3948         yy_c = yy_meta[(unsigned int) yy_c];
3949     }
3950 }
3951 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3952 yy_is_jam = (yy_current_state == 824);
3953 if ( ! yy_is_jam )
3954 {
3955     *(yy_state_ptr)++ = yy_current_state;
3956 }
3957
3958 return yy_is_jam ? 0 : yy_current_state;
3959 }
3960
3961 static void yyunput (int c, register char * yy_bp )
3962 {
3963 register char *yy_cp;
3964
3965 yy_cp = (yy_c_buf_p);
3966
3967 /* undo effects of setting up yytext */
3968 *yy_cp = (yy_hold_char);
3969
3970 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3971 {
3972     /* need to shift things up to make room */
3973     /* +2 for EOB chars. */
3974     register int number_to_move = (yy_n_chars) + 2;
3975     register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3976                               YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3977     register char *source =
3978         &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3979
3980     while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3981     {
3982         *--dest = *--source;
3983     }
3984
3985     yy_cp += (int) (dest - source);
3986     yy_bp += (int) (dest - source);
3987     YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3988         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3989
3990     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3991     {
3992         YY_FATAL_ERROR( "flex scanner push-back overflow" );
3993     }
3994 }
3995
3996 *--yy_cp = (char) c;
3997
3998 (yytext_ptr) = yy_bp;
3999 (yy_hold_char) = *yy_cp;
4000 (yy_c_buf_p) = yy_cp;
4001 }
4002
4003 #ifndef YY_NO_INPUT
4004 #ifdef __cplusplus
4005 static int yyinput (void)
4006 #else
4007 static int input  (void)
4008 #endif
4009
4010 {
4011     int c;
4012
4013     *(yy_c_buf_p) = (yy_hold_char);
4014
4015     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4016     {
4017         /* yy_c_buf_p now points to the character we want to return.
4018          * If this occurs *before* the EOB characters, then it's a
4019          * valid NUL; if not, then we've hit the end of the buffer.
4020          */
4021         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4022             /* This was really a NUL. */
4023         {
4024             *(yy_c_buf_p) = '\0';
4025         }
4026
4027         else
4028         {
4029             /* need more input */
4030             int offset = (yy_c_buf_p) - (yytext_ptr);
4031             ++(yy_c_buf_p);
4032
4033             switch ( yy_get_next_buffer(  ) )
4034             {
4035                 case EOB_ACT_LAST_MATCH:
4036                     /* This happens because yy_g_n_b()
4037                      * sees that we've accumulated a
4038                      * token and flags that we need to
4039                      * try matching the token before
4040                      * proceeding.  But for input(),
4041                      * there's no matching to consider.
4042                      * So convert the EOB_ACT_LAST_MATCH
4043                      * to EOB_ACT_END_OF_FILE.
4044                      */
4045
4046                     /* Reset buffer status. */
4047                     yyrestart(yyin );
4048
4049                     /*FALLTHROUGH*/
4050
4051                 case EOB_ACT_END_OF_FILE:
4052                 {
4053                     if ( yywrap( ) )
4054                     {
4055                         return EOF;
4056                     }
4057
4058                     if ( ! (yy_did_buffer_switch_on_eof) )
4059                     {
4060                         YY_NEW_FILE;
4061                     }
4062 #ifdef __cplusplus
4063                     return yyinput();
4064 #else
4065                     return input();
4066 #endif
4067                 }
4068
4069                 case EOB_ACT_CONTINUE_SCAN:
4070                     (yy_c_buf_p) = (yytext_ptr) + offset;
4071                     break;
4072             }
4073         }
4074     }
4075
4076     c = *(unsigned char *) (yy_c_buf_p);        /* cast for 8-bit char's */
4077     *(yy_c_buf_p) = '\0';       /* preserve yytext */
4078     (yy_hold_char) = *++(yy_c_buf_p);
4079
4080     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4081
4082     return c;
4083 }
4084 #endif  /* ifndef YY_NO_INPUT */
4085
4086 /** Immediately switch to a different input stream.
4087  * @param input_file A readable stream.
4088  *
4089  * @note This function does not reset the start condition to @c INITIAL .
4090  */
4091 void yyrestart  (FILE * input_file )
4092 {
4093
4094     if ( ! YY_CURRENT_BUFFER )
4095     {
4096         yyensure_buffer_stack ();
4097         YY_CURRENT_BUFFER_LVALUE =
4098             yy_create_buffer(yyin, YY_BUF_SIZE );
4099     }
4100
4101     yy_init_buffer(YY_CURRENT_BUFFER, input_file );
4102     yy_load_buffer_state( );
4103 }
4104
4105 /** Switch to a different input buffer.
4106  * @param new_buffer The new input buffer.
4107  *
4108  */
4109 void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4110 {
4111
4112     /* TODO. We should be able to replace this entire function body
4113      * with
4114      *          yypop_buffer_state();
4115      *          yypush_buffer_state(new_buffer);
4116      */
4117     yyensure_buffer_stack ();
4118     if ( YY_CURRENT_BUFFER == new_buffer )
4119     {
4120         return;
4121     }
4122
4123     if ( YY_CURRENT_BUFFER )
4124     {
4125         /* Flush out information for old buffer. */
4126         *(yy_c_buf_p) = (yy_hold_char);
4127         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4128         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4129     }
4130
4131     YY_CURRENT_BUFFER_LVALUE = new_buffer;
4132     yy_load_buffer_state( );
4133
4134     /* We don't actually know whether we did this switch during
4135      * EOF (yywrap()) processing, but the only time this flag
4136      * is looked at is after yywrap() is called, so it's safe
4137      * to go ahead and always set it.
4138      */
4139     (yy_did_buffer_switch_on_eof) = 1;
4140 }
4141
4142 static void yy_load_buffer_state  (void)
4143 {
4144     (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4145     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4146     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4147     (yy_hold_char) = *(yy_c_buf_p);
4148 }
4149
4150 /** Allocate and initialize an input buffer state.
4151  * @param file A readable stream.
4152  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4153  *
4154  * @return the allocated buffer state.
4155  */
4156 YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4157 {
4158     YY_BUFFER_STATE b;
4159
4160     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4161     if ( ! b )
4162     {
4163         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4164     }
4165
4166     b->yy_buf_size = size;
4167
4168     /* yy_ch_buf has to be 2 characters longer than the size given because
4169      * we need to put in 2 end-of-buffer characters.
4170      */
4171     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
4172     if ( ! b->yy_ch_buf )
4173     {
4174         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4175     }
4176
4177     b->yy_is_our_buffer = 1;
4178
4179     yy_init_buffer(b, file );
4180
4181     return b;
4182 }
4183
4184 /** Destroy the buffer.
4185  * @param b a buffer created with yy_create_buffer()
4186  *
4187  */
4188 void yy_delete_buffer (YY_BUFFER_STATE  b )
4189 {
4190
4191     if ( ! b )
4192     {
4193         return;
4194     }
4195
4196     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4197     {
4198         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4199     }
4200
4201     if ( b->yy_is_our_buffer )
4202     {
4203         yyfree((void *) b->yy_ch_buf  );
4204     }
4205
4206     yyfree((void *) b  );
4207 }
4208
4209 #ifndef __cplusplus
4210 extern int isatty (int );
4211 #endif /* __cplusplus */
4212
4213 /* Initializes or reinitializes a buffer.
4214  * This function is sometimes called more than once on the same buffer,
4215  * such as during a yyrestart() or at EOF.
4216  */
4217 static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4218
4219 {
4220 int oerrno = errno;
4221
4222 yy_flush_buffer(b );
4223
4224 b->yy_input_file = file;
4225 b->yy_fill_buffer = 1;
4226
4227 /* If b is the current buffer, then yy_init_buffer was _probably_
4228  * called from yyrestart() or through yy_get_next_buffer.
4229  * In that case, we don't want to reset the lineno or column.
4230  */
4231 if (b != YY_CURRENT_BUFFER)
4232 {
4233     b->yy_bs_lineno = 1;
4234     b->yy_bs_column = 0;
4235 }
4236
4237 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4238
4239 errno = oerrno;
4240 }
4241
4242 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4243  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4244  *
4245  */
4246 void yy_flush_buffer (YY_BUFFER_STATE  b )
4247 {
4248 if ( ! b )
4249 {
4250     return;
4251 }
4252
4253 b->yy_n_chars = 0;
4254
4255 /* We always need two end-of-buffer characters.  The first causes
4256  * a transition to the end-of-buffer state.  The second causes
4257  * a jam in that state.
4258  */
4259 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4260 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4261
4262 b->yy_buf_pos = &b->yy_ch_buf[0];
4263
4264 b->yy_at_bol = 1;
4265 b->yy_buffer_status = YY_BUFFER_NEW;
4266
4267 if ( b == YY_CURRENT_BUFFER )
4268 {
4269     yy_load_buffer_state( );
4270 }
4271 }
4272
4273 /** Pushes the new state onto the stack. The new state becomes
4274  *  the current state. This function will allocate the stack
4275  *  if necessary.
4276  *  @param new_buffer The new state.
4277  *
4278  */
4279 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4280 {
4281 if (new_buffer == NULL)
4282 {
4283     return;
4284 }
4285
4286 yyensure_buffer_stack();
4287
4288 /* This block is copied from yy_switch_to_buffer. */
4289 if ( YY_CURRENT_BUFFER )
4290 {
4291     /* Flush out information for old buffer. */
4292     *(yy_c_buf_p) = (yy_hold_char);
4293     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4294     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4295 }
4296
4297 /* Only push if top exists. Otherwise, replace top. */
4298 if (YY_CURRENT_BUFFER)
4299 {
4300     (yy_buffer_stack_top)++;
4301 }
4302 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4303
4304 /* copied from yy_switch_to_buffer. */
4305 yy_load_buffer_state( );
4306 (yy_did_buffer_switch_on_eof) = 1;
4307 }
4308
4309 /** Removes and deletes the top of the stack, if present.
4310  *  The next element becomes the new top.
4311  *
4312  */
4313 void yypop_buffer_state (void)
4314 {
4315 if (!YY_CURRENT_BUFFER)
4316 {
4317     return;
4318 }
4319
4320 yy_delete_buffer(YY_CURRENT_BUFFER );
4321 YY_CURRENT_BUFFER_LVALUE = NULL;
4322 if ((yy_buffer_stack_top) > 0)
4323 {
4324     --(yy_buffer_stack_top);
4325 }
4326
4327 if (YY_CURRENT_BUFFER)
4328 {
4329     yy_load_buffer_state( );
4330     (yy_did_buffer_switch_on_eof) = 1;
4331 }
4332 }
4333
4334 /* Allocates the stack if it does not exist.
4335  *  Guarantees space for at least one push.
4336  */
4337 static void yyensure_buffer_stack (void)
4338 {
4339 int num_to_alloc;
4340
4341 if (!(yy_buffer_stack))
4342 {
4343
4344     /* First allocation is just for 2 elements, since we don't know if this
4345      * scanner will even need a stack. We use 2 instead of 1 to avoid an
4346      * immediate realloc on the next call.
4347      */
4348     num_to_alloc = 1;
4349     (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4350                         (num_to_alloc * sizeof(struct yy_buffer_state*)
4351                         );
4352     if ( ! (yy_buffer_stack) )
4353     {
4354         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4355     }
4356
4357     memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4358
4359     (yy_buffer_stack_max) = num_to_alloc;
4360     (yy_buffer_stack_top) = 0;
4361     return;
4362 }
4363
4364 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1)
4365 {
4366
4367     /* Increase the buffer to prepare for a possible push. */
4368     int grow_size = 8 /* arbitrary grow size */;
4369
4370     num_to_alloc = (yy_buffer_stack_max) + grow_size;
4371     (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4372                         ((yy_buffer_stack),
4373                          num_to_alloc * sizeof(struct yy_buffer_state*)
4374                         );
4375     if ( ! (yy_buffer_stack) )
4376     {
4377         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4378     }
4379
4380     /* zero only the new slots.*/
4381     memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4382     (yy_buffer_stack_max) = num_to_alloc;
4383 }
4384 }
4385
4386 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4387  * @param base the character buffer
4388  * @param size the size in bytes of the character buffer
4389  *
4390  * @return the newly allocated buffer state object.
4391  */
4392 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
4393 {
4394 YY_BUFFER_STATE b;
4395
4396 if ( size < 2 ||
4397         base[size - 2] != YY_END_OF_BUFFER_CHAR ||
4398         base[size - 1] != YY_END_OF_BUFFER_CHAR )
4399     /* They forgot to leave room for the EOB's. */
4400 {
4401     return 0;
4402 }
4403
4404 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4405 if ( ! b )
4406 {
4407     YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4408 }
4409
4410 b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
4411 b->yy_buf_pos = b->yy_ch_buf = base;
4412 b->yy_is_our_buffer = 0;
4413 b->yy_input_file = 0;
4414 b->yy_n_chars = b->yy_buf_size;
4415 b->yy_is_interactive = 0;
4416 b->yy_at_bol = 1;
4417 b->yy_fill_buffer = 0;
4418 b->yy_buffer_status = YY_BUFFER_NEW;
4419
4420 yy_switch_to_buffer(b  );
4421
4422 return b;
4423 }
4424
4425 /** Setup the input buffer state to scan a string. The next call to yylex() will
4426  * scan from a @e copy of @a str.
4427  * @param yystr a NUL-terminated string to scan
4428  *
4429  * @return the newly allocated buffer state object.
4430  * @note If you want to scan bytes that may contain NUL values, then use
4431  *       yy_scan_bytes() instead.
4432  */
4433 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
4434 {
4435
4436 return yy_scan_bytes(yystr, strlen(yystr) );
4437 }
4438
4439 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4440  * scan from a @e copy of @a bytes.
4441  * @param yybytes the byte buffer to scan
4442  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4443  *
4444  * @return the newly allocated buffer state object.
4445  */
4446 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
4447 {
4448 YY_BUFFER_STATE b;
4449 char *buf;
4450 yy_size_t n;
4451 int i;
4452
4453 /* Get memory for full buffer, including space for trailing EOB's. */
4454 n = _yybytes_len + 2;
4455 buf = (char *) yyalloc(n  );
4456 if ( ! buf )
4457 {
4458     YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4459 }
4460
4461 for ( i = 0; i < _yybytes_len; ++i )
4462 {
4463     buf[i] = yybytes[i];
4464 }
4465
4466 buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR;
4467
4468 b = yy_scan_buffer(buf, n );
4469 if ( ! b )
4470 {
4471     YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4472 }
4473
4474 /* It's okay to grow etc. this buffer, and we should throw it
4475  * away when we're done.
4476  */
4477 b->yy_is_our_buffer = 1;
4478
4479 return b;
4480 }
4481
4482 static void yy_push_state (int  new_state )
4483 {
4484 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4485 {
4486     yy_size_t new_size;
4487
4488     (yy_start_stack_depth) += YY_START_STACK_INCR;
4489     new_size = (yy_start_stack_depth) * sizeof( int );
4490
4491     if ( ! (yy_start_stack) )
4492     {
4493         (yy_start_stack) = (int *) yyalloc(new_size  );
4494     }
4495
4496     else
4497     {
4498         (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack), new_size  );
4499     }
4500
4501     if ( ! (yy_start_stack) )
4502     {
4503         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4504     }
4505 }
4506
4507 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4508
4509 BEGIN(new_state);
4510 }
4511
4512 static void yy_pop_state  (void)
4513 {
4514 if ( --(yy_start_stack_ptr) < 0 )
4515 {
4516     YY_FATAL_ERROR( "start-condition stack underflow" );
4517 }
4518
4519 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4520 }
4521
4522 static int yy_top_state  (void)
4523 {
4524 return (yy_start_stack)[(yy_start_stack_ptr) - 1];
4525 }
4526
4527 #ifndef YY_EXIT_FAILURE
4528 #define YY_EXIT_FAILURE 2
4529 #endif
4530
4531 static void yy_fatal_error (yyconst char* msg )
4532 {
4533 (void) fprintf( stderr, "%s\n", msg );
4534 exit( YY_EXIT_FAILURE );
4535 }
4536
4537 /* Redefine yyless() so it works in section 3 code. */
4538
4539 #undef yyless
4540 #define yyless(n) \
4541         do \
4542                 { \
4543                 /* Undo effects of setting up yytext. */ \
4544         int yyless_macro_arg = (n); \
4545         YY_LESS_LINENO(yyless_macro_arg);\
4546                 yytext[yyleng] = (yy_hold_char); \
4547                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
4548                 (yy_hold_char) = *(yy_c_buf_p); \
4549                 *(yy_c_buf_p) = '\0'; \
4550                 yyleng = yyless_macro_arg; \
4551                 } \
4552         while ( 0 )
4553
4554 /* Accessor  methods (get/set functions) to struct members. */
4555
4556 /** Get the current line number.
4557  *
4558  */
4559 int yyget_lineno  (void)
4560 {
4561
4562 return yylineno;
4563 }
4564
4565 /** Get the input stream.
4566  *
4567  */
4568 FILE *yyget_in  (void)
4569 {
4570 return yyin;
4571 }
4572
4573 /** Get the output stream.
4574  *
4575  */
4576 FILE *yyget_out  (void)
4577 {
4578 return yyout;
4579 }
4580
4581 /** Get the length of the current token.
4582  *
4583  */
4584 int yyget_leng  (void)
4585 {
4586 return yyleng;
4587 }
4588
4589 /** Get the current token.
4590  *
4591  */
4592
4593 char *yyget_text  (void)
4594 {
4595 return yytext;
4596 }
4597
4598 /** Set the current line number.
4599  * @param line_number
4600  *
4601  */
4602 void yyset_lineno (int  line_number )
4603 {
4604
4605 yylineno = line_number;
4606 }
4607
4608 /** Set the input stream. This does not discard the current
4609  * input buffer.
4610  * @param in_str A readable stream.
4611  *
4612  * @see yy_switch_to_buffer
4613  */
4614 void yyset_in (FILE *  in_str )
4615 {
4616 yyin = in_str ;
4617 }
4618
4619 void yyset_out (FILE *  out_str )
4620 {
4621 yyout = out_str ;
4622 }
4623
4624 int yyget_debug  (void)
4625 {
4626 return yy_flex_debug;
4627 }
4628
4629 void yyset_debug (int  bdebug )
4630 {
4631 yy_flex_debug = bdebug ;
4632 }
4633
4634 static int yy_init_globals (void)
4635 {
4636 /* Initialization is the same as for the non-reentrant scanner.
4637 * This function is called from yylex_destroy(), so don't allocate here.
4638 */
4639
4640 (yy_buffer_stack) = 0;
4641 (yy_buffer_stack_top) = 0;
4642 (yy_buffer_stack_max) = 0;
4643 (yy_c_buf_p) = (char *) 0;
4644 (yy_init) = 0;
4645 (yy_start) = 0;
4646
4647 (yy_start_stack_ptr) = 0;
4648 (yy_start_stack_depth) = 0;
4649 (yy_start_stack) =  NULL;
4650
4651 (yy_state_buf) = 0;
4652 (yy_state_ptr) = 0;
4653 (yy_full_match) = 0;
4654 (yy_lp) = 0;
4655
4656 /* Defined in main.c */
4657 #ifdef YY_STDINIT
4658 yyin = stdin;
4659 yyout = stdout;
4660 #else
4661 yyin = (FILE *) 0;
4662 yyout = (FILE *) 0;
4663 #endif
4664
4665 /* For future reference: Set errno on error, since we are called by
4666  * yylex_init()
4667  */
4668 return 0;
4669 }
4670
4671 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
4672 int yylex_destroy  (void)
4673 {
4674
4675 /* Pop the buffer stack, destroying each element. */
4676 while (YY_CURRENT_BUFFER)
4677 {
4678     yy_delete_buffer(YY_CURRENT_BUFFER  );
4679     YY_CURRENT_BUFFER_LVALUE = NULL;
4680     yypop_buffer_state();
4681 }
4682
4683 /* Destroy the stack itself. */
4684 yyfree((yy_buffer_stack) );
4685 (yy_buffer_stack) = NULL;
4686
4687 /* Destroy the start condition stack. */
4688 yyfree((yy_start_stack)  );
4689 (yy_start_stack) = NULL;
4690
4691 yyfree ( (yy_state_buf) );
4692 (yy_state_buf)  = NULL;
4693
4694 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4695  * yylex() is called, initialization will occur. */
4696 yy_init_globals( );
4697
4698 return 0;
4699 }
4700
4701 /*
4702  * Internal utility routines.
4703  */
4704
4705 #ifndef yytext_ptr
4706 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4707 {
4708 register int i;
4709 for ( i = 0; i < n; ++i )
4710 {
4711     s1[i] = s2[i];
4712 }
4713 }
4714 #endif
4715
4716 #ifdef YY_NEED_STRLEN
4717 static int yy_flex_strlen (yyconst char * s )
4718 {
4719 register int n;
4720 for ( n = 0; s[n]; ++n )
4721     ;
4722
4723 return n;
4724 }
4725 #endif
4726
4727 void *yyalloc (yy_size_t  size )
4728 {
4729 return (void *) malloc( size );
4730 }
4731
4732 void *yyrealloc  (void * ptr, yy_size_t  size )
4733 {
4734 /* The cast to (char *) in the following accommodates both
4735  * implementations that use char* generic pointers, and those
4736  * that use void* generic pointers.  It works with the latter
4737  * because both ANSI C and C++ allow castless assignment from
4738  * any pointer type to void*, and deal with argument conversions
4739  * as though doing an assignment.
4740  */
4741 return (void *) realloc( (char *) ptr, size );
4742 }
4743
4744 void yyfree (void * ptr )
4745 {
4746 free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
4747 }
4748
4749 #define YYTABLES_NAME "yytables"
4750
4751 int scan_throw(int token)
4752 {
4753 last_token = token;
4754 #ifdef DEV
4755 std::cout << "--> [DEBUG] TOKEN : " << token << std::endl;
4756 #endif
4757 return token;
4758 }
4759
4760 int get_last_token()
4761 {
4762 return last_token;
4763 }
4764
4765 void scan_step()
4766 {
4767 yylloc.first_line = yylloc.last_line;
4768 yylloc.first_column = yylloc.last_column;
4769 }
4770
4771 /*
4772 ** convert floating numbers to C standard
4773 ** 1.2d-3 -> 1.2e-3
4774 ** 1.2D-3 -> 1.2e-3
4775 */
4776 void scan_exponent_convert(char *in)
4777 {
4778 for (; *in != 'd' && *in != 'D'; ++in);
4779 *in = 'e';
4780 }
4781
4782 #ifdef _MSC_VER
4783 int isatty (int desc)
4784 {
4785 return 0;
4786 }
4787 #endif
4788