Lexer: fix memleaks
[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.clear();
2886                         yy_push_state(LINECOMMENT);
2887                     }
2888                     YY_BREAK
2889                 case 79:
2890                     YY_RULE_SETUP
2891                     {
2892                         pstBuffer.clear();
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.clear();
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.clear();
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.clear();
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                             pstBuffer.clear();
3211                             FREE (pwstBuffer);
3212                             return scan_throw(COMMENT);
3213                         }
3214                         else
3215                         {
3216                             pstBuffer.clear();
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                     pstBuffer.clear();
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                         pstBuffer.clear();
3334                         FREE(pwstBuffer);
3335                         return scan_throw(STR);
3336                     }
3337                     YY_BREAK
3338                 case 119:
3339                     YY_RULE_SETUP
3340                     {
3341                         pstBuffer.clear();
3342                         std::string str = "Heterogeneous string detected, starting with ' and ending with \".";
3343                         exit_status = SCAN_ERROR;
3344                         scan_error(str);
3345                     }
3346                     YY_BREAK
3347                 case 120:
3348                     /* rule 120 can match eol */
3349                     YY_RULE_SETUP
3350                     {
3351                         /* Do nothing... Just skip */
3352                     }
3353                     YY_BREAK
3354                 case 121:
3355                     /* rule 121 can match eol */
3356                     YY_RULE_SETUP
3357                     {
3358                         pstBuffer.clear();
3359                         std::string str = "unexpected end of line in a string.";
3360                         exit_status = SCAN_ERROR;
3361                         scan_error(str);
3362                         yylloc.last_line += 1;
3363                         yylloc.last_column = 1;
3364                     }
3365                     YY_BREAK
3366                 case YY_STATE_EOF(SIMPLESTRING):
3367                 {
3368                     pstBuffer.clear();
3369                     std::string str = "unexpected end of file in a string.";
3370                     exit_status = SCAN_ERROR;
3371                     scan_error(str);
3372                 }
3373                 YY_BREAK
3374                 case 122:
3375                 case 123:
3376                     YY_RULE_SETUP
3377                     {
3378                         scan_step();
3379                         pstBuffer += yytext;
3380                     }
3381                     YY_BREAK
3382
3383                 case 124:
3384                     YY_RULE_SETUP
3385                     {
3386                         pstBuffer += "\"";
3387                     }
3388                     YY_BREAK
3389                 case 125:
3390                     YY_RULE_SETUP
3391                     {
3392                         pstBuffer += "'";
3393                     }
3394                     YY_BREAK
3395                 case 126:
3396                     YY_RULE_SETUP
3397                     {
3398                         pstBuffer += "\"";
3399                     }
3400                     YY_BREAK
3401                 case 127:
3402                     YY_RULE_SETUP
3403                     {
3404                         pstBuffer += "'";
3405                     }
3406                     YY_BREAK
3407                 case 128:
3408                     YY_RULE_SETUP
3409                     {
3410                         yy_pop_state();
3411                         scan_step();
3412                         wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3413                         if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3414                         {
3415                             std::string str = "can not convert'";
3416                             str += pstBuffer.c_str();
3417                             str += "' to UTF-8";
3418                             exit_status = SCAN_ERROR;
3419                             scan_error("can not convert string to UTF-8");
3420                         }
3421                         yylval.str = new std::wstring(pwstBuffer);
3422                         pstBuffer.clear();
3423                         FREE(pwstBuffer);
3424                         return scan_throw(STR);
3425                     }
3426                     YY_BREAK
3427                 case 129:
3428                     YY_RULE_SETUP
3429                     {
3430                         pstBuffer.clear();
3431                         std::string str = "Heterogeneous string detected, starting with \" and ending with '.";
3432                         exit_status = SCAN_ERROR;
3433                         scan_error(str);
3434                     }
3435                     YY_BREAK
3436                 case 130:
3437                     /* rule 130 can match eol */
3438                     YY_RULE_SETUP
3439                     {
3440                         /* Do nothing... Just skip */
3441                     }
3442                     YY_BREAK
3443                 case 131:
3444                     /* rule 131 can match eol */
3445                     YY_RULE_SETUP
3446                     {
3447                         pstBuffer.clear();
3448                         std::string str = "unexpected end of line in a string";
3449                         exit_status = SCAN_ERROR;
3450                         scan_error(str);
3451                         yylloc.last_line += 1;
3452                         yylloc.last_column = 1;
3453                     }
3454                     YY_BREAK
3455                 case YY_STATE_EOF(DOUBLESTRING):
3456                 {
3457                     pstBuffer.clear();
3458                     std::string str = "unexpected end of file in a string";
3459                     exit_status = SCAN_ERROR;
3460                     scan_error(str);
3461                 }
3462                 YY_BREAK
3463                 case 132:
3464                 case 133:
3465                     YY_RULE_SETUP
3466                     {
3467                         scan_step();
3468                         pstBuffer += yytext;
3469                     }
3470                     YY_BREAK
3471
3472                 case 134:
3473                     YY_RULE_SETUP
3474                     {
3475                         if (last_token == ID)
3476                         {
3477                             scan_throw(SPACES);
3478                             return ID;
3479                         }
3480                     }
3481                     YY_BREAK
3482                 case 135:
3483                     YY_RULE_SETUP
3484                     {
3485                         BEGIN(INITIAL);
3486                         scan_step();
3487                         return scan_throw(SEMI);
3488                     }
3489                     YY_BREAK
3490                 case 136:
3491                     YY_RULE_SETUP
3492                     {
3493                         BEGIN(INITIAL);
3494                         scan_step();
3495                         return scan_throw(COMMA);
3496                     }
3497                     YY_BREAK
3498                 case 137:
3499                     /* rule 137 can match eol */
3500                     YY_RULE_SETUP
3501                     {
3502                         BEGIN(INITIAL);
3503                         yylloc.last_line += 1;
3504                         yylloc.last_column = 1;
3505                         scan_step();
3506                         return scan_throw(EOL);
3507                     }
3508                     YY_BREAK
3509                 case 138:
3510                     YY_RULE_SETUP
3511                     {
3512                         if (last_token == STR || last_token == SPACES)
3513                         {
3514                             wchar_t *pwText = to_wide_string(yytext);
3515                             yylval.str = new std::wstring(pwText);
3516                             FREE(pwText);
3517                             return scan_throw(STR);
3518                         }
3519                         else
3520                         {
3521                             BEGIN(INITIAL);
3522                             return scan_throw(ASSIGN);
3523                         }
3524                     }
3525                     YY_BREAK
3526                 case 139:
3527                     YY_RULE_SETUP
3528                     {
3529                         if (last_token == STR || last_token == SPACES)
3530                         {
3531                             wchar_t *pwText = to_wide_string(yytext);
3532                             yylval.str = new std::wstring(pwText);
3533                             FREE(pwText);
3534                             return scan_throw(STR);
3535                         }
3536                         else
3537                         {
3538                             BEGIN(INITIAL);
3539                             return scan_throw(LPAREN);
3540                         }
3541                     }
3542                     YY_BREAK
3543                 case 140:
3544                     YY_RULE_SETUP
3545                     {
3546                         if (last_token == STR || last_token == SPACES)
3547                         {
3548                             wchar_t *pwText = to_wide_string(yytext);
3549                             yylval.str = new std::wstring(pwText);
3550                             FREE(pwText);
3551                             return scan_throw(STR);
3552                         }
3553                         else
3554                         {
3555                             BEGIN(INITIAL);
3556                             return scan_throw(LT);
3557                         }
3558                     }
3559                     YY_BREAK
3560                 case 141:
3561                     YY_RULE_SETUP
3562                     {
3563                         if (last_token == STR || last_token == SPACES)
3564                         {
3565                             wchar_t *pwText = to_wide_string(yytext);
3566                             yylval.str = new std::wstring(pwText);
3567                             FREE(pwText);
3568                             return scan_throw(STR);
3569                         }
3570                         else
3571                         {
3572                             BEGIN(INITIAL);
3573                             return scan_throw(GT);
3574                         }
3575                     }
3576                     YY_BREAK
3577                 case 142:
3578                     YY_RULE_SETUP
3579                     {
3580                         if (last_token == STR || last_token == SPACES)
3581                         {
3582                             wchar_t *pwText = to_wide_string(yytext);
3583                             yylval.str = new std::wstring(pwText);
3584                             FREE(pwText);
3585                             return scan_throw(STR);
3586                         }
3587                         else
3588                         {
3589                             BEGIN(INITIAL);
3590                             return scan_throw(NOT);
3591                         }
3592                     }
3593                     YY_BREAK
3594                 case 143:
3595                     YY_RULE_SETUP
3596                     {
3597                         wchar_t *pwText = to_wide_string(yytext);
3598                         yylval.str = new std::wstring(pwText);
3599                         FREE(pwText);
3600                         return scan_throw(STR);
3601                     }
3602                     YY_BREAK
3603                 case YY_STATE_EOF(SHELLMODE):
3604                 {
3605                     BEGIN(INITIAL);
3606                 }
3607                 YY_BREAK
3608
3609                 case 144:
3610                     YY_RULE_SETUP
3611                     ECHO;
3612                     YY_BREAK
3613                 case YY_STATE_EOF(INITIAL):
3614                 case YY_STATE_EOF(BEGINID):
3615                     yyterminate();
3616
3617                 case YY_END_OF_BUFFER:
3618                 {
3619                     /* Amount of text matched not including the EOB char. */
3620                     int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3621
3622                     /* Undo the effects of YY_DO_BEFORE_ACTION. */
3623                     *yy_cp = (yy_hold_char);
3624                     YY_RESTORE_YY_MORE_OFFSET
3625
3626                     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3627                     {
3628                         /* We're scanning a new file or input source.  It's
3629                          * possible that this happened because the user
3630                          * just pointed yyin at a new source and called
3631                          * yylex().  If so, then we have to assure
3632                          * consistency between YY_CURRENT_BUFFER and our
3633                          * globals.  Here is the right place to do so, because
3634                          * this is the first action (other than possibly a
3635                          * back-up) that will match for the new input source.
3636                          */
3637                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3638                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3639                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3640                     }
3641
3642                     /* Note that here we test for yy_c_buf_p "<=" to the position
3643                      * of the first EOB in the buffer, since yy_c_buf_p will
3644                      * already have been incremented past the NUL character
3645                      * (since all states make transitions on EOB to the
3646                      * end-of-buffer state).  Contrast this with the test
3647                      * in input().
3648                      */
3649                     if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3650                     {
3651                         /* This was really a NUL. */
3652                         yy_state_type yy_next_state;
3653
3654                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3655
3656                         yy_current_state = yy_get_previous_state(  );
3657
3658                         /* Okay, we're now positioned to make the NUL
3659                          * transition.  We couldn't have
3660                          * yy_get_previous_state() go ahead and do it
3661                          * for us because it doesn't know how to deal
3662                          * with the possibility of jamming (and we don't
3663                          * want to build jamming into it because then it
3664                          * will run more slowly).
3665                          */
3666
3667                         yy_next_state = yy_try_NUL_trans( yy_current_state );
3668
3669                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3670
3671                         if ( yy_next_state )
3672                         {
3673                             /* Consume the NUL. */
3674                             yy_cp = ++(yy_c_buf_p);
3675                             yy_current_state = yy_next_state;
3676                             goto yy_match;
3677                         }
3678
3679                         else
3680                         {
3681                             yy_cp = (yy_c_buf_p);
3682                             goto yy_find_action;
3683                         }
3684                     }
3685
3686                     else switch ( yy_get_next_buffer(  ) )
3687                         {
3688                             case EOB_ACT_END_OF_FILE:
3689                             {
3690                                 (yy_did_buffer_switch_on_eof) = 0;
3691
3692                                 if ( yywrap( ) )
3693                                 {
3694                                     /* Note: because we've taken care in
3695                                      * yy_get_next_buffer() to have set up
3696                                      * yytext, we can now set up
3697                                      * yy_c_buf_p so that if some total
3698                                      * hoser (like flex itself) wants to
3699                                      * call the scanner after we return the
3700                                      * YY_NULL, it'll still work - another
3701                                      * YY_NULL will get returned.
3702                                      */
3703                                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3704
3705                                     yy_act = YY_STATE_EOF(YY_START);
3706                                     goto do_action;
3707                                 }
3708
3709                                 else
3710                                 {
3711                                     if ( ! (yy_did_buffer_switch_on_eof) )
3712                                     {
3713                                         YY_NEW_FILE;
3714                                     }
3715                                 }
3716                                 break;
3717                             }
3718
3719                             case EOB_ACT_CONTINUE_SCAN:
3720                                 (yy_c_buf_p) =
3721                                     (yytext_ptr) + yy_amount_of_matched_text;
3722
3723                                 yy_current_state = yy_get_previous_state(  );
3724
3725                                 yy_cp = (yy_c_buf_p);
3726                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3727                                 goto yy_match;
3728
3729                             case EOB_ACT_LAST_MATCH:
3730                                 (yy_c_buf_p) =
3731                                     &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3732
3733                                 yy_current_state = yy_get_previous_state(  );
3734
3735                                 yy_cp = (yy_c_buf_p);
3736                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3737                                 goto yy_find_action;
3738                         }
3739                     break;
3740                 }
3741
3742                 default:
3743                     YY_FATAL_ERROR(
3744                         "fatal flex scanner internal error--no action found" );
3745             } /* end of action switch */
3746         } /* end of scanning one token */
3747     } /* end of user's declarations */
3748 } /* end of yylex */
3749
3750 /* yy_get_next_buffer - try to read in a new buffer
3751  *
3752  * Returns a code representing an action:
3753  *      EOB_ACT_LAST_MATCH -
3754  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3755  *      EOB_ACT_END_OF_FILE - end of file
3756  */
3757 static int yy_get_next_buffer (void)
3758 {
3759     register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3760     register char *source = (yytext_ptr);
3761     register int number_to_move, i;
3762     int ret_val;
3763
3764     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3765         YY_FATAL_ERROR(
3766             "fatal flex scanner internal error--end of buffer missed" );
3767
3768     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3769     {
3770         /* Don't try to fill the buffer, so this is an EOF. */
3771         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3772         {
3773             /* We matched a single character, the EOB, so
3774              * treat this as a final EOF.
3775              */
3776             return EOB_ACT_END_OF_FILE;
3777         }
3778
3779         else
3780         {
3781             /* We matched some text prior to the EOB, first
3782              * process it.
3783              */
3784             return EOB_ACT_LAST_MATCH;
3785         }
3786     }
3787
3788     /* Try to read more data. */
3789
3790     /* First move last chars to start of buffer. */
3791     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3792
3793     for ( i = 0; i < number_to_move; ++i )
3794     {
3795         *(dest++) = *(source++);
3796     }
3797
3798     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3799         /* don't do the read, it's not guaranteed to return an EOF,
3800          * just force an EOF
3801          */
3802     {
3803         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3804     }
3805
3806     else
3807     {
3808         yy_size_t num_to_read =
3809             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3810
3811         while ( num_to_read <= 0 )
3812         {
3813             /* Not enough room in the buffer - grow it. */
3814
3815             YY_FATAL_ERROR(
3816                 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3817
3818         }
3819
3820         if ( num_to_read > YY_READ_BUF_SIZE )
3821         {
3822             num_to_read = YY_READ_BUF_SIZE;
3823         }
3824
3825         /* Read in more data. */
3826         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3827                   (yy_n_chars), num_to_read );
3828
3829         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3830     }
3831
3832     if ( (yy_n_chars) == 0 )
3833     {
3834         if ( number_to_move == YY_MORE_ADJ )
3835         {
3836             ret_val = EOB_ACT_END_OF_FILE;
3837             yyrestart(yyin  );
3838         }
3839
3840         else
3841         {
3842             ret_val = EOB_ACT_LAST_MATCH;
3843             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3844                 YY_BUFFER_EOF_PENDING;
3845         }
3846     }
3847
3848     else
3849     {
3850         ret_val = EOB_ACT_CONTINUE_SCAN;
3851     }
3852
3853     if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size)
3854     {
3855         /* Extend the array by 50%, plus the number we really need. */
3856         yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3857         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size  );
3858         if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3859         {
3860             YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3861         }
3862     }
3863
3864     (yy_n_chars) += number_to_move;
3865     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3866     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3867
3868     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3869
3870     return ret_val;
3871 }
3872
3873 /* yy_get_previous_state - get the state just before the EOB char was reached */
3874
3875 static yy_state_type yy_get_previous_state (void)
3876 {
3877     register yy_state_type yy_current_state;
3878     register char *yy_cp;
3879
3880     yy_current_state = (yy_start);
3881     yy_current_state += YY_AT_BOL();
3882
3883     (yy_state_ptr) = (yy_state_buf);
3884     *(yy_state_ptr)++ = yy_current_state;
3885
3886     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3887     {
3888         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3889         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3890         {
3891             yy_current_state = (int) yy_def[yy_current_state];
3892             if ( yy_current_state >= 854 )
3893             {
3894                 yy_c = yy_meta[(unsigned int) yy_c];
3895             }
3896         }
3897         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3898         *(yy_state_ptr)++ = yy_current_state;
3899     }
3900
3901     return yy_current_state;
3902 }
3903
3904 /* yy_try_NUL_trans - try to make a transition on the NUL character
3905  *
3906  * synopsis
3907  *      next_state = yy_try_NUL_trans( current_state );
3908  */
3909 static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3910 {
3911     register int yy_is_jam;
3912
3913     register YY_CHAR yy_c = 1;
3914     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3915     {
3916         yy_current_state = (int) yy_def[yy_current_state];
3917         if ( yy_current_state >= 854 )
3918         {
3919             yy_c = yy_meta[(unsigned int) yy_c];
3920         }
3921     }
3922     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3923     yy_is_jam = (yy_current_state == 853);
3924     if ( ! yy_is_jam )
3925     {
3926         *(yy_state_ptr)++ = yy_current_state;
3927     }
3928
3929     return yy_is_jam ? 0 : yy_current_state;
3930 }
3931
3932 static void yyunput (int c, register char * yy_bp )
3933 {
3934     register char *yy_cp;
3935
3936     yy_cp = (yy_c_buf_p);
3937
3938     /* undo effects of setting up yytext */
3939     *yy_cp = (yy_hold_char);
3940
3941     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3942     {
3943         /* need to shift things up to make room */
3944         /* +2 for EOB chars. */
3945         register yy_size_t number_to_move = (yy_n_chars) + 2;
3946         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3947                                   YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3948         register char *source =
3949             &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3950
3951         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3952         {
3953             *--dest = *--source;
3954         }
3955
3956         yy_cp += (int) (dest - source);
3957         yy_bp += (int) (dest - source);
3958         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3959             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3960
3961         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3962         {
3963             YY_FATAL_ERROR( "flex scanner push-back overflow" );
3964         }
3965     }
3966
3967     *--yy_cp = (char) c;
3968
3969     (yytext_ptr) = yy_bp;
3970     (yy_hold_char) = *yy_cp;
3971     (yy_c_buf_p) = yy_cp;
3972 }
3973
3974 #ifndef YY_NO_INPUT
3975 #ifdef __cplusplus
3976 static int yyinput (void)
3977 #else
3978 static int input  (void)
3979 #endif
3980
3981 {
3982     int c;
3983
3984     *(yy_c_buf_p) = (yy_hold_char);
3985
3986     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3987     {
3988         /* yy_c_buf_p now points to the character we want to return.
3989          * If this occurs *before* the EOB characters, then it's a
3990          * valid NUL; if not, then we've hit the end of the buffer.
3991          */
3992         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3993             /* This was really a NUL. */
3994         {
3995             *(yy_c_buf_p) = '\0';
3996         }
3997
3998         else
3999         {
4000             /* need more input */
4001             yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
4002             ++(yy_c_buf_p);
4003
4004             switch ( yy_get_next_buffer(  ) )
4005             {
4006                 case EOB_ACT_LAST_MATCH:
4007                     /* This happens because yy_g_n_b()
4008                      * sees that we've accumulated a
4009                      * token and flags that we need to
4010                      * try matching the token before
4011                      * proceeding.  But for input(),
4012                      * there's no matching to consider.
4013                      * So convert the EOB_ACT_LAST_MATCH
4014                      * to EOB_ACT_END_OF_FILE.
4015                      */
4016
4017                     /* Reset buffer status. */
4018                     yyrestart(yyin );
4019
4020                 /*FALLTHROUGH*/
4021
4022                 case EOB_ACT_END_OF_FILE:
4023                 {
4024                     if ( yywrap( ) )
4025                     {
4026                         return EOF;
4027                     }
4028
4029                     if ( ! (yy_did_buffer_switch_on_eof) )
4030                     {
4031                         YY_NEW_FILE;
4032                     }
4033 #ifdef __cplusplus
4034                     return yyinput();
4035 #else
4036                     return input();
4037 #endif
4038                 }
4039
4040                 case EOB_ACT_CONTINUE_SCAN:
4041                     (yy_c_buf_p) = (yytext_ptr) + offset;
4042                     break;
4043             }
4044         }
4045     }
4046
4047     c = *(unsigned char *) (yy_c_buf_p);        /* cast for 8-bit char's */
4048     *(yy_c_buf_p) = '\0';       /* preserve yytext */
4049     (yy_hold_char) = *++(yy_c_buf_p);
4050
4051     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4052
4053     return c;
4054 }
4055 #endif  /* ifndef YY_NO_INPUT */
4056
4057 /** Immediately switch to a different input stream.
4058  * @param input_file A readable stream.
4059  *
4060  * @note This function does not reset the start condition to @c INITIAL .
4061  */
4062 void yyrestart  (FILE * input_file )
4063 {
4064
4065     if ( ! YY_CURRENT_BUFFER )
4066     {
4067         yyensure_buffer_stack ();
4068         YY_CURRENT_BUFFER_LVALUE =
4069             yy_create_buffer(yyin, YY_BUF_SIZE );
4070     }
4071
4072     yy_init_buffer(YY_CURRENT_BUFFER, input_file );
4073     yy_load_buffer_state( );
4074 }
4075
4076 /** Switch to a different input buffer.
4077  * @param new_buffer The new input buffer.
4078  *
4079  */
4080 void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4081 {
4082
4083     /* TODO. We should be able to replace this entire function body
4084      * with
4085      *          yypop_buffer_state();
4086      *          yypush_buffer_state(new_buffer);
4087      */
4088     yyensure_buffer_stack ();
4089     if ( YY_CURRENT_BUFFER == new_buffer )
4090     {
4091         return;
4092     }
4093
4094     if ( YY_CURRENT_BUFFER )
4095     {
4096         /* Flush out information for old buffer. */
4097         *(yy_c_buf_p) = (yy_hold_char);
4098         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4099         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4100     }
4101
4102     YY_CURRENT_BUFFER_LVALUE = new_buffer;
4103     yy_load_buffer_state( );
4104
4105     /* We don't actually know whether we did this switch during
4106      * EOF (yywrap()) processing, but the only time this flag
4107      * is looked at is after yywrap() is called, so it's safe
4108      * to go ahead and always set it.
4109      */
4110     (yy_did_buffer_switch_on_eof) = 1;
4111 }
4112
4113 static void yy_load_buffer_state  (void)
4114 {
4115     (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4116     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4117     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4118     (yy_hold_char) = *(yy_c_buf_p);
4119 }
4120
4121 /** Allocate and initialize an input buffer state.
4122  * @param file A readable stream.
4123  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4124  *
4125  * @return the allocated buffer state.
4126  */
4127 YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4128 {
4129     YY_BUFFER_STATE b;
4130
4131     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4132     if ( ! b )
4133     {
4134         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4135     }
4136
4137     b->yy_buf_size = size;
4138
4139     /* yy_ch_buf has to be 2 characters longer than the size given because
4140      * we need to put in 2 end-of-buffer characters.
4141      */
4142     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
4143     if ( ! b->yy_ch_buf )
4144     {
4145         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4146     }
4147
4148     b->yy_is_our_buffer = 1;
4149
4150     yy_init_buffer(b, file );
4151
4152     return b;
4153 }
4154
4155 /** Destroy the buffer.
4156  * @param b a buffer created with yy_create_buffer()
4157  *
4158  */
4159 void yy_delete_buffer (YY_BUFFER_STATE  b )
4160 {
4161
4162     if ( ! b )
4163     {
4164         return;
4165     }
4166
4167     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4168     {
4169         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4170     }
4171
4172     if ( b->yy_is_our_buffer )
4173     {
4174         yyfree((void *) b->yy_ch_buf  );
4175     }
4176
4177     yyfree((void *) b  );
4178 }
4179
4180 /* Initializes or reinitializes a buffer.
4181  * This function is sometimes called more than once on the same buffer,
4182  * such as during a yyrestart() or at EOF.
4183  */
4184 static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4185
4186 {
4187     int oerrno = errno;
4188
4189     yy_flush_buffer(b );
4190
4191     b->yy_input_file = file;
4192     b->yy_fill_buffer = 1;
4193
4194     /* If b is the current buffer, then yy_init_buffer was _probably_
4195      * called from yyrestart() or through yy_get_next_buffer.
4196      * In that case, we don't want to reset the lineno or column.
4197      */
4198     if (b != YY_CURRENT_BUFFER)
4199     {
4200         b->yy_bs_lineno = 1;
4201         b->yy_bs_column = 0;
4202     }
4203
4204     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4205
4206     errno = oerrno;
4207 }
4208
4209 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4210  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4211  *
4212  */
4213 void yy_flush_buffer (YY_BUFFER_STATE  b )
4214 {
4215     if ( ! b )
4216     {
4217         return;
4218     }
4219
4220     b->yy_n_chars = 0;
4221
4222     /* We always need two end-of-buffer characters.  The first causes
4223      * a transition to the end-of-buffer state.  The second causes
4224      * a jam in that state.
4225      */
4226     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4227     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4228
4229     b->yy_buf_pos = &b->yy_ch_buf[0];
4230
4231     b->yy_at_bol = 1;
4232     b->yy_buffer_status = YY_BUFFER_NEW;
4233
4234     if ( b == YY_CURRENT_BUFFER )
4235     {
4236         yy_load_buffer_state( );
4237     }
4238 }
4239
4240 /** Pushes the new state onto the stack. The new state becomes
4241  *  the current state. This function will allocate the stack
4242  *  if necessary.
4243  *  @param new_buffer The new state.
4244  *
4245  */
4246 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4247 {
4248     if (new_buffer == NULL)
4249     {
4250         return;
4251     }
4252
4253     yyensure_buffer_stack();
4254
4255     /* This block is copied from yy_switch_to_buffer. */
4256     if ( YY_CURRENT_BUFFER )
4257     {
4258         /* Flush out information for old buffer. */
4259         *(yy_c_buf_p) = (yy_hold_char);
4260         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4261         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4262     }
4263
4264     /* Only push if top exists. Otherwise, replace top. */
4265     if (YY_CURRENT_BUFFER)
4266     {
4267         (yy_buffer_stack_top)++;
4268     }
4269     YY_CURRENT_BUFFER_LVALUE = new_buffer;
4270
4271     /* copied from yy_switch_to_buffer. */
4272     yy_load_buffer_state( );
4273     (yy_did_buffer_switch_on_eof) = 1;
4274 }
4275
4276 /** Removes and deletes the top of the stack, if present.
4277  *  The next element becomes the new top.
4278  *
4279  */
4280 void yypop_buffer_state (void)
4281 {
4282     if (!YY_CURRENT_BUFFER)
4283     {
4284         return;
4285     }
4286
4287     yy_delete_buffer(YY_CURRENT_BUFFER );
4288     YY_CURRENT_BUFFER_LVALUE = NULL;
4289     if ((yy_buffer_stack_top) > 0)
4290     {
4291         --(yy_buffer_stack_top);
4292     }
4293
4294     if (YY_CURRENT_BUFFER)
4295     {
4296         yy_load_buffer_state( );
4297         (yy_did_buffer_switch_on_eof) = 1;
4298     }
4299 }
4300
4301 /* Allocates the stack if it does not exist.
4302  *  Guarantees space for at least one push.
4303  */
4304 static void yyensure_buffer_stack (void)
4305 {
4306     yy_size_t num_to_alloc;
4307
4308     if (!(yy_buffer_stack))
4309     {
4310
4311         /* First allocation is just for 2 elements, since we don't know if this
4312          * scanner will even need a stack. We use 2 instead of 1 to avoid an
4313          * immediate realloc on the next call.
4314          */
4315         num_to_alloc = 1;
4316         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4317                             (num_to_alloc * sizeof(struct yy_buffer_state*)
4318                             );
4319         if ( ! (yy_buffer_stack) )
4320         {
4321             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4322         }
4323
4324         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4325
4326         (yy_buffer_stack_max) = num_to_alloc;
4327         (yy_buffer_stack_top) = 0;
4328         return;
4329     }
4330
4331     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1)
4332     {
4333
4334         /* Increase the buffer to prepare for a possible push. */
4335         int grow_size = 8 /* arbitrary grow size */;
4336
4337         num_to_alloc = (yy_buffer_stack_max) + grow_size;
4338         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4339                             ((yy_buffer_stack),
4340                              num_to_alloc * sizeof(struct yy_buffer_state*)
4341                             );
4342         if ( ! (yy_buffer_stack) )
4343         {
4344             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4345         }
4346
4347         /* zero only the new slots.*/
4348         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4349         (yy_buffer_stack_max) = num_to_alloc;
4350     }
4351 }
4352
4353 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4354  * @param base the character buffer
4355  * @param size the size in bytes of the character buffer
4356  *
4357  * @return the newly allocated buffer state object.
4358  */
4359 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
4360 {
4361     YY_BUFFER_STATE b;
4362
4363     if ( size < 2 ||
4364             base[size - 2] != YY_END_OF_BUFFER_CHAR ||
4365             base[size - 1] != YY_END_OF_BUFFER_CHAR )
4366         /* They forgot to leave room for the EOB's. */
4367     {
4368         return 0;
4369     }
4370
4371     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4372     if ( ! b )
4373     {
4374         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4375     }
4376
4377     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
4378     b->yy_buf_pos = b->yy_ch_buf = base;
4379     b->yy_is_our_buffer = 0;
4380     b->yy_input_file = 0;
4381     b->yy_n_chars = b->yy_buf_size;
4382     b->yy_is_interactive = 0;
4383     b->yy_at_bol = 1;
4384     b->yy_fill_buffer = 0;
4385     b->yy_buffer_status = YY_BUFFER_NEW;
4386
4387     yy_switch_to_buffer(b  );
4388
4389     return b;
4390 }
4391
4392 /** Setup the input buffer state to scan a string. The next call to yylex() will
4393  * scan from a @e copy of @a str.
4394  * @param yystr a NUL-terminated string to scan
4395  *
4396  * @return the newly allocated buffer state object.
4397  * @note If you want to scan bytes that may contain NUL values, then use
4398  *       yy_scan_bytes() instead.
4399  */
4400 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
4401 {
4402
4403     return yy_scan_bytes(yystr, strlen(yystr) );
4404 }
4405
4406 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4407  * scan from a @e copy of @a bytes.
4408  * @param yybytes the byte buffer to scan
4409  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4410  *
4411  * @return the newly allocated buffer state object.
4412  */
4413 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
4414 {
4415     YY_BUFFER_STATE b;
4416     char *buf;
4417     yy_size_t n;
4418     yy_size_t i;
4419
4420     /* Get memory for full buffer, including space for trailing EOB's. */
4421     n = _yybytes_len + 2;
4422     buf = (char *) yyalloc(n  );
4423     if ( ! buf )
4424     {
4425         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4426     }
4427
4428     for ( i = 0; i < _yybytes_len; ++i )
4429     {
4430         buf[i] = yybytes[i];
4431     }
4432
4433     buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR;
4434
4435     b = yy_scan_buffer(buf, n );
4436     if ( ! b )
4437     {
4438         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4439     }
4440
4441     /* It's okay to grow etc. this buffer, and we should throw it
4442      * away when we're done.
4443      */
4444     b->yy_is_our_buffer = 1;
4445
4446     return b;
4447 }
4448
4449 static void yy_push_state (int  new_state )
4450 {
4451     if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4452     {
4453         yy_size_t new_size;
4454
4455         (yy_start_stack_depth) += YY_START_STACK_INCR;
4456         new_size = (yy_start_stack_depth) * sizeof( int );
4457
4458         if ( ! (yy_start_stack) )
4459         {
4460             (yy_start_stack) = (int *) yyalloc(new_size  );
4461         }
4462
4463         else
4464         {
4465             (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack), new_size  );
4466         }
4467
4468         if ( ! (yy_start_stack) )
4469         {
4470             YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4471         }
4472     }
4473
4474     (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4475
4476     BEGIN(new_state);
4477 }
4478
4479 static void yy_pop_state  (void)
4480 {
4481     if ( --(yy_start_stack_ptr) < 0 )
4482     {
4483         YY_FATAL_ERROR( "start-condition stack underflow" );
4484     }
4485
4486     BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4487 }
4488
4489 static int yy_top_state  (void)
4490 {
4491     return (yy_start_stack)[(yy_start_stack_ptr) - 1];
4492 }
4493
4494 #ifndef YY_EXIT_FAILURE
4495 #define YY_EXIT_FAILURE 2
4496 #endif
4497
4498 static void yy_fatal_error (yyconst char* msg )
4499 {
4500     (void) fprintf( stderr, "%s\n", msg );
4501     exit( YY_EXIT_FAILURE );
4502 }
4503
4504 /* Redefine yyless() so it works in section 3 code. */
4505
4506 #undef yyless
4507 #define yyless(n) \
4508         do \
4509                 { \
4510                 /* Undo effects of setting up yytext. */ \
4511         int yyless_macro_arg = (n); \
4512         YY_LESS_LINENO(yyless_macro_arg);\
4513                 yytext[yyleng] = (yy_hold_char); \
4514                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
4515                 (yy_hold_char) = *(yy_c_buf_p); \
4516                 *(yy_c_buf_p) = '\0'; \
4517                 yyleng = yyless_macro_arg; \
4518                 } \
4519         while ( 0 )
4520
4521 /* Accessor  methods (get/set functions) to struct members. */
4522
4523 /** Get the current line number.
4524  *
4525  */
4526 int yyget_lineno  (void)
4527 {
4528
4529     return yylineno;
4530 }
4531
4532 /** Get the input stream.
4533  *
4534  */
4535 FILE *yyget_in  (void)
4536 {
4537     return yyin;
4538 }
4539
4540 /** Get the output stream.
4541  *
4542  */
4543 FILE *yyget_out  (void)
4544 {
4545     return yyout;
4546 }
4547
4548 /** Get the length of the current token.
4549  *
4550  */
4551 yy_size_t yyget_leng  (void)
4552 {
4553     return yyleng;
4554 }
4555
4556 /** Get the current token.
4557  *
4558  */
4559
4560 char *yyget_text  (void)
4561 {
4562     return yytext;
4563 }
4564
4565 /** Set the current line number.
4566  * @param line_number
4567  *
4568  */
4569 void yyset_lineno (int  line_number )
4570 {
4571
4572     yylineno = line_number;
4573 }
4574
4575 /** Set the input stream. This does not discard the current
4576  * input buffer.
4577  * @param in_str A readable stream.
4578  *
4579  * @see yy_switch_to_buffer
4580  */
4581 void yyset_in (FILE *  in_str )
4582 {
4583     yyin = in_str ;
4584 }
4585
4586 void yyset_out (FILE *  out_str )
4587 {
4588     yyout = out_str ;
4589 }
4590
4591 int yyget_debug  (void)
4592 {
4593     return yy_flex_debug;
4594 }
4595
4596 void yyset_debug (int  bdebug )
4597 {
4598     yy_flex_debug = bdebug ;
4599 }
4600
4601 static int yy_init_globals (void)
4602 {
4603     /* Initialization is the same as for the non-reentrant scanner.
4604     * This function is called from yylex_destroy(), so don't allocate here.
4605     */
4606
4607     (yy_buffer_stack) = 0;
4608     (yy_buffer_stack_top) = 0;
4609     (yy_buffer_stack_max) = 0;
4610     (yy_c_buf_p) = (char *) 0;
4611     (yy_init) = 0;
4612     (yy_start) = 0;
4613
4614     (yy_start_stack_ptr) = 0;
4615     (yy_start_stack_depth) = 0;
4616     (yy_start_stack) =  NULL;
4617
4618     (yy_state_buf) = 0;
4619     (yy_state_ptr) = 0;
4620     (yy_full_match) = 0;
4621     (yy_lp) = 0;
4622
4623     /* Defined in main.c */
4624 #ifdef YY_STDINIT
4625     yyin = stdin;
4626     yyout = stdout;
4627 #else
4628     yyin = (FILE *) 0;
4629     yyout = (FILE *) 0;
4630 #endif
4631
4632     /* For future reference: Set errno on error, since we are called by
4633      * yylex_init()
4634      */
4635     return 0;
4636 }
4637
4638 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
4639 int yylex_destroy  (void)
4640 {
4641
4642     /* Pop the buffer stack, destroying each element. */
4643     while (YY_CURRENT_BUFFER)
4644     {
4645         yy_delete_buffer(YY_CURRENT_BUFFER  );
4646         YY_CURRENT_BUFFER_LVALUE = NULL;
4647         yypop_buffer_state();
4648     }
4649
4650     /* Destroy the stack itself. */
4651     yyfree((yy_buffer_stack) );
4652     (yy_buffer_stack) = NULL;
4653
4654     /* Destroy the start condition stack. */
4655     yyfree((yy_start_stack)  );
4656     (yy_start_stack) = NULL;
4657
4658     yyfree ( (yy_state_buf) );
4659     (yy_state_buf)  = NULL;
4660
4661     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4662      * yylex() is called, initialization will occur. */
4663     yy_init_globals( );
4664
4665     return 0;
4666 }
4667
4668 /*
4669  * Internal utility routines.
4670  */
4671
4672 #ifndef yytext_ptr
4673 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4674 {
4675     register int i;
4676     for ( i = 0; i < n; ++i )
4677     {
4678         s1[i] = s2[i];
4679     }
4680 }
4681 #endif
4682
4683 #ifdef YY_NEED_STRLEN
4684 static int yy_flex_strlen (yyconst char * s )
4685 {
4686     register int n;
4687     for ( n = 0; s[n]; ++n )
4688         ;
4689
4690     return n;
4691 }
4692 #endif
4693
4694 void *yyalloc (yy_size_t  size )
4695 {
4696     return (void *) malloc( size );
4697 }
4698
4699 void *yyrealloc  (void * ptr, yy_size_t  size )
4700 {
4701     /* The cast to (char *) in the following accommodates both
4702      * implementations that use char* generic pointers, and those
4703      * that use void* generic pointers.  It works with the latter
4704      * because both ANSI C and C++ allow castless assignment from
4705      * any pointer type to void*, and deal with argument conversions
4706      * as though doing an assignment.
4707      */
4708     return (void *) realloc( (char *) ptr, size );
4709 }
4710
4711 void yyfree (void * ptr )
4712 {
4713     free( (char *) ptr );       /* see yyrealloc() for (char *) cast */
4714 }
4715
4716 #define YYTABLES_NAME "yytables"
4717
4718 int scan_throw(int token)
4719 {
4720     last_token = token;
4721 #ifdef DEV
4722     std::cout << "--> [DEBUG] TOKEN : " << token << std::endl;
4723 #endif
4724     return token;
4725 }
4726
4727 int get_last_token()
4728 {
4729     return last_token;
4730 }
4731
4732 void scan_step()
4733 {
4734     yylloc.first_line = yylloc.last_line;
4735     yylloc.first_column = yylloc.last_column;
4736 }
4737
4738 void scan_error(std::string msg)
4739 {
4740     wchar_t* pstMsg = to_wide_string(msg.c_str());
4741
4742     //std::wcerr << pstMsg << std::endl;
4743     ParserSingleInstance::PrintError(pstMsg);
4744     ParserSingleInstance::setExitStatus(Parser::Failed);
4745     ParserSingleInstance::resetControlStatus();
4746     FREE(pstMsg);
4747     last_token = YYEOF;
4748     BEGIN(INITIAL);
4749 }
4750
4751 /*
4752 ** convert floating numbers to C standard
4753 ** 1.2d-3 -> 1.2e-3
4754 ** 1.2D-3 -> 1.2e-3
4755 */
4756 void scan_exponent_convert(char *in)
4757 {
4758     for (; *in != 'd' && *in != 'D'; ++in);
4759     *in = 'e';
4760 }
4761
4762 #ifdef _MSC_VER
4763 int isatty (int desc)
4764 {
4765     return 0;
4766 }
4767 #endif
4768