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