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