Fix non coding space within matrix
[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   }
2752         YY_BREAK
2753 case YY_STATE_EOF(LINECOMMENT):
2754 {
2755     yy_pop_state();
2756     wchar_t *pwstBuffer = to_wide_string(pstBuffer->c_str());
2757     if (pstBuffer->c_str() != NULL && pwstBuffer == NULL)
2758     {
2759         std::string str = "can not convert'";
2760         str += pstBuffer->c_str();
2761         str += "' to UTF-8";
2762         exit_status = SCAN_ERROR;
2763         scan_error("can not convert string to UTF-8");
2764     }
2765     yylval.comment = new std::wstring(pwstBuffer);
2766     delete pstBuffer;
2767     FREE (pwstBuffer);
2768     return scan_throw(COMMENT);
2769   }
2770         YY_BREAK
2771 case 104:
2772 YY_RULE_SETUP
2773 {
2774      // Put the char in a temporary CHAR buffer to go through UTF-8 trouble
2775      // only translate to WCHAR_T when popping state.
2776      *pstBuffer += yytext;
2777   }
2778         YY_BREAK
2779
2780 case 105:
2781 YY_RULE_SETUP
2782 {
2783     --comment_level;
2784     if (comment_level == 0) {
2785       ParserSingleInstance::popControlStatus();
2786       yy_pop_state();
2787       //return scan_throw(BLOCKCOMMENT);
2788     }
2789   }
2790         YY_BREAK
2791 case 106:
2792 YY_RULE_SETUP
2793 {
2794     ++comment_level;
2795     yy_push_state(REGIONCOMMENT);
2796   }
2797         YY_BREAK
2798 case 107:
2799 /* rule 107 can match eol */
2800 YY_RULE_SETUP
2801 {
2802     yylloc.last_line += 1;
2803     yylloc.last_column = 1;
2804     scan_step();
2805     *yylval.comment += L"\n//";
2806   }
2807         YY_BREAK
2808 case 108:
2809 YY_RULE_SETUP
2810 {
2811       wchar_t *pwText = to_wide_string(yytext);
2812       *yylval.comment += std::wstring(pwText);
2813       FREE(pwText);
2814   }
2815         YY_BREAK
2816 case YY_STATE_EOF(REGIONCOMMENT):
2817 {
2818       yy_pop_state();
2819 //    std::string str = "unexpected end of file in a comment";
2820 //    exit_status = SCAN_ERROR;
2821 //    scan_error(str);
2822   }
2823         YY_BREAK
2824
2825 case 109:
2826 YY_RULE_SETUP
2827 {
2828     *pstBuffer += "\"";
2829   }
2830         YY_BREAK
2831 case 110:
2832 YY_RULE_SETUP
2833 {
2834     *pstBuffer += "'";
2835   }
2836         YY_BREAK
2837 case 111:
2838 YY_RULE_SETUP
2839 {
2840     *pstBuffer += "\"";
2841   }
2842         YY_BREAK
2843 case 112:
2844 YY_RULE_SETUP
2845 {
2846     *pstBuffer += "'";
2847   }
2848         YY_BREAK
2849 case 113:
2850 YY_RULE_SETUP
2851 {
2852     yy_pop_state();
2853     scan_step();
2854     wchar_t *pwstBuffer = to_wide_string(pstBuffer->c_str());
2855     if (pstBuffer->c_str() != NULL && pwstBuffer == NULL)
2856     {
2857         std::string str = "can not convert'";
2858         str += pstBuffer->c_str();
2859         str += "' to UTF-8";
2860         exit_status = SCAN_ERROR;
2861         scan_error("can not convert string to UTF-8");
2862     }
2863     yylval.str = new std::wstring(pwstBuffer);
2864     delete pstBuffer;
2865     FREE(pwstBuffer);
2866     return scan_throw(STR);
2867   }
2868         YY_BREAK
2869 case 114:
2870 YY_RULE_SETUP
2871 {
2872     std::string str = "Heterogeneous string detected, starting with ' and ending with \".";
2873     exit_status = SCAN_ERROR;
2874     scan_error(str);
2875   }
2876         YY_BREAK
2877 case 115:
2878 /* rule 115 can match eol */
2879 YY_RULE_SETUP
2880 {
2881       /* Do nothing... Just skip */
2882   }
2883         YY_BREAK
2884 case 116:
2885 /* rule 116 can match eol */
2886 YY_RULE_SETUP
2887 {
2888     std::string str = "unexpected end of line in a string.";
2889     exit_status = SCAN_ERROR;
2890     scan_error(str);
2891     yylloc.last_line += 1;
2892     yylloc.last_column = 1;
2893   }
2894         YY_BREAK
2895 case YY_STATE_EOF(SIMPLESTRING):
2896 {
2897     std::string str = "unexpected end of file in a string.";
2898     exit_status = SCAN_ERROR;
2899     scan_error(str);
2900   }
2901         YY_BREAK
2902 case 117:
2903 YY_RULE_SETUP
2904 {
2905     scan_step();
2906     *pstBuffer += yytext;
2907   }
2908         YY_BREAK
2909
2910 case 118:
2911 YY_RULE_SETUP
2912 {
2913     *pstBuffer += "\"";
2914   }
2915         YY_BREAK
2916 case 119:
2917 YY_RULE_SETUP
2918 {
2919     *pstBuffer += "'";
2920   }
2921         YY_BREAK
2922 case 120:
2923 YY_RULE_SETUP
2924 {
2925     *pstBuffer += "\"";
2926   }
2927         YY_BREAK
2928 case 121:
2929 YY_RULE_SETUP
2930 {
2931     *pstBuffer += "'";
2932   }
2933         YY_BREAK
2934 case 122:
2935 YY_RULE_SETUP
2936 {
2937     yy_pop_state();
2938     scan_step();
2939     wchar_t *pwstBuffer = to_wide_string(pstBuffer->c_str());
2940     if (pstBuffer->c_str() != NULL && pwstBuffer == NULL)
2941     {
2942         std::string str = "can not convert'";
2943         str += pstBuffer->c_str();
2944         str += "' to UTF-8";
2945         exit_status = SCAN_ERROR;
2946         scan_error("can not convert string to UTF-8");
2947     }
2948     yylval.str = new std::wstring(pwstBuffer);
2949     delete pstBuffer;
2950     FREE(pwstBuffer);
2951     return scan_throw(STR);
2952   }
2953         YY_BREAK
2954 case 123:
2955 YY_RULE_SETUP
2956 {
2957     std::string str = "Heterogeneous string detected, starting with \" and ending with '.";
2958     exit_status = SCAN_ERROR;
2959     scan_error(str);
2960   }
2961         YY_BREAK
2962 case 124:
2963 /* rule 124 can match eol */
2964 YY_RULE_SETUP
2965 {
2966       /* Do nothing... Just skip */
2967   }
2968         YY_BREAK
2969 case 125:
2970 /* rule 125 can match eol */
2971 YY_RULE_SETUP
2972 {
2973     std::string str = "unexpected end of line in a string";
2974     exit_status = SCAN_ERROR;
2975     scan_error(str);
2976     yylloc.last_line += 1;
2977     yylloc.last_column = 1;
2978   }
2979         YY_BREAK
2980 case YY_STATE_EOF(DOUBLESTRING):
2981 {
2982     std::string str = "unexpected end of file in a string";
2983     exit_status = SCAN_ERROR;
2984     scan_error(str);
2985   }
2986         YY_BREAK
2987 case 126:
2988 YY_RULE_SETUP
2989 {
2990    scan_step();
2991    *pstBuffer += yytext;
2992   }
2993         YY_BREAK
2994
2995 case 127:
2996 YY_RULE_SETUP
2997 {
2998         if (last_token == ID)
2999         {
3000             scan_throw(SPACES);
3001             return ID;
3002         }
3003     }
3004         YY_BREAK
3005 case 128:
3006 YY_RULE_SETUP
3007 {
3008         BEGIN(INITIAL);
3009         scan_step();
3010         return scan_throw(SEMI);
3011     }
3012         YY_BREAK
3013 case 129:
3014 YY_RULE_SETUP
3015 {
3016         BEGIN(INITIAL);
3017         scan_step();
3018         return scan_throw(COMMA);
3019     }
3020         YY_BREAK
3021 case 130:
3022 /* rule 130 can match eol */
3023 YY_RULE_SETUP
3024 {
3025         BEGIN(INITIAL);
3026         yylloc.last_line += 1;
3027         yylloc.last_column = 1;
3028         scan_step();
3029         return scan_throw(EOL);
3030     }
3031         YY_BREAK
3032 case 131:
3033 YY_RULE_SETUP
3034 {
3035         if (last_token == STR)
3036         {
3037             wchar_t *pwText = to_wide_string(yytext);
3038             yylval.str = new std::wstring(pwText);
3039             FREE(pwText);
3040             return scan_throw(STR);
3041         }
3042         else
3043         {
3044             BEGIN(INITIAL);
3045             return scan_throw(ASSIGN);
3046         }
3047     }
3048         YY_BREAK
3049 case 132:
3050 YY_RULE_SETUP
3051 {
3052         if (last_token == STR)
3053         {
3054             wchar_t *pwText = to_wide_string(yytext);
3055             yylval.str = new std::wstring(pwText);
3056             FREE(pwText);
3057             return scan_throw(STR);
3058         }
3059         else
3060         {
3061             BEGIN(INITIAL);
3062             return scan_throw(LPAREN);
3063         }
3064     }
3065         YY_BREAK
3066 case 133:
3067 YY_RULE_SETUP
3068 {
3069         if (last_token == STR)
3070         {
3071             wchar_t *pwText = to_wide_string(yytext);
3072             yylval.str = new std::wstring(pwText);
3073             FREE(pwText);
3074             return scan_throw(STR);
3075         }
3076         else
3077         {
3078             BEGIN(INITIAL);
3079             return scan_throw(LT);
3080         }
3081     }
3082         YY_BREAK
3083 case 134:
3084 YY_RULE_SETUP
3085 {
3086         if (last_token == STR)
3087         {
3088             wchar_t *pwText = to_wide_string(yytext);
3089             yylval.str = new std::wstring(pwText);
3090             FREE(pwText);
3091             return scan_throw(STR);
3092         }
3093         else
3094         {
3095             BEGIN(INITIAL);
3096             return scan_throw(GT);
3097         }
3098     }
3099         YY_BREAK
3100 case 135:
3101 YY_RULE_SETUP
3102 {
3103         if (last_token == STR)
3104         {
3105             wchar_t *pwText = to_wide_string(yytext);
3106             yylval.str = new std::wstring(pwText);
3107             FREE(pwText);
3108             return scan_throw(STR);
3109         }
3110         else
3111         {
3112             BEGIN(INITIAL);
3113             return scan_throw(NOT);
3114         }
3115     }
3116         YY_BREAK
3117 case 136:
3118 YY_RULE_SETUP
3119 {
3120         wchar_t *pwText = to_wide_string(yytext);
3121         yylval.str = new std::wstring(pwText);
3122         FREE(pwText);
3123         return scan_throw(STR);
3124     }
3125         YY_BREAK
3126 case YY_STATE_EOF(SHELLMODE):
3127 {
3128         BEGIN(INITIAL);
3129     }
3130         YY_BREAK
3131
3132 case 137:
3133 YY_RULE_SETUP
3134 ECHO;
3135         YY_BREAK
3136                         case YY_STATE_EOF(INITIAL):
3137                         case YY_STATE_EOF(BEGINID):
3138                                 yyterminate();
3139
3140         case YY_END_OF_BUFFER:
3141                 {
3142                 /* Amount of text matched not including the EOB char. */
3143                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3144
3145                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3146                 *yy_cp = (yy_hold_char);
3147                 YY_RESTORE_YY_MORE_OFFSET
3148
3149                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3150                         {
3151                         /* We're scanning a new file or input source.  It's
3152                          * possible that this happened because the user
3153                          * just pointed yyin at a new source and called
3154                          * yylex().  If so, then we have to assure
3155                          * consistency between YY_CURRENT_BUFFER and our
3156                          * globals.  Here is the right place to do so, because
3157                          * this is the first action (other than possibly a
3158                          * back-up) that will match for the new input source.
3159                          */
3160                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3161                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3162                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3163                         }
3164
3165                 /* Note that here we test for yy_c_buf_p "<=" to the position
3166                  * of the first EOB in the buffer, since yy_c_buf_p will
3167                  * already have been incremented past the NUL character
3168                  * (since all states make transitions on EOB to the
3169                  * end-of-buffer state).  Contrast this with the test
3170                  * in input().
3171                  */
3172                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3173                         { /* This was really a NUL. */
3174                         yy_state_type yy_next_state;
3175
3176                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3177
3178                         yy_current_state = yy_get_previous_state(  );
3179
3180                         /* Okay, we're now positioned to make the NUL
3181                          * transition.  We couldn't have
3182                          * yy_get_previous_state() go ahead and do it
3183                          * for us because it doesn't know how to deal
3184                          * with the possibility of jamming (and we don't
3185                          * want to build jamming into it because then it
3186                          * will run more slowly).
3187                          */
3188
3189                         yy_next_state = yy_try_NUL_trans( yy_current_state );
3190
3191                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3192
3193                         if ( yy_next_state )
3194                                 {
3195                                 /* Consume the NUL. */
3196                                 yy_cp = ++(yy_c_buf_p);
3197                                 yy_current_state = yy_next_state;
3198                                 goto yy_match;
3199                                 }
3200
3201                         else
3202                                 {
3203                                 yy_cp = (yy_c_buf_p);
3204                                 goto yy_find_action;
3205                                 }
3206                         }
3207
3208                 else switch ( yy_get_next_buffer(  ) )
3209                         {
3210                         case EOB_ACT_END_OF_FILE:
3211                                 {
3212                                 (yy_did_buffer_switch_on_eof) = 0;
3213
3214                                 if ( yywrap( ) )
3215                                         {
3216                                         /* Note: because we've taken care in
3217                                          * yy_get_next_buffer() to have set up
3218                                          * yytext, we can now set up
3219                                          * yy_c_buf_p so that if some total
3220                                          * hoser (like flex itself) wants to
3221                                          * call the scanner after we return the
3222                                          * YY_NULL, it'll still work - another
3223                                          * YY_NULL will get returned.
3224                                          */
3225                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3226
3227                                         yy_act = YY_STATE_EOF(YY_START);
3228                                         goto do_action;
3229                                         }
3230
3231                                 else
3232                                         {
3233                                         if ( ! (yy_did_buffer_switch_on_eof) )
3234                                                 YY_NEW_FILE;
3235                                         }
3236                                 break;
3237                                 }
3238
3239                         case EOB_ACT_CONTINUE_SCAN:
3240                                 (yy_c_buf_p) =
3241                                         (yytext_ptr) + yy_amount_of_matched_text;
3242
3243                                 yy_current_state = yy_get_previous_state(  );
3244
3245                                 yy_cp = (yy_c_buf_p);
3246                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3247                                 goto yy_match;
3248
3249                         case EOB_ACT_LAST_MATCH:
3250                                 (yy_c_buf_p) =
3251                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3252
3253                                 yy_current_state = yy_get_previous_state(  );
3254
3255                                 yy_cp = (yy_c_buf_p);
3256                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3257                                 goto yy_find_action;
3258                         }
3259                 break;
3260                 }
3261
3262         default:
3263                 YY_FATAL_ERROR(
3264                         "fatal flex scanner internal error--no action found" );
3265         } /* end of action switch */
3266                 } /* end of scanning one token */
3267         } /* end of user's declarations */
3268 } /* end of yylex */
3269
3270 /* yy_get_next_buffer - try to read in a new buffer
3271  *
3272  * Returns a code representing an action:
3273  *      EOB_ACT_LAST_MATCH -
3274  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3275  *      EOB_ACT_END_OF_FILE - end of file
3276  */
3277 static int yy_get_next_buffer (void)
3278 {
3279         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3280         register char *source = (yytext_ptr);
3281         register int number_to_move, i;
3282         int ret_val;
3283
3284         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3285                 YY_FATAL_ERROR(
3286                 "fatal flex scanner internal error--end of buffer missed" );
3287
3288         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3289                 { /* Don't try to fill the buffer, so this is an EOF. */
3290                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3291                         {
3292                         /* We matched a single character, the EOB, so
3293                          * treat this as a final EOF.
3294                          */
3295                         return EOB_ACT_END_OF_FILE;
3296                         }
3297
3298                 else
3299                         {
3300                         /* We matched some text prior to the EOB, first
3301                          * process it.
3302                          */
3303                         return EOB_ACT_LAST_MATCH;
3304                         }
3305                 }
3306
3307         /* Try to read more data. */
3308
3309         /* First move last chars to start of buffer. */
3310         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3311
3312         for ( i = 0; i < number_to_move; ++i )
3313                 *(dest++) = *(source++);
3314
3315         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3316                 /* don't do the read, it's not guaranteed to return an EOF,
3317                  * just force an EOF
3318                  */
3319                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3320
3321         else
3322                 {
3323                         yy_size_t num_to_read =
3324                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3325
3326                 while ( num_to_read <= 0 )
3327                         { /* Not enough room in the buffer - grow it. */
3328
3329                         YY_FATAL_ERROR(
3330 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3331
3332                         }
3333
3334                 if ( num_to_read > YY_READ_BUF_SIZE )
3335                         num_to_read = YY_READ_BUF_SIZE;
3336
3337                 /* Read in more data. */
3338                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3339                         (yy_n_chars), num_to_read );
3340
3341                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3342                 }
3343
3344         if ( (yy_n_chars) == 0 )
3345                 {
3346                 if ( number_to_move == YY_MORE_ADJ )
3347                         {
3348                         ret_val = EOB_ACT_END_OF_FILE;
3349                         yyrestart(yyin  );
3350                         }
3351
3352                 else
3353                         {
3354                         ret_val = EOB_ACT_LAST_MATCH;
3355                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3356                                 YY_BUFFER_EOF_PENDING;
3357                         }
3358                 }
3359
3360         else
3361                 ret_val = EOB_ACT_CONTINUE_SCAN;
3362
3363         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3364                 /* Extend the array by 50%, plus the number we really need. */
3365                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3366                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3367                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3368                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3369         }
3370
3371         (yy_n_chars) += number_to_move;
3372         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3373         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3374
3375         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3376
3377         return ret_val;
3378 }
3379
3380 /* yy_get_previous_state - get the state just before the EOB char was reached */
3381
3382     static yy_state_type yy_get_previous_state (void)
3383 {
3384         register yy_state_type yy_current_state;
3385         register char *yy_cp;
3386     
3387         yy_current_state = (yy_start);
3388         yy_current_state += YY_AT_BOL();
3389
3390         (yy_state_ptr) = (yy_state_buf);
3391         *(yy_state_ptr)++ = yy_current_state;
3392
3393         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3394                 {
3395                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3396                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3397                         {
3398                         yy_current_state = (int) yy_def[yy_current_state];
3399                         if ( yy_current_state >= 789 )
3400                                 yy_c = yy_meta[(unsigned int) yy_c];
3401                         }
3402                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3403                 *(yy_state_ptr)++ = yy_current_state;
3404                 }
3405
3406         return yy_current_state;
3407 }
3408
3409 /* yy_try_NUL_trans - try to make a transition on the NUL character
3410  *
3411  * synopsis
3412  *      next_state = yy_try_NUL_trans( current_state );
3413  */
3414     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3415 {
3416         register int yy_is_jam;
3417     
3418         register YY_CHAR yy_c = 1;
3419         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3420                 {
3421                 yy_current_state = (int) yy_def[yy_current_state];
3422                 if ( yy_current_state >= 789 )
3423                         yy_c = yy_meta[(unsigned int) yy_c];
3424                 }
3425         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3426         yy_is_jam = (yy_current_state == 788);
3427         if ( ! yy_is_jam )
3428                 *(yy_state_ptr)++ = yy_current_state;
3429
3430                 return yy_is_jam ? 0 : yy_current_state;
3431 }
3432
3433     static void yyunput (int c, register char * yy_bp )
3434 {
3435         register char *yy_cp;
3436     
3437     yy_cp = (yy_c_buf_p);
3438
3439         /* undo effects of setting up yytext */
3440         *yy_cp = (yy_hold_char);
3441
3442         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3443                 { /* need to shift things up to make room */
3444                 /* +2 for EOB chars. */
3445                 register yy_size_t number_to_move = (yy_n_chars) + 2;
3446                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3447                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3448                 register char *source =
3449                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3450
3451                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3452                         *--dest = *--source;
3453
3454                 yy_cp += (int) (dest - source);
3455                 yy_bp += (int) (dest - source);
3456                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3457                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3458
3459                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3460                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
3461                 }
3462
3463         *--yy_cp = (char) c;
3464
3465         (yytext_ptr) = yy_bp;
3466         (yy_hold_char) = *yy_cp;
3467         (yy_c_buf_p) = yy_cp;
3468 }
3469
3470 #ifndef YY_NO_INPUT
3471 #ifdef __cplusplus
3472     static int yyinput (void)
3473 #else
3474     static int input  (void)
3475 #endif
3476
3477 {
3478         int c;
3479     
3480         *(yy_c_buf_p) = (yy_hold_char);
3481
3482         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3483                 {
3484                 /* yy_c_buf_p now points to the character we want to return.
3485                  * If this occurs *before* the EOB characters, then it's a
3486                  * valid NUL; if not, then we've hit the end of the buffer.
3487                  */
3488                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3489                         /* This was really a NUL. */
3490                         *(yy_c_buf_p) = '\0';
3491
3492                 else
3493                         { /* need more input */
3494                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
3495                         ++(yy_c_buf_p);
3496
3497                         switch ( yy_get_next_buffer(  ) )
3498                                 {
3499                                 case EOB_ACT_LAST_MATCH:
3500                                         /* This happens because yy_g_n_b()
3501                                          * sees that we've accumulated a
3502                                          * token and flags that we need to
3503                                          * try matching the token before
3504                                          * proceeding.  But for input(),
3505                                          * there's no matching to consider.
3506                                          * So convert the EOB_ACT_LAST_MATCH
3507                                          * to EOB_ACT_END_OF_FILE.
3508                                          */
3509
3510                                         /* Reset buffer status. */
3511                                         yyrestart(yyin );
3512
3513                                         /*FALLTHROUGH*/
3514
3515                                 case EOB_ACT_END_OF_FILE:
3516                                         {
3517                                         if ( yywrap( ) )
3518                                                 return EOF;
3519
3520                                         if ( ! (yy_did_buffer_switch_on_eof) )
3521                                                 YY_NEW_FILE;
3522 #ifdef __cplusplus
3523                                         return yyinput();
3524 #else
3525                                         return input();
3526 #endif
3527                                         }
3528
3529                                 case EOB_ACT_CONTINUE_SCAN:
3530                                         (yy_c_buf_p) = (yytext_ptr) + offset;
3531                                         break;
3532                                 }
3533                         }
3534                 }
3535
3536         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
3537         *(yy_c_buf_p) = '\0';   /* preserve yytext */
3538         (yy_hold_char) = *++(yy_c_buf_p);
3539
3540         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3541
3542         return c;
3543 }
3544 #endif  /* ifndef YY_NO_INPUT */
3545
3546 /** Immediately switch to a different input stream.
3547  * @param input_file A readable stream.
3548  * 
3549  * @note This function does not reset the start condition to @c INITIAL .
3550  */
3551     void yyrestart  (FILE * input_file )
3552 {
3553     
3554         if ( ! YY_CURRENT_BUFFER ){
3555         yyensure_buffer_stack ();
3556                 YY_CURRENT_BUFFER_LVALUE =
3557             yy_create_buffer(yyin,YY_BUF_SIZE );
3558         }
3559
3560         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
3561         yy_load_buffer_state( );
3562 }
3563
3564 /** Switch to a different input buffer.
3565  * @param new_buffer The new input buffer.
3566  * 
3567  */
3568     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3569 {
3570     
3571         /* TODO. We should be able to replace this entire function body
3572          * with
3573          *              yypop_buffer_state();
3574          *              yypush_buffer_state(new_buffer);
3575      */
3576         yyensure_buffer_stack ();
3577         if ( YY_CURRENT_BUFFER == new_buffer )
3578                 return;
3579
3580         if ( YY_CURRENT_BUFFER )
3581                 {
3582                 /* Flush out information for old buffer. */
3583                 *(yy_c_buf_p) = (yy_hold_char);
3584                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3585                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3586                 }
3587
3588         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3589         yy_load_buffer_state( );
3590
3591         /* We don't actually know whether we did this switch during
3592          * EOF (yywrap()) processing, but the only time this flag
3593          * is looked at is after yywrap() is called, so it's safe
3594          * to go ahead and always set it.
3595          */
3596         (yy_did_buffer_switch_on_eof) = 1;
3597 }
3598
3599 static void yy_load_buffer_state  (void)
3600 {
3601         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3602         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3603         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3604         (yy_hold_char) = *(yy_c_buf_p);
3605 }
3606
3607 /** Allocate and initialize an input buffer state.
3608  * @param file A readable stream.
3609  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3610  * 
3611  * @return the allocated buffer state.
3612  */
3613     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
3614 {
3615         YY_BUFFER_STATE b;
3616     
3617         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
3618         if ( ! b )
3619                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3620
3621         b->yy_buf_size = size;
3622
3623         /* yy_ch_buf has to be 2 characters longer than the size given because
3624          * we need to put in 2 end-of-buffer characters.
3625          */
3626         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
3627         if ( ! b->yy_ch_buf )
3628                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3629
3630         b->yy_is_our_buffer = 1;
3631
3632         yy_init_buffer(b,file );
3633
3634         return b;
3635 }
3636
3637 /** Destroy the buffer.
3638  * @param b a buffer created with yy_create_buffer()
3639  * 
3640  */
3641     void yy_delete_buffer (YY_BUFFER_STATE  b )
3642 {
3643     
3644         if ( ! b )
3645                 return;
3646
3647         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3648                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3649
3650         if ( b->yy_is_our_buffer )
3651                 yyfree((void *) b->yy_ch_buf  );
3652
3653         yyfree((void *) b  );
3654 }
3655
3656 /* Initializes or reinitializes a buffer.
3657  * This function is sometimes called more than once on the same buffer,
3658  * such as during a yyrestart() or at EOF.
3659  */
3660     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3661
3662 {
3663         int oerrno = errno;
3664     
3665         yy_flush_buffer(b );
3666
3667         b->yy_input_file = file;
3668         b->yy_fill_buffer = 1;
3669
3670     /* If b is the current buffer, then yy_init_buffer was _probably_
3671      * called from yyrestart() or through yy_get_next_buffer.
3672      * In that case, we don't want to reset the lineno or column.
3673      */
3674     if (b != YY_CURRENT_BUFFER){
3675         b->yy_bs_lineno = 1;
3676         b->yy_bs_column = 0;
3677     }
3678
3679         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3680     
3681         errno = oerrno;
3682 }
3683
3684 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3685  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3686  * 
3687  */
3688     void yy_flush_buffer (YY_BUFFER_STATE  b )
3689 {
3690         if ( ! b )
3691                 return;
3692
3693         b->yy_n_chars = 0;
3694
3695         /* We always need two end-of-buffer characters.  The first causes
3696          * a transition to the end-of-buffer state.  The second causes
3697          * a jam in that state.
3698          */
3699         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3700         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3701
3702         b->yy_buf_pos = &b->yy_ch_buf[0];
3703
3704         b->yy_at_bol = 1;
3705         b->yy_buffer_status = YY_BUFFER_NEW;
3706
3707         if ( b == YY_CURRENT_BUFFER )
3708                 yy_load_buffer_state( );
3709 }
3710
3711 /** Pushes the new state onto the stack. The new state becomes
3712  *  the current state. This function will allocate the stack
3713  *  if necessary.
3714  *  @param new_buffer The new state.
3715  *  
3716  */
3717 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3718 {
3719         if (new_buffer == NULL)
3720                 return;
3721
3722         yyensure_buffer_stack();
3723
3724         /* This block is copied from yy_switch_to_buffer. */
3725         if ( YY_CURRENT_BUFFER )
3726                 {
3727                 /* Flush out information for old buffer. */
3728                 *(yy_c_buf_p) = (yy_hold_char);
3729                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3730                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3731                 }
3732
3733         /* Only push if top exists. Otherwise, replace top. */
3734         if (YY_CURRENT_BUFFER)
3735                 (yy_buffer_stack_top)++;
3736         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3737
3738         /* copied from yy_switch_to_buffer. */
3739         yy_load_buffer_state( );
3740         (yy_did_buffer_switch_on_eof) = 1;
3741 }
3742
3743 /** Removes and deletes the top of the stack, if present.
3744  *  The next element becomes the new top.
3745  *  
3746  */
3747 void yypop_buffer_state (void)
3748 {
3749         if (!YY_CURRENT_BUFFER)
3750                 return;
3751
3752         yy_delete_buffer(YY_CURRENT_BUFFER );
3753         YY_CURRENT_BUFFER_LVALUE = NULL;
3754         if ((yy_buffer_stack_top) > 0)
3755                 --(yy_buffer_stack_top);
3756
3757         if (YY_CURRENT_BUFFER) {
3758                 yy_load_buffer_state( );
3759                 (yy_did_buffer_switch_on_eof) = 1;
3760         }
3761 }
3762
3763 /* Allocates the stack if it does not exist.
3764  *  Guarantees space for at least one push.
3765  */
3766 static void yyensure_buffer_stack (void)
3767 {
3768         yy_size_t num_to_alloc;
3769     
3770         if (!(yy_buffer_stack)) {
3771
3772                 /* First allocation is just for 2 elements, since we don't know if this
3773                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3774                  * immediate realloc on the next call.
3775          */
3776                 num_to_alloc = 1;
3777                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3778                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
3779                                                                 );
3780                 if ( ! (yy_buffer_stack) )
3781                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3782                                                                   
3783                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3784                                 
3785                 (yy_buffer_stack_max) = num_to_alloc;
3786                 (yy_buffer_stack_top) = 0;
3787                 return;
3788         }
3789
3790         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3791
3792                 /* Increase the buffer to prepare for a possible push. */
3793                 int grow_size = 8 /* arbitrary grow size */;
3794
3795                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3796                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3797                                                                 ((yy_buffer_stack),
3798                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
3799                                                                 );
3800                 if ( ! (yy_buffer_stack) )
3801                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3802
3803                 /* zero only the new slots.*/
3804                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3805                 (yy_buffer_stack_max) = num_to_alloc;
3806         }
3807 }
3808
3809 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3810  * @param base the character buffer
3811  * @param size the size in bytes of the character buffer
3812  * 
3813  * @return the newly allocated buffer state object. 
3814  */
3815 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
3816 {
3817         YY_BUFFER_STATE b;
3818     
3819         if ( size < 2 ||
3820              base[size-2] != YY_END_OF_BUFFER_CHAR ||
3821              base[size-1] != YY_END_OF_BUFFER_CHAR )
3822                 /* They forgot to leave room for the EOB's. */
3823                 return 0;
3824
3825         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
3826         if ( ! b )
3827                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3828
3829         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
3830         b->yy_buf_pos = b->yy_ch_buf = base;
3831         b->yy_is_our_buffer = 0;
3832         b->yy_input_file = 0;
3833         b->yy_n_chars = b->yy_buf_size;
3834         b->yy_is_interactive = 0;
3835         b->yy_at_bol = 1;
3836         b->yy_fill_buffer = 0;
3837         b->yy_buffer_status = YY_BUFFER_NEW;
3838
3839         yy_switch_to_buffer(b  );
3840
3841         return b;
3842 }
3843
3844 /** Setup the input buffer state to scan a string. The next call to yylex() will
3845  * scan from a @e copy of @a str.
3846  * @param yystr a NUL-terminated string to scan
3847  * 
3848  * @return the newly allocated buffer state object.
3849  * @note If you want to scan bytes that may contain NUL values, then use
3850  *       yy_scan_bytes() instead.
3851  */
3852 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
3853 {
3854     
3855         return yy_scan_bytes(yystr,strlen(yystr) );
3856 }
3857
3858 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3859  * scan from a @e copy of @a bytes.
3860  * @param yybytes the byte buffer to scan
3861  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3862  * 
3863  * @return the newly allocated buffer state object.
3864  */
3865 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
3866 {
3867         YY_BUFFER_STATE b;
3868         char *buf;
3869         yy_size_t n;
3870         yy_size_t i;
3871     
3872         /* Get memory for full buffer, including space for trailing EOB's. */
3873         n = _yybytes_len + 2;
3874         buf = (char *) yyalloc(n  );
3875         if ( ! buf )
3876                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3877
3878         for ( i = 0; i < _yybytes_len; ++i )
3879                 buf[i] = yybytes[i];
3880
3881         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3882
3883         b = yy_scan_buffer(buf,n );
3884         if ( ! b )
3885                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3886
3887         /* It's okay to grow etc. this buffer, and we should throw it
3888          * away when we're done.
3889          */
3890         b->yy_is_our_buffer = 1;
3891
3892         return b;
3893 }
3894
3895     static void yy_push_state (int  new_state )
3896 {
3897         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
3898                 {
3899                 yy_size_t new_size;
3900
3901                 (yy_start_stack_depth) += YY_START_STACK_INCR;
3902                 new_size = (yy_start_stack_depth) * sizeof( int );
3903
3904                 if ( ! (yy_start_stack) )
3905                         (yy_start_stack) = (int *) yyalloc(new_size  );
3906
3907                 else
3908                         (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
3909
3910                 if ( ! (yy_start_stack) )
3911                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3912                 }
3913
3914         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
3915
3916         BEGIN(new_state);
3917 }
3918
3919     static void yy_pop_state  (void)
3920 {
3921         if ( --(yy_start_stack_ptr) < 0 )
3922                 YY_FATAL_ERROR( "start-condition stack underflow" );
3923
3924         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3925 }
3926
3927     static int yy_top_state  (void)
3928 {
3929         return (yy_start_stack)[(yy_start_stack_ptr) - 1];
3930 }
3931
3932 #ifndef YY_EXIT_FAILURE
3933 #define YY_EXIT_FAILURE 2
3934 #endif
3935
3936 static void yy_fatal_error (yyconst char* msg )
3937 {
3938         (void) fprintf( stderr, "%s\n", msg );
3939         exit( YY_EXIT_FAILURE );
3940 }
3941
3942 /* Redefine yyless() so it works in section 3 code. */
3943
3944 #undef yyless
3945 #define yyless(n) \
3946         do \
3947                 { \
3948                 /* Undo effects of setting up yytext. */ \
3949         int yyless_macro_arg = (n); \
3950         YY_LESS_LINENO(yyless_macro_arg);\
3951                 yytext[yyleng] = (yy_hold_char); \
3952                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3953                 (yy_hold_char) = *(yy_c_buf_p); \
3954                 *(yy_c_buf_p) = '\0'; \
3955                 yyleng = yyless_macro_arg; \
3956                 } \
3957         while ( 0 )
3958
3959 /* Accessor  methods (get/set functions) to struct members. */
3960
3961 /** Get the current line number.
3962  * 
3963  */
3964 int yyget_lineno  (void)
3965 {
3966         
3967     return yylineno;
3968 }
3969
3970 /** Get the input stream.
3971  * 
3972  */
3973 FILE *yyget_in  (void)
3974 {
3975         return yyin;
3976 }
3977
3978 /** Get the output stream.
3979  * 
3980  */
3981 FILE *yyget_out  (void)
3982 {
3983         return yyout;
3984 }
3985
3986 /** Get the length of the current token.
3987  * 
3988  */
3989 yy_size_t yyget_leng  (void)
3990 {
3991         return yyleng;
3992 }
3993
3994 /** Get the current token.
3995  * 
3996  */
3997
3998 char *yyget_text  (void)
3999 {
4000         return yytext;
4001 }
4002
4003 /** Set the current line number.
4004  * @param line_number
4005  * 
4006  */
4007 void yyset_lineno (int  line_number )
4008 {
4009     
4010     yylineno = line_number;
4011 }
4012
4013 /** Set the input stream. This does not discard the current
4014  * input buffer.
4015  * @param in_str A readable stream.
4016  * 
4017  * @see yy_switch_to_buffer
4018  */
4019 void yyset_in (FILE *  in_str )
4020 {
4021         yyin = in_str ;
4022 }
4023
4024 void yyset_out (FILE *  out_str )
4025 {
4026         yyout = out_str ;
4027 }
4028
4029 int yyget_debug  (void)
4030 {
4031         return yy_flex_debug;
4032 }
4033
4034 void yyset_debug (int  bdebug )
4035 {
4036         yy_flex_debug = bdebug ;
4037 }
4038
4039 static int yy_init_globals (void)
4040 {
4041         /* Initialization is the same as for the non-reentrant scanner.
4042      * This function is called from yylex_destroy(), so don't allocate here.
4043      */
4044
4045     (yy_buffer_stack) = 0;
4046     (yy_buffer_stack_top) = 0;
4047     (yy_buffer_stack_max) = 0;
4048     (yy_c_buf_p) = (char *) 0;
4049     (yy_init) = 0;
4050     (yy_start) = 0;
4051
4052     (yy_start_stack_ptr) = 0;
4053     (yy_start_stack_depth) = 0;
4054     (yy_start_stack) =  NULL;
4055
4056     (yy_state_buf) = 0;
4057     (yy_state_ptr) = 0;
4058     (yy_full_match) = 0;
4059     (yy_lp) = 0;
4060
4061 /* Defined in main.c */
4062 #ifdef YY_STDINIT
4063     yyin = stdin;
4064     yyout = stdout;
4065 #else
4066     yyin = (FILE *) 0;
4067     yyout = (FILE *) 0;
4068 #endif
4069
4070     /* For future reference: Set errno on error, since we are called by
4071      * yylex_init()
4072      */
4073     return 0;
4074 }
4075
4076 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
4077 int yylex_destroy  (void)
4078 {
4079     
4080     /* Pop the buffer stack, destroying each element. */
4081         while(YY_CURRENT_BUFFER){
4082                 yy_delete_buffer(YY_CURRENT_BUFFER  );
4083                 YY_CURRENT_BUFFER_LVALUE = NULL;
4084                 yypop_buffer_state();
4085         }
4086
4087         /* Destroy the stack itself. */
4088         yyfree((yy_buffer_stack) );
4089         (yy_buffer_stack) = NULL;
4090
4091     /* Destroy the start condition stack. */
4092         yyfree((yy_start_stack)  );
4093         (yy_start_stack) = NULL;
4094
4095     yyfree ( (yy_state_buf) );
4096     (yy_state_buf)  = NULL;
4097
4098     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4099      * yylex() is called, initialization will occur. */
4100     yy_init_globals( );
4101
4102     return 0;
4103 }
4104
4105 /*
4106  * Internal utility routines.
4107  */
4108
4109 #ifndef yytext_ptr
4110 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4111 {
4112         register int i;
4113         for ( i = 0; i < n; ++i )
4114                 s1[i] = s2[i];
4115 }
4116 #endif
4117
4118 #ifdef YY_NEED_STRLEN
4119 static int yy_flex_strlen (yyconst char * s )
4120 {
4121         register int n;
4122         for ( n = 0; s[n]; ++n )
4123                 ;
4124
4125         return n;
4126 }
4127 #endif
4128
4129 void *yyalloc (yy_size_t  size )
4130 {
4131         return (void *) malloc( size );
4132 }
4133
4134 void *yyrealloc  (void * ptr, yy_size_t  size )
4135 {
4136         /* The cast to (char *) in the following accommodates both
4137          * implementations that use char* generic pointers, and those
4138          * that use void* generic pointers.  It works with the latter
4139          * because both ANSI C and C++ allow castless assignment from
4140          * any pointer type to void*, and deal with argument conversions
4141          * as though doing an assignment.
4142          */
4143         return (void *) realloc( (char *) ptr, size );
4144 }
4145
4146 void yyfree (void * ptr )
4147 {
4148         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
4149 }
4150
4151 #define YYTABLES_NAME "yytables"
4152
4153 int scan_throw(int token) {
4154   last_token = token;
4155 #ifdef DEV
4156   std::cout << "--> [DEBUG] TOKEN : " << token << std::endl;
4157 #endif
4158   return token;
4159 }
4160
4161 int get_last_token() {
4162     return last_token;
4163 }
4164
4165 void scan_step() {
4166   yylloc.first_line = yylloc.last_line;
4167   yylloc.first_column = yylloc.last_column;
4168 }
4169
4170 void scan_error(std::string msg)
4171 {
4172     wchar_t* pstMsg = to_wide_string(msg.c_str());
4173
4174     //std::wcerr << pstMsg << std::endl;
4175     ParserSingleInstance::PrintError(pstMsg);
4176     ParserSingleInstance::setExitStatus(Parser::Failed);
4177     ParserSingleInstance::resetControlStatus();
4178     FREE(pstMsg);
4179     last_token = YYEOF;
4180     BEGIN(INITIAL);
4181 }
4182
4183 /*
4184 ** convert floating numbers to C standard
4185 ** 1.2d-3 -> 1.2e-3
4186 ** 1.2D-3 -> 1.2e-3
4187 */
4188 void scan_exponent_convert(char *in)
4189 {
4190   char *pString;
4191   while((pString=strpbrk(in,"d"))!=NULL)
4192     {
4193       *pString='e';
4194     }
4195   while((pString=strpbrk(in,"D"))!=NULL)
4196     {
4197       *pString='e';
4198     }
4199 }
4200
4201 #ifdef _MSC_VER
4202 int isatty (int desc)
4203 {
4204   return 0;
4205 }
4206 #endif
4207