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