Lexer: transfer error to parser
[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 std::string current_file;
1893 static std::string program_name;
1894
1895 static std::string pstBuffer;
1896
1897 extern void yyerror(std::string);
1898
1899 #define YY_USER_ACTION                          \
1900  yylloc.first_column = yylloc.last_column;yylloc.last_column += yyleng;
1901 //yylloc.last_column += yyleng;
1902
1903 /* -*- Verbose Special Debug -*- */
1904 //#define DEV
1905 //#define TOKENDEV
1906
1907 #ifdef DEV
1908 #define DEBUG(x) std::cout << "[DEBUG] " << x << std::endl;
1909 #else
1910 #define DEBUG(x) /* Nothing */
1911 #endif
1912
1913 #define INITIAL 0
1914 #define SIMPLESTRING 1
1915 #define DOUBLESTRING 2
1916 #define REGIONCOMMENT 3
1917 #define LINECOMMENT 4
1918 #define LINEBREAK 5
1919 #define MATRIX 6
1920 #define SHELLMODE 7
1921 #define BEGINID 8
1922
1923 #ifndef YY_EXTRA_TYPE
1924 #define YY_EXTRA_TYPE void *
1925 #endif
1926
1927 static int yy_init_globals (void );
1928
1929 /* Accessor methods to globals.
1930    These are made visible to non-reentrant scanners for convenience. */
1931
1932 int yylex_destroy (void );
1933
1934 int yyget_debug (void );
1935
1936 void yyset_debug (int debug_flag  );
1937
1938 YY_EXTRA_TYPE yyget_extra (void );
1939
1940 void yyset_extra (YY_EXTRA_TYPE user_defined  );
1941
1942 FILE *yyget_in (void );
1943
1944 void yyset_in  (FILE * in_str  );
1945
1946 FILE *yyget_out (void );
1947
1948 void yyset_out  (FILE * out_str  );
1949
1950 yy_size_t yyget_leng (void );
1951
1952 char *yyget_text (void );
1953
1954 int yyget_lineno (void );
1955
1956 void yyset_lineno (int line_number  );
1957
1958 /* Macros after this point can all be overridden by user definitions in
1959  * section 1.
1960  */
1961
1962 #ifndef YY_SKIP_YYWRAP
1963 #ifdef __cplusplus
1964 extern "C" int yywrap (void );
1965 #else
1966 extern int yywrap (void );
1967 #endif
1968 #endif
1969
1970 static void yyunput (int c, char *buf_ptr  );
1971
1972 #ifndef yytext_ptr
1973 static void yy_flex_strncpy (char *, yyconst char *, int );
1974 #endif
1975
1976 #ifdef YY_NEED_STRLEN
1977 static int yy_flex_strlen (yyconst char * );
1978 #endif
1979
1980 #ifndef YY_NO_INPUT
1981
1982 #ifdef __cplusplus
1983 static int yyinput (void );
1984 #else
1985 static int input (void );
1986 #endif
1987
1988 #endif
1989
1990 static int yy_start_stack_ptr = 0;
1991 static int yy_start_stack_depth = 0;
1992 static int *yy_start_stack = NULL;
1993
1994 static void yy_push_state (int new_state );
1995
1996 static void yy_pop_state (void );
1997
1998 static int yy_top_state (void );
1999
2000 /* Amount of stuff to slurp up with each read. */
2001 #ifndef YY_READ_BUF_SIZE
2002 #ifdef __ia64__
2003 /* On IA-64, the buffer size is 16k, not 8k */
2004 #define YY_READ_BUF_SIZE 16384
2005 #else
2006 #define YY_READ_BUF_SIZE 8192
2007 #endif /* __ia64__ */
2008 #endif
2009
2010 /* Copy whatever the last rule matched to the standard output. */
2011 #ifndef ECHO
2012 /* This used to be an fputs(), but since the string might contain NUL's,
2013  * we now use fwrite().
2014  */
2015 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
2016 #endif
2017
2018 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2019  * is returned in "result".
2020  */
2021 #ifndef YY_INPUT
2022 #define YY_INPUT(buf,result,max_size) \
2023         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2024                 { \
2025                 int c = '*'; \
2026                 size_t n; \
2027                 for ( n = 0; n < max_size && \
2028                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2029                         buf[n] = (char) c; \
2030                 if ( c == '\n' ) \
2031                         buf[n++] = (char) c; \
2032                 if ( c == EOF && ferror( yyin ) ) \
2033                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
2034                 result = n; \
2035                 } \
2036         else \
2037                 { \
2038                 errno=0; \
2039                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
2040                         { \
2041                         if( errno != EINTR) \
2042                                 { \
2043                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2044                                 break; \
2045                                 } \
2046                         errno=0; \
2047                         clearerr(yyin); \
2048                         } \
2049                 }\
2050 \
2051  
2052 #endif
2053
2054 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2055  * we don't want an extra ';' after the "return" because that will cause
2056  * some compilers to complain about unreachable statements.
2057  */
2058 #ifndef yyterminate
2059 #define yyterminate() return YY_NULL
2060 #endif
2061
2062 /* Number of entries by which start-condition stack grows. */
2063 #ifndef YY_START_STACK_INCR
2064 #define YY_START_STACK_INCR 25
2065 #endif
2066
2067 /* Report a fatal error. */
2068 #ifndef YY_FATAL_ERROR
2069 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2070 #endif
2071
2072 /* end tables serialization structures and prototypes */
2073
2074 /* Default declaration of generated scanner - a define so the user can
2075  * easily add parameters.
2076  */
2077 #ifndef YY_DECL
2078 #define YY_DECL_IS_OURS 1
2079
2080 extern int yylex (void);
2081
2082 #define YY_DECL int yylex (void)
2083 #endif /* !YY_DECL */
2084
2085 /* Code executed at the beginning of each rule, after yytext and yyleng
2086  * have been set up.
2087  */
2088 #ifndef YY_USER_ACTION
2089 #define YY_USER_ACTION
2090 #endif
2091
2092 /* Code executed at the end of each rule. */
2093 #ifndef YY_BREAK
2094 #define YY_BREAK break;
2095 #endif
2096
2097 #define YY_RULE_SETUP \
2098         if ( yyleng > 0 ) \
2099                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2100                                 (yytext[yyleng - 1] == '\n'); \
2101         YY_USER_ACTION
2102
2103 /** The main scanner function which does all the work.
2104  */
2105 YY_DECL
2106 {
2107     register yy_state_type yy_current_state;
2108     register char *yy_cp, *yy_bp;
2109     register int yy_act;
2110
2111     if ( !(yy_init) )
2112     {
2113         (yy_init) = 1;
2114
2115 #ifdef YY_USER_INIT
2116         YY_USER_INIT;
2117 #endif
2118
2119         /* Create the reject buffer large enough to save one state per allowed character. */
2120         if ( ! (yy_state_buf) )
2121         {
2122             (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE  );
2123         }
2124         if ( ! (yy_state_buf) )
2125         {
2126             YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
2127         }
2128
2129         if ( ! (yy_start) )
2130         {
2131             (yy_start) = 1;    /* first start state */
2132         }
2133
2134         if ( ! yyin )
2135         {
2136             yyin = stdin;
2137         }
2138
2139         if ( ! yyout )
2140         {
2141             yyout = stdout;
2142         }
2143
2144         if ( ! YY_CURRENT_BUFFER )
2145         {
2146             yyensure_buffer_stack ();
2147             YY_CURRENT_BUFFER_LVALUE =
2148                 yy_create_buffer(yyin, YY_BUF_SIZE );
2149         }
2150
2151         yy_load_buffer_state( );
2152     }
2153
2154     {
2155
2156         while ( 1 )             /* loops until end-of-file is reached */
2157         {
2158             yy_cp = (yy_c_buf_p);
2159
2160             /* Support of yytext. */
2161             *yy_cp = (yy_hold_char);
2162
2163             /* yy_bp points to the position in yy_ch_buf of the start of
2164              * the current run.
2165              */
2166             yy_bp = yy_cp;
2167
2168             yy_current_state = (yy_start);
2169             yy_current_state += YY_AT_BOL();
2170
2171             (yy_state_ptr) = (yy_state_buf);
2172             *(yy_state_ptr)++ = yy_current_state;
2173
2174 yy_match:
2175             do
2176             {
2177                 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2178                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2179                 {
2180                     yy_current_state = (int) yy_def[yy_current_state];
2181                     if ( yy_current_state >= 854 )
2182                     {
2183                         yy_c = yy_meta[(unsigned int) yy_c];
2184                     }
2185                 }
2186                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2187                 *(yy_state_ptr)++ = yy_current_state;
2188                 ++yy_cp;
2189             }
2190             while ( yy_base[yy_current_state] != 4408 );
2191
2192 yy_find_action:
2193             yy_current_state = *--(yy_state_ptr);
2194             (yy_lp) = yy_accept[yy_current_state];
2195 find_rule: /* we branch to this label when backing up */
2196             for ( ; ; ) /* until we find what rule we matched */
2197             {
2198                 if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
2199                 {
2200                     yy_act = yy_acclist[(yy_lp)];
2201                     if ( yy_act & YY_TRAILING_HEAD_MASK ||
2202                             (yy_looking_for_trail_begin) )
2203                     {
2204                         if ( yy_act == (yy_looking_for_trail_begin) )
2205                         {
2206                             (yy_looking_for_trail_begin) = 0;
2207                             yy_act &= ~YY_TRAILING_HEAD_MASK;
2208                             break;
2209                         }
2210                     }
2211                     else if ( yy_act & YY_TRAILING_MASK )
2212                     {
2213                         (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
2214                         (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
2215                     }
2216                     else
2217                     {
2218                         (yy_full_match) = yy_cp;
2219                         (yy_full_state) = (yy_state_ptr);
2220                         (yy_full_lp) = (yy_lp);
2221                         break;
2222                     }
2223                     ++(yy_lp);
2224                     goto find_rule;
2225                 }
2226                 --yy_cp;
2227                 yy_current_state = *--(yy_state_ptr);
2228                 (yy_lp) = yy_accept[yy_current_state];
2229             }
2230
2231             YY_DO_BEFORE_ACTION;
2232
2233 do_action:      /* This label is used only to access EOF actions. */
2234
2235             switch ( yy_act )
2236             {
2237                 /* beginning of action switch */
2238                 case 1:
2239                     *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2240                     (yy_c_buf_p) = yy_cp = yy_bp + 3;
2241                     YY_DO_BEFORE_ACTION; /* set up yytext again */
2242                     YY_RULE_SETUP
2243                     {
2244                         // BOM found ==> ignored
2245                     }
2246                     YY_BREAK
2247                 case 2:
2248                     YY_RULE_SETUP
2249                     {
2250                         BEGIN(INITIAL);
2251                         return scan_throw(BOOLTRUE);
2252                     }
2253                     YY_BREAK
2254                 case 3:
2255                     YY_RULE_SETUP
2256                     {
2257                         BEGIN(INITIAL);
2258                         return scan_throw(BOOLFALSE);
2259                     }
2260                     YY_BREAK
2261                 case 4:
2262                     YY_RULE_SETUP
2263                     {
2264                         if (last_token != DOT)
2265                         {
2266                             ParserSingleInstance::pushControlStatus(Parser::WithinIf);
2267                         }
2268                         DEBUG("BEGIN(INITIAL)");
2269                         BEGIN(INITIAL);
2270                         return scan_throw(IF);
2271                     }
2272                     YY_BREAK
2273                 case 5:
2274                     YY_RULE_SETUP
2275                     {
2276                         DEBUG("BEGIN(INITIAL)");
2277                         BEGIN(INITIAL);
2278                         return scan_throw(THEN);
2279                     }
2280                     YY_BREAK
2281                 case 6:
2282                     YY_RULE_SETUP
2283                     {
2284                         if (last_token != DOT)
2285                         {
2286                             // Pop to step out IF
2287                             ParserSingleInstance::popControlStatus();
2288                             ParserSingleInstance::pushControlStatus(Parser::WithinElse);
2289                         }
2290                         DEBUG("BEGIN(INITIAL)");
2291                         BEGIN(INITIAL);
2292                         return scan_throw(ELSE);
2293                     }
2294                     YY_BREAK
2295                 case 7:
2296                     YY_RULE_SETUP
2297                     {
2298                         if (last_token != DOT)
2299                         {
2300                             ParserSingleInstance::popControlStatus();
2301                             ParserSingleInstance::pushControlStatus(Parser::WithinElseIf);
2302                         }
2303                         DEBUG("BEGIN(INITIAL)");
2304                         BEGIN(INITIAL);
2305                         return scan_throw(ELSEIF);
2306                     }
2307                     YY_BREAK
2308                 case 8:
2309                     YY_RULE_SETUP
2310                     {
2311                         if (last_token != DOT)
2312                         {
2313                             ParserSingleInstance::popControlStatus();
2314                         }
2315                         DEBUG("BEGIN(INITIAL)");
2316                         BEGIN(INITIAL);
2317                         return scan_throw(END);
2318                     }
2319                     YY_BREAK
2320                 case 9:
2321                     YY_RULE_SETUP
2322                     {
2323                         if (last_token != DOT)
2324                         {
2325                             ParserSingleInstance::pushControlStatus(Parser::WithinSelect);
2326                         }
2327                         DEBUG("BEGIN(INITIAL)");
2328                         BEGIN(INITIAL);
2329                         return scan_throw(SELECT);
2330                     }
2331                     YY_BREAK
2332                 case 10:
2333                     YY_RULE_SETUP
2334                     {
2335                         if (last_token != DOT)
2336                         {
2337                             ParserSingleInstance::pushControlStatus(Parser::WithinSwitch);
2338                         }
2339                         DEBUG("BEGIN(INITIAL)");
2340                         BEGIN(INITIAL);
2341                         return scan_throw(SWITCH);
2342                     }
2343                     YY_BREAK
2344                 case 11:
2345                     YY_RULE_SETUP
2346                     {
2347                         if (last_token != DOT)
2348                         {
2349                             ParserSingleInstance::popControlStatus();
2350                             ParserSingleInstance::pushControlStatus(Parser::WithinOtherwise);
2351                         }
2352                         DEBUG("BEGIN(INITIAL)");
2353                         BEGIN(INITIAL);
2354                         return scan_throw(OTHERWISE);
2355                     }
2356                     YY_BREAK
2357                 case 12:
2358                     YY_RULE_SETUP
2359                     {
2360                         if (last_token != DOT)
2361                         {
2362                             ParserSingleInstance::popControlStatus();
2363                             ParserSingleInstance::pushControlStatus(Parser::WithinCase);
2364                         }
2365                         DEBUG("BEGIN(INITIAL)");
2366                         BEGIN(INITIAL);
2367                         return scan_throw(CASE);
2368                     }
2369                     YY_BREAK
2370                 case 13:
2371                     YY_RULE_SETUP
2372                     {
2373                         if (last_token != DOT)
2374                         {
2375                             ParserSingleInstance::pushControlStatus(Parser::WithinFunction);
2376                         }
2377                         DEBUG("BEGIN(INITIAL)");
2378                         BEGIN(INITIAL);
2379                         return scan_throw(FUNCTION);
2380                     }
2381                     YY_BREAK
2382                 case 14:
2383                     YY_RULE_SETUP
2384                     {
2385                         if (last_token != DOT)
2386                         {
2387                             ParserSingleInstance::popControlStatus();
2388                         }
2389                         DEBUG("BEGIN(INITIAL)");
2390                         BEGIN(INITIAL);
2391                         return scan_throw(ENDFUNCTION);
2392                     }
2393                     YY_BREAK
2394                 case 15:
2395                     YY_RULE_SETUP
2396                     {
2397                         if (last_token != DOT)
2398                         {
2399                             ParserSingleInstance::pushControlStatus(Parser::WithinFunction);
2400                         }
2401                         DEBUG("BEGIN(INITIAL)");
2402                         BEGIN(INITIAL);
2403                         return scan_throw(HIDDENFUNCTION);
2404                     }
2405                     YY_BREAK
2406                 case 16:
2407                     YY_RULE_SETUP
2408                     {
2409                         DEBUG("BEGIN(INITIAL)");
2410                         BEGIN(INITIAL);
2411                         return scan_throw(HIDDEN);
2412                     }
2413                     YY_BREAK
2414                 case 17:
2415                     YY_RULE_SETUP
2416                     {
2417                         if (last_token != DOT)
2418                         {
2419                             ParserSingleInstance::pushControlStatus(Parser::WithinFor);
2420                         }
2421                         BEGIN(INITIAL);
2422                         return scan_throw(FOR);
2423                     }
2424                     YY_BREAK
2425                 case 18:
2426                     YY_RULE_SETUP
2427                     {
2428                         if (last_token != DOT)
2429                         {
2430                             ParserSingleInstance::pushControlStatus(Parser::WithinWhile);
2431                         }
2432                         BEGIN(INITIAL);
2433                         return scan_throw(WHILE);
2434                     }
2435                     YY_BREAK
2436                 case 19:
2437                     YY_RULE_SETUP
2438                     {
2439                         BEGIN(INITIAL);
2440                         return scan_throw(DO);
2441                     }
2442                     YY_BREAK
2443                 case 20:
2444                     YY_RULE_SETUP
2445                     {
2446                         BEGIN(INITIAL);
2447                         return scan_throw(BREAK);
2448                     }
2449                     YY_BREAK
2450                 case 21:
2451                     YY_RULE_SETUP
2452                     {
2453                         BEGIN(INITIAL);
2454                         return scan_throw(CONTINUE);
2455                     }
2456                     YY_BREAK
2457                 case 22:
2458                     YY_RULE_SETUP
2459                     {
2460                         ParserSingleInstance::pushControlStatus(Parser::WithinTry);
2461                         BEGIN(INITIAL);
2462                         return scan_throw(TRY);
2463                     }
2464                     YY_BREAK
2465                 case 23:
2466                     YY_RULE_SETUP
2467                     {
2468                         // Pop to step out TRY
2469                         ParserSingleInstance::popControlStatus();
2470                         ParserSingleInstance::pushControlStatus(Parser::WithinCatch);
2471                         BEGIN(INITIAL);
2472                         return scan_throw(CATCH);
2473                     }
2474                     YY_BREAK
2475                 case 24:
2476                     YY_RULE_SETUP
2477                     {
2478                         BEGIN(INITIAL);
2479                         return scan_throw(RETURN);
2480                     }
2481                     YY_BREAK
2482                 case 25:
2483                     YY_RULE_SETUP
2484                     {
2485                         BEGIN(INITIAL);
2486                         return scan_throw(RETURN);
2487                     }
2488                     YY_BREAK
2489                 case 26:
2490                     /* rule 26 can match eol */
2491                     YY_RULE_SETUP
2492                     {
2493                         BEGIN(BEGINID);
2494                     }
2495                     YY_BREAK
2496
2497                 case 27:
2498                     YY_RULE_SETUP
2499                     {
2500                         wchar_t *pwText = to_wide_string(yytext);
2501                         if (yytext != NULL && pwText == NULL)
2502                         {
2503                             std::string str = "Can\'t convert \'";
2504                             str += yytext;
2505                             str += "\' to UTF-8";
2506                             BEGIN(INITIAL);
2507                             yyerror(str);
2508                             return scan_throw(FLEX_ERROR);
2509                         }
2510                         yylval.str = new std::wstring(pwText);
2511                         FREE(pwText);
2512                         types::InternalType * pIT = symbol::Context::getInstance()->get(symbol::Symbol(*yylval.str));
2513                         if (pIT && pIT->isCallable())
2514                         {
2515                             scan_throw(ID);
2516                             BEGIN(SHELLMODE);
2517                         }
2518                         else
2519                         {
2520                             BEGIN(INITIAL);
2521                             return scan_throw(ID);
2522                         }
2523                     }
2524                     YY_BREAK
2525
2526                 case 28:
2527                     YY_RULE_SETUP
2528                     {
2529                         return scan_throw(NOT);
2530                     }
2531                     YY_BREAK
2532                 case 29:
2533                     YY_RULE_SETUP
2534                     {
2535                         return scan_throw(DOLLAR);
2536                     }
2537                     YY_BREAK
2538                 case 30:
2539                     YY_RULE_SETUP
2540                     {
2541                         return scan_throw(BOOLTRUE);
2542                     }
2543                     YY_BREAK
2544                 case 31:
2545                     YY_RULE_SETUP
2546                     {
2547                         return scan_throw(BOOLFALSE);
2548                     }
2549                     YY_BREAK
2550                 case 32:
2551                     YY_RULE_SETUP
2552                     {
2553                         return scan_throw(AND);
2554                     }
2555                     YY_BREAK
2556                 case 33:
2557                     YY_RULE_SETUP
2558                     {
2559                         return scan_throw(ANDAND);
2560                     }
2561                     YY_BREAK
2562                 case 34:
2563                     YY_RULE_SETUP
2564                     {
2565                         return scan_throw(OR);
2566                     }
2567                     YY_BREAK
2568                 case 35:
2569                     YY_RULE_SETUP
2570                     {
2571                         return scan_throw(OROR);
2572                     }
2573                     YY_BREAK
2574                 case 36:
2575                     YY_RULE_SETUP
2576                     {
2577                         return scan_throw(LPAREN);
2578                     }
2579                     YY_BREAK
2580                 case 37:
2581                     YY_RULE_SETUP
2582                     {
2583                         return scan_throw(RPAREN);
2584                     }
2585                     YY_BREAK
2586                 case 38:
2587                     YY_RULE_SETUP
2588                     {
2589                         scan_step();
2590                         return scan_throw(SEMI);
2591                     }
2592                     YY_BREAK
2593                 case 39:
2594                     YY_RULE_SETUP
2595                     {
2596                         scan_step();
2597                         return scan_throw(COMMA);
2598                     }
2599                     YY_BREAK
2600                 case 40:
2601                     YY_RULE_SETUP
2602                     {
2603                         return scan_throw(COLON);
2604                     }
2605                     YY_BREAK
2606                 case 41:
2607                     YY_RULE_SETUP
2608                     {
2609                         yy_push_state(MATRIX);
2610                         ParserSingleInstance::pushControlStatus(Parser::WithinCell);
2611                         return scan_throw(LBRACE);
2612                     }
2613                     YY_BREAK
2614                 case 42:
2615                     YY_RULE_SETUP
2616                     {
2617                         return scan_throw(RBRACE);
2618                     }
2619                     YY_BREAK
2620                 case 43:
2621                     YY_RULE_SETUP
2622                     {
2623                         return scan_throw(DOTQUOTE);
2624                     }
2625                     YY_BREAK
2626                 case 44:
2627                     YY_RULE_SETUP
2628                     {
2629                         return scan_throw(DOTTIMES);
2630                     }
2631                     YY_BREAK
2632                 case 45:
2633                     YY_RULE_SETUP
2634                     {
2635                         return scan_throw(DOTRDIVIDE);
2636                     }
2637                     YY_BREAK
2638                 case 46:
2639                     YY_RULE_SETUP
2640                     {
2641                         return scan_throw(DOTLDIVIDE);
2642                     }
2643                     YY_BREAK
2644                 case 47:
2645                     YY_RULE_SETUP
2646                     {
2647                         return scan_throw(DOTPOWER);
2648                     }
2649                     YY_BREAK
2650                 case 48:
2651                     YY_RULE_SETUP
2652                     {
2653                         return scan_throw(MINUS);
2654                     }
2655                     YY_BREAK
2656                 case 49:
2657                     YY_RULE_SETUP
2658                     {
2659                         return scan_throw(PLUS);
2660                     }
2661                     YY_BREAK
2662                 case 50:
2663                     YY_RULE_SETUP
2664                     {
2665                         return scan_throw(TIMES);
2666                     }
2667                     YY_BREAK
2668                 case 51:
2669                     YY_RULE_SETUP
2670                     {
2671                         return scan_throw(RDIVIDE);
2672                     }
2673                     YY_BREAK
2674                 case 52:
2675                     YY_RULE_SETUP
2676                     {
2677                         return scan_throw(LDIVIDE);
2678                     }
2679                     YY_BREAK
2680                 case 53:
2681                     YY_RULE_SETUP
2682                     {
2683                         return scan_throw(POWER);
2684                     }
2685                     YY_BREAK
2686                 case 54:
2687                     YY_RULE_SETUP
2688                     {
2689                         return scan_throw(KRONTIMES);
2690                     }
2691                     YY_BREAK
2692                 case 55:
2693                     YY_RULE_SETUP
2694                     {
2695                         return scan_throw(KRONRDIVIDE);
2696                     }
2697                     YY_BREAK
2698                 case 56:
2699                     YY_RULE_SETUP
2700                     {
2701                         return scan_throw(KRONLDIVIDE);
2702                     }
2703                     YY_BREAK
2704                 case 57:
2705                     /* rule 57 can match eol */
2706                     YY_RULE_SETUP
2707                     {
2708                         unput(yytext[yyleng - 1]);
2709                         return scan_throw(CONTROLTIMES);
2710                     }
2711                     YY_BREAK
2712                 case 58:
2713                     /* rule 58 can match eol */
2714                     YY_RULE_SETUP
2715                     {
2716                         unput(yytext[yyleng - 1]);
2717                         return scan_throw(CONTROLRDIVIDE);
2718                     }
2719                     YY_BREAK
2720                 case 59:
2721                     /* rule 59 can match eol */
2722                     YY_RULE_SETUP
2723                     {
2724                         unput(yytext[yyleng - 1]);
2725                         return scan_throw(CONTROLLDIVIDE);
2726                     }
2727                     YY_BREAK
2728                 case 60:
2729                     YY_RULE_SETUP
2730                     {
2731                         return scan_throw(EQ);
2732                     }
2733                     YY_BREAK
2734                 case 61:
2735                     YY_RULE_SETUP
2736                     {
2737                         return scan_throw(NE);
2738                     }
2739                     YY_BREAK
2740                 case 62:
2741                     YY_RULE_SETUP
2742                     {
2743                         return scan_throw(LT);
2744                     }
2745                     YY_BREAK
2746                 case 63:
2747                     YY_RULE_SETUP
2748                     {
2749                         return scan_throw(GT);
2750                     }
2751                     YY_BREAK
2752                 case 64:
2753                     YY_RULE_SETUP
2754                     {
2755                         return scan_throw(LE);
2756                     }
2757                     YY_BREAK
2758                 case 65:
2759                     YY_RULE_SETUP
2760                     {
2761                         return scan_throw(GE);
2762                     }
2763                     YY_BREAK
2764                 case 66:
2765                     YY_RULE_SETUP
2766                     {
2767                         return scan_throw(ASSIGN);
2768                     }
2769                     YY_BREAK
2770                 case 67:
2771                     YY_RULE_SETUP
2772                     {
2773                         DEBUG("yy_push_state(MATRIX)");
2774                         yy_push_state(MATRIX);
2775                         ParserSingleInstance::pushControlStatus(Parser::WithinMatrix);
2776                         return scan_throw(LBRACK);
2777                     }
2778                     YY_BREAK
2779                 case 68:
2780                     YY_RULE_SETUP
2781                     {
2782                         return scan_throw(RBRACK);
2783                     }
2784                     YY_BREAK
2785                 case 69:
2786                     YY_RULE_SETUP
2787                     {
2788                         return scan_throw(DOT);
2789                     }
2790                     YY_BREAK
2791                 case 70:
2792                     YY_RULE_SETUP
2793                     {
2794                         ParserSingleInstance::pushControlStatus(Parser::WithinDots);
2795                         yy_push_state(LINEBREAK);
2796                     }
2797                     YY_BREAK
2798                 case 71:
2799                     YY_RULE_SETUP
2800                     {
2801                         yylval.number = atof(yytext);
2802 #ifdef TOKENDEV
2803                         std::cout << "--> [DEBUG] INTEGER : " << yytext << std::endl;
2804 #endif
2805                         //  scan_step();
2806                         return scan_throw(VARINT);
2807                     }
2808                     YY_BREAK
2809                 case 72:
2810                     YY_RULE_SETUP
2811                     {
2812                         scan_exponent_convert(yytext);
2813                         yylval.number = atof(yytext);
2814 #ifdef TOKENDEV
2815                         std::cout << "--> [DEBUG] FLOATING : " << yytext << std::endl;
2816 #endif
2817                         scan_step();
2818                         return scan_throw(VARFLOAT);
2819                     }
2820                     YY_BREAK
2821                 case 73:
2822                     YY_RULE_SETUP
2823                     {
2824                         yylval.number = atof(yytext);
2825 #ifdef TOKENDEV
2826                         std::cout << "--> [DEBUG] FLOATING : " << yytext << std::endl;
2827 #endif
2828                         scan_step();
2829                         return scan_throw(VARFLOAT);
2830                     }
2831                     YY_BREAK
2832                 case 74:
2833                     YY_RULE_SETUP
2834                     {
2835                         yylval.number = atof(yytext);
2836 #ifdef TOKENDEV
2837                         std::cout << "--> [DEBUG] NUMBER : " << yytext << std::endl;
2838 #endif
2839                         //  scan_step();
2840                         return scan_throw(NUM);
2841                     }
2842                     YY_BREAK
2843                 case 75:
2844                     YY_RULE_SETUP
2845                     {
2846                         yylval.number = atof(yytext);
2847 #ifdef TOKENDEV
2848                         std::cout << "--> [DEBUG] LITTLE : " << yytext << std::endl;
2849 #endif
2850                         scan_step();
2851                         return scan_throw(NUM);
2852                     }
2853                     YY_BREAK
2854                 case 76:
2855                     YY_RULE_SETUP
2856                     {
2857                         wchar_t *pwText = to_wide_string(yytext);
2858                         if (yytext != NULL && pwText == NULL)
2859                         {
2860                             std::string str = "Can\'t convert \'";
2861                             str += yytext;
2862                             str += "\' to UTF-8";
2863                             BEGIN(INITIAL);
2864                             yyerror(str);
2865                             return scan_throw(FLEX_ERROR);
2866                         }
2867                         yylval.str = new std::wstring(pwText);
2868                         FREE(pwText);
2869 #ifdef TOKENDEV
2870                         std::cout << "--> [DEBUG] ID : " << yytext << std::endl;
2871 #endif
2872                         //  scan_step();
2873                         return scan_throw(ID);
2874                     }
2875                     YY_BREAK
2876                 case 77:
2877                     YY_RULE_SETUP
2878                     {
2879                         yylval.comment = new std::wstring();
2880                         comment_level = 1;
2881                         ParserSingleInstance::pushControlStatus(Parser::WithinBlockComment);
2882                         yy_push_state(REGIONCOMMENT);
2883                     }
2884                     YY_BREAK
2885                 case 78:
2886                     YY_RULE_SETUP
2887                     {
2888                         pstBuffer.clear();
2889                         yy_push_state(LINECOMMENT);
2890                     }
2891                     YY_BREAK
2892                 case 79:
2893                     YY_RULE_SETUP
2894                     {
2895                         pstBuffer.clear();
2896                         yy_push_state(DOUBLESTRING);
2897                     }
2898                     YY_BREAK
2899                 case 80:
2900                     YY_RULE_SETUP
2901                     {
2902                         /*
2903                         ** Matrix Transposition special behaviour
2904                         ** ID' []' toto()' are transposition call
2905                         */
2906                         if (last_token == ID
2907                         || last_token == RBRACK
2908                         || last_token == RPAREN
2909                         || last_token == RBRACE
2910                         || last_token == VARINT
2911                         || last_token == VARFLOAT
2912                         || last_token == NUM
2913                         || last_token == BOOLTRUE
2914                         || last_token == BOOLFALSE)
2915                         {
2916                             return scan_throw(QUOTE);
2917                         }
2918                         else
2919                         {
2920                             pstBuffer.clear();
2921                             yy_push_state(SIMPLESTRING);
2922                         }
2923                     }
2924                     YY_BREAK
2925                 case 81:
2926                     YY_RULE_SETUP
2927                     {
2928                         scan_step();
2929                         scan_throw(SPACES);
2930                     }
2931                     YY_BREAK
2932                 case 82:
2933                     /* rule 82 can match eol */
2934                     YY_RULE_SETUP
2935                     {
2936                         yylloc.last_line += 1;
2937                         yylloc.last_column = 1;
2938                         scan_step();
2939                         if (last_token != EOL)
2940                         {
2941                             return scan_throw(EOL);
2942                         }
2943
2944                     }
2945                     YY_BREAK
2946                 case 83:
2947                     /* rule 83 can match eol */
2948                     YY_RULE_SETUP
2949                     {
2950                         yylloc.last_line += 1;
2951                         yylloc.last_column = 1;
2952                         scan_step();
2953                         if (last_token != EOL)
2954                         {
2955                             return scan_throw(EOL);
2956                         }
2957                         scan_throw(EOL);
2958                     }
2959                     YY_BREAK
2960                 case 84:
2961                     /* rule 84 can match eol */
2962                     YY_RULE_SETUP
2963                     {
2964                         yylloc.last_line += 2;
2965                         yylloc.last_column = 1;
2966                         scan_step();
2967                         if (last_token != EOL)
2968                         {
2969                             return scan_throw(EOL);
2970                         }
2971                         scan_throw(EOL);
2972                     }
2973                     YY_BREAK
2974                 case 85:
2975                     YY_RULE_SETUP
2976                     {
2977                         std::string str = "Unexpected token \'";
2978                         str += yytext;
2979                         str += "\'";
2980                         BEGIN(INITIAL);
2981                         yyerror(str);
2982                         return scan_throw(FLEX_ERROR);
2983                     }
2984                     YY_BREAK
2985
2986                 case 86:
2987                     YY_RULE_SETUP
2988                     {
2989                         paren_level++;
2990                         return scan_throw(LPAREN);
2991                     }
2992                     YY_BREAK
2993                 case 87:
2994                     YY_RULE_SETUP
2995                     {
2996                         paren_level--;
2997                         return scan_throw(RPAREN);
2998                     }
2999                     YY_BREAK
3000                 case 88:
3001                     YY_RULE_SETUP
3002                     {
3003                         unput(yytext[yyleng - 1]);
3004                         if (last_token == ID
3005                         || last_token == RPAREN
3006                         || last_token == QUOTE
3007                         || last_token == VARINT
3008                         || last_token == VARFLOAT
3009                         || last_token == NUM)
3010                         {
3011                             return scan_throw(COMMA);
3012                         }
3013                     }
3014                     YY_BREAK
3015                 case 89:
3016                     YY_RULE_SETUP
3017                     {
3018                         return scan_throw(COLON);
3019                     }
3020                     YY_BREAK
3021                 case 90:
3022                     /* rule 90 can match eol */
3023                     YY_RULE_SETUP
3024                     {
3025                         yylloc.last_line += 1;
3026                         yylloc.last_column = 1;
3027                         if (last_token != DOTS && last_token != EOL)
3028                         {
3029                             return scan_throw(EOL);
3030                         }
3031                         scan_throw(EOL);
3032                     }
3033                     YY_BREAK
3034                 case 91:
3035                     YY_RULE_SETUP
3036                     {
3037                         DEBUG("yy_pop_state()");
3038                         yy_pop_state();
3039                         ParserSingleInstance::popControlStatus();
3040                         return scan_throw(RBRACK);
3041                     }
3042                     YY_BREAK
3043                 case 92:
3044                     YY_RULE_SETUP
3045                     {
3046                         yy_pop_state();
3047                         ParserSingleInstance::popControlStatus();
3048                         return scan_throw(RBRACE);
3049                     }
3050                     YY_BREAK
3051                 case 93:
3052                 case 94:
3053                     YY_RULE_SETUP
3054                     {
3055                         return scan_throw(PLUS);
3056                     }
3057                     YY_BREAK
3058                 case 95:
3059                 case 96:
3060                     YY_RULE_SETUP
3061                     {
3062                         return scan_throw(MINUS);
3063                     }
3064                     YY_BREAK
3065                 case 97:
3066                     YY_RULE_SETUP
3067                     {
3068                         // no need to unput the '+'
3069                         if (last_token != LBRACK
3070                         && last_token != EOL
3071                         && last_token != SEMI
3072                         && last_token != COMMA
3073                         && paren_level == 0)
3074                         {
3075                             return scan_throw(COMMA);
3076                         }
3077                         else
3078                         {
3079                             unput('+');
3080                         }
3081                     }
3082                     YY_BREAK
3083                 case 98:
3084                     YY_RULE_SETUP
3085                     {
3086                         unput('-');
3087                         if (last_token != LBRACK
3088                         && last_token != EOL
3089                         && last_token != SEMI
3090                         && last_token != COMMA
3091                         && paren_level == 0)
3092                         {
3093                             return scan_throw(COMMA);
3094                         }
3095                     }
3096                     YY_BREAK
3097                 case 99:
3098                     YY_RULE_SETUP
3099                     {
3100                         std::string str = "Unexpected token \'";
3101                         str += yytext;
3102                         str += "\' within a matrix.";
3103                         BEGIN(INITIAL);
3104                         yyerror(str);
3105                         return scan_throw(FLEX_ERROR);
3106                     }
3107                     YY_BREAK
3108                 case 100:
3109                     /* rule 100 can match eol */
3110                     YY_RULE_SETUP
3111                     {
3112                         /* Just do nothing */
3113                         yylloc.last_line += 1;
3114                         yylloc.last_column = 1;
3115                         scan_step();
3116                         scan_throw(EOL);
3117                     }
3118                     YY_BREAK
3119                 case 101:
3120                     YY_RULE_SETUP
3121                     {
3122                         /* Just do nothing */
3123                         pstBuffer.clear();
3124                         yy_push_state(LINECOMMENT);
3125                         scan_throw(DOTS);
3126                     }
3127                     YY_BREAK
3128                 case YY_STATE_EOF(MATRIX):
3129                 {
3130                     yy_pop_state();
3131                 }
3132                 YY_BREAK
3133
3134                 case 102:
3135                     /* rule 102 can match eol */
3136                     YY_RULE_SETUP
3137                     {
3138                         yylloc.last_line += 1;
3139                         yylloc.last_column = 1;
3140                         scan_step();
3141                         yy_pop_state();
3142                         ParserSingleInstance::popControlStatus();
3143                     }
3144                     YY_BREAK
3145                 case 103:
3146                     YY_RULE_SETUP
3147                     {
3148                         ++comment_level;
3149                         yy_push_state(REGIONCOMMENT);
3150                     }
3151                     YY_BREAK
3152                 case 104:
3153                     YY_RULE_SETUP
3154                     {
3155                         scan_throw(DOTS);
3156                         pstBuffer.clear();
3157                         yy_push_state(LINECOMMENT);
3158                     }
3159                     YY_BREAK
3160                 case 105:
3161                     YY_RULE_SETUP
3162                     {
3163                         /* Do nothing... */
3164                     }
3165                     YY_BREAK
3166                 case YY_STATE_EOF(LINEBREAK):
3167                 {
3168                     yy_pop_state();
3169                 }
3170                 YY_BREAK
3171                 case 106:
3172                     YY_RULE_SETUP
3173                     {
3174                         std::string str = "Unexpected token \'";
3175                         str += yytext;
3176                         str += "\' after line break with .. or ...";
3177                         BEGIN(INITIAL);
3178                         yyerror(str);
3179                         return scan_throw(FLEX_ERROR);
3180                     }
3181                     YY_BREAK
3182
3183                 case 107:
3184                     /* rule 107 can match eol */
3185                     YY_RULE_SETUP
3186                     {
3187                         //yylloc.last_line += 1;
3188                         //yylloc.last_column = 1;
3189                         //scan_step();
3190                         yy_pop_state();
3191                         for (int i = yyleng - 1 ; i >= 0 ; --i)
3192                         {
3193                             //std::cerr << "Unputting i = {" << i << "}" << std::endl;
3194                             //std::cerr << "Unputting {" << yytext[i] << "}" << std::endl;
3195                             unput(yytext[i]);
3196                             yylloc.last_column--;
3197                         }
3198                         /*
3199                         ** To forgot comments after lines break
3200                         */
3201                         if (last_token != DOTS)
3202                         {
3203                             //std::cerr << "pstBuffer = {" << *pstBuffer << "}" << std::endl;
3204                             //std::cerr << "pstBuffer->c_str() = {" << pstBuffer->c_str() << "}" << std::endl;
3205                             wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3206                             //std::wcerr << L"pwstBuffer = W{" << pwstBuffer << L"}" << std::endl;
3207                             if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3208                             {
3209                                 pstBuffer.clear();
3210                                 std::string str = "Can\'t convert \'";
3211                                 str += pstBuffer.c_str();
3212                                 str += "\' to UTF-8";
3213                                 BEGIN(INITIAL);
3214                                 yyerror(str);
3215                                 return scan_throw(FLEX_ERROR);
3216                             }
3217                             yylval.comment = new std::wstring(pwstBuffer);
3218                             pstBuffer.clear();
3219                             FREE (pwstBuffer);
3220                             return scan_throw(COMMENT);
3221                         }
3222                         else
3223                         {
3224                             pstBuffer.clear();
3225                         }
3226                     }
3227                     YY_BREAK
3228                 case YY_STATE_EOF(LINECOMMENT):
3229                 {
3230                     yy_pop_state();
3231                     wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3232                     if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3233                     {
3234                         pstBuffer.clear();
3235                         std::string str = "Can\'t convert \'";
3236                         str += pstBuffer.c_str();
3237                         str += "\' to UTF-8";
3238                         BEGIN(INITIAL);
3239                         yyerror(str);
3240                         return scan_throw(FLEX_ERROR);
3241                     }
3242                     yylval.comment = new std::wstring(pwstBuffer);
3243                     pstBuffer.clear();
3244                     FREE (pwstBuffer);
3245                     return scan_throw(COMMENT);
3246                 }
3247                 YY_BREAK
3248                 case 108:
3249                     YY_RULE_SETUP
3250                     {
3251                         // Put the char in a temporary CHAR buffer to go through UTF-8 trouble
3252                         // only translate to WCHAR_T when popping state.
3253                         pstBuffer += yytext;
3254                     }
3255                     YY_BREAK
3256
3257                 case 109:
3258                     YY_RULE_SETUP
3259                     {
3260                         --comment_level;
3261                         if (comment_level == 0)
3262                         {
3263                             ParserSingleInstance::popControlStatus();
3264                             yy_pop_state();
3265                             //return scan_throw(BLOCKCOMMENT);
3266                         }
3267                     }
3268                     YY_BREAK
3269                 case 110:
3270                     YY_RULE_SETUP
3271                     {
3272                         ++comment_level;
3273                         yy_push_state(REGIONCOMMENT);
3274                     }
3275                     YY_BREAK
3276                 case 111:
3277                     /* rule 111 can match eol */
3278                     YY_RULE_SETUP
3279                     {
3280                         yylloc.last_line += 1;
3281                         yylloc.last_column = 1;
3282                         scan_step();
3283                         *yylval.comment += L"\n//";
3284                     }
3285                     YY_BREAK
3286                 case 112:
3287                 case 113:
3288                     YY_RULE_SETUP
3289                     {
3290                         wchar_t *pwText = to_wide_string(yytext);
3291                         *yylval.comment += std::wstring(pwText);
3292                         FREE(pwText);
3293                     }
3294                     YY_BREAK
3295                 case YY_STATE_EOF(REGIONCOMMENT):
3296                 {
3297                     yy_pop_state();
3298                     //    std::string str = "unexpected end of file in a comment";
3299                     //    scan_error(str);
3300                 }
3301                 YY_BREAK
3302
3303                 case 114:
3304                     YY_RULE_SETUP
3305                     {
3306                         pstBuffer += "\"";
3307                     }
3308                     YY_BREAK
3309                 case 115:
3310                     YY_RULE_SETUP
3311                     {
3312                         pstBuffer += "'";
3313                     }
3314                     YY_BREAK
3315                 case 116:
3316                     YY_RULE_SETUP
3317                     {
3318                         pstBuffer += "\"";
3319                     }
3320                     YY_BREAK
3321                 case 117:
3322                     YY_RULE_SETUP
3323                     {
3324                         pstBuffer += "'";
3325                     }
3326                     YY_BREAK
3327                 case 118:
3328                     YY_RULE_SETUP
3329                     {
3330                         yy_pop_state();
3331                         scan_step();
3332                         wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3333                         if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3334                         {
3335                             pstBuffer.clear();
3336                             std::string str = "Can\'t convert \'";
3337                             str += pstBuffer.c_str();
3338                             str += "\' to UTF-8";
3339                             BEGIN(INITIAL);
3340                             yyerror(str);
3341                             return scan_throw(FLEX_ERROR);
3342                         }
3343                         yylval.str = new std::wstring(pwstBuffer);
3344                         pstBuffer.clear();
3345                         FREE(pwstBuffer);
3346                         return scan_throw(STR);
3347                     }
3348                     YY_BREAK
3349                 case 119:
3350                     YY_RULE_SETUP
3351                     {
3352                         pstBuffer.clear();
3353                         BEGIN(INITIAL);
3354                         yyerror("Heterogeneous string detected, starting with \' and ending with \".");
3355                         return scan_throw(FLEX_ERROR);
3356                     }
3357                     YY_BREAK
3358                 case 120:
3359                     /* rule 120 can match eol */
3360                     YY_RULE_SETUP
3361                     {
3362                         /* Do nothing... Just skip */
3363                     }
3364                     YY_BREAK
3365                 case 121:
3366                     /* rule 121 can match eol */
3367                     YY_RULE_SETUP
3368                     {
3369                         pstBuffer.clear();
3370                         yylloc.last_line += 1;
3371                         yylloc.last_column = 1;
3372                         BEGIN(INITIAL);
3373                         yyerror("Unexpected end of line in a string.");
3374                         return scan_throw(FLEX_ERROR);
3375                     }
3376                     YY_BREAK
3377                 case YY_STATE_EOF(SIMPLESTRING):
3378                 {
3379                     pstBuffer.clear();
3380                     BEGIN(INITIAL);
3381                     yyerror("Unexpected end of file in a string.");
3382                     return scan_throw(FLEX_ERROR);
3383                 }
3384                 YY_BREAK
3385                 case 122:
3386                 case 123:
3387                     YY_RULE_SETUP
3388                     {
3389                         scan_step();
3390                         pstBuffer += yytext;
3391                     }
3392                     YY_BREAK
3393
3394                 case 124:
3395                     YY_RULE_SETUP
3396                     {
3397                         pstBuffer += "\"";
3398                     }
3399                     YY_BREAK
3400                 case 125:
3401                     YY_RULE_SETUP
3402                     {
3403                         pstBuffer += "'";
3404                     }
3405                     YY_BREAK
3406                 case 126:
3407                     YY_RULE_SETUP
3408                     {
3409                         pstBuffer += "\"";
3410                     }
3411                     YY_BREAK
3412                 case 127:
3413                     YY_RULE_SETUP
3414                     {
3415                         pstBuffer += "'";
3416                     }
3417                     YY_BREAK
3418                 case 128:
3419                     YY_RULE_SETUP
3420                     {
3421                         yy_pop_state();
3422                         scan_step();
3423                         wchar_t *pwstBuffer = to_wide_string(pstBuffer.c_str());
3424                         if (pstBuffer.c_str() != NULL && pwstBuffer == NULL)
3425                         {
3426                             pstBuffer.clear();
3427                             std::string str = "Can\'t convert \'";
3428                             str += pstBuffer.c_str();
3429                             str += "\' to UTF-8";
3430                             BEGIN(INITIAL);
3431                             yyerror(str);
3432                             return scan_throw(FLEX_ERROR);
3433                         }
3434                         yylval.str = new std::wstring(pwstBuffer);
3435                         pstBuffer.clear();
3436                         FREE(pwstBuffer);
3437                         return scan_throw(STR);
3438                     }
3439                     YY_BREAK
3440                 case 129:
3441                     YY_RULE_SETUP
3442                     {
3443                         pstBuffer.clear();
3444                         BEGIN(INITIAL);
3445                         yyerror("Heterogeneous string detected, starting with \" and ending with \'.");
3446                         return scan_throw(FLEX_ERROR);
3447                     }
3448                     YY_BREAK
3449                 case 130:
3450                     /* rule 130 can match eol */
3451                     YY_RULE_SETUP
3452                     {
3453                         /* Do nothing... Just skip */
3454                     }
3455                     YY_BREAK
3456                 case 131:
3457                     /* rule 131 can match eol */
3458                     YY_RULE_SETUP
3459                     {
3460                         pstBuffer.clear();
3461                         yylloc.last_line += 1;
3462                         yylloc.last_column = 1;
3463                         BEGIN(INITIAL);
3464                         yyerror("Unexpected end of line in a string.");
3465                         return scan_throw(FLEX_ERROR);
3466                     }
3467                     YY_BREAK
3468                 case YY_STATE_EOF(DOUBLESTRING):
3469                 {
3470                     pstBuffer.clear();
3471                     BEGIN(INITIAL);
3472                     yyerror("Unexpected end of file in a string.");
3473                     return scan_throw(FLEX_ERROR);
3474                 }
3475                 YY_BREAK
3476                 case 132:
3477                 case 133:
3478                     YY_RULE_SETUP
3479                     {
3480                         scan_step();
3481                         pstBuffer += yytext;
3482                     }
3483                     YY_BREAK
3484
3485                 case 134:
3486                     YY_RULE_SETUP
3487                     {
3488                         if (last_token == ID)
3489                         {
3490                             scan_throw(SPACES);
3491                             return ID;
3492                         }
3493                     }
3494                     YY_BREAK
3495                 case 135:
3496                     YY_RULE_SETUP
3497                     {
3498                         BEGIN(INITIAL);
3499                         scan_step();
3500                         return scan_throw(SEMI);
3501                     }
3502                     YY_BREAK
3503                 case 136:
3504                     YY_RULE_SETUP
3505                     {
3506                         BEGIN(INITIAL);
3507                         scan_step();
3508                         return scan_throw(COMMA);
3509                     }
3510                     YY_BREAK
3511                 case 137:
3512                     /* rule 137 can match eol */
3513                     YY_RULE_SETUP
3514                     {
3515                         BEGIN(INITIAL);
3516                         yylloc.last_line += 1;
3517                         yylloc.last_column = 1;
3518                         scan_step();
3519                         return scan_throw(EOL);
3520                     }
3521                     YY_BREAK
3522                 case 138:
3523                     YY_RULE_SETUP
3524                     {
3525                         if (last_token == STR || last_token == SPACES)
3526                         {
3527                             wchar_t *pwText = to_wide_string(yytext);
3528                             yylval.str = new std::wstring(pwText);
3529                             FREE(pwText);
3530                             return scan_throw(STR);
3531                         }
3532                         else
3533                         {
3534                             BEGIN(INITIAL);
3535                             return scan_throw(ASSIGN);
3536                         }
3537                     }
3538                     YY_BREAK
3539                 case 139:
3540                     YY_RULE_SETUP
3541                     {
3542                         if (last_token == STR || last_token == SPACES)
3543                         {
3544                             wchar_t *pwText = to_wide_string(yytext);
3545                             yylval.str = new std::wstring(pwText);
3546                             FREE(pwText);
3547                             return scan_throw(STR);
3548                         }
3549                         else
3550                         {
3551                             BEGIN(INITIAL);
3552                             return scan_throw(LPAREN);
3553                         }
3554                     }
3555                     YY_BREAK
3556                 case 140:
3557                     YY_RULE_SETUP
3558                     {
3559                         if (last_token == STR || last_token == SPACES)
3560                         {
3561                             wchar_t *pwText = to_wide_string(yytext);
3562                             yylval.str = new std::wstring(pwText);
3563                             FREE(pwText);
3564                             return scan_throw(STR);
3565                         }
3566                         else
3567                         {
3568                             BEGIN(INITIAL);
3569                             return scan_throw(LT);
3570                         }
3571                     }
3572                     YY_BREAK
3573                 case 141:
3574                     YY_RULE_SETUP
3575                     {
3576                         if (last_token == STR || last_token == SPACES)
3577                         {
3578                             wchar_t *pwText = to_wide_string(yytext);
3579                             yylval.str = new std::wstring(pwText);
3580                             FREE(pwText);
3581                             return scan_throw(STR);
3582                         }
3583                         else
3584                         {
3585                             BEGIN(INITIAL);
3586                             return scan_throw(GT);
3587                         }
3588                     }
3589                     YY_BREAK
3590                 case 142:
3591                     YY_RULE_SETUP
3592                     {
3593                         if (last_token == STR || last_token == SPACES)
3594                         {
3595                             wchar_t *pwText = to_wide_string(yytext);
3596                             yylval.str = new std::wstring(pwText);
3597                             FREE(pwText);
3598                             return scan_throw(STR);
3599                         }
3600                         else
3601                         {
3602                             BEGIN(INITIAL);
3603                             return scan_throw(NOT);
3604                         }
3605                     }
3606                     YY_BREAK
3607                 case 143:
3608                     YY_RULE_SETUP
3609                     {
3610                         wchar_t *pwText = to_wide_string(yytext);
3611                         yylval.str = new std::wstring(pwText);
3612                         FREE(pwText);
3613                         return scan_throw(STR);
3614                     }
3615                     YY_BREAK
3616                 case YY_STATE_EOF(SHELLMODE):
3617                 {
3618                     BEGIN(INITIAL);
3619                 }
3620                 YY_BREAK
3621
3622                 case 144:
3623                     YY_RULE_SETUP
3624                     ECHO;
3625                     YY_BREAK
3626                 case YY_STATE_EOF(INITIAL):
3627                 case YY_STATE_EOF(BEGINID):
3628                     yyterminate();
3629
3630                 case YY_END_OF_BUFFER:
3631                 {
3632                     /* Amount of text matched not including the EOB char. */
3633                     int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3634
3635                     /* Undo the effects of YY_DO_BEFORE_ACTION. */
3636                     *yy_cp = (yy_hold_char);
3637                     YY_RESTORE_YY_MORE_OFFSET
3638
3639                     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3640                     {
3641                         /* We're scanning a new file or input source.  It's
3642                          * possible that this happened because the user
3643                          * just pointed yyin at a new source and called
3644                          * yylex().  If so, then we have to assure
3645                          * consistency between YY_CURRENT_BUFFER and our
3646                          * globals.  Here is the right place to do so, because
3647                          * this is the first action (other than possibly a
3648                          * back-up) that will match for the new input source.
3649                          */
3650                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3651                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3652                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3653                     }
3654
3655                     /* Note that here we test for yy_c_buf_p "<=" to the position
3656                      * of the first EOB in the buffer, since yy_c_buf_p will
3657                      * already have been incremented past the NUL character
3658                      * (since all states make transitions on EOB to the
3659                      * end-of-buffer state).  Contrast this with the test
3660                      * in input().
3661                      */
3662                     if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3663                     {
3664                         /* This was really a NUL. */
3665                         yy_state_type yy_next_state;
3666
3667                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3668
3669                         yy_current_state = yy_get_previous_state(  );
3670
3671                         /* Okay, we're now positioned to make the NUL
3672                          * transition.  We couldn't have
3673                          * yy_get_previous_state() go ahead and do it
3674                          * for us because it doesn't know how to deal
3675                          * with the possibility of jamming (and we don't
3676                          * want to build jamming into it because then it
3677                          * will run more slowly).
3678                          */
3679
3680                         yy_next_state = yy_try_NUL_trans( yy_current_state );
3681
3682                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3683
3684                         if ( yy_next_state )
3685                         {
3686                             /* Consume the NUL. */
3687                             yy_cp = ++(yy_c_buf_p);
3688                             yy_current_state = yy_next_state;
3689                             goto yy_match;
3690                         }
3691
3692                         else
3693                         {
3694                             yy_cp = (yy_c_buf_p);
3695                             goto yy_find_action;
3696                         }
3697                     }
3698
3699                     else switch ( yy_get_next_buffer(  ) )
3700                         {
3701                             case EOB_ACT_END_OF_FILE:
3702                             {
3703                                 (yy_did_buffer_switch_on_eof) = 0;
3704
3705                                 if ( yywrap( ) )
3706                                 {
3707                                     /* Note: because we've taken care in
3708                                      * yy_get_next_buffer() to have set up
3709                                      * yytext, we can now set up
3710                                      * yy_c_buf_p so that if some total
3711                                      * hoser (like flex itself) wants to
3712                                      * call the scanner after we return the
3713                                      * YY_NULL, it'll still work - another
3714                                      * YY_NULL will get returned.
3715                                      */
3716                                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3717
3718                                     yy_act = YY_STATE_EOF(YY_START);
3719                                     goto do_action;
3720                                 }
3721
3722                                 else
3723                                 {
3724                                     if ( ! (yy_did_buffer_switch_on_eof) )
3725                                     {
3726                                         YY_NEW_FILE;
3727                                     }
3728                                 }
3729                                 break;
3730                             }
3731
3732                             case EOB_ACT_CONTINUE_SCAN:
3733                                 (yy_c_buf_p) =
3734                                     (yytext_ptr) + yy_amount_of_matched_text;
3735
3736                                 yy_current_state = yy_get_previous_state(  );
3737
3738                                 yy_cp = (yy_c_buf_p);
3739                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3740                                 goto yy_match;
3741
3742                             case EOB_ACT_LAST_MATCH:
3743                                 (yy_c_buf_p) =
3744                                     &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3745
3746                                 yy_current_state = yy_get_previous_state(  );
3747
3748                                 yy_cp = (yy_c_buf_p);
3749                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3750                                 goto yy_find_action;
3751                         }
3752                     break;
3753                 }
3754
3755                 default:
3756                     YY_FATAL_ERROR(
3757                         "fatal flex scanner internal error--no action found" );
3758             } /* end of action switch */
3759         } /* end of scanning one token */
3760     } /* end of user's declarations */
3761 } /* end of yylex */
3762
3763 /* yy_get_next_buffer - try to read in a new buffer
3764  *
3765  * Returns a code representing an action:
3766  *      EOB_ACT_LAST_MATCH -
3767  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3768  *      EOB_ACT_END_OF_FILE - end of file
3769  */
3770 static int yy_get_next_buffer (void)
3771 {
3772     register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3773     register char *source = (yytext_ptr);
3774     register int number_to_move, i;
3775     int ret_val;
3776
3777     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3778         YY_FATAL_ERROR(
3779             "fatal flex scanner internal error--end of buffer missed" );
3780
3781     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3782     {
3783         /* Don't try to fill the buffer, so this is an EOF. */
3784         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3785         {
3786             /* We matched a single character, the EOB, so
3787              * treat this as a final EOF.
3788              */
3789             return EOB_ACT_END_OF_FILE;
3790         }
3791
3792         else
3793         {
3794             /* We matched some text prior to the EOB, first
3795              * process it.
3796              */
3797             return EOB_ACT_LAST_MATCH;
3798         }
3799     }
3800
3801     /* Try to read more data. */
3802
3803     /* First move last chars to start of buffer. */
3804     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3805
3806     for ( i = 0; i < number_to_move; ++i )
3807     {
3808         *(dest++) = *(source++);
3809     }
3810
3811     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3812         /* don't do the read, it's not guaranteed to return an EOF,
3813          * just force an EOF
3814          */
3815     {
3816         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3817     }
3818
3819     else
3820     {
3821         yy_size_t num_to_read =
3822             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3823
3824         while ( num_to_read <= 0 )
3825         {
3826             /* Not enough room in the buffer - grow it. */
3827
3828             YY_FATAL_ERROR(
3829                 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3830
3831         }
3832
3833         if ( num_to_read > YY_READ_BUF_SIZE )
3834         {
3835             num_to_read = YY_READ_BUF_SIZE;
3836         }
3837
3838         /* Read in more data. */
3839         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3840                   (yy_n_chars), num_to_read );
3841
3842         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3843     }
3844
3845     if ( (yy_n_chars) == 0 )
3846     {
3847         if ( number_to_move == YY_MORE_ADJ )
3848         {
3849             ret_val = EOB_ACT_END_OF_FILE;
3850             yyrestart(yyin  );
3851         }
3852
3853         else
3854         {
3855             ret_val = EOB_ACT_LAST_MATCH;
3856             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3857                 YY_BUFFER_EOF_PENDING;
3858         }
3859     }
3860
3861     else
3862     {
3863         ret_val = EOB_ACT_CONTINUE_SCAN;
3864     }
3865
3866     if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size)
3867     {
3868         /* Extend the array by 50%, plus the number we really need. */
3869         yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3870         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size  );
3871         if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3872         {
3873             YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3874         }
3875     }
3876
3877     (yy_n_chars) += number_to_move;
3878     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3879     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3880
3881     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3882
3883     return ret_val;
3884 }
3885
3886 /* yy_get_previous_state - get the state just before the EOB char was reached */
3887
3888 static yy_state_type yy_get_previous_state (void)
3889 {
3890     register yy_state_type yy_current_state;
3891     register char *yy_cp;
3892
3893     yy_current_state = (yy_start);
3894     yy_current_state += YY_AT_BOL();
3895
3896     (yy_state_ptr) = (yy_state_buf);
3897     *(yy_state_ptr)++ = yy_current_state;
3898
3899     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3900     {
3901         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3902         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3903         {
3904             yy_current_state = (int) yy_def[yy_current_state];
3905             if ( yy_current_state >= 854 )
3906             {
3907                 yy_c = yy_meta[(unsigned int) yy_c];
3908             }
3909         }
3910         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3911         *(yy_state_ptr)++ = yy_current_state;
3912     }
3913
3914     return yy_current_state;
3915 }
3916
3917 /* yy_try_NUL_trans - try to make a transition on the NUL character
3918  *
3919  * synopsis
3920  *      next_state = yy_try_NUL_trans( current_state );
3921  */
3922 static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3923 {
3924     register int yy_is_jam;
3925
3926     register YY_CHAR yy_c = 1;
3927     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3928     {
3929         yy_current_state = (int) yy_def[yy_current_state];
3930         if ( yy_current_state >= 854 )
3931         {
3932             yy_c = yy_meta[(unsigned int) yy_c];
3933         }
3934     }
3935     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3936     yy_is_jam = (yy_current_state == 853);
3937     if ( ! yy_is_jam )
3938     {
3939         *(yy_state_ptr)++ = yy_current_state;
3940     }
3941
3942     return yy_is_jam ? 0 : yy_current_state;
3943 }
3944
3945 static void yyunput (int c, register char * yy_bp )
3946 {
3947     register char *yy_cp;
3948
3949     yy_cp = (yy_c_buf_p);
3950
3951     /* undo effects of setting up yytext */
3952     *yy_cp = (yy_hold_char);
3953
3954     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3955     {
3956         /* need to shift things up to make room */
3957         /* +2 for EOB chars. */
3958         register yy_size_t number_to_move = (yy_n_chars) + 2;
3959         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3960                                   YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3961         register char *source =
3962             &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3963
3964         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3965         {
3966             *--dest = *--source;
3967         }
3968
3969         yy_cp += (int) (dest - source);
3970         yy_bp += (int) (dest - source);
3971         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3972             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3973
3974         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3975         {
3976             YY_FATAL_ERROR( "flex scanner push-back overflow" );
3977         }
3978     }
3979
3980     *--yy_cp = (char) c;
3981
3982     (yytext_ptr) = yy_bp;
3983     (yy_hold_char) = *yy_cp;
3984     (yy_c_buf_p) = yy_cp;
3985 }
3986
3987 #ifndef YY_NO_INPUT
3988 #ifdef __cplusplus
3989 static int yyinput (void)
3990 #else
3991 static int input  (void)
3992 #endif
3993
3994 {
3995     int c;
3996
3997     *(yy_c_buf_p) = (yy_hold_char);
3998
3999     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4000     {
4001         /* yy_c_buf_p now points to the character we want to return.
4002          * If this occurs *before* the EOB characters, then it's a
4003          * valid NUL; if not, then we've hit the end of the buffer.
4004          */
4005         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4006             /* This was really a NUL. */
4007         {
4008             *(yy_c_buf_p) = '\0';
4009         }
4010
4011         else
4012         {
4013             /* need more input */
4014             yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
4015             ++(yy_c_buf_p);
4016
4017             switch ( yy_get_next_buffer(  ) )
4018             {
4019                 case EOB_ACT_LAST_MATCH:
4020                     /* This happens because yy_g_n_b()
4021                      * sees that we've accumulated a
4022                      * token and flags that we need to
4023                      * try matching the token before
4024                      * proceeding.  But for input(),
4025                      * there's no matching to consider.
4026                      * So convert the EOB_ACT_LAST_MATCH
4027                      * to EOB_ACT_END_OF_FILE.
4028                      */
4029
4030                     /* Reset buffer status. */
4031                     yyrestart(yyin );
4032
4033                 /*FALLTHROUGH*/
4034
4035                 case EOB_ACT_END_OF_FILE:
4036                 {
4037                     if ( yywrap( ) )
4038                     {
4039                         return EOF;
4040                     }
4041
4042                     if ( ! (yy_did_buffer_switch_on_eof) )
4043                     {
4044                         YY_NEW_FILE;
4045                     }
4046 #ifdef __cplusplus
4047                     return yyinput();
4048 #else
4049                     return input();
4050 #endif
4051                 }
4052
4053                 case EOB_ACT_CONTINUE_SCAN:
4054                     (yy_c_buf_p) = (yytext_ptr) + offset;
4055                     break;
4056             }
4057         }
4058     }
4059
4060     c = *(unsigned char *) (yy_c_buf_p);        /* cast for 8-bit char's */
4061     *(yy_c_buf_p) = '\0';       /* preserve yytext */
4062     (yy_hold_char) = *++(yy_c_buf_p);
4063
4064     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4065
4066     return c;
4067 }
4068 #endif  /* ifndef YY_NO_INPUT */
4069
4070 /** Immediately switch to a different input stream.
4071  * @param input_file A readable stream.
4072  *
4073  * @note This function does not reset the start condition to @c INITIAL .
4074  */
4075 void yyrestart  (FILE * input_file )
4076 {
4077
4078     if ( ! YY_CURRENT_BUFFER )
4079     {
4080         yyensure_buffer_stack ();
4081         YY_CURRENT_BUFFER_LVALUE =
4082             yy_create_buffer(yyin, YY_BUF_SIZE );
4083     }
4084
4085     yy_init_buffer(YY_CURRENT_BUFFER, input_file );
4086     yy_load_buffer_state( );
4087 }
4088
4089 /** Switch to a different input buffer.
4090  * @param new_buffer The new input buffer.
4091  *
4092  */
4093 void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4094 {
4095
4096     /* TODO. We should be able to replace this entire function body
4097      * with
4098      *          yypop_buffer_state();
4099      *          yypush_buffer_state(new_buffer);
4100      */
4101     yyensure_buffer_stack ();
4102     if ( YY_CURRENT_BUFFER == new_buffer )
4103     {
4104         return;
4105     }
4106
4107     if ( YY_CURRENT_BUFFER )
4108     {
4109         /* Flush out information for old buffer. */
4110         *(yy_c_buf_p) = (yy_hold_char);
4111         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4112         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4113     }
4114
4115     YY_CURRENT_BUFFER_LVALUE = new_buffer;
4116     yy_load_buffer_state( );
4117
4118     /* We don't actually know whether we did this switch during
4119      * EOF (yywrap()) processing, but the only time this flag
4120      * is looked at is after yywrap() is called, so it's safe
4121      * to go ahead and always set it.
4122      */
4123     (yy_did_buffer_switch_on_eof) = 1;
4124 }
4125
4126 static void yy_load_buffer_state  (void)
4127 {
4128     (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4129     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4130     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4131     (yy_hold_char) = *(yy_c_buf_p);
4132 }
4133
4134 /** Allocate and initialize an input buffer state.
4135  * @param file A readable stream.
4136  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4137  *
4138  * @return the allocated buffer state.
4139  */
4140 YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4141 {
4142     YY_BUFFER_STATE b;
4143
4144     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4145     if ( ! b )
4146     {
4147         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4148     }
4149
4150     b->yy_buf_size = size;
4151
4152     /* yy_ch_buf has to be 2 characters longer than the size given because
4153      * we need to put in 2 end-of-buffer characters.
4154      */
4155     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
4156     if ( ! b->yy_ch_buf )
4157     {
4158         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4159     }
4160
4161     b->yy_is_our_buffer = 1;
4162
4163     yy_init_buffer(b, file );
4164
4165     return b;
4166 }
4167
4168 /** Destroy the buffer.
4169  * @param b a buffer created with yy_create_buffer()
4170  *
4171  */
4172 void yy_delete_buffer (YY_BUFFER_STATE  b )
4173 {
4174
4175     if ( ! b )
4176     {
4177         return;
4178     }
4179
4180     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4181     {
4182         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4183     }
4184
4185     if ( b->yy_is_our_buffer )
4186     {
4187         yyfree((void *) b->yy_ch_buf  );
4188     }
4189
4190     yyfree((void *) b  );
4191 }
4192
4193 /* Initializes or reinitializes a buffer.
4194  * This function is sometimes called more than once on the same buffer,
4195  * such as during a yyrestart() or at EOF.
4196  */
4197 static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4198
4199 {
4200     int oerrno = errno;
4201
4202     yy_flush_buffer(b );
4203
4204     b->yy_input_file = file;
4205     b->yy_fill_buffer = 1;
4206
4207     /* If b is the current buffer, then yy_init_buffer was _probably_
4208      * called from yyrestart() or through yy_get_next_buffer.
4209      * In that case, we don't want to reset the lineno or column.
4210      */
4211     if (b != YY_CURRENT_BUFFER)
4212     {
4213         b->yy_bs_lineno = 1;
4214         b->yy_bs_column = 0;
4215     }
4216
4217     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4218
4219     errno = oerrno;
4220 }
4221
4222 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4223  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4224  *
4225  */
4226 void yy_flush_buffer (YY_BUFFER_STATE  b )
4227 {
4228     if ( ! b )
4229     {
4230         return;
4231     }
4232
4233     b->yy_n_chars = 0;
4234
4235     /* We always need two end-of-buffer characters.  The first causes
4236      * a transition to the end-of-buffer state.  The second causes
4237      * a jam in that state.
4238      */
4239     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4240     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4241
4242     b->yy_buf_pos = &b->yy_ch_buf[0];
4243
4244     b->yy_at_bol = 1;
4245     b->yy_buffer_status = YY_BUFFER_NEW;
4246
4247     if ( b == YY_CURRENT_BUFFER )
4248     {
4249         yy_load_buffer_state( );
4250     }
4251 }
4252
4253 /** Pushes the new state onto the stack. The new state becomes
4254  *  the current state. This function will allocate the stack
4255  *  if necessary.
4256  *  @param new_buffer The new state.
4257  *
4258  */
4259 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4260 {
4261     if (new_buffer == NULL)
4262     {
4263         return;
4264     }
4265
4266     yyensure_buffer_stack();
4267
4268     /* This block is copied from yy_switch_to_buffer. */
4269     if ( YY_CURRENT_BUFFER )
4270     {
4271         /* Flush out information for old buffer. */
4272         *(yy_c_buf_p) = (yy_hold_char);
4273         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4274         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4275     }
4276
4277     /* Only push if top exists. Otherwise, replace top. */
4278     if (YY_CURRENT_BUFFER)
4279     {
4280         (yy_buffer_stack_top)++;
4281     }
4282     YY_CURRENT_BUFFER_LVALUE = new_buffer;
4283
4284     /* copied from yy_switch_to_buffer. */
4285     yy_load_buffer_state( );
4286     (yy_did_buffer_switch_on_eof) = 1;
4287 }
4288
4289 /** Removes and deletes the top of the stack, if present.
4290  *  The next element becomes the new top.
4291  *
4292  */
4293 void yypop_buffer_state (void)
4294 {
4295     if (!YY_CURRENT_BUFFER)
4296     {
4297         return;
4298     }
4299
4300     yy_delete_buffer(YY_CURRENT_BUFFER );
4301     YY_CURRENT_BUFFER_LVALUE = NULL;
4302     if ((yy_buffer_stack_top) > 0)
4303     {
4304         --(yy_buffer_stack_top);
4305     }
4306
4307     if (YY_CURRENT_BUFFER)
4308     {
4309         yy_load_buffer_state( );
4310         (yy_did_buffer_switch_on_eof) = 1;
4311     }
4312 }
4313
4314 /* Allocates the stack if it does not exist.
4315  *  Guarantees space for at least one push.
4316  */
4317 static void yyensure_buffer_stack (void)
4318 {
4319     yy_size_t num_to_alloc;
4320
4321     if (!(yy_buffer_stack))
4322     {
4323
4324         /* First allocation is just for 2 elements, since we don't know if this
4325          * scanner will even need a stack. We use 2 instead of 1 to avoid an
4326          * immediate realloc on the next call.
4327          */
4328         num_to_alloc = 1;
4329         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4330                             (num_to_alloc * sizeof(struct yy_buffer_state*)
4331                             );
4332         if ( ! (yy_buffer_stack) )
4333         {
4334             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4335         }
4336
4337         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4338
4339         (yy_buffer_stack_max) = num_to_alloc;
4340         (yy_buffer_stack_top) = 0;
4341         return;
4342     }
4343
4344     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1)
4345     {
4346
4347         /* Increase the buffer to prepare for a possible push. */
4348         int grow_size = 8 /* arbitrary grow size */;
4349
4350         num_to_alloc = (yy_buffer_stack_max) + grow_size;
4351         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4352                             ((yy_buffer_stack),
4353                              num_to_alloc * sizeof(struct yy_buffer_state*)
4354                             );
4355         if ( ! (yy_buffer_stack) )
4356         {
4357             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4358         }
4359
4360         /* zero only the new slots.*/
4361         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4362         (yy_buffer_stack_max) = num_to_alloc;
4363     }
4364 }
4365
4366 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4367  * @param base the character buffer
4368  * @param size the size in bytes of the character buffer
4369  *
4370  * @return the newly allocated buffer state object.
4371  */
4372 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
4373 {
4374     YY_BUFFER_STATE b;
4375
4376     if ( size < 2 ||
4377             base[size - 2] != YY_END_OF_BUFFER_CHAR ||
4378             base[size - 1] != YY_END_OF_BUFFER_CHAR )
4379         /* They forgot to leave room for the EOB's. */
4380     {
4381         return 0;
4382     }
4383
4384     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4385     if ( ! b )
4386     {
4387         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4388     }
4389
4390     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
4391     b->yy_buf_pos = b->yy_ch_buf = base;
4392     b->yy_is_our_buffer = 0;
4393     b->yy_input_file = 0;
4394     b->yy_n_chars = b->yy_buf_size;
4395     b->yy_is_interactive = 0;
4396     b->yy_at_bol = 1;
4397     b->yy_fill_buffer = 0;
4398     b->yy_buffer_status = YY_BUFFER_NEW;
4399
4400     yy_switch_to_buffer(b  );
4401
4402     return b;
4403 }
4404
4405 /** Setup the input buffer state to scan a string. The next call to yylex() will
4406  * scan from a @e copy of @a str.
4407  * @param yystr a NUL-terminated string to scan
4408  *
4409  * @return the newly allocated buffer state object.
4410  * @note If you want to scan bytes that may contain NUL values, then use
4411  *       yy_scan_bytes() instead.
4412  */
4413 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
4414 {
4415
4416     return yy_scan_bytes(yystr, strlen(yystr) );
4417 }
4418
4419 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4420  * scan from a @e copy of @a bytes.
4421  * @param yybytes the byte buffer to scan
4422  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4423  *
4424  * @return the newly allocated buffer state object.
4425  */
4426 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
4427 {
4428     YY_BUFFER_STATE b;
4429     char *buf;
4430     yy_size_t n;
4431     yy_size_t i;
4432
4433     /* Get memory for full buffer, including space for trailing EOB's. */
4434     n = _yybytes_len + 2;
4435     buf = (char *) yyalloc(n  );
4436     if ( ! buf )
4437     {
4438         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4439     }
4440
4441     for ( i = 0; i < _yybytes_len; ++i )
4442     {
4443         buf[i] = yybytes[i];
4444     }
4445
4446     buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR;
4447
4448     b = yy_scan_buffer(buf, n );
4449     if ( ! b )
4450     {
4451         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4452     }
4453
4454     /* It's okay to grow etc. this buffer, and we should throw it
4455      * away when we're done.
4456      */
4457     b->yy_is_our_buffer = 1;
4458
4459     return b;
4460 }
4461
4462 static void yy_push_state (int  new_state )
4463 {
4464     if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4465     {
4466         yy_size_t new_size;
4467
4468         (yy_start_stack_depth) += YY_START_STACK_INCR;
4469         new_size = (yy_start_stack_depth) * sizeof( int );
4470
4471         if ( ! (yy_start_stack) )
4472         {
4473             (yy_start_stack) = (int *) yyalloc(new_size  );
4474         }
4475
4476         else
4477         {
4478             (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack), new_size  );
4479         }
4480
4481         if ( ! (yy_start_stack) )
4482         {
4483             YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4484         }
4485     }
4486
4487     (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4488
4489     BEGIN(new_state);
4490 }
4491
4492 static void yy_pop_state  (void)
4493 {
4494     if ( --(yy_start_stack_ptr) < 0 )
4495     {
4496         YY_FATAL_ERROR( "start-condition stack underflow" );
4497     }
4498
4499     BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4500 }
4501
4502 static int yy_top_state  (void)
4503 {
4504     return (yy_start_stack)[(yy_start_stack_ptr) - 1];
4505 }
4506
4507 #ifndef YY_EXIT_FAILURE
4508 #define YY_EXIT_FAILURE 2
4509 #endif
4510
4511 static void yy_fatal_error (yyconst char* msg )
4512 {
4513     (void) fprintf( stderr, "%s\n", msg );
4514     exit( YY_EXIT_FAILURE );
4515 }
4516
4517 /* Redefine yyless() so it works in section 3 code. */
4518
4519 #undef yyless
4520 #define yyless(n) \
4521         do \
4522                 { \
4523                 /* Undo effects of setting up yytext. */ \
4524         int yyless_macro_arg = (n); \
4525         YY_LESS_LINENO(yyless_macro_arg);\
4526                 yytext[yyleng] = (yy_hold_char); \
4527                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
4528                 (yy_hold_char) = *(yy_c_buf_p); \
4529                 *(yy_c_buf_p) = '\0'; \
4530                 yyleng = yyless_macro_arg; \
4531                 } \
4532         while ( 0 )
4533
4534 /* Accessor  methods (get/set functions) to struct members. */
4535
4536 /** Get the current line number.
4537  *
4538  */
4539 int yyget_lineno  (void)
4540 {
4541
4542     return yylineno;
4543 }
4544
4545 /** Get the input stream.
4546  *
4547  */
4548 FILE *yyget_in  (void)
4549 {
4550     return yyin;
4551 }
4552
4553 /** Get the output stream.
4554  *
4555  */
4556 FILE *yyget_out  (void)
4557 {
4558     return yyout;
4559 }
4560
4561 /** Get the length of the current token.
4562  *
4563  */
4564 yy_size_t yyget_leng  (void)
4565 {
4566     return yyleng;
4567 }
4568
4569 /** Get the current token.
4570  *
4571  */
4572
4573 char *yyget_text  (void)
4574 {
4575     return yytext;
4576 }
4577
4578 /** Set the current line number.
4579  * @param line_number
4580  *
4581  */
4582 void yyset_lineno (int  line_number )
4583 {
4584
4585     yylineno = line_number;
4586 }
4587
4588 /** Set the input stream. This does not discard the current
4589  * input buffer.
4590  * @param in_str A readable stream.
4591  *
4592  * @see yy_switch_to_buffer
4593  */
4594 void yyset_in (FILE *  in_str )
4595 {
4596     yyin = in_str ;
4597 }
4598
4599 void yyset_out (FILE *  out_str )
4600 {
4601     yyout = out_str ;
4602 }
4603
4604 int yyget_debug  (void)
4605 {
4606     return yy_flex_debug;
4607 }
4608
4609 void yyset_debug (int  bdebug )
4610 {
4611     yy_flex_debug = bdebug ;
4612 }
4613
4614 static int yy_init_globals (void)
4615 {
4616     /* Initialization is the same as for the non-reentrant scanner.
4617     * This function is called from yylex_destroy(), so don't allocate here.
4618     */
4619
4620     (yy_buffer_stack) = 0;
4621     (yy_buffer_stack_top) = 0;
4622     (yy_buffer_stack_max) = 0;
4623     (yy_c_buf_p) = (char *) 0;
4624     (yy_init) = 0;
4625     (yy_start) = 0;
4626
4627     (yy_start_stack_ptr) = 0;
4628     (yy_start_stack_depth) = 0;
4629     (yy_start_stack) =  NULL;
4630
4631     (yy_state_buf) = 0;
4632     (yy_state_ptr) = 0;
4633     (yy_full_match) = 0;
4634     (yy_lp) = 0;
4635
4636     /* Defined in main.c */
4637 #ifdef YY_STDINIT
4638     yyin = stdin;
4639     yyout = stdout;
4640 #else
4641     yyin = (FILE *) 0;
4642     yyout = (FILE *) 0;
4643 #endif
4644
4645     /* For future reference: Set errno on error, since we are called by
4646      * yylex_init()
4647      */
4648     return 0;
4649 }
4650
4651 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
4652 int yylex_destroy  (void)
4653 {
4654
4655     /* Pop the buffer stack, destroying each element. */
4656     while (YY_CURRENT_BUFFER)
4657     {
4658         yy_delete_buffer(YY_CURRENT_BUFFER  );
4659         YY_CURRENT_BUFFER_LVALUE = NULL;
4660         yypop_buffer_state();
4661     }
4662
4663     /* Destroy the stack itself. */
4664     yyfree((yy_buffer_stack) );
4665     (yy_buffer_stack) = NULL;
4666
4667     /* Destroy the start condition stack. */
4668     yyfree((yy_start_stack)  );
4669     (yy_start_stack) = NULL;
4670
4671     yyfree ( (yy_state_buf) );
4672     (yy_state_buf)  = NULL;
4673
4674     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4675      * yylex() is called, initialization will occur. */
4676     yy_init_globals( );
4677
4678     return 0;
4679 }
4680
4681 /*
4682  * Internal utility routines.
4683  */
4684
4685 #ifndef yytext_ptr
4686 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4687 {
4688     register int i;
4689     for ( i = 0; i < n; ++i )
4690     {
4691         s1[i] = s2[i];
4692     }
4693 }
4694 #endif
4695
4696 #ifdef YY_NEED_STRLEN
4697 static int yy_flex_strlen (yyconst char * s )
4698 {
4699     register int n;
4700     for ( n = 0; s[n]; ++n )
4701         ;
4702
4703     return n;
4704 }
4705 #endif
4706
4707 void *yyalloc (yy_size_t  size )
4708 {
4709     return (void *) malloc( size );
4710 }
4711
4712 void *yyrealloc  (void * ptr, yy_size_t  size )
4713 {
4714     /* The cast to (char *) in the following accommodates both
4715      * implementations that use char* generic pointers, and those
4716      * that use void* generic pointers.  It works with the latter
4717      * because both ANSI C and C++ allow castless assignment from
4718      * any pointer type to void*, and deal with argument conversions
4719      * as though doing an assignment.
4720      */
4721     return (void *) realloc( (char *) ptr, size );
4722 }
4723
4724 void yyfree (void * ptr )
4725 {
4726     free( (char *) ptr );       /* see yyrealloc() for (char *) cast */
4727 }
4728
4729 #define YYTABLES_NAME "yytables"
4730
4731 int scan_throw(int token)
4732 {
4733     last_token = token;
4734 #ifdef DEV
4735     std::cout << "--> [DEBUG] TOKEN : " << token << std::endl;
4736 #endif
4737     return token;
4738 }
4739
4740 int get_last_token()
4741 {
4742     return last_token;
4743 }
4744
4745 void scan_step()
4746 {
4747     yylloc.first_line = yylloc.last_line;
4748     yylloc.first_column = yylloc.last_column;
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