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