1 #line 2 "input_lexer.cc"
2 
3 #line 4 "input_lexer.cc"
4 
5 #define  YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define FLEX_SCANNER
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 35
13 #if YY_FLEX_SUBMINOR_VERSION > 0
14 #define FLEX_BETA
15 #endif
16 
17 /* First, we deal with  platform-specific or compiler-specific issues. */
18 
19 /* begin standard C headers. */
20 #include <stdio.h>
21 #include <string.h>
22 #include <errno.h>
23 #include <stdlib.h>
24 
25 /* end standard C headers. */
26 
27 /* flex integer type definitions */
28 
29 #ifndef FLEXINT_H
30 #define FLEXINT_H
31 
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 
34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35 
36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37  * if you want the limit (max/min) macros for int types.
38  */
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
41 #endif
42 
43 #include <inttypes.h>
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN               (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN              (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN              (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX               (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX              (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX              (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX              (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX             (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX             (4294967295U)
85 #endif
86 
87 #endif /* ! C99 */
88 
89 #endif /* ! FLEXINT_H */
90 
91 #ifdef __cplusplus
92 
93 /* The "const" storage-class-modifier is valid. */
94 #define YY_USE_CONST
95 
96 #else	/* ! __cplusplus */
97 
98 /* C99 requires __STDC__ to be defined as 1. */
99 #if defined (__STDC__)
100 
101 #define YY_USE_CONST
102 
103 #endif	/* defined (__STDC__) */
104 #endif	/* ! __cplusplus */
105 
106 #ifdef YY_USE_CONST
107 #define yyconst const
108 #else
109 #define yyconst
110 #endif
111 
112 /* Returned upon end-of-file. */
113 #define YY_NULL 0
114 
115 /* Promotes a possibly negative, possibly signed char to an unsigned
116  * integer for use as an array index.  If the signed char is negative,
117  * we want to instead treat it as an 8-bit unsigned char, hence the
118  * double cast.
119  */
120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
121 
122 /* An opaque pointer. */
123 #ifndef YY_TYPEDEF_YY_SCANNER_T
124 #define YY_TYPEDEF_YY_SCANNER_T
125 typedef void* yyscan_t;
126 #endif
127 
128 /* For convenience, these vars (plus the bison vars far below)
129    are macros in the reentrant scanner. */
130 #define yyin yyg->yyin_r
131 #define yyout yyg->yyout_r
132 #define yyextra yyg->yyextra_r
133 #define yyleng yyg->yyleng_r
134 #define yytext yyg->yytext_r
135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
137 #define yy_flex_debug yyg->yy_flex_debug_r
138 
139 /* Enter a start condition.  This macro really ought to take a parameter,
140  * but we do it the disgusting crufty way forced on us by the ()-less
141  * definition of BEGIN.
142  */
143 #define BEGIN yyg->yy_start = 1 + 2 *
144 
145 /* Translate the current start state into a value that can be later handed
146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
147  * compatibility.
148  */
149 #define YY_START ((yyg->yy_start - 1) / 2)
150 #define YYSTATE YY_START
151 
152 /* Action number for EOF rule of a given start state. */
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154 
155 /* Special action meaning "start processing a new file". */
156 #define YY_NEW_FILE giac_yyrestart(yyin ,yyscanner )
157 
158 #define YY_END_OF_BUFFER_CHAR 0
159 
160 /* Size of default input buffer. */
161 #ifndef YY_BUF_SIZE
162 #ifdef __ia64__
163 /* On IA-64, the buffer size is 16k, not 8k.
164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
165  * Ditto for the __ia64__ case accordingly.
166  */
167 #define YY_BUF_SIZE 32768
168 #else
169 #define YY_BUF_SIZE 16384
170 #endif /* __ia64__ */
171 #endif
172 
173 /* The state buf must be large enough to hold one state per character in the main buffer.
174  */
175 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
176 
177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
178 #define YY_TYPEDEF_YY_BUFFER_STATE
179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
180 #endif
181 
182 #define EOB_ACT_CONTINUE_SCAN 0
183 #define EOB_ACT_END_OF_FILE 1
184 #define EOB_ACT_LAST_MATCH 2
185 
186     #define YY_LESS_LINENO(n)
187 
188 /* Return all but the first "n" matched characters back to the input stream. */
189 #define yyless(n) \
190 	do \
191 		{ \
192 		/* Undo effects of setting up yytext. */ \
193         int yyless_macro_arg = (n); \
194         YY_LESS_LINENO(yyless_macro_arg);\
195 		*yy_cp = yyg->yy_hold_char; \
196 		YY_RESTORE_YY_MORE_OFFSET \
197 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
198 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
199 		} \
200 	while ( 0 )
201 
202 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
203 
204 #ifndef YY_TYPEDEF_YY_SIZE_T
205 #define YY_TYPEDEF_YY_SIZE_T
206 typedef size_t yy_size_t;
207 #endif
208 
209 #ifndef YY_STRUCT_YY_BUFFER_STATE
210 #define YY_STRUCT_YY_BUFFER_STATE
211 struct yy_buffer_state
212 	{
213 	FILE *yy_input_file;
214 
215 	char *yy_ch_buf;		/* input buffer */
216 	char *yy_buf_pos;		/* current position in input buffer */
217 
218 	/* Size of input buffer in bytes, not including room for EOB
219 	 * characters.
220 	 */
221 	yy_size_t yy_buf_size;
222 
223 	/* Number of characters read into yy_ch_buf, not including EOB
224 	 * characters.
225 	 */
226 	int yy_n_chars;
227 
228 	/* Whether we "own" the buffer - i.e., we know we created it,
229 	 * and can realloc() it to grow it, and should free() it to
230 	 * delete it.
231 	 */
232 	int yy_is_our_buffer;
233 
234 	/* Whether this is an "interactive" input source; if so, and
235 	 * if we're using stdio for input, then we want to use getc()
236 	 * instead of fread(), to make sure we stop fetching input after
237 	 * each newline.
238 	 */
239 	int yy_is_interactive;
240 
241 	/* Whether we're considered to be at the beginning of a line.
242 	 * If so, '^' rules will be active on the next match, otherwise
243 	 * not.
244 	 */
245 	int yy_at_bol;
246 
247     int yy_bs_lineno; /**< The line count. */
248     int yy_bs_column; /**< The column count. */
249 
250 	/* Whether to try to fill the input buffer when we reach the
251 	 * end of it.
252 	 */
253 	int yy_fill_buffer;
254 
255 	int yy_buffer_status;
256 
257 #define YY_BUFFER_NEW 0
258 #define YY_BUFFER_NORMAL 1
259 	/* When an EOF's been seen but there's still some text to process
260 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
261 	 * shouldn't try reading from the input source any more.  We might
262 	 * still have a bunch of tokens to match, though, because of
263 	 * possible backing-up.
264 	 *
265 	 * When we actually see the EOF, we change the status to "new"
266 	 * (via giac_yyrestart()), so that the user can continue scanning by
267 	 * just pointing yyin at a new input file.
268 	 */
269 #define YY_BUFFER_EOF_PENDING 2
270 
271 	};
272 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
273 
274 /* We provide macros for accessing buffer states in case in the
275  * future we want to put the buffer states in a more general
276  * "scanner state".
277  *
278  * Returns the top of the stack, or NULL.
279  */
280 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
281                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
282                           : NULL)
283 
284 /* Same as previous macro, but useful when we know that the buffer stack is not
285  * NULL or when we need an lvalue. For internal use only.
286  */
287 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
288 
289 void giac_yyrestart (FILE *input_file ,yyscan_t yyscanner );
290 void giac_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
291 YY_BUFFER_STATE giac_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
292 void giac_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
293 void giac_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
294 void giac_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
295 void giac_yypop_buffer_state (yyscan_t yyscanner );
296 
297 static void giac_yyensure_buffer_stack (yyscan_t yyscanner );
298 static void giac_yy_load_buffer_state (yyscan_t yyscanner );
299 static void giac_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
300 
301 #define YY_FLUSH_BUFFER giac_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
302 
303 YY_BUFFER_STATE giac_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
304 YY_BUFFER_STATE giac_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
305 YY_BUFFER_STATE giac_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
306 
307 void *giac_yyalloc (yy_size_t ,yyscan_t yyscanner );
308 void *giac_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
309 void giac_yyfree (void * ,yyscan_t yyscanner );
310 
311 #define yy_new_buffer giac_yy_create_buffer
312 
313 #define yy_set_interactive(is_interactive) \
314 	{ \
315 	if ( ! YY_CURRENT_BUFFER ){ \
316         giac_yyensure_buffer_stack (yyscanner); \
317 		YY_CURRENT_BUFFER_LVALUE =    \
318             giac_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
319 	} \
320 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
321 	}
322 
323 #define yy_set_bol(at_bol) \
324 	{ \
325 	if ( ! YY_CURRENT_BUFFER ){\
326         giac_yyensure_buffer_stack (yyscanner); \
327 		YY_CURRENT_BUFFER_LVALUE =    \
328             giac_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
329 	} \
330 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
331 	}
332 
333 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
334 
335 /* Begin user sect3 */
336 
337 #define giac_yywrap(n) 1
338 #define YY_SKIP_YYWRAP
339 
340 typedef unsigned char YY_CHAR;
341 
342 typedef int yy_state_type;
343 
344 #define yytext_ptr yytext_r
345 
346 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
347 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
348 static int yy_get_next_buffer (yyscan_t yyscanner );
349 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
350 
351 /* Done after the current pattern has been matched and before the
352  * corresponding action - sets up yytext.
353  */
354 #define YY_DO_BEFORE_ACTION \
355 	yyg->yytext_ptr = yy_bp; \
356 	yyleng = (size_t) (yy_cp - yy_bp); \
357 	yyg->yy_hold_char = *yy_cp; \
358 	*yy_cp = '\0'; \
359 	yyg->yy_c_buf_p = yy_cp;
360 
361 #define YY_NUM_RULES 439
362 #define YY_END_OF_BUFFER 440
363 /* This struct is not used in this scanner,
364    but its presence is necessary. */
365 struct yy_trans_info
366 	{
367 	flex_int32_t yy_verify;
368 	flex_int32_t yy_nxt;
369 	};
370 static yyconst flex_int16_t yy_accept[1387] =
371     {   0,
372         0,    0,   23,   23,    0,    0,    0,    0,    0,    0,
373       440,  438,    1,    2,  195,    3,  436,  152,  253,  207,
374        31,   98,   99,  228,  197,   96,  223,  232,  238,  409,
375       409,   34,   32,   90,  149,   91,   29,  167,  434,  434,
376       434,  304,  434,  434,  434,  434,   44,  434,  434,  434,
377       434,  434,  434,  434,  434,  434,  434,  434,  434,  100,
378       101,  261,   30,   16,  434,  434,  434,  434,  305,  434,
379       434,  434,   38,  434,  434,  434,  434,  434,  434,  434,
380       434,  434,  434,  434,  434,  434,  119,  179,  120,  208,
381        42,  434,  434,  434,  434,  434,  438,  434,  434,   23,
382 
383        25,   24,  439,  437,  439,   15,    6,    5,  439,   18,
384        17,   19,    1,  136,    0,    0,    0,    0,    0,    0,
385         0,    0,  153,  254,  240,  150,  435,  103,  104,    0,
386        46,   45,  435,  121,  122,  173,  233,  243,  234,    0,
387         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
388         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
389         0,    0,    0,    0,    0,    0,  264,  230,  198,  199,
390        97,  102,  203,    0,  130,  204,  129,  235,  206,  225,
391       189,  250,  430,  265,  239,   22,    0,  248,  118,  428,
392       409,  410,    0,    0,    0,    0,    0,    0,   36,   35,
393 
394       156,    0,    0,    0,  127,  143,  138,  163,    0,  164,
395       131,  162,  147,  128,  166,  168,  434,  434,  434,  434,
396       434,  434,  434,  434,  434,  434,  375,  434,  434,  434,
397       434,  434,  434,  434,  434,  434,  434,  434,  434,  322,
398       385,  434,  434,  434,  434,  184,   51,  434,  434,   50,
399       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
400       434,  434,  262,  245,    0,    0,    0,    0,    0,    0,
401         0,    0,    0,    0,    0,    0,    0,    0,  434,  434,
402       434,  434,  434,  294,  434,  434,  434,  434,  434,  434,
403       434,  376,  434,  434,  434,  434,  434,  434,  434,  434,
404 
405       434,  434,  434,  434,  434,   67,  321,  434,  434,  434,
406       434,  434,  434,  434,  434,  434,  434,   57,  346,  434,
407        48,  434,  434,  434,  434,  434,  434,  434,  434,  434,
408       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
409       434,  434,  434,  434,  434,  434,  434,  434,  117,  244,
410       180,   33,  434,  211,  212,  434,   62,   39,   37,   49,
411       434,  434,  434,  434,  434,  434,  434,    0,  434,  434,
412        23,   24,   24,   26,    0,  437,   15,    4,   14,    7,
413         8,   12,   13,    9,   11,   10,   18,    0,    0,  420,
414       421,  419,  423,  422,  424,  255,  111,  112,  105,  106,
415 
416       123,  124,  242,  435,  109,  110,   47,    0,    0,    0,
417         0,  154,  256,    0,    0,  236,  221,  226,    0,  251,
418         0,  144,    0,    0,  151,    0,  146,    0,  171,    0,
419       266,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,  201,  133,  192,  431,    0,  241,
421         0,   21,  428,  429,    0,    0,    0,  432,    0,  426,
422       425,  427,  411,    0,    0,    0,    0,  247,    0,  132,
423       246,  175,  196,  434,  434,  434,  398,  434,  434,  434,
424       434,  434,  434,  434,  434,  434,  434,  316,  389,  434,
425       434,  434,  434,  434,  434,  434,  434,  434,  394,  434,
426 
427       339,  434,  434,  434,  434,  434,  434,  434,  434,  397,
428       434,  365,  434,  434,  434,  434,  434,  188,    0,    0,
429         0,    0,    0,    0,  327,    0,    0,    0,    0,    0,
430         0,  183,    0,    0,    0,    0,    0,    0,    0,  434,
431       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
432       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
433       434,  434,  434,  315,  434,  434,  434,  434,  434,  434,
434        56,  434,  434,  434,  434,  332,  434,  434,  258,  341,
435       434,  338,  434,  434,  434,  434,  434,  434,  434,  434,
436       434,  263,  434,  434,  434,  434,  434,  434,  434,  434,
437 
438       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
439       434,  434,  434,  434,  434,  434,  434,  434,  434,  185,
440         0,  434,   43,  220,  213,  214,  215,  216,  217,  218,
441       306,  161,  403,  408,  224,  209,   54,  210,  404,  406,
442       405,  407,  229,  160,  159,  219,   41,  307,  434,    7,
443         8,    0,    0,    0,    0,    0,  113,  114,  107,  108,
444       125,  126,    0,   94,   92,  137,  257,  176,  193,  157,
445       141,  139,  134,  148,  169,    0,    0,  326,    0,    0,
446         0,    0,    0,  345,  182,    0,    0,    0,  181,    0,
447         0,  430,    0,  429,    0,    0,    0,  428,    0,    0,
448 
449       433,    0,  412,    0,   20,    0,    0,    0,    0,  434,
450       300,  301,  434,  434,  434,  434,  434,  434,  392,  434,
451       434,  387,  395,  317,  434,  434,  434,  434,  434,  324,
452       331,  388,  434,  434,  434,  434,  434,  434,  434,  434,
453       434,  434,  377,  434,  372,  434,  434,  178,    0,    0,
454         0,    0,    0,    0,    0,    0,    0,  260,    0,  343,
455         0,    0,    0,    0,    0,    0,    0,  186,  434,  434,
456       434,  434,  434,  434,  434,  434,  434,  298,  434,  434,
457       434,  434,  434,    0,  434,  434,  434,  434,  434,  434,
458       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
459 
460       323,  434,  434,  434,  434,  434,   64,  434,  434,  434,
461       434,    0,  434,  434,  434,  434,  434,  434,   74,  434,
462       434,  434,  434,  434,  434,  434,  434,  434,  363,  434,
463       364,  434,   65,   66,  434,  434,  434,  367,  434,  434,
464       434,  434,  434,  434,  434,  434,  434,  434,  434,    0,
465       434,   40,    7,    0,    0,  115,  116,    0,   95,   93,
466       177,    0,    0,    0,    0,  259,  342,    0,    0,  187,
467         0,  431,    0,    0,    0,  428,    0,    0,  429,    0,
468         0,  383,  382,  384,  165,  299,  391,  302,  434,  434,
469       434,  434,  434,  311,  434,  434,  434,  434,  434,  434,
470 
471       354,  393,  379,  434,  434,  434,  434,  401,  434,  381,
472       374,  390,    0,    0,    0,    0,    0,    0,    0,  145,
473         0,  237,  222,    0,    0,    0,    0,    0,    0,  434,
474       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
475       434,  434,  434,    0,    0,    0,  434,  308,  310,  309,
476       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
477       434,  434,  434,  434,  434,  434,  434,  434,   71,   68,
478        83,  434,  434,  434,    0,  434,  434,  434,  349,  434,
479       434,  434,  434,  434,  434,  352,  434,  434,  434,  434,
480       434,  434,   87,  434,  434,  434,  434,  434,  434,  434,
481 
482       434,  191,  434,  434,   61,  434,  434,  434,  434,  373,
483         0,  434,   27,   28,    0,  291,  325,    0,    0,    0,
484         0,    0,  429,    0,    0,  434,  274,  396,  268,  434,
485       270,  434,  434,  434,  434,  400,  358,  361,  434,  386,
486       434,  366,    0,    0,  135,    0,  170,    0,    0,  337,
487       267,  194,    0,    0,    0,  370,  434,  434,  434,  288,
488       292,  295,  434,  434,  434,  434,  334,   79,  303,  434,
489       319,  318,    0,  434,  434,  434,  434,  434,  312,  313,
490       434,  434,  434,  434,  434,   70,  434,  434,  434,  434,
491       434,  434,  434,  434,  434,  340,  281,  434,  348,  434,
492 
493       434,   77,   81,  434,  434,  434,  434,  356,  434,  434,
494       359,  434,  434,  333,  434,  434,  368,  335,  434,   78,
495       434,  434,  434,  434,  434,   55,   88,   89,    0,    0,
496       336,    0,  369,  413,  434,  434,  434,  269,  271,  434,
497       380,  434,  158,  252,    0,    0,    0,  155,    0,    0,
498       434,  434,  434,  290,  293,  296,   82,  434,  434,  434,
499       434,    0,  286,  434,  434,  434,  434,  434,  347,   85,
500        75,  434,  434,  434,  434,  434,  434,  434,   73,  434,
501       344,  434,  434,  434,  434,  434,  434,  434,  357,  434,
502       434,  434,  434,  434,  275,  434,  434,  434,   72,  371,
503 
504         0,    0,  362,  414,  434,  378,  272,  434,  434,  172,
505         0,  142,    0,  140,  434,  434,  434,  434,  434,  434,
506       434,  320,  434,  434,  434,  434,  314,   76,  434,  328,
507       434,   53,  190,  434,  434,   63,  434,   59,  434,  434,
508       289,  355,  360,  434,  434,  434,  434,  353,  434,  434,
509         0,    0,    0,    0,  399,  273,  402,    0,  227,  434,
510       434,  434,  434,  297,  434,  434,  434,  434,  434,  434,
511       434,   80,  434,  434,   60,  434,   86,  434,   69,  434,
512       434,  434,  434,  434,  174,    0,  417,    0,  330,  434,
513       434,  434,  434,  434,  434,  205,  434,  434,  434,  434,
514 
515       434,  434,  350,  434,  434,  434,  434,  434,  434,  329,
516         0,  415,  434,  434,  278,  200,  434,  434,  434,  434,
517       434,   52,  434,  284,  434,  434,  434,  434,  434,  434,
518         0,  416,  434,  277,  282,  434,  434,  434,  434,  434,
519       434,  434,   84,  434,   58,  434,  418,  434,  434,  434,
520       434,  434,  434,  287,  434,  434,  351,  434,  434,  249,
521       434,  434,  434,  434,  283,  434,  434,  434,  434,  434,
522       434,  434,  434,  434,  434,  280,  434,  434,  285,  434,
523       231,  276,  279,  434,  202,    0
524     } ;
525 
526 static yyconst flex_int32_t yy_ec[256] =
527     {   0,
528         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
529         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
530         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
531         1,    4,    5,    6,    7,    8,    9,   10,   11,   12,
532        13,   14,   15,   16,   17,   18,   19,   20,   21,   22,
533        23,   23,   23,   23,   23,   24,   24,   25,   26,   27,
534        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
535        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
536        41,   48,   49,   50,   51,   52,   53,   54,   41,   41,
537        55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
538 
539        65,   66,   67,   68,   69,   41,   70,   71,   72,   73,
540        74,   75,   76,   77,   78,   79,   80,   81,   82,   83,
541        84,   41,   85,   86,   87,   88,    1,   89,   90,   91,
542        92,   93,   94,   95,   41,   96,   97,   98,   41,   41,
543        41,   41,   99,  100,   41,  101,   41,   41,   41,  102,
544       103,   41,   41,  104,   41,   41,  105,  106,   41,  107,
545       108,  109,   41,  110,  111,  112,  113,   41,   41,   41,
546       114,   41,   41,   41,  115,  116,  117,  118,  119,  120,
547       121,  122,  123,  124,  125,  126,   41,   41,   41,   41,
548       127,   41,   41,  128,  129,   41,   41,   41,   41,   41,
549 
550        41,   41,   41,   41,   41,  130,  131,   41,   41,   41,
551        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
552        41,   41,   41,   41,   41,  132,   41,   41,   41,   41,
553        41,   41,   41,   41,   41,   41,   41,  133,  134,  135,
554        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
555        41,   41,   41,   41,    1
556     } ;
557 
558 static yyconst flex_int32_t yy_meta[136] =
559     {   0,
560         1,    1,    2,    1,    1,    3,    1,    4,    4,    1,
561         1,    1,    1,    5,    1,    1,    1,    1,    4,    6,
562         6,    6,    6,    6,    1,    1,    1,    4,    1,    6,
563         1,    7,    7,    7,    7,    7,    7,    7,    7,    7,
564         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
565         7,    7,    7,    7,    4,    3,    4,    1,    7,    8,
566         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
567         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
568         7,    7,    7,    7,    4,    1,    4,    6,    7,    7,
569         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
570 
571         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
572         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
573         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
574         7,    7,    1,    7,    7
575     } ;
576 
577 static yyconst flex_int16_t yy_base[1404] =
578     {   0,
579         0,    0,  133,  134,  135,  136,  137,  138,  139,  142,
580      2046, 2047,  149, 2047, 2017, 2047,  191, 2047,  176,  149,
581       270, 2047, 2047,  132,  137,  139,  139,  288,  155,  296,
582       342,  153, 2047,  159,  220,  133, 2047,  246,  109, 1996,
583       212,  305,  109,  124, 1969,  290,  143,    0, 2002,  127,
584      1995, 1992,  329,  185,  194,  106, 2007,  164, 1992, 2047,
585      2047,  208,  322, 2047,  333,  201,  117,  283,  342,  217,
586       206, 1976,  361, 1971,  202,  260,  275,  143,  366,  310,
587       384,  353,  257,  195, 1967, 1960, 2014,  218, 2047, 2047,
588         0,  337,  228,  244, 1943,  376, 1942, 1941, 1924,    0,
589 
590      2047,  362, 2025, 2047, 2047,    0, 2047, 2021,  459,    0,
591      2047, 2047,  236, 2047, 2011, 2008,  465,  483,  532,  550,
592       470,  599, 2047,  590, 1996, 2047,    0, 2047, 2047,  281,
593         0,    0, 1954, 2047, 2047, 2047, 2047, 2047, 2047, 1950,
594      1942, 1941, 1991, 2007,  381, 2007, 2005, 2004, 2003, 1995,
595      2001, 1983,  433,  420,  430,  421, 1999,  365,  394,  354,
596      1935,  391, 1943, 1934, 1932, 1919, 1976, 2047, 2047, 2047,
597      2047, 2047, 2047, 1986, 2047, 2047, 2047, 2047, 2047, 2047,
598      1984, 2047,  618, 2047, 1973, 2047, 1997, 2047, 2047,  646,
599       666,  302,  635,  455,  488,  671, 1883, 1979, 2047, 2047,
600 
601      2047, 1917, 1919, 1915, 1966, 2047, 2047, 2047, 1922, 2047,
602      1964, 2047, 2047, 1963,  538, 2047,    0, 1955, 1911, 1952,
603      1938, 1941, 1914, 1921,  257, 1945,    0,  514, 1908, 1933,
604      1911, 1931, 1901, 1898,  422, 1902, 1906, 1900, 1912, 1922,
605         0, 1928, 1899, 1895, 1918,    0, 1924, 1918, 1885,    0,
606      1889,  126,  458, 1881, 1924, 1911, 1877, 1880, 1910, 1917,
607      1887, 1907, 2047, 2047,  462, 1885, 1877,  250,  411, 1887,
608       605, 1877, 1873,  505, 1888,  371, 1875, 1873, 1875, 1878,
609      1869, 1880, 1864,    0, 1874, 1877, 1865,  529, 1861, 1860,
610      1864,    0, 1871, 1856, 1853,  312, 1853, 1860, 1855, 1860,
611 
612      1848,  533, 1865, 1852, 1854, 2047,  433,  564, 1859,  551,
613      1856, 1843, 1848, 1856, 1852,  160, 1847,    0,  498, 1843,
614         0,  598, 1837,  509, 1841, 1837, 1840,  530, 1850, 1837,
615      1837, 1837, 1839,  549, 1834, 1829, 1840, 1842, 1830, 1825,
616      1832, 1825,  637, 1834, 1835, 1820, 1827, 1818, 2047, 2047,
617      2047,    0, 1890,    0,    0, 1765,    0,    0,    0,    0,
618       596, 1777, 1790,  639,  615, 1787,  527, 1796,  582, 1788,
619         0,  632,  709, 2047, 1884, 2047,    0, 2047, 2047,  728,
620       734, 2047, 2047, 2047, 2047, 2047,    0, 1871, 1868,  739,
621      2047, 2047,  788,  744,  806,  776, 2047, 2047, 2047, 2047,
622 
623      2047, 2047, 2047,    0, 2047, 2047,    0, 1809, 1857, 1856,
624      1870, 2047, 2047, 1869, 1868, 2047, 2047, 2047, 1867, 2047,
625      1866, 2047, 1865, 1864, 2047, 1863, 2047, 1862, 2047, 1861,
626      2047, 1807, 1803,  511, 1790, 1795, 1803, 1787, 1854, 1853,
627      1784, 1793, 1784, 1849, 2047, 2047, 2047,  477,  858, 2047,
628      1856, 2047,  863,  478,  880,  890,  757,  775,  910,  503,
629       770,  915,  793, 1855, 1784, 1789, 1782, 2047, 1775, 2047,
630      2047,    0,    0, 1821, 1816, 1801,    0, 1779, 1798, 1798,
631      1807, 1775, 1776, 1769, 1768, 1796, 1762,    0,    0, 1766,
632      1789, 1771, 1765, 1769, 1758, 1761, 1797, 1789,    0, 1756,
633 
634         0, 1790, 1791, 1750, 1747, 1790, 1774, 1744, 1743,    0,
635      1778, 1762, 1741, 1748, 1769, 1774, 1745,    0, 1751, 1736,
636      1732, 1732, 1737, 1745, 2047, 1730,  634, 1735, 1743, 1735,
637      1726, 2047, 1724, 1721, 1729, 1725, 1738,  677, 1722, 1739,
638      1726, 1719,  705, 1715, 1722, 1723, 1729, 1716, 1656, 1708,
639      1719, 1718, 1782, 1716, 1723, 1705, 1708, 1722, 1715,  708,
640      1701, 1709, 1713,    0,  783, 1696, 1709, 1711, 1708, 1695,
641      1702, 1705, 1694, 1703, 1688, 1692, 1688, 1684,    0,    0,
642      1691, 1758, 1702, 1683, 1690, 1693, 1678, 1678, 1700, 1681,
643      1669,    0, 1690, 1684, 1686, 1684,  785, 1687, 1668, 1687,
644 
645      1680, 1679, 1688, 1687, 1607, 1675, 1664, 1660, 1603, 1671,
646      1670, 1663, 1655, 1667, 1662, 1653, 1650, 1661, 1656,    0,
647      1594, 1613,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0, 2047,    0,    0, 1615,  824,
650       868, 1708, 1707, 1704, 1703,  576, 2047, 2047, 2047, 2047,
651      2047, 2047, 1693, 1690, 1689, 2047, 2047, 2047, 2047, 2047,
652      2047, 2047, 2047, 2047, 2047, 1705, 1637, 2047, 1649, 1648,
653      1632, 1700, 1699, 2047, 2047, 1629, 1634, 1696, 2047,  939,
654       897,  920,  949,  572,  967,  977,  985,  994, 1004, 1013,
655 
656      1023, 1033, 1038, 1703, 2047, 1642, 1632, 1640, 1676, 1659,
657         0,    0, 1635, 1661, 1666, 1647, 1622, 1616,    0, 1659,
658      1645,    0,    0,    0, 1621, 1616, 1621, 1617, 1621,    0,
659         0,    0, 1638, 1650, 1620, 1609, 1651, 1634, 1616, 1603,
660      1647, 1638,    0, 1612,    0, 1640, 1610, 2047, 1605, 1604,
661      1611, 1598, 1592, 1604, 1592, 1589, 1586, 2047, 1586, 2047,
662      1586, 1598, 1595, 1594, 1581, 1583, 1584, 2047, 1578, 1591,
663      1581, 1580, 1584, 1591, 1579, 1585, 1573,    0, 1577, 1558,
664      1581, 1564, 1571,  791, 1572, 1571, 1576, 1563,  893, 1562,
665      1565, 1560, 1557, 1564, 1569, 1560, 1567, 1556, 1559, 1550,
666 
667         0, 1563, 1554, 1549, 1566, 1569, 1568, 1567, 1552, 1542,
668      1558, 1549, 1543, 1555, 1541, 1548, 1547, 1553, 2047, 1532,
669       659, 1549, 1544,  666,  565, 1528, 1530, 1551,    0, 1539,
670         0, 1531, 2047, 2047, 1514, 1541, 1542, 1526, 1510, 1537,
671      1520, 1531, 1517, 1528, 1526, 1533, 1517, 1510, 1524, 1492,
672      1459,    0, 1043,  666,  889, 2047, 2047, 1576, 2047, 2047,
673      2047, 1574, 1573, 1506, 1504, 2047, 2047, 1493, 1489, 2047,
674      1048, 1053, 1063, 1073, 1078, 1083, 1093, 1098, 1103, 1113,
675      1453, 2047, 2047, 2047, 2047,    0,    0,    0, 1484, 1477,
676      1454, 1432, 1431,    0, 1437, 1426, 1417, 1400, 1380, 1409,
677 
678         0,    0,    0, 1408, 1412, 1378, 1382, 1411, 1408,    0,
679         0,    0, 1385, 1387, 1379, 1386, 1369, 1370, 1366, 2047,
680      1367, 2047, 2047, 1367, 1378, 1377, 1364, 1360, 1366,  238,
681       277,  318,  348,  423,  468,  485,  533,  537,  645,  633,
682       674,  676,  690,  712,  721,  729,  744,    0,    0,    0,
683       750,  761,  754,  776,  772,  758,  780,  791,  797,  797,
684       814,  843,  839,  835,  854,  853,  843,  868, 2047, 2047,
685      2047,  863,  894,  896,  895,  901,  904,  912,    0,  906,
686       924,  940,  941,  938,  951,    0,  937,  947,  941,  957,
687       946,  956, 2047,  950,  952,  944,  975,  971,  966,  955,
688 
689       987,    0,  997, 1010,    0, 1008, 1008, 1012, 1020,    0,
690       986, 1019, 1114, 1114, 1071, 2047, 2047, 1061, 1129, 1068,
691      1131, 1123, 1128, 1138, 1036, 1116,    0,    0,    0, 1075,
692         0, 1098, 1086, 1086, 1105,    0,    0,    0, 1088,    0,
693      1128,    0, 1096, 1106, 2047, 1111, 2047, 1095, 1113, 2047,
694      2047, 2047, 1102, 1115, 1116, 2047, 1109, 1102, 1121, 1113,
695      1114, 1115, 1129, 1106, 1112, 1104,    0, 2047,    0, 1123,
696      2047, 2047, 1115, 1117, 1110, 1127, 1122, 1127,    0,    0,
697      1126, 1131, 1142, 1143, 1120, 2047, 1127, 1124, 1124, 1124,
698      1143, 1134, 1151, 1138, 1142, 2047,    0, 1135,    0, 1137,
699 
700      1138, 2047, 2047, 1135, 1148, 1137, 1150,    0, 1139, 1144,
701         0, 1145, 1150,    0, 1142, 1148,    0,    0, 1144, 2047,
702      1156, 1159, 1150, 1171, 1162, 2047,    0,    0, 1156, 1164,
703      2047, 1219, 2047, 1211, 1187, 1164, 1155,    0,    0, 1172,
704         0, 1191, 2047, 2047, 1162, 1177, 1172, 2047, 1181, 1174,
705      1179, 1186, 1176,    0,    0,    0, 2047, 1184, 1171, 1192,
706      1193, 1190,    0, 1185, 1174, 1177, 1196, 1196,    0, 2047,
707      2047, 1204, 1195, 1183, 1193, 1179, 1193, 1198, 2047, 1193,
708         0, 1190, 1205, 1203, 1205, 1196, 1200, 1209,    0, 1209,
709      1212, 1210, 1209, 1212,    0, 1206, 1216, 1216, 2047,    0,
710 
711      1207, 1220, 2047, 1266, 1235,    0,    0, 1226, 1242, 2047,
712      1230, 2047, 1215, 2047, 1236, 1232, 1223, 1239, 1234, 1228,
713      1237, 2047, 1224, 1238, 1235, 1233,    0, 2047, 1251,    0,
714      1234,    0,    0, 1243, 1244,    0, 1289,    0, 1257, 1235,
715         0,    0,    0, 1259, 1246, 1251, 1243,    0, 1259, 1242,
716      1294, 1242, 1302, 1238,    0,    0,    0, 1249, 2047, 1251,
717      1261, 1267, 1268,    0, 1259, 1273, 1270, 1271, 1278, 1263,
718      1267, 2047, 1273, 1258,    0, 1278, 2047, 1274, 2047, 1281,
719      1280, 1275, 1278, 1287, 2047, 1338, 1330, 1236, 2047, 1282,
720      1296, 1293, 1294, 1296, 1284,    0, 1303, 1288, 1293, 1304,
721 
722      1307, 1288,    0, 1297, 1310, 1291, 1306, 1299, 1294, 2047,
723      1285, 1355, 1309, 1308,    0,    0, 1317, 1314, 1309, 1305,
724      1317,    0, 1312,    0, 1314, 1323, 1335, 1310, 1326, 1319,
725      1275, 1379, 1315,    0,    0, 1335, 1336, 1335, 1340, 1332,
726      1334, 1334, 2047, 1344,    0, 1333, 2047, 1332, 1350, 1336,
727      1336, 1356, 1334,    0, 1340, 1347,    0, 1350, 1349,    0,
728      1343, 1347, 1358, 1352,    0, 1351, 1361, 1366, 1367, 1352,
729      1369, 1358, 1354, 1360, 1357,    0, 1356, 1358,    0, 1374,
730         0,    0,    0, 1373,    0, 2047, 1462, 1470, 1478, 1486,
731      1491, 1493, 1500, 1508, 1516, 1524, 1532, 1540, 1542, 1549,
732 
733      1557, 1565, 1573
734     } ;
735 
736 static yyconst flex_int16_t yy_def[1404] =
737     {   0,
738      1386,    1, 1387, 1387, 1388, 1388, 1389, 1389, 1390, 1390,
739      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1391, 1386,
740      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
741      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1392, 1392,
742      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
743      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386,
744      1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392,
745      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
746      1392, 1392, 1392, 1392, 1392, 1392, 1386, 1386, 1386, 1386,
747      1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1393,
748 
749      1386, 1394, 1395, 1386, 1386, 1396, 1386, 1386, 1397, 1398,
750      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
751      1386, 1386, 1386, 1386, 1386, 1386, 1399, 1386, 1386, 1386,
752      1399, 1399, 1399, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
753      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
754      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
755      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
756      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
757      1386, 1386, 1386, 1386, 1386, 1386, 1400, 1386, 1386, 1386,
758      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
759 
760      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
761      1386, 1386, 1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392,
762      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
763      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
764      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
765      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
766      1392, 1392, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
767      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1392, 1392,
768      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
769      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
770 
771      1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1392, 1392,
772      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
773      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
774      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
775      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1386,
776      1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
777      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392,
778      1393, 1394, 1394, 1386, 1395, 1386, 1396, 1386, 1386, 1386,
779      1386, 1386, 1386, 1386, 1386, 1386, 1398, 1401, 1402, 1386,
780      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
781 
782      1386, 1386, 1386, 1399, 1386, 1386, 1399, 1386, 1386, 1386,
783      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
784      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
785      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
786      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
787      1400, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
788      1386, 1386, 1386, 1403, 1386, 1386, 1386, 1386, 1386, 1386,
789      1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
790      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
791      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
792 
793      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
794      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1386,
795      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
796      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1392,
797      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
798      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
799      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
800      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
801      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
802      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
803 
804      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
805      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
806      1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
807      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
808      1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1392, 1386,
809      1386, 1401, 1401, 1402, 1402, 1386, 1386, 1386, 1386, 1386,
810      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
811      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
812      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
813      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
814 
815      1386, 1386, 1386, 1403, 1386, 1386, 1386, 1386, 1386, 1392,
816      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
817      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
818      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
819      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1386, 1386,
820      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
821      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1392, 1392,
822      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
823      1392, 1392, 1392, 1386, 1392, 1392, 1392, 1392, 1392, 1392,
824      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
825 
826      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
827      1392, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392,
828      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
829      1392, 1392, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392,
830      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386,
831      1392, 1392, 1386, 1401, 1402, 1386, 1386, 1386, 1386, 1386,
832      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
833      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
834      1386, 1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392,
835      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
836 
837      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
838      1392, 1392, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
839      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1392,
840      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
841      1392, 1392, 1392, 1386, 1386, 1386, 1392, 1392, 1392, 1392,
842      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
843      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1386,
844      1386, 1392, 1392, 1392, 1386, 1392, 1392, 1392, 1392, 1392,
845      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
846      1392, 1392, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
847 
848      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
849      1386, 1392, 1401, 1402, 1386, 1386, 1386, 1386, 1386, 1386,
850      1386, 1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392,
851      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
852      1392, 1392, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
853      1386, 1386, 1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392,
854      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392,
855      1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
856      1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1392, 1392,
857      1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1392, 1392,
858 
859      1392, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
860      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386,
861      1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1386, 1386,
862      1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392,
863      1392, 1392, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
864      1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392, 1392,
865      1392, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386,
866      1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392,
867      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
868      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386, 1392,
869 
870      1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1386,
871      1386, 1386, 1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392,
872      1392, 1386, 1392, 1392, 1392, 1392, 1392, 1386, 1392, 1392,
873      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
874      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
875      1386, 1386, 1386, 1386, 1392, 1392, 1392, 1386, 1386, 1392,
876      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
877      1392, 1386, 1392, 1392, 1392, 1392, 1386, 1392, 1386, 1392,
878      1392, 1392, 1392, 1392, 1386, 1386, 1386, 1386, 1386, 1392,
879      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
880 
881      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1386,
882      1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
883      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
884      1386, 1386, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
885      1392, 1392, 1386, 1392, 1392, 1392, 1386, 1392, 1392, 1392,
886      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
887      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
888      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
889      1392, 1392, 1392, 1392, 1392,    0, 1386, 1386, 1386, 1386,
890      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
891 
892      1386, 1386, 1386
893     } ;
894 
895 static yyconst flex_int16_t yy_nxt[2183] =
896     {   0,
897        12,   13,   14,   13,   15,   16,   17,   18,   19,   20,
898        21,   22,   23,   24,   25,   26,   27,   28,   29,   30,
899        31,   31,   31,   31,   32,   33,   34,   35,   36,   37,
900        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
901        48,   49,   50,   48,   51,   52,   53,   54,   55,   56,
902        48,   57,   58,   59,   60,   13,   61,   62,   63,   64,
903        65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
904        75,   76,   77,   78,   79,   48,   80,   81,   82,   83,
905        84,   85,   86,   48,   87,   88,   89,   90,   48,   48,
906        48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
907 
908        48,   48,   48,   48,   48,   48,   48,   91,   48,   48,
909        48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
910        48,   48,   48,   48,   48,   48,   48,   92,   93,   94,
911        95,   96,   97,   98,   99,  101,  101,  104,  104,  107,
912       107,  111,  108,  108,  111,  167,  102,  102,  105,  105,
913       113,  169,  113,  218,  171,  173,  230,  174,  136,  168,
914       213,  214,  137,  185,  170,  175,  176,  177,  186,  232,
915       257,  198,  506,  187,  258,  507,  138,  199,  200,  240,
916       201,  219,  188,  123,  124,  205,  206,  207,  243,  202,
917       288,  231,  109,  109,  125,  172,  289,  233,  112,  203,
918 
919       244,  112,  260,  126,  113,  115,  139,  116,  241,  140,
920       117,  117,  118,  118,  119,  141,  318,  319,  204,  142,
921       252,  263,  119,  119,  119,  119,  119,  119,  208,  209,
922       128,  261,  129,  255,  130,  264,  581,  113,  582,  113,
923       131,  189,  256,  221,  132,  350,  210,  211,  212,  253,
924       133,  119,  120,  119,  119,  119,  119,  222,  254,  345,
925       134,  286,  135,  346,  121,  215,  215,  215,  215,  215,
926       310,  287,  303,  122,  143,  311,  216,  144,  145,  146,
927       300,  301,  304,  147,  148,  223,  149,  150,  151,  479,
928       302,  113,  405,  406,  152,  224,  153,  154,  155,  480,
929 
930       156,  178,  179,  351,  180,  181,  182,  183,  183,  183,
931       183,  183,  523,  190, 1057,  191,  191,  191,  191,  191,
932       312,  235,  524,  236,  237,  192,  238,  157,  313,  343,
933       158,  193,  239,  314,  344, 1058,  356,  456,  159,  315,
934       225,  160,  161,  162,  226,  184,  163,  290,  316,  164,
935       227,  291,  165,  317,  357,  166,  292,  194,  358,  190,
936       193,  191,  191,  191,  191,  191,  456,  359,  247,  195,
937       327,  192,  556,  228,  328,  373,  329,  193,  196,  248,
938       374,  229,  265,  330,  331,  266,  267,  268,  557,  249,
939       269,  413,  270,  271,  272,  273,  274,  250,  275,  276,
940 
941      1059,  277,  251,  279,  278,  280,  193,  281,  414,  282,
942       283,  284,  285,  339,  293,  306,  294,  295,  296,  297,
943       340,  298,  436,  197,  299, 1060,  307,  437,  320,  341,
944       425,  429,  342,  308,  321,  536,  322,  432,  323,  324,
945       427,  433,  325,  422,  332,  326,  333,  426,  334,  352,
946       537,  430,  335,  353,  354,  355,  439,  428,  336,  434,
947       423,  424,  337,  338,  491,  361,  435,  440,  362,  197,
948       363,  364,  365,  366,  460,  460,  525,  367,  380,  380,
949       380,  380,  381,  526,  117,  117,  118,  118,  119,  394,
950       394,  394,  394,  568,  492, 1061,  119,  119,  119,  119,
951 
952       119,  119,  118,  118,  118,  118,  119,  461,  461,  461,
953       461,  569,  690,  696,  119,  119,  119,  119,  119,  119,
954       382,  678,  460,  460,  383,  119,  390,  119,  119,  119,
955       119,  384,  391,  508,  519,  385,  509,  386,  392,  520,
956      1062,  690,  696,  119,  119,  119,  119,  119,  119, 1063,
957       391,  119,  119,  119,  119,  119,  392,  215,  215,  215,
958       215,  215,  584,  119,  119,  119,  119,  119,  119,  393,
959       393,  119,  119,  119,  482,  533,  585,  590,  534,  591,
960       483,  119,  119,  119,  119,  119,  119,  856,  857,  679,
961       592,  484,  119,  119,  119,  119,  119,  119,  396,  391,
962 
963       548,  397,  398,  563,  596, 1064,  549,  874,  597,  564,
964       119,  119,  119,  119,  119,  119, 1065,  391,  395,  395,
965       395,  395,  395,  574,  603,  989,  570,  604,  575,  571,
966       395,  395,  395,  395,  395,  395,  874,  183,  183,  183,
967       183,  183,  572,  990,  399, 1386,  400,  448,  644,  457,
968      1386,  457,  645,  449,  458,  458,  458,  458,  458,  395,
969       395,  395,  395,  395,  395,  453,  453,  453,  453,  453,
970       459,  587, 1013,  528,  401,  454,  402,  588,  529,  983,
971       854,  455,  449,  190,  530,  191,  191,  191,  191,  191,
972       462,  462,  462,  462,  462,  192,  647,  613,  755,  459,
973 
974       614,  193,  462,  462,  462,  462,  462,  462,  648, 1066,
975       455,  756,  623,  624,  615,  625,  626,  627,  628,  629,
976       630,  640,  373,  984,  641,  642, 1067,  374, 1068,  633,
977       193,  462,  462,  462,  462,  462,  462,  634,  987,  635,
978      1069,  766,  636,  988,  637,  767,  638,  650,  650,  650,
979       650,  651,  639,  651,  651,  651,  651,  651,  119,  119,
980       119,  119,  119,  394,  394,  394,  394,  772,  791, 1070,
981       119,  119,  119,  119,  119,  119,  458,  458,  458,  458,
982       458,  792,  773,  774,  656, 1071, 1072,  657,  658,  461,
983       461,  461,  461,  197,  458,  458,  458,  458,  458,  119,
984 
985       119,  119,  119,  119,  119, 1073,  391,  393,  393,  119,
986       119,  119,  703,  703,  703,  703,  703, 1074, 1075,  119,
987       119,  119,  119,  119,  119,  395,  395,  395,  395,  395,
988       659, 1076,  660, 1077, 1078, 1079, 1080,  395,  395,  395,
989       395,  395,  395,  853,  853,  853,  853,  651,  119,  119,
990       119,  119,  119,  119,  944,  391, 1081,  796,  826,  945,
991       661, 1082,  662,  797,  827,  946,  395,  395,  395,  395,
992       395,  395,  691, 1083,  691, 1084, 1085,  692,  692,  692,
993       692,  692,  453,  453,  453,  453,  453,  651,  651,  651,
994       651,  651,  694,  693,  697, 1014,  697, 1086,  695,  698,
995 
996       698,  698,  698,  698,  700,  855,  700, 1087, 1088,  701,
997       701,  701,  701,  701, 1089,  699,  692,  692,  692,  692,
998       692, 1090,  693, 1091,  457,  702,  457,  695, 1092,  458,
999       458,  458,  458,  458,  462,  462,  462,  462,  462,  692,
1000       692,  692,  692,  692,  699, 1093,  462,  462,  462,  462,
1001       462,  462, 1094,  871,  702,  871,  951,  952,  872,  872,
1002       872,  872,  872,  691,  953,  691, 1095, 1096,  692,  692,
1003       692,  692,  692, 1097,  873,  462,  462,  462,  462,  462,
1004       462,  875, 1098,  875, 1099, 1100,  876,  876,  876,  876,
1005       876,  878, 1101,  878, 1102, 1103,  879,  879,  879,  879,
1006 
1007       879, 1104,  877,  873,  698,  698,  698,  698,  698, 1105,
1008      1106, 1107,  880,  698,  698,  698,  698,  698,  697, 1108,
1009       697, 1109, 1110,  698,  698,  698,  698,  698, 1111, 1112,
1010      1113,  877,  701,  701,  701,  701,  701, 1114, 1115, 1116,
1011      1117,  880,  701,  701,  701,  701,  701,  700, 1118,  700,
1012      1119, 1120,  701,  701,  701,  701,  701,  703,  703,  703,
1013       703,  703,  651,  651,  651,  651,  651,  872,  872,  872,
1014       872,  872,  872,  872,  872,  872,  872,  871, 1121,  871,
1015      1122, 1123,  872,  872,  872,  872,  872, 1022, 1124, 1022,
1016      1125, 1126, 1023, 1023, 1023, 1023, 1023,  876,  876,  876,
1017 
1018       876,  876,  876,  876,  876,  876,  876,  875, 1024,  875,
1019      1127, 1128,  876,  876,  876,  876,  876,  879,  879,  879,
1020       879,  879,  879,  879,  879,  879,  879,  878,  653,  878,
1021       655, 1129,  879,  879,  879,  879,  879, 1024, 1130, 1131,
1022      1132, 1133, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023      1023, 1023, 1022, 1134, 1022, 1135, 1136, 1023, 1023, 1023,
1024      1023, 1023, 1137, 1138, 1139, 1140, 1141, 1142, 1143,  881,
1025      1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
1026      1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
1027      1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1028 
1029      1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1030      1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193,
1031      1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1032      1204, 1204, 1204, 1204, 1204, 1205, 1206, 1207, 1208, 1209,
1033      1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1034      1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229,
1035      1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
1036      1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1037      1250, 1251, 1252, 1253, 1255, 1204, 1204, 1204, 1204, 1204,
1038      1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
1039 
1040      1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1266, 1275,
1041      1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285,
1042      1286, 1287, 1287, 1287, 1287, 1287, 1288, 1289, 1290, 1291,
1043      1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301,
1044      1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1287,
1045      1287, 1287, 1287, 1287, 1312, 1313, 1314, 1315, 1316, 1317,
1046      1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
1047      1328, 1329, 1330, 1331, 1332, 1332, 1332, 1332, 1332, 1333,
1048      1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
1049      1344, 1345, 1346, 1347, 1348, 1349, 1350, 1254, 1332, 1332,
1050 
1051      1332, 1332, 1332, 1351, 1352, 1353, 1354, 1355, 1356, 1357,
1052      1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
1053      1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377,
1054      1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1056, 1055,
1055      1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045,
1056      1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035,
1057      1034, 1311,  100,  100,  100,  100,  100,  100,  100,  100,
1058       103,  103,  103,  103,  103,  103,  103,  103,  106,  106,
1059       106,  106,  106,  106,  106,  106,  110,  110,  110,  110,
1060       110,  110,  110,  110,  127, 1033, 1032,  127,  217,  217,
1061 
1062       371, 1031,  371,  371, 1030,  371,  371,  371,  372, 1029,
1063       372,  372,  372,  372,  372,  372,  375,  375,  375,  375,
1064      1028,  375,  375,  375,  377, 1027, 1026,  377,  377,  377,
1065       377,  377,  379,  379,  379,  379,  379,  379,  379,  379,
1066       387, 1025,  387,  387,  387,  387,  387,  404,  404,  451,
1067       451,  451,  451,  451,  451,  451,  451,  652,  652,  652,
1068       652, 1021,  652,  652,  652,  654,  654,  654,  654, 1020,
1069       654,  654,  654,  704,  704,  704,  704,  704,  704,  704,
1070       704, 1019, 1018, 1017, 1016, 1015, 1012, 1011, 1010, 1009,
1071      1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000,  999,
1072 
1073       998,  997,  996,  995,  994,  993,  992,  991,  986,  985,
1074       982,  981,  980,  979,  978,  977,  976,  975,  974,  973,
1075       972,  971,  970,  969,  968,  967,  966,  965,  964,  963,
1076       962,  961,  960,  959,  958,  957,  956,  955,  954,  950,
1077       949,  948,  947,  943,  942,  941,  940,  939,  938,  937,
1078       936,  935,  934,  933,  932,  931,  930,  929,  928,  927,
1079       926,  925,  924,  923,  922,  921,  920,  919,  918,  917,
1080       916,  915,  914,  913,  912,  911,  910,  909,  908,  907,
1081       906,  905,  904,  903,  902,  901,  900,  899,  898,  897,
1082       896,  895,  894,  893,  892,  891,  890,  889,  888,  887,
1083 
1084       886,  885,  884,  883,  882,  705,  870,  869,  868,  867,
1085       866,  865,  864,  863,  862,  861,  860,  859,  858,  855,
1086       655,  854,  653,  852,  851,  850,  849,  848,  847,  846,
1087       845,  844,  843,  842,  841,  840,  839,  838,  837,  836,
1088       835,  834,  833,  832,  831,  830,  829,  828,  825,  824,
1089       823,  822,  821,  820,  819,  818,  817,  816,  815,  814,
1090       813,  812,  811,  810,  809,  808,  807,  806,  805,  804,
1091       803,  802,  801,  800,  799,  798,  795,  794,  793,  790,
1092       789,  788,  787,  786,  785,  784,  783,  782,  781,  780,
1093       779,  778,  777,  776,  775,  771,  770,  769,  768,  765,
1094 
1095       764,  763,  762,  761,  760,  759,  758,  757,  754,  753,
1096       752,  751,  750,  749,  748,  747,  746,  745,  744,  743,
1097       742,  741,  740,  739,  738,  737,  736,  735,  734,  733,
1098       732,  731,  730,  729,  728,  727,  726,  725,  724,  723,
1099       722,  721,  720,  719,  718,  717,  716,  715,  714,  713,
1100       712,  711,  710,  709,  708,  707,  706,  705,  452,  689,
1101       688,  687,  686,  685,  684,  683,  682,  681,  680,  677,
1102       676,  675,  674,  673,  672,  671,  670,  669,  668,  667,
1103       666,  665,  664,  663,  655,  653,  376,  649,  646,  643,
1104       632,  631,  622,  621,  620,  619,  618,  617,  616,  612,
1105 
1106       611,  610,  609,  608,  607,  606,  605,  602,  601,  600,
1107       599,  598,  595,  594,  593,  589,  586,  583,  580,  579,
1108       578,  577,  576,  573,  567,  566,  565,  562,  561,  560,
1109       559,  558,  555,  554,  553,  552,  551,  550,  547,  546,
1110       545,  544,  543,  542,  541,  540,  539,  538,  535,  532,
1111       531,  527,  522,  521,  518,  517,  516,  515,  514,  513,
1112       512,  511,  510,  505,  504,  503,  502,  501,  500,  499,
1113       498,  497,  496,  495,  494,  493,  490,  489,  488,  487,
1114       486,  485,  481,  478,  477,  476,  475,  474,  473,  472,
1115       471,  470,  469,  468,  467,  466,  465,  464,  463,  452,
1116 
1117       450,  447,  446,  445,  444,  443,  442,  441,  438,  431,
1118       421,  420,  419,  418,  417,  416,  415,  412,  411,  410,
1119       409,  408,  407,  403,  389,  388,  378,  376,  370,  369,
1120       368,  360,  349,  348,  347,  309,  305,  262,  259,  246,
1121       245,  242,  234,  220,  114, 1386,   11, 1386, 1386, 1386,
1122      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1123      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1124      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1125      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1126      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1127 
1128      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1129      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1130      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1131      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1132      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1133      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1134      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1135      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1136      1386, 1386
1137     } ;
1138 
1139 static yyconst flex_int16_t yy_chk[2183] =
1140     {   0,
1141         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1142         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1143         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1144         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1145         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1146         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1147         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1148         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1149         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1150         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1151 
1152         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1153         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1154         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1155         1,    1,    1,    1,    1,    3,    4,    5,    6,    7,
1156         8,    9,    7,    8,   10,   24,    3,    4,    5,    6,
1157        13,   25,   13,   39,   26,   27,   43,   27,   20,   24,
1158        36,   36,   20,   29,   25,   27,   27,   27,   29,   44,
1159        56,   32,  252,   29,   56,  252,   20,   32,   32,   47,
1160        32,   39,   29,   19,   19,   34,   34,   34,   50,   32,
1161        67,   43,    7,    8,   19,   26,   67,   44,    9,   32,
1162 
1163        50,   10,   58,   19,   13,   17,   20,   17,   47,   20,
1164        17,   17,   17,   17,   17,   20,   78,   78,   32,   20,
1165        54,   62,   17,   17,   17,   17,   17,   17,   35,   35,
1166        19,   58,   19,   55,   19,   62,  316,  113,  316,  113,
1167        19,   29,   55,   41,   19,   88,   35,   35,   35,   54,
1168        19,   17,   17,   17,   17,   17,   17,   41,   54,   84,
1169        19,   66,   19,   84,   17,   38,   38,   38,   38,   38,
1170        75,   66,   71,   17,   21,   75,   38,   21,   21,   21,
1171        70,   70,   71,   21,   21,   41,   21,   21,   21,  225,
1172        70,  113,  130,  130,   21,   41,   21,   21,   21,  225,
1173 
1174        21,   28,   28,   88,   28,   28,   28,   28,   28,   28,
1175        28,   28,  268,   30,  930,   30,   30,   30,   30,   30,
1176        76,   46,  268,   46,   46,   30,   46,   21,   76,   83,
1177        21,   30,   46,   76,   83,  931,   93,  192,   21,   77,
1178        42,   21,   21,   21,   42,   28,   21,   68,   77,   21,
1179        42,   68,   21,   77,   93,   21,   68,   30,   94,   31,
1180        30,   31,   31,   31,   31,   31,  192,   94,   53,   30,
1181        80,   31,  296,   42,   80,  102,   80,   31,   30,   53,
1182       102,   42,   63,   80,   80,   63,   63,   63,  296,   53,
1183        63,  145,   63,   63,   63,   63,   63,   53,   63,   63,
1184 
1185       932,   63,   53,   65,   63,   65,   31,   65,  145,   65,
1186        65,   65,   65,   82,   69,   73,   69,   69,   69,   69,
1187        82,   69,  160,   30,   69,  933,   73,  160,   79,   82,
1188       154,  156,   82,   73,   79,  276,   79,  158,   79,   79,
1189       155,  158,   79,  153,   81,   79,   81,  154,   81,   92,
1190       276,  156,   81,   92,   92,   92,  162,  155,   81,  159,
1191       153,  153,   81,   81,  235,   96,  159,  162,   96,   31,
1192        96,   96,   96,   96,  194,  194,  269,   96,  109,  109,
1193       109,  109,  109,  269,  117,  117,  117,  117,  117,  121,
1194       121,  121,  121,  307,  235,  934,  117,  117,  117,  117,
1195 
1196       117,  117,  118,  118,  118,  118,  118,  195,  195,  195,
1197       195,  307,  448,  454,  118,  118,  118,  118,  118,  118,
1198       109,  434,  460,  460,  109,  117,  117,  117,  117,  117,
1199       117,  109,  117,  253,  265,  109,  253,  109,  117,  265,
1200       935,  448,  454,  118,  118,  118,  118,  118,  118,  936,
1201       118,  119,  119,  119,  119,  119,  118,  215,  215,  215,
1202       215,  215,  319,  119,  119,  119,  119,  119,  119,  120,
1203       120,  120,  120,  120,  228,  274,  319,  324,  274,  324,
1204       228,  120,  120,  120,  120,  120,  120,  656,  656,  434,
1205       324,  228,  119,  119,  119,  119,  119,  119,  124,  119,
1206 
1207       288,  124,  124,  302,  328,  937,  288,  694,  328,  302,
1208       120,  120,  120,  120,  120,  120,  938,  120,  122,  122,
1209       122,  122,  122,  310,  334,  825,  308,  334,  310,  308,
1210       122,  122,  122,  122,  122,  122,  694,  183,  183,  183,
1211       183,  183,  308,  825,  124,  372,  124,  183,  367,  193,
1212       372,  193,  367,  183,  193,  193,  193,  193,  193,  122,
1213       122,  122,  122,  122,  122,  190,  190,  190,  190,  190,
1214       193,  322,  854,  271,  124,  190,  124,  322,  271,  821,
1215       854,  190,  183,  191,  271,  191,  191,  191,  191,  191,
1216       196,  196,  196,  196,  196,  191,  369,  343,  527,  193,
1217 
1218       343,  191,  196,  196,  196,  196,  196,  196,  369,  939,
1219       190,  527,  361,  361,  343,  361,  361,  361,  361,  361,
1220       361,  365,  373,  821,  365,  365,  940,  373,  941,  364,
1221       191,  196,  196,  196,  196,  196,  196,  364,  824,  364,
1222       942,  538,  364,  824,  364,  538,  364,  380,  380,  380,
1223       380,  380,  364,  381,  381,  381,  381,  381,  390,  390,
1224       390,  390,  390,  394,  394,  394,  394,  543,  560,  943,
1225       390,  390,  390,  390,  390,  390,  457,  457,  457,  457,
1226       457,  560,  543,  543,  396,  944,  945,  396,  396,  461,
1227       461,  461,  461,  191,  458,  458,  458,  458,  458,  390,
1228 
1229       390,  390,  390,  390,  390,  946,  390,  393,  393,  393,
1230       393,  393,  463,  463,  463,  463,  463,  947,  951,  393,
1231       393,  393,  393,  393,  393,  395,  395,  395,  395,  395,
1232       396,  952,  396,  953,  954,  955,  956,  395,  395,  395,
1233       395,  395,  395,  650,  650,  650,  650,  650,  393,  393,
1234       393,  393,  393,  393,  784,  393,  957,  565,  597,  784,
1235       396,  958,  396,  565,  597,  784,  395,  395,  395,  395,
1236       395,  395,  449,  959,  449,  960,  961,  449,  449,  449,
1237       449,  449,  453,  453,  453,  453,  453,  651,  651,  651,
1238       651,  651,  453,  449,  455,  855,  455,  962,  453,  455,
1239 
1240       455,  455,  455,  455,  456,  855,  456,  963,  964,  456,
1241       456,  456,  456,  456,  965,  455,  691,  691,  691,  691,
1242       691,  966,  449,  967,  459,  456,  459,  453,  968,  459,
1243       459,  459,  459,  459,  462,  462,  462,  462,  462,  692,
1244       692,  692,  692,  692,  455,  972,  462,  462,  462,  462,
1245       462,  462,  973,  690,  456,  690,  789,  789,  690,  690,
1246       690,  690,  690,  693,  789,  693,  974,  975,  693,  693,
1247       693,  693,  693,  976,  690,  462,  462,  462,  462,  462,
1248       462,  695,  977,  695,  978,  980,  695,  695,  695,  695,
1249       695,  696,  981,  696,  982,  983,  696,  696,  696,  696,
1250 
1251       696,  984,  695,  690,  697,  697,  697,  697,  697,  985,
1252       987,  988,  696,  698,  698,  698,  698,  698,  699,  989,
1253       699,  990,  991,  699,  699,  699,  699,  699,  992,  994,
1254       995,  695,  700,  700,  700,  700,  700,  996,  997,  998,
1255       999,  696,  701,  701,  701,  701,  701,  702, 1000,  702,
1256      1001, 1003,  702,  702,  702,  702,  702,  703,  703,  703,
1257       703,  703,  853,  853,  853,  853,  853,  871,  871,  871,
1258       871,  871,  872,  872,  872,  872,  872,  873, 1004,  873,
1259      1006, 1007,  873,  873,  873,  873,  873,  874, 1008,  874,
1260      1009, 1011,  874,  874,  874,  874,  874,  875,  875,  875,
1261 
1262       875,  875,  876,  876,  876,  876,  876,  877,  874,  877,
1263      1012, 1012,  877,  877,  877,  877,  877,  878,  878,  878,
1264       878,  878,  879,  879,  879,  879,  879,  880, 1013,  880,
1265      1014, 1015,  880,  880,  880,  880,  880,  874, 1018, 1019,
1266      1020, 1021, 1022, 1022, 1022, 1022, 1022, 1023, 1023, 1023,
1267      1023, 1023, 1024, 1025, 1024, 1026, 1030, 1024, 1024, 1024,
1268      1024, 1024, 1032, 1033, 1034, 1035, 1039, 1041, 1043,  703,
1269      1044, 1046, 1048, 1049, 1053, 1054, 1055, 1057, 1058, 1059,
1270      1060, 1061, 1062, 1063, 1064, 1065, 1066, 1070, 1073, 1074,
1271      1075, 1076, 1077, 1078, 1081, 1082, 1083, 1084, 1085, 1087,
1272 
1273      1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1098, 1100,
1274      1101, 1104, 1105, 1106, 1107, 1109, 1110, 1112, 1113, 1115,
1275      1116, 1119, 1121, 1122, 1123, 1124, 1125, 1129, 1130, 1132,
1276      1134, 1134, 1134, 1134, 1134, 1135, 1136, 1137, 1140, 1142,
1277      1145, 1146, 1147, 1149, 1150, 1151, 1152, 1153, 1158, 1159,
1278      1160, 1161, 1162, 1164, 1165, 1166, 1167, 1168, 1172, 1173,
1279      1174, 1175, 1176, 1177, 1178, 1180, 1182, 1183, 1184, 1185,
1280      1186, 1187, 1188, 1190, 1191, 1192, 1193, 1194, 1196, 1197,
1281      1198, 1201, 1202, 1204, 1205, 1204, 1204, 1204, 1204, 1204,
1282      1208, 1209, 1211, 1213, 1215, 1216, 1217, 1218, 1219, 1220,
1283 
1284      1221, 1223, 1224, 1225, 1226, 1229, 1231, 1234, 1220, 1235,
1285      1237, 1239, 1240, 1244, 1245, 1246, 1247, 1249, 1250, 1251,
1286      1252, 1253, 1253, 1253, 1253, 1253, 1254, 1258, 1260, 1261,
1287      1262, 1263, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1273,
1288      1274, 1276, 1278, 1280, 1281, 1282, 1283, 1284, 1286, 1287,
1289      1287, 1287, 1287, 1287, 1288, 1290, 1291, 1292, 1293, 1294,
1290      1295, 1297, 1298, 1299, 1300, 1301, 1302, 1304, 1305, 1306,
1291      1307, 1308, 1309, 1311, 1312, 1312, 1312, 1312, 1312, 1313,
1292      1314, 1317, 1318, 1319, 1320, 1321, 1323, 1325, 1326, 1327,
1293      1328, 1329, 1330, 1331, 1333, 1336, 1337, 1204, 1332, 1332,
1294 
1295      1332, 1332, 1332, 1338, 1339, 1340, 1341, 1342, 1344, 1346,
1296      1348, 1349, 1350, 1351, 1352, 1353, 1355, 1356, 1358, 1359,
1297      1361, 1362, 1363, 1364, 1366, 1367, 1368, 1369, 1370, 1371,
1298      1372, 1373, 1374, 1375, 1377, 1378, 1380, 1384,  929,  928,
1299       927,  926,  925,  924,  921,  919,  918,  917,  916,  915,
1300       914,  913,  909,  908,  907,  906,  905,  904,  900,  899,
1301       898, 1287, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
1302      1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1389, 1389,
1303      1389, 1389, 1389, 1389, 1389, 1389, 1390, 1390, 1390, 1390,
1304      1390, 1390, 1390, 1390, 1391,  897,  896, 1391, 1392, 1392,
1305 
1306      1393,  895, 1393, 1393,  893, 1393, 1393, 1393, 1394,  892,
1307      1394, 1394, 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395,
1308       891, 1395, 1395, 1395, 1396,  890,  889, 1396, 1396, 1396,
1309      1396, 1396, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397,
1310      1398,  881, 1398, 1398, 1398, 1398, 1398, 1399, 1399, 1400,
1311      1400, 1400, 1400, 1400, 1400, 1400, 1400, 1401, 1401, 1401,
1312      1401,  869, 1401, 1401, 1401, 1402, 1402, 1402, 1402,  868,
1313      1402, 1402, 1402, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
1314      1403,  865,  864,  863,  862,  858,  851,  850,  849,  848,
1315       847,  846,  845,  844,  843,  842,  841,  840,  839,  838,
1316 
1317       837,  836,  835,  832,  830,  828,  827,  826,  823,  822,
1318       820,  818,  817,  816,  815,  814,  813,  812,  811,  810,
1319       809,  808,  807,  806,  805,  804,  803,  802,  800,  799,
1320       798,  797,  796,  795,  794,  793,  792,  791,  790,  788,
1321       787,  786,  785,  783,  782,  781,  780,  779,  777,  776,
1322       775,  774,  773,  772,  771,  770,  769,  767,  766,  765,
1323       764,  763,  762,  761,  759,  757,  756,  755,  754,  753,
1324       752,  751,  750,  749,  747,  746,  744,  742,  741,  740,
1325       739,  738,  737,  736,  735,  734,  733,  729,  728,  727,
1326       726,  725,  721,  720,  718,  717,  716,  715,  714,  713,
1327 
1328       710,  709,  708,  707,  706,  704,  688,  687,  686,  683,
1329       682,  681,  680,  679,  677,  676,  665,  664,  663,  655,
1330       654,  653,  652,  649,  622,  621,  619,  618,  617,  616,
1331       615,  614,  613,  612,  611,  610,  609,  608,  607,  606,
1332       605,  604,  603,  602,  601,  600,  599,  598,  596,  595,
1333       594,  593,  591,  590,  589,  588,  587,  586,  585,  584,
1334       583,  582,  581,  578,  577,  576,  575,  574,  573,  572,
1335       571,  570,  569,  568,  567,  566,  563,  562,  561,  559,
1336       558,  557,  556,  555,  554,  553,  552,  551,  550,  549,
1337       548,  547,  546,  545,  544,  542,  541,  540,  539,  537,
1338 
1339       536,  535,  534,  533,  531,  530,  529,  528,  526,  524,
1340       523,  522,  521,  520,  519,  517,  516,  515,  514,  513,
1341       512,  511,  509,  508,  507,  506,  505,  504,  503,  502,
1342       500,  498,  497,  496,  495,  494,  493,  492,  491,  490,
1343       487,  486,  485,  484,  483,  482,  481,  480,  479,  478,
1344       476,  475,  474,  469,  467,  466,  465,  464,  451,  444,
1345       443,  442,  441,  440,  439,  438,  437,  436,  435,  433,
1346       432,  430,  428,  426,  424,  423,  421,  419,  415,  414,
1347       411,  410,  409,  408,  389,  388,  375,  370,  368,  366,
1348       363,  362,  356,  353,  348,  347,  346,  345,  344,  342,
1349 
1350       341,  340,  339,  338,  337,  336,  335,  333,  332,  331,
1351       330,  329,  327,  326,  325,  323,  320,  317,  315,  314,
1352       313,  312,  311,  309,  305,  304,  303,  301,  300,  299,
1353       298,  297,  295,  294,  293,  291,  290,  289,  287,  286,
1354       285,  283,  282,  281,  280,  279,  278,  277,  275,  273,
1355       272,  270,  267,  266,  262,  261,  260,  259,  258,  257,
1356       256,  255,  254,  251,  249,  248,  247,  245,  244,  243,
1357       242,  240,  239,  238,  237,  236,  234,  233,  232,  231,
1358       230,  229,  226,  224,  223,  222,  221,  220,  219,  218,
1359       214,  211,  209,  205,  204,  203,  202,  198,  197,  187,
1360 
1361       185,  181,  174,  167,  166,  165,  164,  163,  161,  157,
1362       152,  151,  150,  149,  148,  147,  146,  144,  143,  142,
1363       141,  140,  133,  125,  116,  115,  108,  103,   99,   98,
1364        97,   95,   87,   86,   85,   74,   72,   59,   57,   52,
1365        51,   49,   45,   40,   15,   11, 1386, 1386, 1386, 1386,
1366      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1367      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1368      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1369      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1370      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1371 
1372      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1373      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1374      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1375      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1376      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1377      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1378      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1379      1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
1380      1386, 1386
1381     } ;
1382 
1383 /* The intent behind this definition is that it'll catch
1384  * any uses of REJECT which flex missed.
1385  */
1386 #define REJECT reject_used_but_not_detected
1387 #define yymore() yymore_used_but_not_detected
1388 #define YY_MORE_ADJ 0
1389 #define YY_RESTORE_YY_MORE_OFFSET
1390 #line 1 "input_lexer.ll"
1391 /* -*- mode: C++; compile-command: "flex input_lexer.ll && make input_lexer.o " -*- */
1392 /* Note: for the nspire port, after flex, move from #ifdef HAVE_CONFIG_H
1393    to #include "first.h" before #include<stdio.h>
1394    and map "log" to log10 instead of ln
1395 */
1396 /** @file input_lexer.ll
1397  *
1398  *  Lexical analyzer definition for reading expressions.
1399  *  Note Maple input should be processed replacing # with // and { } for set
1400  *  This file must be processed with flex. */
1401 /*
1402  *  Copyright (C) 2001,14 B. Parisse, Institut Fourier, 38402 St Martin d'Heres
1403  *  The very first version was inspired by GiNaC lexer
1404  *
1405  *  This program is free software; you can redistribute it and/or modify
1406  *  it under the terms of the GNU General Public License as published by
1407  *  the Free Software Foundation; either version 3 of the License, or
1408  *  (at your option) any later version.
1409  *
1410  *  This program is distributed in the hope that it will be useful,
1411  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
1412  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1413  *  GNU General Public License for more details.
1414  *
1415  *  You should have received a copy of the GNU General Public License
1416  *  along with this program. If not, see <http://www.gnu.org/licenses/>.
1417  */
1418 /*
1419  * The lexer will first check for static patterns and strings (defined below)
1420  * If a match is not found, it calls find_or_make_symbol
1421  * This function looks first if the string should be translated
1422  * (e.g. add a prefix from the export table)
1423  * then look in lexer_functions for a match, then look in sym_tab
1424  * if not found in sym_tab, a new identificateur is created & added in sym_tab
1425  * Functions in lexer_functions are added during the construction
1426  * of the corresponding unary_functions using lexer_functions_register
1427  */
1428 /*
1429  *  Definitions
1430  */
1431 #line 48 "input_lexer.ll"
1432 #ifdef NUMWORKS
1433 #define at_log at_logb
1434 #else
1435 #define at_log at_ln
1436 #endif
1437 #include "giacPCH.h"
1438 #ifdef HAVE_CONFIG_H
1439 #include "config.h"
1440 #endif
1441 #include <iostream>
1442 #include <stdexcept>
1443 #if !defined RTOS_THREADX && !defined NSPIRE && !defined FXCG && !defined GIAC_HAS_STO_38
1444 #include <fstream>
1445 #endif
1446 
1447 #include "gen.h"
1448 #include "input_lexer.h"
1449 #include "help.h"
1450 #include "identificateur.h"
1451 #include "usual.h"
1452 #include "derive.h"
1453 #include "series.h"
1454 #include "intg.h"
1455 #include "sym2poly.h"
1456 #include "moyal.h"
1457 #include "subst.h"
1458 #include "vecteur.h"
1459 #include "modpoly.h"
1460 #include "lin.h"
1461 #include "solve.h"
1462 #include "ifactor.h"
1463 #include "alg_ext.h"
1464 #include "gauss.h"
1465 #include "isom.h"
1466 #include "plot.h"
1467 #include "ti89.h"
1468 
1469 #include "prog.h"
1470 #include "rpn.h"
1471 #include "ezgcd.h"
1472 #include "tex.h"
1473 #include "risch.h"
1474 #include "permu.h"
1475 #include "input_parser.h"
1476 
1477 #if defined(RTOS_THREADX) || defined(__MINGW_H) || defined NSPIRE || defined MS_SMART || defined(FREERTOS)
isatty(int)1478   int isatty (int ){ return 0; }
1479 #endif
1480 
1481 #if defined BESTA_OS || defined(FREERTOS)
1482 #define EINTR           4
1483 #endif
1484 
1485 #ifdef NSPIRE
1486   // after flex, move #include "config.h" and first.h before all includes
1487   // include "static.h" then giacPCH.h
1488   // then edit input_lexer.cc and search for isatty, replace by 0 for interactive
clearerr(FILE *)1489   void clearerr(FILE *){}
1490 #endif
1491 
1492   using namespace std;
1493   using namespace giac;
1494   void giac_yyset_column (int  column_no , yyscan_t yyscanner);
1495   int giac_yyget_column (yyscan_t yyscanner);
1496 #define YY_USER_ACTION giac_yyset_column(giac_yyget_column(yyscanner)+yyleng,yyscanner);
1497 #define YY_USER_INIT giac_yyset_column(1,yyscanner);
1498 
1499 #ifndef NO_NAMESPACE_GIAC
1500   namespace giac {
1501 #endif // ndef NO_NAMESPACE_GIAC
1502 
increment_lexer_line_number_setcol(yyscan_t yyscanner,GIAC_CONTEXT)1503     void increment_lexer_line_number_setcol(yyscan_t yyscanner,GIAC_CONTEXT){
1504       giac_yyset_column(1,yyscanner);
1505       increment_lexer_line_number(contextptr);
1506     }
1507     bool doing_insmod = false;
1508 
1509 #ifdef HAVE_LIBPTHREAD
1510     static pthread_mutex_t * syms_mutex_ptr = 0;
1511 
lock_syms_mutex()1512     int lock_syms_mutex(){
1513       if (!syms_mutex_ptr){
1514 	pthread_mutex_t tmp=PTHREAD_MUTEX_INITIALIZER;
1515 	syms_mutex_ptr=new pthread_mutex_t(tmp);
1516       }
1517       return pthread_mutex_lock(syms_mutex_ptr);
1518     }
1519 
unlock_syms_mutex()1520     void unlock_syms_mutex(){
1521       if (syms_mutex_ptr)
1522 	pthread_mutex_unlock(syms_mutex_ptr);
1523     }
1524 
1525 #else
lock_syms_mutex()1526     int lock_syms_mutex(){ return 0; }
unlock_syms_mutex()1527     void unlock_syms_mutex(){}
1528 #endif
1529 
syms()1530     sym_string_tab & syms(){
1531       static sym_string_tab * ans=0;
1532       if (!ans) ans=new sym_string_tab;
1533       return * ans;
1534     }
1535 
1536 
lexer_localization_vector()1537     std::vector<int> & lexer_localization_vector(){
1538       static std::vector<int> * ans=0;
1539       if (!ans) ans=new  std::vector<int>;
1540       return *ans;
1541     }
1542 
1543 #ifdef USTL
lexer_localization_map()1544     ustl::map<std::string,std::string> & lexer_localization_map(){
1545       static ustl::map<std::string,std::string> * ans = 0;
1546       if (!ans) ans=new ustl::map<std::string,std::string>;
1547       return * ans;
1548     }
back_lexer_localization_map()1549     ustl::multimap<std::string,localized_string> & back_lexer_localization_map(){
1550       static ustl::multimap<std::string,localized_string> * ans= 0;
1551       if (!ans) ans=new ustl::multimap<std::string,localized_string>;
1552       return * ans;
1553     }
1554 
1555     // lexer_localization_vector() is the list of languages currently translated
1556     // lexer_localization_map translates keywords from the locale to giac
1557     // back_lexer_localization_map() lists for a giac keyword the translations
1558 
lexer_translator()1559     ustl::map<std::string,std::vector<std::string> > & lexer_translator (){
1560       static ustl::map<std::string,std::vector<std::string> > * ans = 0;
1561       if (!ans) ans=new ustl::map<std::string,std::vector<std::string> >;
1562       return * ans;
1563     }
1564     // lexer_translator will be updated when export/with is called
1565     // To each string (w/o ::) in a given library,
1566     // If it exists, we push_back the full string (with ::)
1567     // If not we create a vector with the full string
1568     // If a library is unexported we remove the corresponding entry in the
1569     // vector and remove the entry if the vector is empty
library_functions()1570     ustl::map<std::string,std::vector<std::string> > & library_functions (){
1571       static ustl::map<std::string,std::vector<std::string> > * ans=0;
1572       if (!ans) ans=new ustl::map<std::string,std::vector<std::string> >;
1573       return *ans;
1574     }
1575 
1576 #else
lexer_localization_map()1577     std::map<std::string,std::string> & lexer_localization_map(){
1578       static std::map<std::string,std::string> * ans = 0;
1579       if (!ans) ans=new std::map<std::string,std::string>;
1580       return * ans;
1581     }
back_lexer_localization_map()1582     std::multimap<std::string,localized_string> & back_lexer_localization_map(){
1583       static std::multimap<std::string,localized_string> * ans= 0;
1584       if (!ans) ans=new std::multimap<std::string,localized_string>;
1585       return * ans;
1586     }
1587     // lexer_localization_vector() is the list of languages currently translated
1588     // lexer_localization_map translates keywords from the locale to giac
1589     // back_lexer_localization_map() lists for a giac keyword the translations
1590 
lexer_translator()1591     std::map<std::string,std::vector<std::string> > & lexer_translator (){
1592       static std::map<std::string,std::vector<std::string> > * ans = 0;
1593       if (!ans) ans=new std::map<std::string,std::vector<std::string> >;
1594       return * ans;
1595     }
1596     // lexer_translator will be updated when export/with is called
1597     // To each string (w/o ::) in a given library,
1598     // If it exists, we push_back the full string (with ::)
1599     // If not we create a vector with the full string
1600     // If a library is unexported we remove the corresponding entry in the
1601     // vector and remove the entry if the vector is empty
library_functions()1602     std::map<std::string,std::vector<std::string> > & library_functions (){
1603       static std::map<std::string,std::vector<std::string> > * ans=0;
1604       if (!ans) ans=new std::map<std::string,std::vector<std::string> >;
1605       return *ans;
1606     }
1607 
1608 #endif
1609 
1610     // First string is the library name, second is the vector of function names
1611     // User defined relations
registered_lexer_functions()1612     vector<user_function> & registered_lexer_functions(){
1613       static vector<user_function> * ans = 0;
1614       if (!ans){
1615 	ans = new vector<user_function>;
1616 	// ans->reserve(50);
1617       }
1618       return * ans;
1619     }
1620 
tri1(const lexer_tab_int_type & a,const lexer_tab_int_type & b)1621     bool tri1(const lexer_tab_int_type & a,const lexer_tab_int_type & b){
1622       int res= strcmp(a.keyword,b.keyword);
1623       return res<0;
1624     }
1625 
tri2(const char * a,const char * b)1626     bool tri2(const char * a,const char * b){
1627       return strcmp(a,b)<0;
1628     }
1629 
1630     const lexer_tab_int_type lexer_tab_int_values []={
1631 #ifdef GIAC_HAS_STO_38
1632 #include "lexer_tab38_int.h"
1633 #else
1634 #include "lexer_tab_int.h"
1635 #endif
1636     };
1637 
1638     const lexer_tab_int_type * const lexer_tab_int_values_begin = lexer_tab_int_values;
1639     const unsigned lexer_tab_int_values_n=sizeof(lexer_tab_int_values)/sizeof(lexer_tab_int_type);
1640     const lexer_tab_int_type * const lexer_tab_int_values_end = lexer_tab_int_values+lexer_tab_int_values_n;
1641 #ifndef NO_NAMESPACE_GIAC
1642   } // namespace giac
1643 #endif // ndef NO_NAMESPACE_GIAC
1644 
1645 /* Abbreviations */
1646 /* If changed, modify isalphan in help.cc FIXME is . allowed inside alphanumeric ? answer NO */
1647 
1648 
1649 
1650 
1651 /*
1652  *  Lexical rules
1653  */
1654 #line 1655 "input_lexer.cc"
1655 
1656 #define INITIAL 0
1657 #define comment 1
1658 #define comment_hash 2
1659 #define str 3
1660 #define backquote 4
1661 
1662 #ifndef YY_NO_UNISTD_H
1663 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1664  * down here because we want the user's section 1 to have been scanned first.
1665  * The user has a chance to override it with an option.
1666  */
1667 #include <unistd.h>
1668 #endif
1669 
1670 #ifndef YY_EXTRA_TYPE
1671 #define YY_EXTRA_TYPE void *
1672 #endif
1673 
1674 /* Holds the entire state of the reentrant scanner. */
1675 struct yyguts_t
1676     {
1677 
1678     /* User-defined. Not touched by flex. */
1679     YY_EXTRA_TYPE yyextra_r;
1680 
1681     /* The rest are the same as the globals declared in the non-reentrant scanner. */
1682     FILE *yyin_r, *yyout_r;
1683     size_t yy_buffer_stack_top; /**< index of top of stack. */
1684     size_t yy_buffer_stack_max; /**< capacity of stack. */
1685     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1686     char yy_hold_char;
1687     int yy_n_chars;
1688     int yyleng_r;
1689     char *yy_c_buf_p;
1690     int yy_init;
1691     int yy_start;
1692     int yy_did_buffer_switch_on_eof;
1693     int yy_start_stack_ptr;
1694     int yy_start_stack_depth;
1695     int *yy_start_stack;
1696     yy_state_type yy_last_accepting_state;
1697     char* yy_last_accepting_cpos;
1698 
1699     int yylineno_r;
1700     int yy_flex_debug_r;
1701 
1702     char *yytext_r;
1703     int yy_more_flag;
1704     int yy_more_len;
1705 
1706     YYSTYPE * yylval_r;
1707 
1708     }; /* end struct yyguts_t */
1709 
1710 static int yy_init_globals (yyscan_t yyscanner );
1711 
1712     /* This must go here because YYSTYPE and YYLTYPE are included
1713      * from bison output in section 1.*/
1714     #    define yylval yyg->yylval_r
1715 
1716 int giac_yylex_init (yyscan_t* scanner);
1717 
1718 int giac_yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1719 
1720 /* Accessor methods to globals.
1721    These are made visible to non-reentrant scanners for convenience. */
1722 
1723 int giac_yylex_destroy (yyscan_t yyscanner );
1724 
1725 int giac_yyget_debug (yyscan_t yyscanner );
1726 
1727 void giac_yyset_debug (int debug_flag ,yyscan_t yyscanner );
1728 
1729 YY_EXTRA_TYPE giac_yyget_extra (yyscan_t yyscanner );
1730 
1731 void giac_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1732 
1733 FILE *giac_yyget_in (yyscan_t yyscanner );
1734 
1735 void giac_yyset_in  (FILE * in_str ,yyscan_t yyscanner );
1736 
1737 FILE *giac_yyget_out (yyscan_t yyscanner );
1738 
1739 void giac_yyset_out  (FILE * out_str ,yyscan_t yyscanner );
1740 
1741 int giac_yyget_leng (yyscan_t yyscanner );
1742 
1743 char *giac_yyget_text (yyscan_t yyscanner );
1744 
1745 int giac_yyget_lineno (yyscan_t yyscanner );
1746 
1747 void giac_yyset_lineno (int line_number ,yyscan_t yyscanner );
1748 
1749 int giac_yyget_column  (yyscan_t yyscanner );
1750 
1751 void giac_yyset_column (int column_no ,yyscan_t yyscanner );
1752 
1753 YYSTYPE * giac_yyget_lval (yyscan_t yyscanner );
1754 
1755 void giac_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1756 
1757 /* Macros after this point can all be overridden by user definitions in
1758  * section 1.
1759  */
1760 
1761 #ifndef YY_SKIP_YYWRAP
1762 #ifdef __cplusplus
1763 extern "C" int giac_yywrap (yyscan_t yyscanner );
1764 #else
1765 extern int giac_yywrap (yyscan_t yyscanner );
1766 #endif
1767 #endif
1768 
1769     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
1770 
1771 #ifndef yytext_ptr
1772 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1773 #endif
1774 
1775 #ifdef YY_NEED_STRLEN
1776 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1777 #endif
1778 
1779 #ifndef YY_NO_INPUT
1780 
1781 #ifdef __cplusplus
1782 static int yyinput (yyscan_t yyscanner );
1783 #else
1784 static int input (yyscan_t yyscanner );
1785 #endif
1786 
1787 #endif
1788 
1789 /* Amount of stuff to slurp up with each read. */
1790 #ifndef YY_READ_BUF_SIZE
1791 #ifdef __ia64__
1792 /* On IA-64, the buffer size is 16k, not 8k */
1793 #define YY_READ_BUF_SIZE 16384
1794 #else
1795 #define YY_READ_BUF_SIZE 8192
1796 #endif /* __ia64__ */
1797 #endif
1798 
1799 /* Copy whatever the last rule matched to the standard output. */
1800 #ifndef ECHO
1801 /* This used to be an fputs(), but since the string might contain NUL's,
1802  * we now use fwrite().
1803  */
1804 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1805 #endif
1806 
1807 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1808  * is returned in "result".
1809  */
1810 #ifndef YY_INPUT
1811 #define YY_INPUT(buf,result,max_size) \
1812 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1813 		{ \
1814 		int c = '*'; \
1815 		size_t n; \
1816 		for ( n = 0; n < max_size && \
1817 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1818 			buf[n] = (char) c; \
1819 		if ( c == '\n' ) \
1820 			buf[n++] = (char) c; \
1821 		if ( c == EOF && ferror( yyin ) ) \
1822 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1823 		result = n; \
1824 		} \
1825 	else \
1826 		{ \
1827 		errno=0; \
1828 		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1829 			{ \
1830 			if( errno != EINTR) \
1831 				{ \
1832 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1833 				break; \
1834 				} \
1835 			errno=0; \
1836 			clearerr(yyin); \
1837 			} \
1838 		}\
1839 \
1840 
1841 #endif
1842 
1843 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1844  * we don't want an extra ';' after the "return" because that will cause
1845  * some compilers to complain about unreachable statements.
1846  */
1847 #ifndef yyterminate
1848 #define yyterminate() return YY_NULL
1849 #endif
1850 
1851 /* Number of entries by which start-condition stack grows. */
1852 #ifndef YY_START_STACK_INCR
1853 #define YY_START_STACK_INCR 25
1854 #endif
1855 
1856 /* Report a fatal error. */
1857 #ifndef YY_FATAL_ERROR
1858 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1859 #endif
1860 
1861 /* end tables serialization structures and prototypes */
1862 
1863 /* Default declaration of generated scanner - a define so the user can
1864  * easily add parameters.
1865  */
1866 #ifndef YY_DECL
1867 #define YY_DECL_IS_OURS 1
1868 
1869 extern int giac_yylex \
1870                (YYSTYPE * yylval_param ,yyscan_t yyscanner);
1871 
1872 #define YY_DECL int giac_yylex \
1873                (YYSTYPE * yylval_param , yyscan_t yyscanner)
1874 #endif /* !YY_DECL */
1875 
1876 /* Code executed at the beginning of each rule, after yytext and yyleng
1877  * have been set up.
1878  */
1879 #ifndef YY_USER_ACTION
1880 #define YY_USER_ACTION
1881 #endif
1882 
1883 /* Code executed at the end of each rule. */
1884 #ifndef YY_BREAK
1885 #define YY_BREAK break;
1886 #endif
1887 
1888 #define YY_RULE_SETUP \
1889 	YY_USER_ACTION
1890 
1891 /** The main scanner function which does all the work.
1892  */
1893 YY_DECL
1894 {
1895 	register yy_state_type yy_current_state;
1896 	register char *yy_cp, *yy_bp;
1897 	register int yy_act;
1898     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1899 
1900 #line 283 "input_lexer.ll"
1901 
1902 
1903 #line 1904 "input_lexer.cc"
1904 
1905     yylval = yylval_param;
1906 
1907 	if ( !yyg->yy_init )
1908 		{
1909 		yyg->yy_init = 1;
1910 
1911 #ifdef YY_USER_INIT
1912 		YY_USER_INIT;
1913 #endif
1914 
1915 		if ( ! yyg->yy_start )
1916 			yyg->yy_start = 1;	/* first start state */
1917 
1918 		if ( ! yyin )
1919 			yyin = stdin;
1920 
1921 		if ( ! yyout )
1922 			yyout = stdout;
1923 
1924 		if ( ! YY_CURRENT_BUFFER ) {
1925 			giac_yyensure_buffer_stack (yyscanner);
1926 			YY_CURRENT_BUFFER_LVALUE =
1927 				giac_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1928 		}
1929 
1930 		giac_yy_load_buffer_state(yyscanner );
1931 		}
1932 
1933 	while ( 1 )		/* loops until end-of-file is reached */
1934 		{
1935 		yy_cp = yyg->yy_c_buf_p;
1936 
1937 		/* Support of yytext. */
1938 		*yy_cp = yyg->yy_hold_char;
1939 
1940 		/* yy_bp points to the position in yy_ch_buf of the start of
1941 		 * the current run.
1942 		 */
1943 		yy_bp = yy_cp;
1944 
1945 		yy_current_state = yyg->yy_start;
1946 yy_match:
1947 		do
1948 			{
1949 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1950 			if ( yy_accept[yy_current_state] )
1951 				{
1952 				yyg->yy_last_accepting_state = yy_current_state;
1953 				yyg->yy_last_accepting_cpos = yy_cp;
1954 				}
1955 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1956 				{
1957 				yy_current_state = (int) yy_def[yy_current_state];
1958 				if ( yy_current_state >= 1387 )
1959 					yy_c = yy_meta[(unsigned int) yy_c];
1960 				}
1961 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1962 			++yy_cp;
1963 			}
1964 		while ( yy_base[yy_current_state] != 2047 );
1965 
1966 yy_find_action:
1967 		yy_act = yy_accept[yy_current_state];
1968 		if ( yy_act == 0 )
1969 			{ /* have to back up */
1970 			yy_cp = yyg->yy_last_accepting_cpos;
1971 			yy_current_state = yyg->yy_last_accepting_state;
1972 			yy_act = yy_accept[yy_current_state];
1973 			}
1974 
1975 		YY_DO_BEFORE_ACTION;
1976 
1977 do_action:	/* This label is used only to access EOF actions. */
1978 
1979 		switch ( yy_act )
1980 	{ /* beginning of action switch */
1981 			case 0: /* must back up */
1982 			/* undo the effects of YY_DO_BEFORE_ACTION */
1983 			*yy_cp = yyg->yy_hold_char;
1984 			yy_cp = yyg->yy_last_accepting_cpos;
1985 			yy_current_state = yyg->yy_last_accepting_state;
1986 			goto yy_find_action;
1987 
1988 case 1:
1989 YY_RULE_SETUP
1990 #line 285 "input_lexer.ll"
1991 /* skip whitespace */
1992 	YY_BREAK
1993 case 2:
1994 /* rule 2 can match eol */
1995 YY_RULE_SETUP
1996 #line 286 "input_lexer.ll"
1997 increment_lexer_line_number_setcol(yyscanner,yyextra); //CERR << "Scanning line " << lexer_line_number(yyextra) << '\n';
1998 	YY_BREAK
1999 /* Strings */
2000 /* \"[^\"]*\"        yylval = string2gen( giac_yytext); return T_STRING; */
2001 case 3:
2002 YY_RULE_SETUP
2003 #line 289 "input_lexer.ll"
2004 BEGIN(str); comment_s("",yyextra);
2005 	YY_BREAK
2006 case 4:
2007 YY_RULE_SETUP
2008 #line 290 "input_lexer.ll"
2009 increment_comment_s('"',yyextra);
2010 	YY_BREAK
2011 case 5:
2012 YY_RULE_SETUP
2013 #line 291 "input_lexer.ll"
2014 {  index_status(yyextra)=1; BEGIN(INITIAL);
2015                   (*yylval)=string2gen(comment_s(yyextra),false);
2016                   return T_STRING; }
2017 	YY_BREAK
2018 case 6:
2019 /* rule 6 can match eol */
2020 YY_RULE_SETUP
2021 #line 294 "input_lexer.ll"
2022 increment_comment_s('\n',yyextra); increment_lexer_line_number_setcol(yyscanner,yyextra);
2023 	YY_BREAK
2024 case 7:
2025 YY_RULE_SETUP
2026 #line 295 "input_lexer.ll"
2027 {
2028                    /* octal escape sequence */
2029                    int result=0;
2030                    (void) sscanf( yytext + 1, "%o", &result ); // not supported on FXCG
2031                    increment_comment_s(char(result & 0xff),yyextra);
2032                    }
2033 	YY_BREAK
2034 case 8:
2035 YY_RULE_SETUP
2036 #line 301 "input_lexer.ll"
2037 {
2038                    /* generate error - bad escape sequence; something
2039                     * like '\48' or '\0777777'
2040                     */
2041                    }
2042 	YY_BREAK
2043 case 9:
2044 YY_RULE_SETUP
2045 #line 306 "input_lexer.ll"
2046 increment_comment_s('\n',yyextra);
2047 	YY_BREAK
2048 case 10:
2049 YY_RULE_SETUP
2050 #line 307 "input_lexer.ll"
2051 increment_comment_s('\t',yyextra);
2052 	YY_BREAK
2053 case 11:
2054 YY_RULE_SETUP
2055 #line 308 "input_lexer.ll"
2056 increment_comment_s('\r',yyextra);
2057 	YY_BREAK
2058 case 12:
2059 YY_RULE_SETUP
2060 #line 309 "input_lexer.ll"
2061 increment_comment_s('\b',yyextra);
2062 	YY_BREAK
2063 case 13:
2064 YY_RULE_SETUP
2065 #line 310 "input_lexer.ll"
2066 increment_comment_s('\f',yyextra);
2067 	YY_BREAK
2068 case 14:
2069 /* rule 14 can match eol */
2070 YY_RULE_SETUP
2071 #line 311 "input_lexer.ll"
2072 increment_comment_s(yytext[1],yyextra);
2073 	YY_BREAK
2074 case 15:
2075 YY_RULE_SETUP
2076 #line 312 "input_lexer.ll"
2077 increment_comment_s(yytext,yyextra);
2078 	YY_BREAK
2079 case 16:
2080 YY_RULE_SETUP
2081 #line 313 "input_lexer.ll"
2082 if (rpn_mode(yyextra)){ index_status(yyextra)=0; return T_ACCENTGRAVE; } else { BEGIN(backquote); comment_s("",yyextra); }
2083 	YY_BREAK
2084 case 17:
2085 /* rule 17 can match eol */
2086 YY_RULE_SETUP
2087 #line 314 "input_lexer.ll"
2088 increment_comment_s('\n',yyextra); increment_lexer_line_number_setcol(yyscanner,yyextra);
2089 	YY_BREAK
2090 case 18:
2091 YY_RULE_SETUP
2092 #line 315 "input_lexer.ll"
2093 increment_comment_s(yytext,yyextra);
2094 	YY_BREAK
2095 case 19:
2096 YY_RULE_SETUP
2097 #line 316 "input_lexer.ll"
2098 {  index_status(yyextra)=1; BEGIN(INITIAL);
2099   return find_or_make_symbol(comment_s(yyextra),(*yylval),yyscanner,true,yyextra); }
2100 	YY_BREAK
2101 case 20:
2102 /* rule 20 can match eol */
2103 YY_RULE_SETUP
2104 #line 319 "input_lexer.ll"
2105 index_status(yyextra)=0; increment_lexer_line_number_setcol(yyscanner,yyextra);
2106 	YY_BREAK
2107 case 21:
2108 /* rule 21 can match eol */
2109 YY_RULE_SETUP
2110 #line 320 "input_lexer.ll"
2111 index_status(yyextra)=0; increment_lexer_line_number_setcol(yyscanner,yyextra);/* (*yylval) = string2gen('"'+string(giac_yytext).substr(2,string(giac_yytext).size()-3)+'"');   return T_COMMENT; */
2112 	YY_BREAK
2113 case 22:
2114 YY_RULE_SETUP
2115 #line 321 "input_lexer.ll"
2116 BEGIN(comment); comment_s(yyextra)="";
2117 	YY_BREAK
2118 case 23:
2119 YY_RULE_SETUP
2120 #line 323 "input_lexer.ll"
2121 comment_s(yyextra)+=yytext; /* eat anything that's not a '*' */
2122 	YY_BREAK
2123 case 24:
2124 YY_RULE_SETUP
2125 #line 324 "input_lexer.ll"
2126 comment_s(yyextra)+=yytext; /* eat up '*'s not followed by '/'s */
2127 	YY_BREAK
2128 case 25:
2129 /* rule 25 can match eol */
2130 YY_RULE_SETUP
2131 #line 325 "input_lexer.ll"
2132 comment_s(yyextra) += '\n'; increment_lexer_line_number_setcol(yyscanner,yyextra); CERR << "(Comment) scanning line " << lexer_line_number(yyextra) << '\n';
2133 	YY_BREAK
2134 case 26:
2135 YY_RULE_SETUP
2136 #line 326 "input_lexer.ll"
2137 BEGIN(INITIAL); index_status(yyextra)=0; /* (*yylval) = string2gen(comment_s(yyextra),false); return T_COMMENT; */
2138 	YY_BREAK
2139 case 27:
2140 /* rule 27 can match eol */
2141 YY_RULE_SETUP
2142 #line 327 "input_lexer.ll"
2143 index_status(yyextra)=0; /* (*yylval) = string2gen('"'+string(yytext).substr(3,string(yytext).size()-6)+'"'); return T_COMMENT; */
2144 	YY_BREAK
2145 case 28:
2146 /* rule 28 can match eol */
2147 YY_RULE_SETUP
2148 #line 328 "input_lexer.ll"
2149 index_status(yyextra)=0; /* (*yylval) = string2gen('"'+string(yytext).substr(3,string(yytext).size()-6)+'"'); return T_COMMENT; */
2150 	YY_BREAK
2151 case 29:
2152 YY_RULE_SETUP
2153 #line 330 "input_lexer.ll"
2154 if (index_status(yyextra)) return T_INTERROGATION; if (calc_mode(yyextra)==1){ *yylval=undef; return T_SYMBOL;}  return T_HELP;
2155 	YY_BREAK
2156 case 30:
2157 YY_RULE_SETUP
2158 #line 331 "input_lexer.ll"
2159 opened_quote(yyextra) |= 2; return T_UNIT;
2160 	YY_BREAK
2161 case 31:
2162 YY_RULE_SETUP
2163 #line 332 "input_lexer.ll"
2164 if (opened_quote(yyextra) & 1) { opened_quote(yyextra) &= 0x7ffffffe; return T_QUOTE; } if (index_status(yyextra) && !in_rpn(yyextra) && xcas_mode(yyextra)!= 1) return T_PRIME; opened_quote(yyextra) |= 1; return T_QUOTE;
2165 	YY_BREAK
2166 case 32:
2167 YY_RULE_SETUP
2168 #line 333 "input_lexer.ll"
2169 index_status(yyextra)=0; if (xcas_mode(yyextra)==3) return TI_SEMI; (*yylval)=0; return T_SEMI;
2170 	YY_BREAK
2171 /* commented otherwise for(;;) will not work ";;"			index_status(yyextra)=0; if (xcas_mode(yyextra)==3) return TI_SEMI; (*yylval)=0; return T_SEMI; */
2172 case 33:
2173 YY_RULE_SETUP
2174 #line 335 "input_lexer.ll"
2175 index_status(yyextra)=0; if (xcas_mode(yyextra)==3) return T_SEMI; return TI_SEMI;
2176 	YY_BREAK
2177 case 34:
2178 YY_RULE_SETUP
2179 #line 336 "input_lexer.ll"
2180 if (spread_formula(yyextra)) return T_DEUXPOINTS; if ( xcas_mode(yyextra)==3 ) { index_status(yyextra)=0; return TI_DEUXPOINTS; }  index_status(yyextra)=0; if (xcas_mode(yyextra)>0) { (*yylval)=1; return T_SEMI; } else return T_DEUXPOINTS;
2181 	YY_BREAK
2182 case 35:
2183 YY_RULE_SETUP
2184 #line 337 "input_lexer.ll"
2185 index_status(yyextra)=0; (*yylval)=1; return T_SEMI;
2186 	YY_BREAK
2187 case 36:
2188 YY_RULE_SETUP
2189 #line 338 "input_lexer.ll"
2190 index_status(yyextra)=0;return T_DOUBLE_DEUX_POINTS;
2191 	YY_BREAK
2192 /* special values */
2193 case 37:
2194 YY_RULE_SETUP
2195 #line 342 "input_lexer.ll"
2196 index_status(yyextra)=1; (*yylval)=theta__IDNT_e; return T_SYMBOL;
2197 	YY_BREAK
2198 case 38:
2199 YY_RULE_SETUP
2200 #line 343 "input_lexer.ll"
2201 index_status(yyextra)=1; if (xcas_mode(yyextra) > 0 || !i_sqrt_minus1(yyextra)) { (*yylval)=i__IDNT_e; return T_SYMBOL; } else { (*yylval) = cst_i; return T_LITERAL;};
2202 	YY_BREAK
2203 case 39:
2204 YY_RULE_SETUP
2205 #line 344 "input_lexer.ll"
2206 index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL;
2207 	YY_BREAK
2208 case 40:
2209 YY_RULE_SETUP
2210 #line 345 "input_lexer.ll"
2211 index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL;
2212 	YY_BREAK
2213 case 41:
2214 YY_RULE_SETUP
2215 #line 346 "input_lexer.ll"
2216 index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL;
2217 	YY_BREAK
2218 case 42:
2219 YY_RULE_SETUP
2220 #line 347 "input_lexer.ll"
2221 index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL;
2222 	YY_BREAK
2223 /* \xef\xbd\x89            index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL; */
2224 case 43:
2225 YY_RULE_SETUP
2226 #line 349 "input_lexer.ll"
2227 index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL;
2228 	YY_BREAK
2229 case 44:
2230 YY_RULE_SETUP
2231 #line 350 "input_lexer.ll"
2232 index_status(yyextra)=1; if (xcas_mode(yyextra)==0 || xcas_mode(yyextra)==3 || rpn_mode(yyextra)) { return find_or_make_symbol(yytext,(*yylval),yyscanner,true,yyextra); } else { (*yylval) = cst_i; return T_LITERAL; };
2233 	YY_BREAK
2234 case 45:
2235 YY_RULE_SETUP
2236 #line 351 "input_lexer.ll"
2237 index_status(yyextra)=1; (*yylval) = cst_i; return T_LITERAL;
2238 	YY_BREAK
2239 case 46:
2240 YY_RULE_SETUP
2241 #line 352 "input_lexer.ll"
2242 index_status(yyextra)=1; (*yylval) = symbolic(at_exp,1); return T_LITERAL;
2243 	YY_BREAK
2244 case 47:
2245 YY_RULE_SETUP
2246 #line 353 "input_lexer.ll"
2247 index_status(yyextra)=1; (*yylval) = cst_pi; return T_LITERAL;
2248 	YY_BREAK
2249 case 48:
2250 YY_RULE_SETUP
2251 #line 354 "input_lexer.ll"
2252 index_status(yyextra)=1; (*yylval) = cst_pi; return T_LITERAL;
2253 	YY_BREAK
2254 case 49:
2255 YY_RULE_SETUP
2256 #line 355 "input_lexer.ll"
2257 index_status(yyextra)=1; (*yylval) = cst_pi; return T_LITERAL;
2258 	YY_BREAK
2259 case 50:
2260 YY_RULE_SETUP
2261 #line 356 "input_lexer.ll"
2262 index_status(yyextra)=1; (*yylval) = cst_pi; return T_LITERAL;
2263 	YY_BREAK
2264 case 51:
2265 YY_RULE_SETUP
2266 #line 357 "input_lexer.ll"
2267 index_status(yyextra)=1; (*yylval) = cst_pi; return T_LITERAL;
2268 	YY_BREAK
2269 case 52:
2270 YY_RULE_SETUP
2271 #line 358 "input_lexer.ll"
2272 index_status(yyextra)=1; (*yylval) = cst_euler_gamma; return T_LITERAL;
2273 	YY_BREAK
2274 case 53:
2275 YY_RULE_SETUP
2276 #line 359 "input_lexer.ll"
2277 index_status(yyextra)=1; (*yylval) = unsigned_inf; return T_LITERAL;
2278 	YY_BREAK
2279 case 54:
2280 YY_RULE_SETUP
2281 #line 360 "input_lexer.ll"
2282 index_status(yyextra)=1; (*yylval) = plus_inf; return T_LITERAL;
2283 	YY_BREAK
2284 case 55:
2285 YY_RULE_SETUP
2286 #line 361 "input_lexer.ll"
2287 index_status(yyextra)=1; (*yylval) = unsigned_inf; return T_LITERAL;
2288 	YY_BREAK
2289 case 56:
2290 YY_RULE_SETUP
2291 #line 362 "input_lexer.ll"
2292 index_status(yyextra)=1; (*yylval) = plus_inf; return T_LITERAL;
2293 	YY_BREAK
2294 case 57:
2295 YY_RULE_SETUP
2296 #line 363 "input_lexer.ll"
2297 index_status(yyextra)=1; (*yylval) = plus_inf; return T_LITERAL;
2298 	YY_BREAK
2299 case 58:
2300 YY_RULE_SETUP
2301 #line 364 "input_lexer.ll"
2302 index_status(yyextra)=1; (*yylval) = unsigned_inf; return T_LITERAL;
2303 	YY_BREAK
2304 case 59:
2305 YY_RULE_SETUP
2306 #line 365 "input_lexer.ll"
2307 index_status(yyextra)=1; (*yylval) = plus_inf; return T_LITERAL;
2308 	YY_BREAK
2309 case 60:
2310 YY_RULE_SETUP
2311 #line 366 "input_lexer.ll"
2312 index_status(yyextra)=1; (*yylval) = minus_inf; return T_LITERAL;
2313 	YY_BREAK
2314 case 61:
2315 YY_RULE_SETUP
2316 #line 367 "input_lexer.ll"
2317 index_status(yyextra)=1; (*yylval) = undef; return T_LITERAL;
2318 	YY_BREAK
2319 case 62:
2320 YY_RULE_SETUP
2321 #line 368 "input_lexer.ll"
2322 return T_END_INPUT;
2323 	YY_BREAK
2324 /* integer values */
2325 case 63:
2326 YY_RULE_SETUP
2327 #line 371 "input_lexer.ll"
2328 if (xcas_mode(yyextra)==2){ (*yylval) = gen(at_user_operator,6); index_status(yyextra)=0; return T_UNARY_OP; }  index_status(yyextra)=0; (*yylval) = _FUNC; (*yylval).subtype=_INT_TYPE; return T_TYPE_ID;
2329 	YY_BREAK
2330 case 64:
2331 YY_RULE_SETUP
2332 #line 372 "input_lexer.ll"
2333 if (python_compat(yyextra)){ *yylval=at_python_list; return T_UNARY_OP; } if (xcas_mode(yyextra)==3) { index_status(yyextra)=1; return find_or_make_symbol(yytext,(*yylval),yyscanner,true,yyextra); } index_status(yyextra)=0; (*yylval) = _MAPLE_LIST ; (*yylval).subtype=_INT_MAPLECONVERSION ;return T_TYPE_ID;
2334 	YY_BREAK
2335 /* vector/polynom/matrice delimiters */
2336 case 65:
2337 YY_RULE_SETUP
2338 #line 376 "input_lexer.ll"
2339 (*yylval) = _SEQ__VECT; return T_VECT_DISPATCH;
2340 	YY_BREAK
2341 case 66:
2342 YY_RULE_SETUP
2343 #line 377 "input_lexer.ll"
2344 (*yylval) = _SET__VECT; return T_VECT_DISPATCH;
2345 	YY_BREAK
2346 case 67:
2347 YY_RULE_SETUP
2348 #line 378 "input_lexer.ll"
2349 (*yylval) = _INTERVAL__VECT; return T_VECT_DISPATCH;
2350 	YY_BREAK
2351 case 68:
2352 YY_RULE_SETUP
2353 #line 379 "input_lexer.ll"
2354 index_status(yyextra)=0; (*yylval) = _LIST__VECT; return T_VECT_DISPATCH;
2355 	YY_BREAK
2356 /* "list(" index_status(yyextra)=0; (*yylval) = _LIST__VECT; return T_BEGIN_PAR; */
2357 case 69:
2358 YY_RULE_SETUP
2359 #line 381 "input_lexer.ll"
2360 (*yylval) = _RPN_FUNC__VECT; return T_VECT_DISPATCH;
2361 	YY_BREAK
2362 case 70:
2363 YY_RULE_SETUP
2364 #line 382 "input_lexer.ll"
2365 (*yylval) = _GROUP__VECT; return T_VECT_DISPATCH;
2366 	YY_BREAK
2367 case 71:
2368 YY_RULE_SETUP
2369 #line 383 "input_lexer.ll"
2370 (*yylval) = _LINE__VECT; return T_VECT_DISPATCH;
2371 	YY_BREAK
2372 case 72:
2373 YY_RULE_SETUP
2374 #line 384 "input_lexer.ll"
2375 (*yylval) = _VECTOR__VECT; return T_VECT_DISPATCH;
2376 	YY_BREAK
2377 case 73:
2378 YY_RULE_SETUP
2379 #line 385 "input_lexer.ll"
2380 (*yylval) = _MATRIX__VECT; return T_VECT_DISPATCH;
2381 	YY_BREAK
2382 case 74:
2383 YY_RULE_SETUP
2384 #line 386 "input_lexer.ll"
2385 (*yylval) = _PNT__VECT; return T_VECT_DISPATCH;
2386 	YY_BREAK
2387 case 75:
2388 YY_RULE_SETUP
2389 #line 387 "input_lexer.ll"
2390 (*yylval) = _GGB__VECT; return T_VECT_DISPATCH;
2391 	YY_BREAK
2392 case 76:
2393 YY_RULE_SETUP
2394 #line 388 "input_lexer.ll"
2395 (*yylval) = _GGBVECT; return T_VECT_DISPATCH;
2396 	YY_BREAK
2397 case 77:
2398 YY_RULE_SETUP
2399 #line 389 "input_lexer.ll"
2400 (*yylval) = _POINT__VECT; return T_VECT_DISPATCH;
2401 	YY_BREAK
2402 case 78:
2403 YY_RULE_SETUP
2404 #line 390 "input_lexer.ll"
2405 (*yylval) = _TUPLE__VECT; return T_VECT_DISPATCH;
2406 	YY_BREAK
2407 case 79:
2408 YY_RULE_SETUP
2409 #line 391 "input_lexer.ll"
2410 (*yylval) = _CURVE__VECT; return T_VECT_DISPATCH;
2411 	YY_BREAK
2412 case 80:
2413 YY_RULE_SETUP
2414 #line 392 "input_lexer.ll"
2415 (*yylval) = _HALFLINE__VECT; return T_VECT_DISPATCH;
2416 	YY_BREAK
2417 case 81:
2418 YY_RULE_SETUP
2419 #line 393 "input_lexer.ll"
2420 (*yylval) = _POLY1__VECT; return T_VECT_DISPATCH;
2421 	YY_BREAK
2422 case 82:
2423 YY_RULE_SETUP
2424 #line 394 "input_lexer.ll"
2425 (*yylval) = _ASSUME__VECT; return T_VECT_DISPATCH;
2426 	YY_BREAK
2427 case 83:
2428 YY_RULE_SETUP
2429 #line 395 "input_lexer.ll"
2430 (*yylval) = _LOGO__VECT; return T_VECT_DISPATCH;
2431 	YY_BREAK
2432 case 84:
2433 YY_RULE_SETUP
2434 #line 396 "input_lexer.ll"
2435 (*yylval) = _SPREAD__VECT; return T_VECT_DISPATCH;
2436 	YY_BREAK
2437 case 85:
2438 YY_RULE_SETUP
2439 #line 397 "input_lexer.ll"
2440 (*yylval) = _FOLDER__VECT; return T_VECT_DISPATCH;
2441 	YY_BREAK
2442 case 86:
2443 YY_RULE_SETUP
2444 #line 398 "input_lexer.ll"
2445 (*yylval) = _POLYEDRE__VECT; return T_VECT_DISPATCH;
2446 	YY_BREAK
2447 case 87:
2448 YY_RULE_SETUP
2449 #line 399 "input_lexer.ll"
2450 (*yylval) = _RGBA__VECT; return T_VECT_DISPATCH;
2451 	YY_BREAK
2452 case 88:
2453 YY_RULE_SETUP
2454 #line 400 "input_lexer.ll"
2455 index_status(yyextra)=0; (*yylval) = _LIST__VECT; return T_VECT_DISPATCH;
2456 	YY_BREAK
2457 case 89:
2458 YY_RULE_SETUP
2459 #line 401 "input_lexer.ll"
2460 index_status(yyextra)=1; return T_VECT_END;
2461 	YY_BREAK
2462 case 90:
2463 YY_RULE_SETUP
2464 #line 402 "input_lexer.ll"
2465 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_strict,2);  return T_TEST_EQUAL;
2466 	YY_BREAK
2467 case 91:
2468 YY_RULE_SETUP
2469 #line 403 "input_lexer.ll"
2470 index_status(yyextra)=0; (*yylval)=gen(at_superieur_strict,2); return T_TEST_EQUAL;
2471 	YY_BREAK
2472 case 92:
2473 YY_RULE_SETUP
2474 #line 404 "input_lexer.ll"
2475 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_strict,2);  return T_TEST_EQUAL;
2476 	YY_BREAK
2477 case 93:
2478 YY_RULE_SETUP
2479 #line 405 "input_lexer.ll"
2480 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_egal,2);  return T_TEST_EQUAL;
2481 	YY_BREAK
2482 case 94:
2483 YY_RULE_SETUP
2484 #line 406 "input_lexer.ll"
2485 index_status(yyextra)=0; (*yylval)=gen(at_superieur_strict,2); return T_TEST_EQUAL;
2486 	YY_BREAK
2487 case 95:
2488 YY_RULE_SETUP
2489 #line 407 "input_lexer.ll"
2490 index_status(yyextra)=0; (*yylval)=gen(at_superieur_egal,2); return T_TEST_EQUAL;
2491 	YY_BREAK
2492 case 96:
2493 YY_RULE_SETUP
2494 #line 408 "input_lexer.ll"
2495 index_status(yyextra)=0; return T_VIRGULE;
2496 	YY_BREAK
2497 case 97:
2498 YY_RULE_SETUP
2499 #line 409 "input_lexer.ll"
2500 index_status(yyextra)=0; return T_VIRGULE;
2501 	YY_BREAK
2502 case 98:
2503 YY_RULE_SETUP
2504 #line 410 "input_lexer.ll"
2505 index_status(yyextra)=0; *yylval = 0; return T_BEGIN_PAR;
2506 	YY_BREAK
2507 case 99:
2508 YY_RULE_SETUP
2509 #line 411 "input_lexer.ll"
2510 index_status(yyextra)=1; return T_END_PAR;
2511 	YY_BREAK
2512 case 100:
2513 YY_RULE_SETUP
2514 #line 412 "input_lexer.ll"
2515 if (index_status(yyextra)) { index_status(yyextra)=0; return T_INDEX_BEGIN; } else { (*yylval) = 0; return T_VECT_DISPATCH; } ;
2516 	YY_BREAK
2517 case 101:
2518 YY_RULE_SETUP
2519 #line 413 "input_lexer.ll"
2520 index_status(yyextra)=1; return T_VECT_END;
2521 	YY_BREAK
2522 case 102:
2523 YY_RULE_SETUP
2524 #line 414 "input_lexer.ll"
2525 index_status(yyextra)=1; return T_VECT_END;
2526 	YY_BREAK
2527 case 103:
2528 YY_RULE_SETUP
2529 #line 415 "input_lexer.ll"
2530 index_status(yyextra)=0; (*yylval) = _POLY1__VECT; return T_VECT_DISPATCH;
2531 	YY_BREAK
2532 case 104:
2533 YY_RULE_SETUP
2534 #line 416 "input_lexer.ll"
2535 index_status(yyextra)=1; return T_VECT_END;
2536 	YY_BREAK
2537 case 105:
2538 YY_RULE_SETUP
2539 #line 417 "input_lexer.ll"
2540 index_status(yyextra)=0; (*yylval) = _MATRIX__VECT; return T_VECT_DISPATCH;
2541 	YY_BREAK
2542 case 106:
2543 YY_RULE_SETUP
2544 #line 418 "input_lexer.ll"
2545 index_status(yyextra)=1; return T_VECT_END;
2546 	YY_BREAK
2547 case 107:
2548 YY_RULE_SETUP
2549 #line 419 "input_lexer.ll"
2550 index_status(yyextra)=0; (*yylval) = _ASSUME__VECT; return T_VECT_DISPATCH;
2551 	YY_BREAK
2552 case 108:
2553 YY_RULE_SETUP
2554 #line 420 "input_lexer.ll"
2555 index_status(yyextra)=1; return T_VECT_END;
2556 	YY_BREAK
2557 /* geometric delimiters */
2558 case 109:
2559 YY_RULE_SETUP
2560 #line 422 "input_lexer.ll"
2561 index_status(yyextra)=0; (*yylval) = _GROUP__VECT; return T_VECT_DISPATCH;
2562 	YY_BREAK
2563 case 110:
2564 YY_RULE_SETUP
2565 #line 423 "input_lexer.ll"
2566 index_status(yyextra)=1; return T_VECT_END;
2567 	YY_BREAK
2568 case 111:
2569 YY_RULE_SETUP
2570 #line 424 "input_lexer.ll"
2571 index_status(yyextra)=0; (*yylval) = _LINE__VECT; return T_VECT_DISPATCH;
2572 	YY_BREAK
2573 case 112:
2574 YY_RULE_SETUP
2575 #line 425 "input_lexer.ll"
2576 index_status(yyextra)=1; return T_VECT_END;
2577 	YY_BREAK
2578 case 113:
2579 YY_RULE_SETUP
2580 #line 426 "input_lexer.ll"
2581 index_status(yyextra)=0; (*yylval) = _VECTOR__VECT; return T_VECT_DISPATCH;
2582 	YY_BREAK
2583 case 114:
2584 YY_RULE_SETUP
2585 #line 427 "input_lexer.ll"
2586 index_status(yyextra)=1; return T_VECT_END;
2587 	YY_BREAK
2588 case 115:
2589 YY_RULE_SETUP
2590 #line 428 "input_lexer.ll"
2591 index_status(yyextra)=0; (*yylval) = _CURVE__VECT; return T_VECT_DISPATCH;
2592 	YY_BREAK
2593 case 116:
2594 YY_RULE_SETUP
2595 #line 429 "input_lexer.ll"
2596 index_status(yyextra)=1; return T_VECT_END;
2597 	YY_BREAK
2598 /* gen delimiters */
2599 case 117:
2600 YY_RULE_SETUP
2601 #line 431 "input_lexer.ll"
2602 index_status(yyextra)=0; (*yylval)=_TABLE__VECT;return T_VECT_DISPATCH;
2603 	YY_BREAK
2604 case 118:
2605 YY_RULE_SETUP
2606 #line 432 "input_lexer.ll"
2607 index_status(yyextra)=1;  return T_VECT_END;
2608 	YY_BREAK
2609 case 119:
2610 YY_RULE_SETUP
2611 #line 433 "input_lexer.ll"
2612 index_status(yyextra)=0;  if (rpn_mode(yyextra)||calc_mode(yyextra)==1) { (*yylval)=0; return T_VECT_DISPATCH; } if (xcas_mode(yyextra)==3 || abs_calc_mode(yyextra)==38){ (*yylval) = _LIST__VECT;  return T_VECT_DISPATCH; } if (xcas_mode(yyextra) > 0 ){ (*yylval)=_SET__VECT; return T_VECT_DISPATCH; } else return T_BLOC_BEGIN;
2613 	YY_BREAK
2614 case 120:
2615 YY_RULE_SETUP
2616 #line 434 "input_lexer.ll"
2617 index_status(yyextra)=1; if (rpn_mode(yyextra) || calc_mode(yyextra)==1 || python_compat(yyextra)) return T_VECT_END; if (xcas_mode(yyextra)==3 || abs_calc_mode(yyextra)==38) return T_VECT_END; if (xcas_mode(yyextra) > 0) return T_VECT_END; else return T_BLOC_END;
2618 	YY_BREAK
2619 case 121:
2620 YY_RULE_SETUP
2621 #line 435 "input_lexer.ll"
2622 index_status(yyextra)=0;  (*yylval)=_SET__VECT; return T_VECT_DISPATCH;
2623 	YY_BREAK
2624 case 122:
2625 YY_RULE_SETUP
2626 #line 436 "input_lexer.ll"
2627 index_status(yyextra)=1; return T_VECT_END;
2628 	YY_BREAK
2629 case 123:
2630 YY_RULE_SETUP
2631 #line 437 "input_lexer.ll"
2632 index_status(yyextra)=0; return T_ROOTOF_BEGIN;
2633 	YY_BREAK
2634 case 124:
2635 YY_RULE_SETUP
2636 #line 438 "input_lexer.ll"
2637 index_status(yyextra)=1; return T_ROOTOF_END;
2638 	YY_BREAK
2639 case 125:
2640 YY_RULE_SETUP
2641 #line 439 "input_lexer.ll"
2642 index_status(yyextra)=0; return T_SPOLY1_BEGIN;
2643 	YY_BREAK
2644 case 126:
2645 YY_RULE_SETUP
2646 #line 440 "input_lexer.ll"
2647 index_status(yyextra)=1; return T_SPOLY1_END;
2648 	YY_BREAK
2649 case 127:
2650 YY_RULE_SETUP
2651 #line 441 "input_lexer.ll"
2652 index_status(yyextra)=0; if (abs_calc_mode(yyextra)!=38){ (*yylval)=gen(at_rotate,2); return T_UNION; } ++in_rpn(yyextra); return T_RPN_BEGIN;
2653 	YY_BREAK
2654 case 128:
2655 YY_RULE_SETUP
2656 #line 442 "input_lexer.ll"
2657 index_status(yyextra)=0; if (abs_calc_mode(yyextra)!=38){ (*yylval)=gen(at_shift,2); return T_UNION; } --in_rpn(yyextra); return T_RPN_END;
2658 	YY_BREAK
2659 /* binary operators */
2660 case 129:
2661 YY_RULE_SETUP
2662 #line 445 "input_lexer.ll"
2663 index_status(yyextra)=0; return T_MAPSTO;
2664 	YY_BREAK
2665 case 130:
2666 YY_RULE_SETUP
2667 #line 446 "input_lexer.ll"
2668 (*yylval) = gen(at_couleur,2); index_status(yyextra)=0; return T_INTERVAL;
2669 	YY_BREAK
2670 case 131:
2671 YY_RULE_SETUP
2672 #line 447 "input_lexer.ll"
2673 index_status(yyextra)=0; (*yylval)=gen(at_same,2); return T_TEST_EQUAL;
2674 	YY_BREAK
2675 case 132:
2676 YY_RULE_SETUP
2677 #line 448 "input_lexer.ll"
2678 index_status(yyextra)=0; (*yylval)=gen(at_equal,2); return T_EQUAL;
2679 	YY_BREAK
2680 case 133:
2681 YY_RULE_SETUP
2682 #line 449 "input_lexer.ll"
2683 index_status(yyextra)=0; (*yylval)=gen(at_deuxpoints,2); return T_DEUXPOINTS;
2684 	YY_BREAK
2685 case 134:
2686 YY_RULE_SETUP
2687 #line 450 "input_lexer.ll"
2688 index_status(yyextra)=0; (*yylval)=gen(at_same,2); return T_QUOTED_BINARY;
2689 	YY_BREAK
2690 case 135:
2691 YY_RULE_SETUP
2692 #line 451 "input_lexer.ll"
2693 index_status(yyextra)=0; (*yylval)=gen(at_same,2); return T_QUOTED_BINARY;
2694 	YY_BREAK
2695 case 136:
2696 YY_RULE_SETUP
2697 #line 452 "input_lexer.ll"
2698 index_status(yyextra)=0; (*yylval)=gen(at_different,2); return T_TEST_EQUAL;
2699 	YY_BREAK
2700 case 137:
2701 YY_RULE_SETUP
2702 #line 453 "input_lexer.ll"
2703 index_status(yyextra)=0; (*yylval)=gen(at_different,2); return T_QUOTED_BINARY;
2704 	YY_BREAK
2705 case 138:
2706 YY_RULE_SETUP
2707 #line 454 "input_lexer.ll"
2708 index_status(yyextra)=0; (*yylval)=gen(at_different,2); return T_TEST_EQUAL;
2709 	YY_BREAK
2710 case 139:
2711 YY_RULE_SETUP
2712 #line 455 "input_lexer.ll"
2713 index_status(yyextra)=0; (*yylval)=gen(at_different,2); return T_QUOTED_BINARY;
2714 	YY_BREAK
2715 case 140:
2716 YY_RULE_SETUP
2717 #line 456 "input_lexer.ll"
2718 index_status(yyextra)=0; (*yylval)=gen(at_different,2); return T_QUOTED_BINARY;
2719 	YY_BREAK
2720 case 141:
2721 YY_RULE_SETUP
2722 #line 457 "input_lexer.ll"
2723 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_egal,2); return T_QUOTED_BINARY;
2724 	YY_BREAK
2725 case 142:
2726 YY_RULE_SETUP
2727 #line 458 "input_lexer.ll"
2728 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_egal,2); return T_QUOTED_BINARY;
2729 	YY_BREAK
2730 case 143:
2731 YY_RULE_SETUP
2732 #line 459 "input_lexer.ll"
2733 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_egal,2); return T_TEST_EQUAL;
2734 	YY_BREAK
2735 case 144:
2736 YY_RULE_SETUP
2737 #line 460 "input_lexer.ll"
2738 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_strict,2); return T_QUOTED_BINARY;
2739 	YY_BREAK
2740 case 145:
2741 YY_RULE_SETUP
2742 #line 461 "input_lexer.ll"
2743 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_strict,2); return T_QUOTED_BINARY;
2744 	YY_BREAK
2745 case 146:
2746 YY_RULE_SETUP
2747 #line 462 "input_lexer.ll"
2748 index_status(yyextra)=0; (*yylval)=gen(at_superieur_strict,2); return T_QUOTED_BINARY;
2749 	YY_BREAK
2750 case 147:
2751 YY_RULE_SETUP
2752 #line 463 "input_lexer.ll"
2753 index_status(yyextra)=0; (*yylval)=gen(at_superieur_egal,2); return T_TEST_EQUAL;
2754 	YY_BREAK
2755 case 148:
2756 YY_RULE_SETUP
2757 #line 464 "input_lexer.ll"
2758 index_status(yyextra)=0; (*yylval)=gen(at_superieur_egal,2); return T_QUOTED_BINARY;
2759 	YY_BREAK
2760 case 149:
2761 YY_RULE_SETUP
2762 #line 465 "input_lexer.ll"
2763 spread_formula(yyextra)=!index_status(yyextra); index_status(yyextra)=0; (*yylval)=gen(at_equal,2); return T_EQUAL;
2764 	YY_BREAK
2765 case 150:
2766 YY_RULE_SETUP
2767 #line 466 "input_lexer.ll"
2768 spread_formula(yyextra)=!index_status(yyextra); index_status(yyextra)=0; (*yylval)=gen(at_equal2,2); return T_EQUAL;
2769 	YY_BREAK
2770 case 151:
2771 YY_RULE_SETUP
2772 #line 467 "input_lexer.ll"
2773 index_status(yyextra)=0; (*yylval)=gen(at_equal,2); return T_QUOTED_BINARY;
2774 	YY_BREAK
2775 case 152:
2776 YY_RULE_SETUP
2777 #line 468 "input_lexer.ll"
2778 index_status(yyextra)=0; (*yylval)=gen(at_dollar,2); if (xcas_mode(yyextra)>0) return T_DOLLAR_MAPLE; else return T_DOLLAR;
2779 	YY_BREAK
2780 case 153:
2781 YY_RULE_SETUP
2782 #line 469 "input_lexer.ll"
2783 index_status(yyextra)=0; (*yylval)=gen(at_dollar,2); return T_DOLLAR_MAPLE;
2784 	YY_BREAK
2785 case 154:
2786 YY_RULE_SETUP
2787 #line 470 "input_lexer.ll"
2788 index_status(yyextra)=0; (*yylval)=gen(at_dollar,2); return T_QUOTED_BINARY;
2789 	YY_BREAK
2790 case 155:
2791 YY_RULE_SETUP
2792 #line 471 "input_lexer.ll"
2793 index_status(yyextra)=0; (*yylval)=gen(at_dollar,2); return T_QUOTED_BINARY;
2794 	YY_BREAK
2795 case 156:
2796 YY_RULE_SETUP
2797 #line 472 "input_lexer.ll"
2798 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return T_AFFECT;
2799 	YY_BREAK
2800 case 157:
2801 YY_RULE_SETUP
2802 #line 473 "input_lexer.ll"
2803 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return T_QUOTED_BINARY;
2804 	YY_BREAK
2805 case 158:
2806 YY_RULE_SETUP
2807 #line 474 "input_lexer.ll"
2808 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return T_QUOTED_BINARY;
2809 	YY_BREAK
2810 case 159:
2811 YY_RULE_SETUP
2812 #line 475 "input_lexer.ll"
2813 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return TI_STO;
2814 	YY_BREAK
2815 case 160:
2816 YY_RULE_SETUP
2817 #line 476 "input_lexer.ll"
2818 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return TI_STO;
2819 	YY_BREAK
2820 case 161:
2821 YY_RULE_SETUP
2822 #line 477 "input_lexer.ll"
2823 index_status(yyextra)=0; if (xcas_mode(yyextra)==3){ (*yylval)=gen(at_sto,2); return TI_STO; } else return T_MAPSTO;
2824 	YY_BREAK
2825 case 162:
2826 YY_RULE_SETUP
2827 #line 478 "input_lexer.ll"
2828 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return TI_STO;
2829 	YY_BREAK
2830 case 163:
2831 YY_RULE_SETUP
2832 #line 479 "input_lexer.ll"
2833 index_status(yyextra)=0; (*yylval)=gen(at_sto,2); return TI_STO;
2834 	YY_BREAK
2835 case 164:
2836 YY_RULE_SETUP
2837 #line 480 "input_lexer.ll"
2838 index_status(yyextra)=0; (*yylval)=gen(at_array_sto,2); return T_AFFECT;
2839 	YY_BREAK
2840 case 165:
2841 YY_RULE_SETUP
2842 #line 481 "input_lexer.ll"
2843 index_status(yyextra)=0; (*yylval)=gen(at_array_sto,2); return T_AFFECT;
2844 	YY_BREAK
2845 case 166:
2846 YY_RULE_SETUP
2847 #line 482 "input_lexer.ll"
2848 index_status(yyextra)=1; yytext[0]='0'; (*yylval) = symb_double_deux_points(makevecteur(_IDNT_id_at,chartab2gen(yytext,yyextra))); return T_SYMBOL;
2849 	YY_BREAK
2850 case 167:
2851 YY_RULE_SETUP
2852 #line 483 "input_lexer.ll"
2853 if (xcas_mode(yyextra)!=3) {index_status(yyextra)=0; (*yylval)=gen(at_compose,2); return T_COMPOSE; } BEGIN(comment_hash);
2854 	YY_BREAK
2855 case 168:
2856 YY_RULE_SETUP
2857 #line 484 "input_lexer.ll"
2858 index_status(yyextra)=0; (*yylval)=gen(at_composepow,2); return T_POW;
2859 	YY_BREAK
2860 case 169:
2861 YY_RULE_SETUP
2862 #line 485 "input_lexer.ll"
2863 index_status(yyextra)=0; (*yylval)=gen(at_composepow,2); return T_QUOTED_BINARY;
2864 	YY_BREAK
2865 case 170:
2866 YY_RULE_SETUP
2867 #line 486 "input_lexer.ll"
2868 index_status(yyextra)=0; (*yylval)=gen(at_composepow,2); return T_QUOTED_BINARY;
2869 	YY_BREAK
2870 case 171:
2871 YY_RULE_SETUP
2872 #line 487 "input_lexer.ll"
2873 index_status(yyextra)=0; (*yylval)=gen(at_compose,2); return T_QUOTED_BINARY;
2874 	YY_BREAK
2875 case 172:
2876 YY_RULE_SETUP
2877 #line 488 "input_lexer.ll"
2878 index_status(yyextra)=0; (*yylval)=gen(at_compose,2); return T_QUOTED_BINARY;
2879 	YY_BREAK
2880 case 173:
2881 YY_RULE_SETUP
2882 #line 489 "input_lexer.ll"
2883 index_status(yyextra)=0; (*yylval)=gen(at_and,2); return T_AND_OP;
2884 	YY_BREAK
2885 case 174:
2886 YY_RULE_SETUP
2887 #line 490 "input_lexer.ll"
2888 index_status(yyextra)=0; (*yylval)=gen(at_and,2); return T_AND_OP;
2889 	YY_BREAK
2890 case 175:
2891 YY_RULE_SETUP
2892 #line 491 "input_lexer.ll"
2893 index_status(yyextra)=0; (*yylval)=gen(at_and,2); return T_AND_OP;
2894 	YY_BREAK
2895 case 176:
2896 YY_RULE_SETUP
2897 #line 492 "input_lexer.ll"
2898 index_status(yyextra)=0; (*yylval)=gen(at_and,2); return T_QUOTED_BINARY;
2899 	YY_BREAK
2900 case 177:
2901 YY_RULE_SETUP
2902 #line 493 "input_lexer.ll"
2903 index_status(yyextra)=0; (*yylval)=gen(at_and,2); return T_QUOTED_BINARY;
2904 	YY_BREAK
2905 case 178:
2906 YY_RULE_SETUP
2907 #line 494 "input_lexer.ll"
2908 index_status(yyextra)=0; (*yylval)=gen(at_and,2); return T_QUOTED_BINARY;
2909 	YY_BREAK
2910 case 179:
2911 YY_RULE_SETUP
2912 #line 495 "input_lexer.ll"
2913 index_status(yyextra)=0; (*yylval)=gen(at_tilocal,2); return T_PIPE;
2914 	YY_BREAK
2915 case 180:
2916 YY_RULE_SETUP
2917 #line 496 "input_lexer.ll"
2918 index_status(yyextra)=0; (*yylval)=gen(at_ou,2); return T_AND_OP;
2919 	YY_BREAK
2920 case 181:
2921 YY_RULE_SETUP
2922 #line 497 "input_lexer.ll"
2923 index_status(yyextra)=0; (*yylval)=gen(at_ou,2); return T_QUOTED_BINARY;
2924 	YY_BREAK
2925 case 182:
2926 YY_RULE_SETUP
2927 #line 498 "input_lexer.ll"
2928 index_status(yyextra)=0; (*yylval)=gen(at_ou,2); return T_QUOTED_BINARY;
2929 	YY_BREAK
2930 case 183:
2931 YY_RULE_SETUP
2932 #line 499 "input_lexer.ll"
2933 index_status(yyextra)=0; (*yylval)=gen(at_ou,2); return T_QUOTED_BINARY;
2934 	YY_BREAK
2935 case 184:
2936 YY_RULE_SETUP
2937 #line 500 "input_lexer.ll"
2938 index_status(yyextra)=0; (*yylval)=gen(at_ou,2); return T_AND_OP;
2939 	YY_BREAK
2940 case 185:
2941 YY_RULE_SETUP
2942 #line 501 "input_lexer.ll"
2943 index_status(yyextra)=0; (*yylval)=gen(at_xor,2); return T_AND_OP;
2944 	YY_BREAK
2945 case 186:
2946 YY_RULE_SETUP
2947 #line 502 "input_lexer.ll"
2948 index_status(yyextra)=0; (*yylval)=gen(at_xor,2); return T_QUOTED_BINARY;
2949 	YY_BREAK
2950 case 187:
2951 YY_RULE_SETUP
2952 #line 503 "input_lexer.ll"
2953 index_status(yyextra)=0; (*yylval)=gen(at_xor,2); return T_QUOTED_BINARY;
2954 	YY_BREAK
2955 case 188:
2956 YY_RULE_SETUP
2957 #line 504 "input_lexer.ll"
2958 index_status(yyextra)=0; (*yylval)=gen(at_xor,2); return T_AND_OP;
2959 	YY_BREAK
2960 case 189:
2961 YY_RULE_SETUP
2962 #line 505 "input_lexer.ll"
2963 index_status(yyextra)=0; (*yylval)=gen(at_interval,2); return T_INTERVAL;
2964 	YY_BREAK
2965 case 190:
2966 YY_RULE_SETUP
2967 #line 506 "input_lexer.ll"
2968 index_status(yyextra)=0; (*yylval)=gen(at_interval,2); return T_UNARY_OP;
2969 	YY_BREAK
2970 case 191:
2971 YY_RULE_SETUP
2972 #line 507 "input_lexer.ll"
2973 index_status(yyextra)=0; (*yylval)=gen(at_sort,1); return T_UNARY_OP;
2974 	YY_BREAK
2975 case 192:
2976 YY_RULE_SETUP
2977 #line 508 "input_lexer.ll"
2978 index_status(yyextra)=0; (*yylval)=gen(at_interval,2); return T_INTERVAL;
2979 	YY_BREAK
2980 case 193:
2981 YY_RULE_SETUP
2982 #line 509 "input_lexer.ll"
2983 index_status(yyextra)=0; (*yylval)=gen(at_interval,2); return T_QUOTED_BINARY;
2984 	YY_BREAK
2985 case 194:
2986 YY_RULE_SETUP
2987 #line 510 "input_lexer.ll"
2988 index_status(yyextra)=0; (*yylval)=gen(at_interval,2); return T_QUOTED_BINARY;
2989 	YY_BREAK
2990 case 195:
2991 YY_RULE_SETUP
2992 #line 511 "input_lexer.ll"
2993 if (xcas_mode(yyextra) || index_status(yyextra)) { (*yylval)=gen(at_factorial); return T_FACTORIAL; } else { index_status(yyextra)=0; (*yylval)=gen(at_not,1); return T_NOT; }
2994 	YY_BREAK
2995 /* standard functions */
2996 case 196:
2997 YY_RULE_SETUP
2998 #line 514 "input_lexer.ll"
2999 index_status(yyextra)=1; (*yylval)=symbolic(at_Ans,0); return T_LITERAL;
3000 	YY_BREAK
3001 case 197:
3002 YY_RULE_SETUP
3003 #line 515 "input_lexer.ll"
3004 index_status(yyextra)=0; (*yylval)=gen(at_plus,2); return T_PLUS;
3005 	YY_BREAK
3006 case 198:
3007 YY_RULE_SETUP
3008 #line 516 "input_lexer.ll"
3009 index_status(yyextra)=0; (*yylval)=gen(at_increment,1); return T_FACTORIAL;
3010 	YY_BREAK
3011 case 199:
3012 YY_RULE_SETUP
3013 #line 517 "input_lexer.ll"
3014 index_status(yyextra)=0; (*yylval)=gen(at_increment,1); return T_UNION;
3015 	YY_BREAK
3016 case 200:
3017 YY_RULE_SETUP
3018 #line 518 "input_lexer.ll"
3019 index_status(yyextra)=0; (*yylval)=gen(at_increment,1); return T_UNION;
3020 	YY_BREAK
3021 case 201:
3022 YY_RULE_SETUP
3023 #line 519 "input_lexer.ll"
3024 index_status(yyextra)=0; (*yylval)=gen(at_powsto,1); return T_UNION;
3025 	YY_BREAK
3026 case 202:
3027 YY_RULE_SETUP
3028 #line 520 "input_lexer.ll"
3029 index_status(yyextra)=0; (*yylval)=gen(at_powsto,1); return T_UNION;
3030 	YY_BREAK
3031 case 203:
3032 YY_RULE_SETUP
3033 #line 521 "input_lexer.ll"
3034 index_status(yyextra)=0; (*yylval)=gen(at_decrement,1); return T_FACTORIAL;
3035 	YY_BREAK
3036 case 204:
3037 YY_RULE_SETUP
3038 #line 522 "input_lexer.ll"
3039 index_status(yyextra)=0; (*yylval)=gen(at_decrement,1); return T_UNION;
3040 	YY_BREAK
3041 case 205:
3042 YY_RULE_SETUP
3043 #line 523 "input_lexer.ll"
3044 index_status(yyextra)=0; (*yylval)=gen(at_decrement,1); return T_UNION;
3045 	YY_BREAK
3046 case 206:
3047 YY_RULE_SETUP
3048 #line 524 "input_lexer.ll"
3049 index_status(yyextra)=0; (*yylval)=gen(at_pointplus,2); return T_PLUS;
3050 	YY_BREAK
3051 case 207:
3052 YY_RULE_SETUP
3053 #line 525 "input_lexer.ll"
3054 index_status(yyextra)=0; if (python_compat(yyextra)) { (*yylval)=gen(at_bitand,2); return T_AND_OP; } else { *yylval=gen(at_plus,2); return T_PLUS; }
3055 	YY_BREAK
3056 case 208:
3057 YY_RULE_SETUP
3058 #line 526 "input_lexer.ll"
3059 index_status(yyextra)=0; (*yylval)=gen(at_bitnot,1); return T_NOT;
3060 	YY_BREAK
3061 case 209:
3062 YY_RULE_SETUP
3063 #line 527 "input_lexer.ll"
3064 index_status(yyextra)=0; (*yylval)=gen(at_sqrt,2); return T_NOT;
3065 	YY_BREAK
3066 case 210:
3067 YY_RULE_SETUP
3068 #line 528 "input_lexer.ll"
3069 index_status(yyextra)=0; (*yylval)=gen(at_polar_complex,2); return T_MOD;
3070 	YY_BREAK
3071 case 211:
3072 YY_RULE_SETUP
3073 #line 529 "input_lexer.ll"
3074 index_status(yyextra)=1; (*yylval)=2; return T_SQ;
3075 	YY_BREAK
3076 case 212:
3077 YY_RULE_SETUP
3078 #line 530 "input_lexer.ll"
3079 index_status(yyextra)=1; (*yylval)=3; return T_SQ;
3080 	YY_BREAK
3081 case 213:
3082 YY_RULE_SETUP
3083 #line 531 "input_lexer.ll"
3084 index_status(yyextra)=1; (*yylval)=4; return T_SQ;
3085 	YY_BREAK
3086 case 214:
3087 YY_RULE_SETUP
3088 #line 532 "input_lexer.ll"
3089 index_status(yyextra)=1; (*yylval)=5; return T_SQ;
3090 	YY_BREAK
3091 case 215:
3092 YY_RULE_SETUP
3093 #line 533 "input_lexer.ll"
3094 index_status(yyextra)=1; (*yylval)=6; return T_SQ;
3095 	YY_BREAK
3096 case 216:
3097 YY_RULE_SETUP
3098 #line 534 "input_lexer.ll"
3099 index_status(yyextra)=1; (*yylval)=7; return T_SQ;
3100 	YY_BREAK
3101 case 217:
3102 YY_RULE_SETUP
3103 #line 535 "input_lexer.ll"
3104 index_status(yyextra)=1; (*yylval)=8; return T_SQ;
3105 	YY_BREAK
3106 case 218:
3107 YY_RULE_SETUP
3108 #line 536 "input_lexer.ll"
3109 index_status(yyextra)=1; (*yylval)=9; return T_SQ;
3110 	YY_BREAK
3111 case 219:
3112 YY_RULE_SETUP
3113 #line 537 "input_lexer.ll"
3114 index_status(yyextra)=1; (*yylval)=-1; return T_SQ;
3115 	YY_BREAK
3116 case 220:
3117 YY_RULE_SETUP
3118 #line 538 "input_lexer.ll"
3119 index_status(yyextra)=1; (*yylval)=-1; return T_SQ;
3120 	YY_BREAK
3121 /* "','"                   index_status(yyextra)=0; (*yylval)=gen(at_makevector,2); return T_QUOTED_BINARY; commented because of f('a','b') */
3122 case 221:
3123 YY_RULE_SETUP
3124 #line 540 "input_lexer.ll"
3125 index_status(yyextra)=0; (*yylval)=gen(at_plus,2); return T_QUOTED_BINARY;
3126 	YY_BREAK
3127 case 222:
3128 YY_RULE_SETUP
3129 #line 541 "input_lexer.ll"
3130 index_status(yyextra)=0; (*yylval)=gen(at_plus,2); return T_QUOTED_BINARY;
3131 	YY_BREAK
3132 case 223:
3133 YY_RULE_SETUP
3134 #line 542 "input_lexer.ll"
3135 index_status(yyextra)=0; (*yylval)=gen(at_binary_minus,2); return T_MOINS; // return (calc_mode(yyextra)==38)?T_MOINS38:T_MOINS;
3136 	YY_BREAK
3137 case 224:
3138 YY_RULE_SETUP
3139 #line 543 "input_lexer.ll"
3140 index_status(yyextra)=0; if (calc_mode(yyextra)==38){ (*yylval)=gen(at_neg,2); return T_NEG38; } else { CERR << 1 << '\n'; (*yylval)=gen(at_binary_minus,2); return T_MOINS;}
3141 	YY_BREAK
3142 case 225:
3143 YY_RULE_SETUP
3144 #line 544 "input_lexer.ll"
3145 index_status(yyextra)=0; (*yylval)=gen(at_pointminus,2); return T_PLUS;
3146 	YY_BREAK
3147 case 226:
3148 YY_RULE_SETUP
3149 #line 545 "input_lexer.ll"
3150 index_status(yyextra)=0; (*yylval)=gen(at_binary_minus,2); return T_QUOTED_BINARY;
3151 	YY_BREAK
3152 case 227:
3153 YY_RULE_SETUP
3154 #line 546 "input_lexer.ll"
3155 index_status(yyextra)=0; (*yylval)=gen(at_binary_minus,2); return T_QUOTED_BINARY;
3156 	YY_BREAK
3157 /* "×"                     index_status(yyextra)=0; (*yylval)=gen(at_prod,2); return T_FOIS;   */
3158 /* "·"                     index_status(yyextra)=0; (*yylval)=gen(at_prod,2); return T_FOIS;   */
3159 case 228:
3160 YY_RULE_SETUP
3161 #line 549 "input_lexer.ll"
3162 index_status(yyextra)=0; (*yylval)=gen(at_prod,2); return T_FOIS;
3163 	YY_BREAK
3164 case 229:
3165 YY_RULE_SETUP
3166 #line 550 "input_lexer.ll"
3167 index_status(yyextra)=0; (*yylval)=gen(at_cross,2); return T_FOIS;
3168 	YY_BREAK
3169 case 230:
3170 YY_RULE_SETUP
3171 #line 551 "input_lexer.ll"
3172 index_status(yyextra)=0; (*yylval)=gen(at_multcrement,1); return T_UNION;
3173 	YY_BREAK
3174 case 231:
3175 YY_RULE_SETUP
3176 #line 552 "input_lexer.ll"
3177 index_status(yyextra)=0; (*yylval)=gen(at_multcrement,1); return T_UNION;
3178 	YY_BREAK
3179 case 232:
3180 YY_RULE_SETUP
3181 #line 553 "input_lexer.ll"
3182 index_status(yyextra)=0; if (abs_calc_mode(yyextra)==38){return T_DOUBLE_DEUX_POINTS; } else {(*yylval)=gen(at_struct_dot,2); return T_COMPOSE;}
3183 	YY_BREAK
3184 case 233:
3185 YY_RULE_SETUP
3186 #line 554 "input_lexer.ll"
3187 index_status(yyextra)=0; (*yylval)=gen(at_ampersand_times,2); return T_FOIS;
3188 	YY_BREAK
3189 case 234:
3190 YY_RULE_SETUP
3191 #line 555 "input_lexer.ll"
3192 index_status(yyextra)=0; (*yylval)=gen(at_quote_pow,2); return T_POW;
3193 	YY_BREAK
3194 case 235:
3195 YY_RULE_SETUP
3196 #line 556 "input_lexer.ll"
3197 index_status(yyextra)=0; (*yylval)=gen(at_pointprod,2); return T_FOIS;
3198 	YY_BREAK
3199 case 236:
3200 YY_RULE_SETUP
3201 #line 557 "input_lexer.ll"
3202 index_status(yyextra)=0; (*yylval)=gen(at_prod,2); return T_QUOTED_BINARY;
3203 	YY_BREAK
3204 case 237:
3205 YY_RULE_SETUP
3206 #line 558 "input_lexer.ll"
3207 index_status(yyextra)=0; (*yylval)=gen(at_prod,2); return T_QUOTED_BINARY;
3208 	YY_BREAK
3209 case 238:
3210 YY_RULE_SETUP
3211 #line 559 "input_lexer.ll"
3212 index_status(yyextra)=0; (*yylval)=gen(at_division,2); return T_DIV;
3213 	YY_BREAK
3214 /* "÷" index_status(yyextra)=0; (*yylval)=gen(at_division,2); return T_DIV; */
3215 case 239:
3216 YY_RULE_SETUP
3217 #line 561 "input_lexer.ll"
3218 index_status(yyextra)=0; (*yylval)=gen(at_iquo,2); return T_DIV;
3219 	YY_BREAK
3220 case 240:
3221 YY_RULE_SETUP
3222 #line 562 "input_lexer.ll"
3223 index_status(yyextra)=0; (*yylval)=gen(at_irem,2); return T_DIV;
3224 	YY_BREAK
3225 case 241:
3226 YY_RULE_SETUP
3227 #line 563 "input_lexer.ll"
3228 index_status(yyextra)=0; (*yylval)=gen(at_iquosto,2); return T_UNION;
3229 	YY_BREAK
3230 case 242:
3231 YY_RULE_SETUP
3232 #line 564 "input_lexer.ll"
3233 index_status(yyextra)=0; (*yylval)=gen(at_iremsto,2); return T_UNION;
3234 	YY_BREAK
3235 case 243:
3236 YY_RULE_SETUP
3237 #line 565 "input_lexer.ll"
3238 index_status(yyextra)=0; (*yylval)=gen(at_andsto,2); return T_UNION;
3239 	YY_BREAK
3240 case 244:
3241 YY_RULE_SETUP
3242 #line 566 "input_lexer.ll"
3243 index_status(yyextra)=0; (*yylval)=gen(at_orsto,2); return T_UNION;
3244 	YY_BREAK
3245 case 245:
3246 YY_RULE_SETUP
3247 #line 567 "input_lexer.ll"
3248 index_status(yyextra)=0; (*yylval)=gen(at_xorsto,2); return T_UNION;
3249 	YY_BREAK
3250 case 246:
3251 YY_RULE_SETUP
3252 #line 568 "input_lexer.ll"
3253 index_status(yyextra)=0; (*yylval)=gen(at_shiftsto,2); return T_UNION;
3254 	YY_BREAK
3255 case 247:
3256 YY_RULE_SETUP
3257 #line 569 "input_lexer.ll"
3258 index_status(yyextra)=0; (*yylval)=gen(at_rotatesto,2); return T_UNION;
3259 	YY_BREAK
3260 case 248:
3261 YY_RULE_SETUP
3262 #line 570 "input_lexer.ll"
3263 index_status(yyextra)=0; (*yylval)=gen(at_divcrement,1); return T_DIV;
3264 	YY_BREAK
3265 case 249:
3266 YY_RULE_SETUP
3267 #line 571 "input_lexer.ll"
3268 index_status(yyextra)=0; (*yylval)=gen(at_divcrement,1); return T_UNION;
3269 	YY_BREAK
3270 case 250:
3271 YY_RULE_SETUP
3272 #line 572 "input_lexer.ll"
3273 index_status(yyextra)=0; (*yylval)=gen(at_pointdivision,2); return T_DIV;
3274 	YY_BREAK
3275 case 251:
3276 YY_RULE_SETUP
3277 #line 573 "input_lexer.ll"
3278 index_status(yyextra)=0; (*yylval)=gen(at_division,2); return T_QUOTED_BINARY;
3279 	YY_BREAK
3280 case 252:
3281 YY_RULE_SETUP
3282 #line 574 "input_lexer.ll"
3283 index_status(yyextra)=0; (*yylval)=gen(at_division,2); return T_QUOTED_BINARY;
3284 	YY_BREAK
3285 case 253:
3286 YY_RULE_SETUP
3287 #line 575 "input_lexer.ll"
3288 index_status(yyextra)=0; if (abs_calc_mode(yyextra)==38){ (*yylval)=gen(at_PERCENT); return T_UNARY_OP_38; } if (xcas_mode(yyextra)==3 || calc_mode(yyextra)==1) { (*yylval)=gen(at_pourcent); return T_FACTORIAL; } if (xcas_mode(yyextra)==1) { (*yylval)=symbolic(at_ans,vecteur(0)); return T_NUMBER; }  if (xcas_mode(yyextra) || python_compat(yyextra)) (*yylval)=gen(at_irem,2); else (*yylval)=0; return T_MOD;
3289 	YY_BREAK
3290 case 254:
3291 YY_RULE_SETUP
3292 #line 576 "input_lexer.ll"
3293 index_status(yyextra)=0; if (xcas_mode(yyextra)==0){ (*yylval)=gen(at_iquorem,2); return T_MOD;} (*yylval)=symbolic(at_ans,-2); return T_NUMBER;
3294 	YY_BREAK
3295 /* \xe2\x88\xa1             index_status(yyextra)=0; (*yylval)=gen(at_polar_complex,2); return T_MOD; */
3296 case 255:
3297 YY_RULE_SETUP
3298 #line 578 "input_lexer.ll"
3299 if (xcas_mode(yyextra)==0){ (*yylval)=gen(at_quorem,2); return T_MOD;} index_status(yyextra)=0; (*yylval)=symbolic(at_ans,-3); return T_NUMBER;
3300 	YY_BREAK
3301 case 256:
3302 YY_RULE_SETUP
3303 #line 579 "input_lexer.ll"
3304 index_status(yyextra)=0; (*yylval)=gen(at_irem,2); return T_QUOTED_BINARY;
3305 	YY_BREAK
3306 case 257:
3307 YY_RULE_SETUP
3308 #line 580 "input_lexer.ll"
3309 index_status(yyextra)=0; (*yylval)=gen(at_equal2,2); return T_QUOTED_BINARY;
3310 	YY_BREAK
3311 case 258:
3312 YY_RULE_SETUP
3313 #line 581 "input_lexer.ll"
3314 index_status(yyextra)=0; if (xcas_mode(yyextra)==3) { (*yylval)=gen(at_irem,2); return T_UNARY_OP; } else { if (xcas_mode(yyextra)) (*yylval)=gen(at_irem,2); else (*yylval)=0; return T_MOD; }
3315 	YY_BREAK
3316 case 259:
3317 YY_RULE_SETUP
3318 #line 582 "input_lexer.ll"
3319 index_status(yyextra)=0; (*yylval)=gen(at_irem,2); return T_QUOTED_BINARY;
3320 	YY_BREAK
3321 case 260:
3322 YY_RULE_SETUP
3323 #line 583 "input_lexer.ll"
3324 index_status(yyextra)=0; (*yylval)=gen(at_irem,2); return T_QUOTED_BINARY;
3325 	YY_BREAK
3326 /* "MOD"                   index_status(yyextra)=0; return T_MOD; */
3327 case 261:
3328 YY_RULE_SETUP
3329 #line 585 "input_lexer.ll"
3330 index_status(yyextra)=0; (*yylval)=gen(python_compat(yyextra)==2?at_bitxor:at_pow,2); return T_POW;
3331 	YY_BREAK
3332 case 262:
3333 YY_RULE_SETUP
3334 #line 586 "input_lexer.ll"
3335 index_status(yyextra)=0; (*yylval)=gen(at_trn,1); return T_FACTORIAL;
3336 	YY_BREAK
3337 case 263:
3338 YY_RULE_SETUP
3339 #line 587 "input_lexer.ll"
3340 (*yylval) = gen(at_pow,2); index_status(yyextra)=0; return T_UNARY_OP;
3341 	YY_BREAK
3342 case 264:
3343 YY_RULE_SETUP
3344 #line 588 "input_lexer.ll"
3345 index_status(yyextra)=0; (*yylval)=gen(at_pow,2); return T_POW;
3346 	YY_BREAK
3347 case 265:
3348 YY_RULE_SETUP
3349 #line 589 "input_lexer.ll"
3350 index_status(yyextra)=0; (*yylval)=gen(at_pointpow,2); return T_POW;
3351 	YY_BREAK
3352 case 266:
3353 YY_RULE_SETUP
3354 #line 590 "input_lexer.ll"
3355 index_status(yyextra)=0; (*yylval)=gen(at_pow,2); return T_QUOTED_BINARY;
3356 	YY_BREAK
3357 case 267:
3358 YY_RULE_SETUP
3359 #line 591 "input_lexer.ll"
3360 index_status(yyextra)=0; (*yylval)=gen(at_pow,2); return T_QUOTED_BINARY;
3361 	YY_BREAK
3362 case 268:
3363 YY_RULE_SETUP
3364 #line 592 "input_lexer.ll"
3365 (*yylval) = gen(at_Digits,0); index_status(yyextra)=0; return T_DIGITS;
3366 	YY_BREAK
3367 case 269:
3368 YY_RULE_SETUP
3369 #line 593 "input_lexer.ll"
3370 (*yylval) = gen(at_HDigits,0); index_status(yyextra)=0; return T_DIGITS;
3371 	YY_BREAK
3372 case 270:
3373 YY_RULE_SETUP
3374 #line 594 "input_lexer.ll"
3375 (*yylval) = gen(at_HAngle,0); index_status(yyextra)=0; return T_DIGITS;
3376 	YY_BREAK
3377 case 271:
3378 YY_RULE_SETUP
3379 #line 595 "input_lexer.ll"
3380 (*yylval) = gen(at_HFormat,0); index_status(yyextra)=0; return T_DIGITS;
3381 	YY_BREAK
3382 case 272:
3383 YY_RULE_SETUP
3384 #line 596 "input_lexer.ll"
3385 (*yylval) = gen(at_HComplex,0); index_status(yyextra)=0; return T_DIGITS;
3386 	YY_BREAK
3387 case 273:
3388 YY_RULE_SETUP
3389 #line 597 "input_lexer.ll"
3390 (*yylval) = gen(at_HLanguage,0); index_status(yyextra)=0; return T_DIGITS;
3391 	YY_BREAK
3392 case 274:
3393 YY_RULE_SETUP
3394 #line 598 "input_lexer.ll"
3395 (*yylval) = gen(at_Digits,0); index_status(yyextra)=0; return T_DIGITS;
3396 	YY_BREAK
3397 case 275:
3398 YY_RULE_SETUP
3399 #line 599 "input_lexer.ll"
3400 (*yylval) = gen(at_threads,0) ; index_status(yyextra)=0; return T_DIGITS;
3401 	YY_BREAK
3402 case 276:
3403 YY_RULE_SETUP
3404 #line 600 "input_lexer.ll"
3405 (*yylval) = gen(at_scientific_format,0); index_status(yyextra)=0; return T_DIGITS;
3406 	YY_BREAK
3407 case 277:
3408 YY_RULE_SETUP
3409 #line 601 "input_lexer.ll"
3410 (*yylval) = gen(at_angle_radian,0); index_status(yyextra)=0; return T_DIGITS;
3411 	YY_BREAK
3412 case 278:
3413 YY_RULE_SETUP
3414 #line 602 "input_lexer.ll"
3415 (*yylval) = gen(at_approx_mode,0); index_status(yyextra)=0; return T_DIGITS;
3416 	YY_BREAK
3417 case 279:
3418 YY_RULE_SETUP
3419 #line 603 "input_lexer.ll"
3420 (*yylval) = gen(at_all_trig_solutions,1); index_status(yyextra)=0; return T_DIGITS;
3421 	YY_BREAK
3422 case 280:
3423 YY_RULE_SETUP
3424 #line 604 "input_lexer.ll"
3425 (*yylval) = gen(at_increasing_power,1); index_status(yyextra)=0; return T_DIGITS;
3426 	YY_BREAK
3427 case 281:
3428 YY_RULE_SETUP
3429 #line 605 "input_lexer.ll"
3430 (*yylval) = gen(at_ntl_on,1); index_status(yyextra)=0; return T_DIGITS;
3431 	YY_BREAK
3432 case 282:
3433 YY_RULE_SETUP
3434 #line 606 "input_lexer.ll"
3435 (*yylval) = gen(at_complex_mode,1); index_status(yyextra)=0; return T_DIGITS;
3436 	YY_BREAK
3437 case 283:
3438 YY_RULE_SETUP
3439 #line 607 "input_lexer.ll"
3440 (*yylval) = gen(at_step_infolevel,1); index_status(yyextra)=0; return T_DIGITS;
3441 	YY_BREAK
3442 case 284:
3443 YY_RULE_SETUP
3444 #line 608 "input_lexer.ll"
3445 (*yylval) = gen(at_keep_algext,1); index_status(yyextra)=0; return T_DIGITS;
3446 	YY_BREAK
3447 case 285:
3448 YY_RULE_SETUP
3449 #line 609 "input_lexer.ll"
3450 (*yylval) = gen(at_complex_variables,0); index_status(yyextra)=0; return T_DIGITS;
3451 	YY_BREAK
3452 case 286:
3453 YY_RULE_SETUP
3454 #line 610 "input_lexer.ll"
3455 (*yylval) = gen(at_epsilon,0); index_status(yyextra)=0; return T_DIGITS;
3456 	YY_BREAK
3457 case 287:
3458 YY_RULE_SETUP
3459 #line 611 "input_lexer.ll"
3460 (*yylval) = gen(at_proba_epsilon,0); index_status(yyextra)=0; return T_DIGITS;
3461 	YY_BREAK
3462 case 288:
3463 YY_RULE_SETUP
3464 #line 613 "input_lexer.ll"
3465 (*yylval) = gen(at_acos,1); index_status(yyextra)=0; return T_UNARY_OP;
3466 	YY_BREAK
3467 case 289:
3468 YY_RULE_SETUP
3469 #line 614 "input_lexer.ll"
3470 (*yylval) = gen(at_randNorm,1); index_status(yyextra)=0; return T_UNARY_OP;
3471 	YY_BREAK
3472 case 290:
3473 YY_RULE_SETUP
3474 #line 615 "input_lexer.ll"
3475 (*yylval) = gen(at_acosh,1); index_status(yyextra)=0; return T_UNARY_OP;
3476 	YY_BREAK
3477 case 291:
3478 YY_RULE_SETUP
3479 #line 616 "input_lexer.ll"
3480 index_status(yyextra)=0; (*yylval)=gen(at_args,0); return T_QUOTED_BINARY;
3481 	YY_BREAK
3482 case 292:
3483 YY_RULE_SETUP
3484 #line 617 "input_lexer.ll"
3485 (*yylval) = gen(at_asin,1); index_status(yyextra)=0; return T_UNARY_OP;
3486 	YY_BREAK
3487 case 293:
3488 YY_RULE_SETUP
3489 #line 618 "input_lexer.ll"
3490 (*yylval) = gen(at_asinh,1); index_status(yyextra)=0; return T_UNARY_OP;
3491 	YY_BREAK
3492 case 294:
3493 YY_RULE_SETUP
3494 #line 619 "input_lexer.ll"
3495 (*yylval) = gen(at_at,2); index_status(yyextra)=0; return T_UNARY_OP;
3496 	YY_BREAK
3497 case 295:
3498 YY_RULE_SETUP
3499 #line 620 "input_lexer.ll"
3500 (*yylval) = gen(at_atan,1); index_status(yyextra)=0; return T_UNARY_OP;
3501 	YY_BREAK
3502 case 296:
3503 YY_RULE_SETUP
3504 #line 621 "input_lexer.ll"
3505 (*yylval) = gen(at_atanh,1); index_status(yyextra)=0; return T_UNARY_OP;
3506 	YY_BREAK
3507 case 297:
3508 YY_RULE_SETUP
3509 #line 622 "input_lexer.ll"
3510 (*yylval) = gen(at_backquote,1); index_status(yyextra)=0; return T_UNARY_OP;
3511 	YY_BREAK
3512 case 298:
3513 YY_RULE_SETUP
3514 #line 623 "input_lexer.ll"
3515 (*yylval) = gen(at_bloc,1); index_status(yyextra)=0; return T_UNARY_OP;
3516 	YY_BREAK
3517 case 299:
3518 YY_RULE_SETUP
3519 #line 624 "input_lexer.ll"
3520 index_status(yyextra)=0; (*yylval)=gen(at_break,0); return T_BREAK;
3521 	YY_BREAK
3522 case 300:
3523 YY_RULE_SETUP
3524 #line 625 "input_lexer.ll"
3525 index_status(yyextra)=0; if (abs_calc_mode(yyextra)==38) return T_CASE38; else return T_CASE;
3526 	YY_BREAK
3527 case 301:
3528 YY_RULE_SETUP
3529 #line 626 "input_lexer.ll"
3530 (*yylval) = gen(at_cont,1); index_status(yyextra)=0; return T_UNARY_OP;
3531 	YY_BREAK
3532 case 302:
3533 YY_RULE_SETUP
3534 #line 627 "input_lexer.ll"
3535 (*yylval) = gen(at_debug,1); index_status(yyextra)=0; return T_UNARY_OP;
3536 	YY_BREAK
3537 case 303:
3538 YY_RULE_SETUP
3539 #line 628 "input_lexer.ll"
3540 (*yylval) = gen(at_derive,2); index_status(yyextra)=0; return T_UNARY_OP;
3541 	YY_BREAK
3542 case 304:
3543 YY_RULE_SETUP
3544 #line 629 "input_lexer.ll"
3545 if (xcas_mode(yyextra)==1 || xcas_mode(yyextra)==2) { (*yylval) = gen(at_function_diff,1); index_status(yyextra)=1; return T_UNARY_OP;} else { index_status(yyextra)=1; return find_or_make_symbol(yytext,(*yylval),yyscanner,true,yyextra); }
3546 	YY_BREAK
3547 case 305:
3548 YY_RULE_SETUP
3549 #line 630 "input_lexer.ll"
3550 if (xcas_mode(yyextra)==1 || xcas_mode(yyextra)==2) { (*yylval)=e__IDNT_e; }else (*yylval)=symbolic(at_exp,1); index_status(yyextra)=1; return T_NUMBER;
3551 	YY_BREAK
3552 case 306:
3553 YY_RULE_SETUP
3554 #line 631 "input_lexer.ll"
3555 (*yylval)=symbolic(at_exp,1); index_status(yyextra)=1; return T_NUMBER;
3556 	YY_BREAK
3557 case 307:
3558 YY_RULE_SETUP
3559 #line 632 "input_lexer.ll"
3560 (*yylval)=symbolic(at_exp,1); index_status(yyextra)=1; return T_NUMBER;
3561 	YY_BREAK
3562 case 308:
3563 YY_RULE_SETUP
3564 #line 633 "input_lexer.ll"
3565 (*yylval) = gen(at_equal,2); index_status(yyextra)=0; return T_UNARY_OP;
3566 	YY_BREAK
3567 case 309:
3568 YY_RULE_SETUP
3569 #line 634 "input_lexer.ll"
3570 index_status(yyextra)=0; (*yylval)=gen(at_throw,1); return T_RETURN;
3571 	YY_BREAK
3572 case 310:
3573 YY_RULE_SETUP
3574 #line 635 "input_lexer.ll"
3575 (*yylval) = gen(at_erase,0); index_status(yyextra)=0; return T_UNARY_OP;
3576 	YY_BREAK
3577 case 311:
3578 YY_RULE_SETUP
3579 #line 636 "input_lexer.ll"
3580 index_status(yyextra)=0; (*yylval)=gen(at_throw,1); return T_RETURN;
3581 	YY_BREAK
3582 case 312:
3583 YY_RULE_SETUP
3584 #line 637 "input_lexer.ll"
3585 if (xcas_mode(yyextra)==3) (*yylval)=gen(at_partfrac); else (*yylval) = gen(at_expand,1); index_status(yyextra)=0; return T_UNARY_OP;
3586 	YY_BREAK
3587 case 313:
3588 YY_RULE_SETUP
3589 #line 638 "input_lexer.ll"
3590 (*yylval) = gen(at_insmod,1); index_status(yyextra)=0; return T_RETURN;
3591 	YY_BREAK
3592 case 314:
3593 YY_RULE_SETUP
3594 #line 639 "input_lexer.ll"
3595 (*yylval) = gen(at_expand,1); index_status(yyextra)=0; return T_UNARY_OP;
3596 	YY_BREAK
3597 case 315:
3598 YY_RULE_SETUP
3599 #line 640 "input_lexer.ll"
3600 index_status(yyextra)=0; (*yylval)=gen(at_for,4); return T_FOR;
3601 	YY_BREAK
3602 case 316:
3603 YY_RULE_SETUP
3604 #line 641 "input_lexer.ll"
3605 index_status(yyextra)=0; (*yylval)=gen(at_for,4); return T_FOR;
3606 	YY_BREAK
3607 case 317:
3608 YY_RULE_SETUP
3609 #line 642 "input_lexer.ll"
3610 (*yylval) = gen(at_halt,1); index_status(yyextra)=0; return T_UNARY_OP;
3611 	YY_BREAK
3612 case 318:
3613 YY_RULE_SETUP
3614 #line 643 "input_lexer.ll"
3615 index_status(yyextra)=0; (*yylval)=4; return T_BLOC_END;
3616 	YY_BREAK
3617 case 319:
3618 YY_RULE_SETUP
3619 #line 644 "input_lexer.ll"
3620 index_status(yyextra)=0; (*yylval)=9; return T_BLOC_END;
3621 	YY_BREAK
3622 case 320:
3623 YY_RULE_SETUP
3624 #line 645 "input_lexer.ll"
3625 index_status(yyextra)=0; (*yylval)=3; return T_BLOC_END;
3626 	YY_BREAK
3627 case 321:
3628 YY_RULE_SETUP
3629 #line 646 "input_lexer.ll"
3630 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); return T_IF;
3631 	YY_BREAK
3632 case 322:
3633 YY_RULE_SETUP
3634 #line 647 "input_lexer.ll"
3635 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); if (rpn_mode(yyextra)) return T_RPN_IF; return T_IF;
3636 	YY_BREAK
3637 case 323:
3638 YY_RULE_SETUP
3639 #line 648 "input_lexer.ll"
3640 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); return T_IFTE;
3641 	YY_BREAK
3642 case 324:
3643 YY_RULE_SETUP
3644 #line 649 "input_lexer.ll"
3645 index_status(yyextra)=0; (*yylval)=gen(at_when,3); return T_IFTE;
3646 	YY_BREAK
3647 case 325:
3648 YY_RULE_SETUP
3649 #line 650 "input_lexer.ll"
3650 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); return T_QUOTED_BINARY;
3651 	YY_BREAK
3652 case 326:
3653 YY_RULE_SETUP
3654 #line 651 "input_lexer.ll"
3655 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); return T_QUOTED_BINARY;
3656 	YY_BREAK
3657 case 327:
3658 YY_RULE_SETUP
3659 #line 652 "input_lexer.ll"
3660 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); return T_QUOTED_BINARY;
3661 	YY_BREAK
3662 case 328:
3663 YY_RULE_SETUP
3664 #line 653 "input_lexer.ll"
3665 if (xcas_mode(yyextra)==1) (*yylval) = gen(at_maple_ifactors); else (*yylval) = gen(at_ifactors,1); index_status(yyextra)=0; return T_UNARY_OP;
3666 	YY_BREAK
3667 case 329:
3668 YY_RULE_SETUP
3669 #line 654 "input_lexer.ll"
3670 index_status(yyextra)=0; (*yylval)=gen(at_intersect,2); return T_QUOTED_BINARY;
3671 	YY_BREAK
3672 case 330:
3673 YY_RULE_SETUP
3674 #line 655 "input_lexer.ll"
3675 index_status(yyextra)=0; (*yylval)=gen(at_intersect,2); return T_QUOTED_BINARY;
3676 	YY_BREAK
3677 case 331:
3678 YY_RULE_SETUP
3679 #line 656 "input_lexer.ll"
3680 (*yylval) = gen(at_kill,1); index_status(yyextra)=0; return T_UNARY_OP;
3681 	YY_BREAK
3682 case 332:
3683 YY_RULE_SETUP
3684 #line 657 "input_lexer.ll"
3685 (*yylval) = gen(at_log,1); index_status(yyextra)=1; return T_UNARY_OP; /* index_status(yyextra)=1 to accept log[] for a basis log */
3686 	YY_BREAK
3687 case 333:
3688 YY_RULE_SETUP
3689 #line 658 "input_lexer.ll"
3690 (*yylval) = gen(at_asin,1); index_status(yyextra)=1; return T_UNARY_OP;
3691 	YY_BREAK
3692 case 334:
3693 YY_RULE_SETUP
3694 #line 659 "input_lexer.ll"
3695 (*yylval) = gen(at_acos,1); index_status(yyextra)=1; return T_UNARY_OP;
3696 	YY_BREAK
3697 case 335:
3698 YY_RULE_SETUP
3699 #line 660 "input_lexer.ll"
3700 (*yylval) = gen(at_atan,1); index_status(yyextra)=1; return T_UNARY_OP;
3701 	YY_BREAK
3702 case 336:
3703 YY_RULE_SETUP
3704 #line 661 "input_lexer.ll"
3705 index_status(yyextra)=0; (*yylval)=gen(at_minus,2); return T_QUOTED_BINARY;
3706 	YY_BREAK
3707 case 337:
3708 YY_RULE_SETUP
3709 #line 662 "input_lexer.ll"
3710 index_status(yyextra)=0; (*yylval)=gen(at_minus,2); return T_QUOTED_BINARY;
3711 	YY_BREAK
3712 case 338:
3713 YY_RULE_SETUP
3714 #line 663 "input_lexer.ll"
3715 (*yylval) = gen(at_not,1); if (xcas_mode(yyextra) || python_compat(yyextra)) return T_NOT;  index_status(yyextra)=0; return T_UNARY_OP;
3716 	YY_BREAK
3717 case 339:
3718 YY_RULE_SETUP
3719 #line 664 "input_lexer.ll"
3720 (*yylval) = gen(at_not,1); return T_NOT;
3721 	YY_BREAK
3722 case 340:
3723 YY_RULE_SETUP
3724 #line 665 "input_lexer.ll"
3725 (*yylval) = gen(at_not,1); return T_IN;
3726 	YY_BREAK
3727 case 341:
3728 YY_RULE_SETUP
3729 #line 666 "input_lexer.ll"
3730 (*yylval) = gen(at_neg,1); index_status(yyextra)=0; return T_UNARY_OP;
3731 	YY_BREAK
3732 case 342:
3733 YY_RULE_SETUP
3734 #line 667 "input_lexer.ll"
3735 index_status(yyextra)=0; (*yylval)=gen(at_not,1); return T_QUOTED_BINARY;
3736 	YY_BREAK
3737 case 343:
3738 YY_RULE_SETUP
3739 #line 668 "input_lexer.ll"
3740 index_status(yyextra)=0; (*yylval)=gen(at_not,1); return T_QUOTED_BINARY;
3741 	YY_BREAK
3742 case 344:
3743 YY_RULE_SETUP
3744 #line 669 "input_lexer.ll"
3745 (*yylval) = gen(at_greduce,1); index_status(yyextra)=0; return T_UNARY_OP;
3746 	YY_BREAK
3747 case 345:
3748 YY_RULE_SETUP
3749 #line 670 "input_lexer.ll"
3750 index_status(yyextra)=0; (*yylval)=gen(at_of,2); return T_QUOTED_BINARY;
3751 	YY_BREAK
3752 case 346:
3753 YY_RULE_SETUP
3754 #line 671 "input_lexer.ll"
3755 if (xcas_mode(yyextra)==1) (*yylval) = gen(at_maple_op,1); else (*yylval) = gen(at_feuille,1); index_status(yyextra)=0; return T_UNARY_OP;
3756 	YY_BREAK
3757 case 347:
3758 YY_RULE_SETUP
3759 #line 672 "input_lexer.ll"
3760 (*yylval) = gen(at_feuille,1); index_status(yyextra)=0; return T_UNARY_OP;
3761 	YY_BREAK
3762 case 348:
3763 YY_RULE_SETUP
3764 #line 673 "input_lexer.ll"
3765 (*yylval)=2; index_status(yyextra)=0; return T_LOCAL;
3766 	YY_BREAK
3767 case 349:
3768 YY_RULE_SETUP
3769 #line 674 "input_lexer.ll"
3770 (*yylval) = gen(at_pcoeff,1); index_status(yyextra)=0; return T_UNARY_OP;
3771 	YY_BREAK
3772 case 350:
3773 YY_RULE_SETUP
3774 #line 675 "input_lexer.ll"
3775 (*yylval) = gen(at_funcplot,2); index_status(yyextra)=0; return T_UNARY_OP;
3776 	YY_BREAK
3777 case 351:
3778 YY_RULE_SETUP
3779 #line 676 "input_lexer.ll"
3780 (*yylval) = gen(at_user_operator,6); index_status(yyextra)=0; return T_UNARY_OP;
3781 	YY_BREAK
3782 case 352:
3783 YY_RULE_SETUP
3784 #line 677 "input_lexer.ll"
3785 if (rpn_mode(yyextra)) {(*yylval)=gen(at_purge,0); index_status(yyextra)=0; return T_RPN_OP;} else {(*yylval) = gen(at_purge,1); index_status(yyextra)=0; return T_UNARY_OP;};
3786 	YY_BREAK
3787 case 353:
3788 YY_RULE_SETUP
3789 #line 678 "input_lexer.ll"
3790 if (rpn_mode(yyextra)) {(*yylval)=gen(at_purge,0); index_status(yyextra)=0; return T_RPN_OP;} else {(*yylval) = gen(at_purge,1); index_status(yyextra)=0; return T_UNARY_OP;};
3791 	YY_BREAK
3792 case 354:
3793 YY_RULE_SETUP
3794 #line 679 "input_lexer.ll"
3795 if (rpn_mode(yyextra)) {(*yylval)=gen(at_purge,0); index_status(yyextra)=0; return T_RPN_OP;} else {(*yylval) = gen(at_purge,1); index_status(yyextra)=0; return T_UNARY_OP;};
3796 	YY_BREAK
3797 case 355:
3798 YY_RULE_SETUP
3799 #line 680 "input_lexer.ll"
3800 (*yylval) = gen(at_srand,1); index_status(yyextra)=0; return T_RETURN;
3801 	YY_BREAK
3802 case 356:
3803 YY_RULE_SETUP
3804 #line 681 "input_lexer.ll"
3805 (*yylval) = gen(at_for,1) ; index_status(yyextra)=0; return T_REPEAT;
3806 	YY_BREAK
3807 case 357:
3808 YY_RULE_SETUP
3809 #line 682 "input_lexer.ll"
3810 (*yylval) = gen(at_for,1) ; index_status(yyextra)=0; return T_REPEAT;
3811 	YY_BREAK
3812 case 358:
3813 YY_RULE_SETUP
3814 #line 683 "input_lexer.ll"
3815 (*yylval) = gen(at_for,1) ;index_status(yyextra)=0; return T_REPEAT;
3816 	YY_BREAK
3817 case 359:
3818 YY_RULE_SETUP
3819 #line 684 "input_lexer.ll"
3820 (*yylval) = gen(at_return,1) ; index_status(yyextra)=0; return T_RETURN;
3821 	YY_BREAK
3822 case 360:
3823 YY_RULE_SETUP
3824 #line 685 "input_lexer.ll"
3825 (*yylval) = gen(at_return,1) ; index_status(yyextra)=0; return T_RETURN;
3826 	YY_BREAK
3827 case 361:
3828 YY_RULE_SETUP
3829 #line 686 "input_lexer.ll"
3830 (*yylval) = gen(at_return,1) ; index_status(yyextra)=0; return T_RETURN;
3831 	YY_BREAK
3832 case 362:
3833 YY_RULE_SETUP
3834 #line 687 "input_lexer.ll"
3835 (*yylval) = gen(at_return,1) ; index_status(yyextra)=0; return T_QUOTED_BINARY;
3836 	YY_BREAK
3837 case 363:
3838 YY_RULE_SETUP
3839 #line 688 "input_lexer.ll"
3840 (*yylval) = gen(at_maple_root,1); index_status(yyextra)=1; return T_UNARY_OP;
3841 	YY_BREAK
3842 case 364:
3843 YY_RULE_SETUP
3844 #line 689 "input_lexer.ll"
3845 (*yylval) = gen(at_same,1); index_status(yyextra)=0; return T_UNARY_OP;
3846 	YY_BREAK
3847 case 365:
3848 YY_RULE_SETUP
3849 #line 690 "input_lexer.ll"
3850 (*yylval) = gen(at_sst,1); index_status(yyextra)=0; return T_UNARY_OP;
3851 	YY_BREAK
3852 case 366:
3853 YY_RULE_SETUP
3854 #line 691 "input_lexer.ll"
3855 (*yylval) = gen(at_sst_in,1); index_status(yyextra)=0; return T_UNARY_OP;
3856 	YY_BREAK
3857 case 367:
3858 YY_RULE_SETUP
3859 #line 692 "input_lexer.ll"
3860 if (xcas_mode(yyextra)==1) (*yylval) = gen(at_maple_subs,2); else (*yylval) = gen(at_subs,2); index_status(yyextra)=0; return T_UNARY_OP;
3861 	YY_BREAK
3862 case 368:
3863 YY_RULE_SETUP
3864 #line 693 "input_lexer.ll"
3865 if (xcas_mode(yyextra)==1) (*yylval) = gen(at_maple_subsop,2); else (*yylval) = gen(at_subsop,2); index_status(yyextra)=0; return T_UNARY_OP;
3866 	YY_BREAK
3867 case 369:
3868 YY_RULE_SETUP
3869 #line 694 "input_lexer.ll"
3870 index_status(yyextra)=0; (*yylval)=gen(at_union,2); return T_QUOTED_BINARY;
3871 	YY_BREAK
3872 case 370:
3873 YY_RULE_SETUP
3874 #line 695 "input_lexer.ll"
3875 index_status(yyextra)=0; (*yylval)=gen(at_union,2); return T_QUOTED_BINARY;
3876 	YY_BREAK
3877 case 371:
3878 YY_RULE_SETUP
3879 #line 696 "input_lexer.ll"
3880 (*yylval) = gen(at_virgule,2); index_status(yyextra)=0; return T_UNARY_OP;
3881 	YY_BREAK
3882 case 372:
3883 YY_RULE_SETUP
3884 #line 697 "input_lexer.ll"
3885 (*yylval) = gen(at_VARS,0); index_status(yyextra)=0; return T_UNARY_OP;
3886 	YY_BREAK
3887 case 373:
3888 YY_RULE_SETUP
3889 #line 698 "input_lexer.ll"
3890 index_status(yyextra)=0; (*yylval)=gen(at_for,4); if (xcas_mode(yyextra)==3) return TI_WHILE; if (xcas_mode(yyextra)!=0) return T_MUPMAP_WHILE; return T_WHILE;
3891 	YY_BREAK
3892 case 374:
3893 YY_RULE_SETUP
3894 #line 699 "input_lexer.ll"
3895 index_status(yyextra)=0; (*yylval)=gen(at_for,4); return T_MUPMAP_WHILE; /* return T_RPN_WHILE; */
3896 	YY_BREAK
3897 case 375:
3898 YY_RULE_SETUP
3899 #line 700 "input_lexer.ll"
3900 index_status(yyextra)=0; (*yylval)=gen(at_for,4); return T_DO; /* must be here for DO ... END loop */
3901 	YY_BREAK
3902 case 376:
3903 YY_RULE_SETUP
3904 #line 701 "input_lexer.ll"
3905 index_status(yyextra)=0; (*yylval)=gen(at_for,4); return T_DO; /* must be here for DO ... END loop */
3906 	YY_BREAK
3907 case 377:
3908 YY_RULE_SETUP
3909 #line 702 "input_lexer.ll"
3910 (*yylval) = gen(at_Text,1); index_status(yyextra)=0; return T_RETURN;
3911 	YY_BREAK
3912 case 378:
3913 YY_RULE_SETUP
3914 #line 703 "input_lexer.ll"
3915 (*yylval) = gen(at_DropDown,1); index_status(yyextra)=0; return T_RETURN;
3916 	YY_BREAK
3917 case 379:
3918 YY_RULE_SETUP
3919 #line 704 "input_lexer.ll"
3920 (*yylval) = gen(at_Popup,1); index_status(yyextra)=0; return T_RETURN;
3921 	YY_BREAK
3922 case 380:
3923 YY_RULE_SETUP
3924 #line 705 "input_lexer.ll"
3925 (*yylval) = gen(at_Request,1); index_status(yyextra)=0; return T_RETURN;
3926 	YY_BREAK
3927 case 381:
3928 YY_RULE_SETUP
3929 #line 706 "input_lexer.ll"
3930 (*yylval) = gen(at_Title,1); index_status(yyextra)=0; return T_RETURN;
3931 	YY_BREAK
3932 case 382:
3933 YY_RULE_SETUP
3934 #line 707 "input_lexer.ll"
3935 (*yylval)=0; index_status(yyextra)=0; return TI_PRGM;
3936 	YY_BREAK
3937 case 383:
3938 YY_RULE_SETUP
3939 #line 708 "input_lexer.ll"
3940 (*yylval)=0; index_status(yyextra)=0; return TI_PRGM;
3941 	YY_BREAK
3942 case 384:
3943 YY_RULE_SETUP
3944 #line 709 "input_lexer.ll"
3945 (*yylval)=0; index_status(yyextra)=0; return TI_PRGM;
3946 	YY_BREAK
3947 case 385:
3948 YY_RULE_SETUP
3949 #line 710 "input_lexer.ll"
3950 index_status(yyextra)=0; (*yylval)=gen(at_ifte,3); return T_IF;
3951 	YY_BREAK
3952 case 386:
3953 YY_RULE_SETUP
3954 #line 711 "input_lexer.ll"
3955 (*yylval) = gen(at_return,1) ; index_status(yyextra)=0; return T_RETURN;
3956 	YY_BREAK
3957 case 387:
3958 YY_RULE_SETUP
3959 #line 712 "input_lexer.ll"
3960 index_status(yyextra)=0; (*yylval)=gen(at_breakpoint,0); return T_BREAK;
3961 	YY_BREAK
3962 case 388:
3963 YY_RULE_SETUP
3964 #line 713 "input_lexer.ll"
3965 index_status(yyextra)=0; (*yylval)=gen(at_for,0); return TI_LOOP;
3966 	YY_BREAK
3967 case 389:
3968 YY_RULE_SETUP
3969 #line 714 "input_lexer.ll"
3970 index_status(yyextra)=0; (*yylval)=gen(at_for,0); return TI_FOR;
3971 	YY_BREAK
3972 case 390:
3973 YY_RULE_SETUP
3974 #line 715 "input_lexer.ll"
3975 index_status(yyextra)=0; (*yylval)=gen(at_for,0); return TI_WHILE;
3976 	YY_BREAK
3977 case 391:
3978 YY_RULE_SETUP
3979 #line 716 "input_lexer.ll"
3980 index_status(yyextra)=0; (*yylval)=gen(at_for,0); return T_CONTINUE;
3981 	YY_BREAK
3982 case 392:
3983 YY_RULE_SETUP
3984 #line 717 "input_lexer.ll"
3985 (*yylval) = gen(at_print,1) ; index_status(yyextra)=0; return T_RETURN;
3986 	YY_BREAK
3987 case 393:
3988 YY_RULE_SETUP
3989 #line 718 "input_lexer.ll"
3990 (*yylval) = gen(at_Pause,1) ; index_status(yyextra)=0; return T_RETURN;
3991 	YY_BREAK
3992 case 394:
3993 YY_RULE_SETUP
3994 #line 719 "input_lexer.ll"
3995 (*yylval) = gen(at_label,1) ; index_status(yyextra)=0; return T_RETURN;
3996 	YY_BREAK
3997 case 395:
3998 YY_RULE_SETUP
3999 #line 720 "input_lexer.ll"
4000 (*yylval) = gen(at_goto,1) ; index_status(yyextra)=0; return T_RETURN;
4001 	YY_BREAK
4002 case 396:
4003 YY_RULE_SETUP
4004 #line 721 "input_lexer.ll"
4005 (*yylval) = gen(at_Dialog,1) ; index_status(yyextra)=0; return TI_DIALOG;
4006 	YY_BREAK
4007 case 397:
4008 YY_RULE_SETUP
4009 #line 722 "input_lexer.ll"
4010 (*yylval) = gen(at_Row,0) ; index_status(yyextra)=0; return T_DIGITS;
4011 	YY_BREAK
4012 case 398:
4013 YY_RULE_SETUP
4014 #line 723 "input_lexer.ll"
4015 (*yylval) = gen(at_Col,0) ; index_status(yyextra)=0; return T_DIGITS;
4016 	YY_BREAK
4017 case 399:
4018 YY_RULE_SETUP
4019 #line 725 "input_lexer.ll"
4020 index_status(yyextra)=0; (*yylval)=gen(at_DELTALIST); return T_UNARY_OP_38;
4021 	YY_BREAK
4022 case 400:
4023 YY_RULE_SETUP
4024 #line 726 "input_lexer.ll"
4025 index_status(yyextra)=0; (*yylval)=gen(at_PILIST); return T_UNARY_OP_38;
4026 	YY_BREAK
4027 case 401:
4028 YY_RULE_SETUP
4029 #line 727 "input_lexer.ll"
4030 index_status(yyextra)=0;(*yylval)=gen(at_HPSUM); return T_UNARY_OP_38;
4031 	YY_BREAK
4032 case 402:
4033 YY_RULE_SETUP
4034 #line 728 "input_lexer.ll"
4035 index_status(yyextra)=0; (*yylval)=gen(at_SIGMALIST); return T_UNARY_OP_38;
4036 	YY_BREAK
4037 case 403:
4038 YY_RULE_SETUP
4039 #line 729 "input_lexer.ll"
4040 index_status(yyextra)=0;(*yylval)=gen(at_HPDIFF); return T_UNARY_OP_38;
4041 	YY_BREAK
4042 case 404:
4043 YY_RULE_SETUP
4044 #line 730 "input_lexer.ll"
4045 index_status(yyextra)=0;(*yylval)=gen(at_HPINT); return T_UNARY_OP_38;
4046 	YY_BREAK
4047 case 405:
4048 YY_RULE_SETUP
4049 #line 731 "input_lexer.ll"
4050 index_status(yyextra)=0; (*yylval)=gen(at_inferieur_egal,2); return T_TEST_EQUAL;
4051 	YY_BREAK
4052 case 406:
4053 YY_RULE_SETUP
4054 #line 732 "input_lexer.ll"
4055 index_status(yyextra)=0; (*yylval)=gen(at_different,2); return T_TEST_EQUAL;
4056 	YY_BREAK
4057 case 407:
4058 YY_RULE_SETUP
4059 #line 733 "input_lexer.ll"
4060 index_status(yyextra)=0; (*yylval)=gen(at_superieur_egal,2); return T_TEST_EQUAL;
4061 	YY_BREAK
4062 case 408:
4063 YY_RULE_SETUP
4064 #line 734 "input_lexer.ll"
4065 index_status(yyextra)=0;(*yylval)=gen(at_product); return T_UNARY_OP;
4066 	YY_BREAK
4067 /* old format for physical constants
4068 "_hbar_"        (*yylval) = symbolic(at_unit,makevecteur(1.05457266e-34,_J_unit*_s_unit)); index_status(yyextra)=0; return T_SYMBOL;
4069 "_c_"        (*yylval) = symbolic(at_unit,makevecteur(299792458,_m_unit/_s_unit)); index_status(yyextra)=0; return T_SYMBOL;
4070 "_g_"        (*yylval) = symbolic(at_unit,makevecteur(9.80665,_m_unit*unitpow(_s_unit,-2))); index_status(yyextra)=0; return T_SYMBOL;
4071 "_IO_" (*yylval) = symbolic(at_unit,makevecteur(1e-12,_W_unit*unitpow(_m_unit,-2))); index_status(yyextra)=0; return T_SYMBOL;
4072 "_epsilonox_" (*yylval) = 3.9; index_status(yyextra)=0; return T_SYMBOL;
4073 "_epsilonsi_" (*yylval) = 11.9; index_status(yyextra)=0; return T_SYMBOL;
4074 "_qepsilon0_" (*yylval) = symbolic(at_unit,makevecteur(1.4185979e-30,_F_unit*_C_unit/_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4075 "_epsilon0q_" (*yylval) = symbolic(at_unit,makevecteur(55263469.6,_F_unit/(_m_unit*_C_unit))); index_status(yyextra)=0; return T_SYMBOL;
4076 "_kq_" (*yylval) = symbolic(at_unit,makevecteur(8.617386e-5,_J_unit/(_K_unit*_C_unit))); index_status(yyextra)=0; return T_SYMBOL;
4077 "_c3_" (*yylval) = symbolic(at_unit,makevecteur(.002897756,_m_unit*_K_unit)); index_status(yyextra)=0; return T_SYMBOL;
4078 "_lambdac_" (*yylval) = symbolic(at_unit,makevecteur( 0.00242631058e-9,_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4079 "_f0_" (*yylval) = symbolic(at_unit,makevecteur(2.4179883e14,_Hz_unit)); index_status(yyextra)=0; return T_SYMBOL;
4080 "_lambda0_" (*yylval) = symbolic(at_unit,makevecteur(1239.8425e-9,_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4081 "_muN_" (*yylval) = symbolic(at_unit,makevecteur(5.0507866e-27,_J_unit/_T_unit)); index_status(yyextra)=0; return T_SYMBOL;
4082 "_muB_" (*yylval) = symbolic(at_unit,makevecteur( 9.2740154e-24,_J_unit/_T_unit)); index_status(yyextra)=0; return T_SYMBOL;
4083 "_a0_" (*yylval) = symbolic(at_unit,makevecteur(.0529177249e-9,_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4084 "_Rinfinity_" (*yylval) = symbolic(at_unit,makevecteur(10973731.534,unitpow(_m_unit,-1))); index_status(yyextra)=0; return T_SYMBOL;
4085 "_Faraday_" (*yylval) = symbolic(at_unit,makevecteur(96485.309,_C_unit/_mol_unit)); index_status(yyextra)=0; return T_SYMBOL;
4086 "_phi_" (*yylval) = symbolic(at_unit,makevecteur(2.06783461e-15,_Wb_unit)); index_status(yyextra)=0; return T_SYMBOL;
4087 "_alpha_" (*yylval) = 7.29735308e-3; index_status(yyextra)=0; return T_SYMBOL;
4088 "_mpme_" (*yylval) = 1836.152701; index_status(yyextra)=0; return T_SYMBOL;
4089 "_mp_" (*yylval) = symbolic(at_unit,makevecteur(1.6726231e-27,_kg_unit)); index_status(yyextra)=0; return T_SYMBOL;
4090 "_qme_" (*yylval) = symbolic(at_unit,makevecteur(1.75881962e11,_C_unit/_kg_unit)); index_status(yyextra)=0; return T_SYMBOL;
4091 "_me_" (*yylval) = symbolic(at_unit,makevecteur(9.1093897e-31,_kg_unit)); index_status(yyextra)=0; return T_SYMBOL;
4092 "_qe_" (*yylval) = symbolic(at_unit,makevecteur(1.60217733e-19,_C_unit)); index_status(yyextra)=0; return T_SYMBOL;
4093 "_h_" (*yylval) = symbolic(at_unit,makevecteur(6.6260755e-34,_J_unit*_s_unit)); index_status(yyextra)=0; return T_SYMBOL;
4094 "_G_" (*yylval) = symbolic(at_unit,makevecteur(6.67408e-11,unitpow(_m_unit,3)*unitpow(_s_unit,-2)*unitpow(_kg_unit,-1))); index_status(yyextra)=0; return T_SYMBOL;
4095 "_mu0_" (*yylval) = symbolic(at_unit,makevecteur(1.25663706144e-6,_H_unit/_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4096 "_epsilon0_" (*yylval) = symbolic(at_unit,makevecteur(8.85418781761e-12,_F_unit/_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4097 "_sigma_" (*yylval) = symbolic(at_unit,makevecteur( 5.67051e-8,_W_unit*unitpow(_m_unit,-2)*unitpow(_K_unit,-4))); index_status(yyextra)=0; return T_SYMBOL;
4098 "_StdP_" (*yylval) = symbolic(at_unit,makevecteur(101325.0,_Pa_unit)); index_status(yyextra)=0; return T_SYMBOL;
4099 "_StdT_" (*yylval) = symbolic(at_unit,makevecteur(273.15,_K_unit)); index_status(yyextra)=0; return T_SYMBOL;
4100 "_R_" (*yylval) = symbolic(at_unit,makevecteur(8.31451,_J_unit/_molK_unit)); index_status(yyextra)=0; return T_SYMBOL;
4101 "_Vm_" (*yylval) = symbolic(at_unit,makevecteur(22.4141,_l_unit/_mol_unit)); index_status(yyextra)=0; return T_SYMBOL;
4102 "_k_" (*yylval) = symbolic(at_unit,makevecteur(1.380658e-23,_J_unit/_K_unit)); index_status(yyextra)=0; return T_SYMBOL;
4103 "_NA_" (*yylval) = symbolic(at_unit,makevecteur(6.0221367e23,unitpow(_mol_unit,-1))); index_status(yyextra)=0; return T_SYMBOL;
4104 "_mSun_" (*yylval) = symbolic(at_unit,makevecteur(1.989e30,_kg_unit)); index_status(yyextra)=0; return T_SYMBOL;
4105 "_RSun_" (*yylval) = symbolic(at_unit,makevecteur(6.955e8,_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4106 "_PSun_" (*yylval) = symbolic(at_unit,makevecteur(3.846e26,_W_unit)); index_status(yyextra)=0; return T_SYMBOL;
4107 "_mEarth_" (*yylval) = symbolic(at_unit,makevecteur(5.9736e24,_kg_unit)); index_status(yyextra)=0; return T_SYMBOL;
4108 "_REarth_" (*yylval) = symbolic(at_unit,makevecteur(6.371e6,_m_unit)); index_status(yyextra)=0; return T_SYMBOL;
4109 "_sd_" (*yylval) = symbolic(at_unit,makevecteur(8.61640905e4,_s_unit)); index_status(yyextra)=0; return T_SYMBOL;
4110 "_syr_" (*yylval) = symbolic(at_unit,makevecteur(3.15581498e7,_s_unit)); index_status(yyextra)=0; return T_SYMBOL;
4111                         */
4112 /* numbers, also accept DMS e.g 1°15′27″13 */
4113 case 409:
4114 #line 782 "input_lexer.ll"
4115 case 410:
4116 #line 783 "input_lexer.ll"
4117 case 411:
4118 #line 784 "input_lexer.ll"
4119 case 412:
4120 #line 785 "input_lexer.ll"
4121 case 413:
4122 #line 786 "input_lexer.ll"
4123 case 414:
4124 #line 787 "input_lexer.ll"
4125 case 415:
4126 #line 788 "input_lexer.ll"
4127 case 416:
4128 #line 789 "input_lexer.ll"
4129 case 417:
4130 #line 790 "input_lexer.ll"
4131 case 418:
4132 #line 791 "input_lexer.ll"
4133 case 419:
4134 #line 792 "input_lexer.ll"
4135 case 420:
4136 #line 793 "input_lexer.ll"
4137 case 421:
4138 #line 794 "input_lexer.ll"
4139 case 422:
4140 #line 795 "input_lexer.ll"
4141 case 423:
4142 #line 796 "input_lexer.ll"
4143 case 424:
4144 #line 797 "input_lexer.ll"
4145 case 425:
4146 #line 798 "input_lexer.ll"
4147 case 426:
4148 #line 799 "input_lexer.ll"
4149 case 427:
4150 #line 800 "input_lexer.ll"
4151 case 428:
4152 #line 801 "input_lexer.ll"
4153 case 429:
4154 #line 802 "input_lexer.ll"
4155 case 430:
4156 #line 803 "input_lexer.ll"
4157 case 431:
4158 #line 804 "input_lexer.ll"
4159 case 432:
4160 #line 805 "input_lexer.ll"
4161 case 433:
4162 YY_RULE_SETUP
4163 #line 805 "input_lexer.ll"
4164 {
4165   index_status(yyextra)=1;
4166   int l=strlen(yytext);
4167   int interv=0; // set to non-zero if ? in the number
4168   int dot=-1;
4169   for (int i=0;i<l;++i){
4170     if (yytext[i]=='?'){
4171       interv=i; // mark ? position and remove it from the string
4172       for (;i<l;++i){
4173 	yytext[i]=yytext[i+1];
4174       }
4175       --l;
4176       break;
4177     }
4178     if (yytext[i]=='.')
4179       dot=i;
4180   }
4181   // CERR << yytext << " " << interv << '\n';
4182   if (dot>=0 && interv>1){
4183     --interv; // interv is the relative precision of the interval
4184     if (interv && dot>=1 && yytext[dot-1]=='0')
4185       --interv;
4186     ++dot;
4187     while (interv && dot<l && yytext[dot]=='0'){
4188       --interv; ++dot;
4189     }
4190   }
4191   char ch,ch2;
4192   if (l>2 && yytext[1]!='x' && (yytext[l-1]=='o' || yytext[l-1]=='b' || yytext[l-1]=='h') ){
4193     char base=yytext[l-1];
4194     for (int i=l-1;i>1;--i){
4195       yytext[i]=yytext[i-1];
4196     }
4197     if (base=='h')
4198       base='x';
4199     yytext[1]=base;
4200   }
4201   else {
4202     for (l=0;(ch=*(yytext+l));++l){
4203       if (ch=='x')
4204 	break;
4205       if (ch=='e' || ch=='E'){
4206 	if ( (ch2=*(yytext+l+1)) && (ch2=='e' || ch2=='E')){
4207 	  ++l;
4208 	  for (;(ch=*(yytext+l));++l)
4209 	    *(yytext+l-1)=ch;
4210 	  *(yytext+l-1)=0;
4211 	  --l;
4212 	}
4213       }
4214 #ifndef BCD
4215       if ( (ch==-30 && *(yytext+l+1)==-128) || (ch==-62 && *(yytext+l+1)==-80) ){
4216 	*yylval=0; return T_NUMBER;
4217       }
4218 #endif
4219       if (ch==-30 && *(yytext+l+1)==-120 &&  *(yytext+l+2)==-110){
4220 	l += 3;
4221 	for (;(ch=*(yytext+l));++l)
4222 	  *(yytext+l-2)=ch;
4223 	*(yytext+l-2)=0;
4224 	l -= 3;
4225 	*(yytext+l)='-';
4226       }
4227     }
4228   }
4229   (*yylval) = chartab2gen(yytext,yyextra);
4230   if (interv){
4231     double d=evalf_double(*yylval,1,context0)._DOUBLE_val;
4232     if (d<0 && interv>1)
4233       --interv;
4234     double tmp=std::floor(std::log(absdouble(d))/std::log(10.0));
4235     tmp=(std::pow(10.,1+tmp-interv));
4236     *yylval=eval(gen(makevecteur(d-tmp,d+tmp),_INTERVAL__VECT),1,context0);
4237   }
4238   return T_NUMBER;
4239 }
4240 	YY_BREAK
4241 /* UNITS
4242 "_"{A}{AN}* {
4243   std::pair<const char * const * const,const char * const * const> pp=equal_range(unitname_tab,unitname_tab_end,yytext,tri2);
4244   if (pp.first!=pp.second && pp.second!=unitname_tab_end){
4245     gen tmp=mksa_register_unit(*pp.first,unitptr_tab[pp.first-unitname_tab]);
4246     (*yylval)=tmp;
4247     index_status(yyextra)=0;
4248     return T_SYMBOL;
4249   }
4250   int res=find_or_make_symbol(yytext+1,(*yylval),yyscanner,false,yyextra);
4251  (*yylval)=symb_unit(1,(*yylval),yyextra);
4252  return res;
4253 }
4254 			*/
4255 /* symbols */
4256 case 434:
4257 #line 898 "input_lexer.ll"
4258 case 435:
4259 YY_RULE_SETUP
4260 #line 898 "input_lexer.ll"
4261 {
4262  index_status(yyextra)=1;
4263  int res=find_or_make_symbol(yytext,(*yylval),yyscanner,true,yyextra);
4264  if (res==T_NUMBER)
4265    *yylval=(*yylval)(string2gen(unlocalize(yytext),false),yyextra);
4266  return res;
4267 }
4268 	YY_BREAK
4269 case 436:
4270 YY_RULE_SETUP
4271 #line 905 "input_lexer.ll"
4272 if (!xcas_mode(yyextra) || xcas_mode(yyextra)==3) {
4273   // CERR << "hash" << '\n';
4274   (*yylval)=gen(at_hash,1); return TI_HASH;
4275 } else BEGIN(comment_hash);
4276 	YY_BREAK
4277 case 437:
4278 /* rule 437 can match eol */
4279 YY_RULE_SETUP
4280 #line 909 "input_lexer.ll"
4281 BEGIN(INITIAL); index_status(yyextra)=0; increment_lexer_line_number_setcol(yyscanner,yyextra);  /* comment_s(yyextra)=string(yytext); (*yylval)=string2gen(comment_s(yyextra).substr(0,comment_s(yyextra).size()-1),false); return T_COMMENT; */
4282 	YY_BREAK
4283 /* everything else */
4284 case 438:
4285 YY_RULE_SETUP
4286 #line 911 "input_lexer.ll"
4287 (*yylval)=string2gen(string(yytext),false); return T_STRING;
4288 	YY_BREAK
4289 case 439:
4290 YY_RULE_SETUP
4291 #line 913 "input_lexer.ll"
4292 ECHO;
4293 	YY_BREAK
4294 #line 4295 "input_lexer.cc"
4295 case YY_STATE_EOF(INITIAL):
4296 case YY_STATE_EOF(comment):
4297 case YY_STATE_EOF(comment_hash):
4298 case YY_STATE_EOF(str):
4299 case YY_STATE_EOF(backquote):
4300 	yyterminate();
4301 
4302 	case YY_END_OF_BUFFER:
4303 		{
4304 		/* Amount of text matched not including the EOB char. */
4305 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
4306 
4307 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
4308 		*yy_cp = yyg->yy_hold_char;
4309 		YY_RESTORE_YY_MORE_OFFSET
4310 
4311 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4312 			{
4313 			/* We're scanning a new file or input source.  It's
4314 			 * possible that this happened because the user
4315 			 * just pointed yyin at a new source and called
4316 			 * giac_yylex().  If so, then we have to assure
4317 			 * consistency between YY_CURRENT_BUFFER and our
4318 			 * globals.  Here is the right place to do so, because
4319 			 * this is the first action (other than possibly a
4320 			 * back-up) that will match for the new input source.
4321 			 */
4322 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4323 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4324 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4325 			}
4326 
4327 		/* Note that here we test for yy_c_buf_p "<=" to the position
4328 		 * of the first EOB in the buffer, since yy_c_buf_p will
4329 		 * already have been incremented past the NUL character
4330 		 * (since all states make transitions on EOB to the
4331 		 * end-of-buffer state).  Contrast this with the test
4332 		 * in input().
4333 		 */
4334 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4335 			{ /* This was really a NUL. */
4336 			yy_state_type yy_next_state;
4337 
4338 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
4339 
4340 			yy_current_state = yy_get_previous_state( yyscanner );
4341 
4342 			/* Okay, we're now positioned to make the NUL
4343 			 * transition.  We couldn't have
4344 			 * yy_get_previous_state() go ahead and do it
4345 			 * for us because it doesn't know how to deal
4346 			 * with the possibility of jamming (and we don't
4347 			 * want to build jamming into it because then it
4348 			 * will run more slowly).
4349 			 */
4350 
4351 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
4352 
4353 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4354 
4355 			if ( yy_next_state )
4356 				{
4357 				/* Consume the NUL. */
4358 				yy_cp = ++yyg->yy_c_buf_p;
4359 				yy_current_state = yy_next_state;
4360 				goto yy_match;
4361 				}
4362 
4363 			else
4364 				{
4365 				yy_cp = yyg->yy_c_buf_p;
4366 				goto yy_find_action;
4367 				}
4368 			}
4369 
4370 		else switch ( yy_get_next_buffer( yyscanner ) )
4371 			{
4372 			case EOB_ACT_END_OF_FILE:
4373 				{
4374 				yyg->yy_did_buffer_switch_on_eof = 0;
4375 
4376 				if ( giac_yywrap(yyscanner ) )
4377 					{
4378 					/* Note: because we've taken care in
4379 					 * yy_get_next_buffer() to have set up
4380 					 * yytext, we can now set up
4381 					 * yy_c_buf_p so that if some total
4382 					 * hoser (like flex itself) wants to
4383 					 * call the scanner after we return the
4384 					 * YY_NULL, it'll still work - another
4385 					 * YY_NULL will get returned.
4386 					 */
4387 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
4388 
4389 					yy_act = YY_STATE_EOF(YY_START);
4390 					goto do_action;
4391 					}
4392 
4393 				else
4394 					{
4395 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4396 						YY_NEW_FILE;
4397 					}
4398 				break;
4399 				}
4400 
4401 			case EOB_ACT_CONTINUE_SCAN:
4402 				yyg->yy_c_buf_p =
4403 					yyg->yytext_ptr + yy_amount_of_matched_text;
4404 
4405 				yy_current_state = yy_get_previous_state( yyscanner );
4406 
4407 				yy_cp = yyg->yy_c_buf_p;
4408 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4409 				goto yy_match;
4410 
4411 			case EOB_ACT_LAST_MATCH:
4412 				yyg->yy_c_buf_p =
4413 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
4414 
4415 				yy_current_state = yy_get_previous_state( yyscanner );
4416 
4417 				yy_cp = yyg->yy_c_buf_p;
4418 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4419 				goto yy_find_action;
4420 			}
4421 		break;
4422 		}
4423 
4424 	default:
4425 		YY_FATAL_ERROR(
4426 			"fatal flex scanner internal error--no action found" );
4427 	} /* end of action switch */
4428 		} /* end of scanning one token */
4429 } /* end of giac_yylex */
4430 
4431 /* yy_get_next_buffer - try to read in a new buffer
4432  *
4433  * Returns a code representing an action:
4434  *	EOB_ACT_LAST_MATCH -
4435  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4436  *	EOB_ACT_END_OF_FILE - end of file
4437  */
4438 static int yy_get_next_buffer (yyscan_t yyscanner)
4439 {
4440     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4441 	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4442 	register char *source = yyg->yytext_ptr;
4443 	register int number_to_move, i;
4444 	int ret_val;
4445 
4446 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
4447 		YY_FATAL_ERROR(
4448 		"fatal flex scanner internal error--end of buffer missed" );
4449 
4450 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4451 		{ /* Don't try to fill the buffer, so this is an EOF. */
4452 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
4453 			{
4454 			/* We matched a single character, the EOB, so
4455 			 * treat this as a final EOF.
4456 			 */
4457 			return EOB_ACT_END_OF_FILE;
4458 			}
4459 
4460 		else
4461 			{
4462 			/* We matched some text prior to the EOB, first
4463 			 * process it.
4464 			 */
4465 			return EOB_ACT_LAST_MATCH;
4466 			}
4467 		}
4468 
4469 	/* Try to read more data. */
4470 
4471 	/* First move last chars to start of buffer. */
4472 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
4473 
4474 	for ( i = 0; i < number_to_move; ++i )
4475 		*(dest++) = *(source++);
4476 
4477 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4478 		/* don't do the read, it's not guaranteed to return an EOF,
4479 		 * just force an EOF
4480 		 */
4481 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
4482 
4483 	else
4484 		{
4485 			int num_to_read =
4486 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4487 
4488 		while ( num_to_read <= 0 )
4489 			{ /* Not enough room in the buffer - grow it. */
4490 
4491 			/* just a shorter name for the current buffer */
4492 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
4493 
4494 			int yy_c_buf_p_offset =
4495 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
4496 
4497 			if ( b->yy_is_our_buffer )
4498 				{
4499 				int new_size = b->yy_buf_size * 2;
4500 
4501 				if ( new_size <= 0 )
4502 					b->yy_buf_size += b->yy_buf_size / 8;
4503 				else
4504 					b->yy_buf_size *= 2;
4505 
4506 				b->yy_ch_buf = (char *)
4507 					/* Include room in for 2 EOB chars. */
4508 					giac_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
4509 				}
4510 			else
4511 				/* Can't grow it, we don't own it. */
4512 				b->yy_ch_buf = 0;
4513 
4514 			if ( ! b->yy_ch_buf )
4515 				YY_FATAL_ERROR(
4516 				"fatal error - scanner input buffer overflow" );
4517 
4518 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4519 
4520 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4521 						number_to_move - 1;
4522 
4523 			}
4524 
4525 		if ( num_to_read > YY_READ_BUF_SIZE )
4526 			num_to_read = YY_READ_BUF_SIZE;
4527 
4528 		/* Read in more data. */
4529 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4530 			yyg->yy_n_chars, (size_t) num_to_read );
4531 
4532 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4533 		}
4534 
4535 	if ( yyg->yy_n_chars == 0 )
4536 		{
4537 		if ( number_to_move == YY_MORE_ADJ )
4538 			{
4539 			ret_val = EOB_ACT_END_OF_FILE;
4540 			giac_yyrestart(yyin  ,yyscanner);
4541 			}
4542 
4543 		else
4544 			{
4545 			ret_val = EOB_ACT_LAST_MATCH;
4546 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4547 				YY_BUFFER_EOF_PENDING;
4548 			}
4549 		}
4550 
4551 	else
4552 		ret_val = EOB_ACT_CONTINUE_SCAN;
4553 
4554 	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4555 		/* Extend the array by 50%, plus the number we really need. */
4556 		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
4557 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) giac_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
4558 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4559 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4560 	}
4561 
4562 	yyg->yy_n_chars += number_to_move;
4563 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4564 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4565 
4566 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4567 
4568 	return ret_val;
4569 }
4570 
4571 /* yy_get_previous_state - get the state just before the EOB char was reached */
4572 
yy_get_previous_state(yyscan_t yyscanner)4573     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
4574 {
4575 	register yy_state_type yy_current_state;
4576 	register char *yy_cp;
4577     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4578 
4579 	yy_current_state = yyg->yy_start;
4580 
4581 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
4582 		{
4583 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4584 		if ( yy_accept[yy_current_state] )
4585 			{
4586 			yyg->yy_last_accepting_state = yy_current_state;
4587 			yyg->yy_last_accepting_cpos = yy_cp;
4588 			}
4589 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4590 			{
4591 			yy_current_state = (int) yy_def[yy_current_state];
4592 			if ( yy_current_state >= 1387 )
4593 				yy_c = yy_meta[(unsigned int) yy_c];
4594 			}
4595 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4596 		}
4597 
4598 	return yy_current_state;
4599 }
4600 
4601 /* yy_try_NUL_trans - try to make a transition on the NUL character
4602  *
4603  * synopsis
4604  *	next_state = yy_try_NUL_trans( current_state );
4605  */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)4606     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
4607 {
4608 	register int yy_is_jam;
4609     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
4610 	register char *yy_cp = yyg->yy_c_buf_p;
4611 
4612 	register YY_CHAR yy_c = 1;
4613 	if ( yy_accept[yy_current_state] )
4614 		{
4615 		yyg->yy_last_accepting_state = yy_current_state;
4616 		yyg->yy_last_accepting_cpos = yy_cp;
4617 		}
4618 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4619 		{
4620 		yy_current_state = (int) yy_def[yy_current_state];
4621 		if ( yy_current_state >= 1387 )
4622 			yy_c = yy_meta[(unsigned int) yy_c];
4623 		}
4624 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4625 	yy_is_jam = (yy_current_state == 1386);
4626 
4627 	return yy_is_jam ? 0 : yy_current_state;
4628 }
4629 
yyunput(int c,register char * yy_bp,yyscan_t yyscanner)4630     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
4631 {
4632 	register char *yy_cp;
4633     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4634 
4635     yy_cp = yyg->yy_c_buf_p;
4636 
4637 	/* undo effects of setting up yytext */
4638 	*yy_cp = yyg->yy_hold_char;
4639 
4640 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4641 		{ /* need to shift things up to make room */
4642 		/* +2 for EOB chars. */
4643 		register int number_to_move = yyg->yy_n_chars + 2;
4644 		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4645 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4646 		register char *source =
4647 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4648 
4649 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4650 			*--dest = *--source;
4651 
4652 		yy_cp += (int) (dest - source);
4653 		yy_bp += (int) (dest - source);
4654 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4655 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4656 
4657 		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4658 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
4659 		}
4660 
4661 	*--yy_cp = (char) c;
4662 
4663 	yyg->yytext_ptr = yy_bp;
4664 	yyg->yy_hold_char = *yy_cp;
4665 	yyg->yy_c_buf_p = yy_cp;
4666 }
4667 
4668 #ifndef YY_NO_INPUT
4669 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)4670     static int yyinput (yyscan_t yyscanner)
4671 #else
4672     static int input  (yyscan_t yyscanner)
4673 #endif
4674 
4675 {
4676 	int c;
4677     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4678 
4679 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
4680 
4681 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4682 		{
4683 		/* yy_c_buf_p now points to the character we want to return.
4684 		 * If this occurs *before* the EOB characters, then it's a
4685 		 * valid NUL; if not, then we've hit the end of the buffer.
4686 		 */
4687 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4688 			/* This was really a NUL. */
4689 			*yyg->yy_c_buf_p = '\0';
4690 
4691 		else
4692 			{ /* need more input */
4693 			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
4694 			++yyg->yy_c_buf_p;
4695 
4696 			switch ( yy_get_next_buffer( yyscanner ) )
4697 				{
4698 				case EOB_ACT_LAST_MATCH:
4699 					/* This happens because yy_g_n_b()
4700 					 * sees that we've accumulated a
4701 					 * token and flags that we need to
4702 					 * try matching the token before
4703 					 * proceeding.  But for input(),
4704 					 * there's no matching to consider.
4705 					 * So convert the EOB_ACT_LAST_MATCH
4706 					 * to EOB_ACT_END_OF_FILE.
4707 					 */
4708 
4709 					/* Reset buffer status. */
4710 					giac_yyrestart(yyin ,yyscanner);
4711 
4712 					/*FALLTHROUGH*/
4713 
4714 				case EOB_ACT_END_OF_FILE:
4715 					{
4716 					if ( giac_yywrap(yyscanner ) )
4717 						return EOF;
4718 
4719 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4720 						YY_NEW_FILE;
4721 #ifdef __cplusplus
4722 					return yyinput(yyscanner);
4723 #else
4724 					return input(yyscanner);
4725 #endif
4726 					}
4727 
4728 				case EOB_ACT_CONTINUE_SCAN:
4729 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
4730 					break;
4731 				}
4732 			}
4733 		}
4734 
4735 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
4736 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
4737 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
4738 
4739 	return c;
4740 }
4741 #endif	/* ifndef YY_NO_INPUT */
4742 
4743 /** Immediately switch to a different input stream.
4744  * @param input_file A readable stream.
4745  * @param yyscanner The scanner object.
4746  * @note This function does not reset the start condition to @c INITIAL .
4747  */
giac_yyrestart(FILE * input_file,yyscan_t yyscanner)4748     void giac_yyrestart  (FILE * input_file , yyscan_t yyscanner)
4749 {
4750     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4751 
4752 	if ( ! YY_CURRENT_BUFFER ){
4753         giac_yyensure_buffer_stack (yyscanner);
4754 		YY_CURRENT_BUFFER_LVALUE =
4755             giac_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
4756 	}
4757 
4758 	giac_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
4759 	giac_yy_load_buffer_state(yyscanner );
4760 }
4761 
4762 /** Switch to a different input buffer.
4763  * @param new_buffer The new input buffer.
4764  * @param yyscanner The scanner object.
4765  */
giac_yy_switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)4766     void giac_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
4767 {
4768     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4769 
4770 	/* TODO. We should be able to replace this entire function body
4771 	 * with
4772 	 *		giac_yypop_buffer_state();
4773 	 *		giac_yypush_buffer_state(new_buffer);
4774      */
4775 	giac_yyensure_buffer_stack (yyscanner);
4776 	if ( YY_CURRENT_BUFFER == new_buffer )
4777 		return;
4778 
4779 	if ( YY_CURRENT_BUFFER )
4780 		{
4781 		/* Flush out information for old buffer. */
4782 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
4783 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4784 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4785 		}
4786 
4787 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4788 	giac_yy_load_buffer_state(yyscanner );
4789 
4790 	/* We don't actually know whether we did this switch during
4791 	 * EOF (giac_yywrap()) processing, but the only time this flag
4792 	 * is looked at is after giac_yywrap() is called, so it's safe
4793 	 * to go ahead and always set it.
4794 	 */
4795 	yyg->yy_did_buffer_switch_on_eof = 1;
4796 }
4797 
giac_yy_load_buffer_state(yyscan_t yyscanner)4798 static void giac_yy_load_buffer_state  (yyscan_t yyscanner)
4799 {
4800     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4801 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4802 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4803 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4804 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
4805 }
4806 
4807 /** Allocate and initialize an input buffer state.
4808  * @param file A readable stream.
4809  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4810  * @param yyscanner The scanner object.
4811  * @return the allocated buffer state.
4812  */
giac_yy_create_buffer(FILE * file,int size,yyscan_t yyscanner)4813     YY_BUFFER_STATE giac_yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
4814 {
4815 	YY_BUFFER_STATE b;
4816 
4817 	b = (YY_BUFFER_STATE) giac_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
4818 	if ( ! b )
4819 		YY_FATAL_ERROR( "out of dynamic memory in giac_yy_create_buffer()" );
4820 
4821 	b->yy_buf_size = size;
4822 
4823 	/* yy_ch_buf has to be 2 characters longer than the size given because
4824 	 * we need to put in 2 end-of-buffer characters.
4825 	 */
4826 	b->yy_ch_buf = (char *) giac_yyalloc(b->yy_buf_size + 2 ,yyscanner );
4827 	if ( ! b->yy_ch_buf )
4828 		YY_FATAL_ERROR( "out of dynamic memory in giac_yy_create_buffer()" );
4829 
4830 	b->yy_is_our_buffer = 1;
4831 
4832 	giac_yy_init_buffer(b,file ,yyscanner);
4833 
4834 	return b;
4835 }
4836 
4837 /** Destroy the buffer.
4838  * @param b a buffer created with giac_yy_create_buffer()
4839  * @param yyscanner The scanner object.
4840  */
giac_yy_delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)4841     void giac_yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4842 {
4843     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4844 
4845 	if ( ! b )
4846 		return;
4847 
4848 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4849 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4850 
4851 	if ( b->yy_is_our_buffer )
4852 		giac_yyfree((void *) b->yy_ch_buf ,yyscanner );
4853 
4854 	giac_yyfree((void *) b ,yyscanner );
4855 }
4856 
4857 #ifndef __cplusplus
4858 extern int isatty (int );
4859 #endif /* __cplusplus */
4860 
4861 /* Initializes or reinitializes a buffer.
4862  * This function is sometimes called more than once on the same buffer,
4863  * such as during a giac_yyrestart() or at EOF.
4864  */
giac_yy_init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)4865     static void giac_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
4866 
4867 {
4868 	int oerrno = errno;
4869     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4870 
4871 	giac_yy_flush_buffer(b ,yyscanner);
4872 
4873 	b->yy_input_file = file;
4874 	b->yy_fill_buffer = 1;
4875 
4876     /* If b is the current buffer, then giac_yy_init_buffer was _probably_
4877      * called from giac_yyrestart() or through yy_get_next_buffer.
4878      * In that case, we don't want to reset the lineno or column.
4879      */
4880     if (b != YY_CURRENT_BUFFER){
4881         b->yy_bs_lineno = 1;
4882         b->yy_bs_column = 0;
4883     }
4884 
4885         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4886 
4887 	errno = oerrno;
4888 }
4889 
4890 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4891  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4892  * @param yyscanner The scanner object.
4893  */
giac_yy_flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)4894     void giac_yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4895 {
4896     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4897 	if ( ! b )
4898 		return;
4899 
4900 	b->yy_n_chars = 0;
4901 
4902 	/* We always need two end-of-buffer characters.  The first causes
4903 	 * a transition to the end-of-buffer state.  The second causes
4904 	 * a jam in that state.
4905 	 */
4906 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4907 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4908 
4909 	b->yy_buf_pos = &b->yy_ch_buf[0];
4910 
4911 	b->yy_at_bol = 1;
4912 	b->yy_buffer_status = YY_BUFFER_NEW;
4913 
4914 	if ( b == YY_CURRENT_BUFFER )
4915 		giac_yy_load_buffer_state(yyscanner );
4916 }
4917 
4918 /** Pushes the new state onto the stack. The new state becomes
4919  *  the current state. This function will allocate the stack
4920  *  if necessary.
4921  *  @param new_buffer The new state.
4922  *  @param yyscanner The scanner object.
4923  */
giac_yypush_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)4924 void giac_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
4925 {
4926     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4927 	if (new_buffer == NULL)
4928 		return;
4929 
4930 	giac_yyensure_buffer_stack(yyscanner);
4931 
4932 	/* This block is copied from giac_yy_switch_to_buffer. */
4933 	if ( YY_CURRENT_BUFFER )
4934 		{
4935 		/* Flush out information for old buffer. */
4936 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
4937 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4938 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4939 		}
4940 
4941 	/* Only push if top exists. Otherwise, replace top. */
4942 	if (YY_CURRENT_BUFFER)
4943 		yyg->yy_buffer_stack_top++;
4944 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4945 
4946 	/* copied from giac_yy_switch_to_buffer. */
4947 	giac_yy_load_buffer_state(yyscanner );
4948 	yyg->yy_did_buffer_switch_on_eof = 1;
4949 }
4950 
4951 /** Removes and deletes the top of the stack, if present.
4952  *  The next element becomes the new top.
4953  *  @param yyscanner The scanner object.
4954  */
giac_yypop_buffer_state(yyscan_t yyscanner)4955 void giac_yypop_buffer_state (yyscan_t yyscanner)
4956 {
4957     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4958 	if (!YY_CURRENT_BUFFER)
4959 		return;
4960 
4961 	giac_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
4962 	YY_CURRENT_BUFFER_LVALUE = NULL;
4963 	if (yyg->yy_buffer_stack_top > 0)
4964 		--yyg->yy_buffer_stack_top;
4965 
4966 	if (YY_CURRENT_BUFFER) {
4967 		giac_yy_load_buffer_state(yyscanner );
4968 		yyg->yy_did_buffer_switch_on_eof = 1;
4969 	}
4970 }
4971 
4972 /* Allocates the stack if it does not exist.
4973  *  Guarantees space for at least one push.
4974  */
giac_yyensure_buffer_stack(yyscan_t yyscanner)4975 static void giac_yyensure_buffer_stack (yyscan_t yyscanner)
4976 {
4977 	int num_to_alloc;
4978     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4979 
4980 	if (!yyg->yy_buffer_stack) {
4981 
4982 		/* First allocation is just for 2 elements, since we don't know if this
4983 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4984 		 * immediate realloc on the next call.
4985          */
4986 		num_to_alloc = 1;
4987 		yyg->yy_buffer_stack = (struct yy_buffer_state**)giac_yyalloc
4988 								(num_to_alloc * sizeof(struct yy_buffer_state*)
4989 								, yyscanner);
4990 		if ( ! yyg->yy_buffer_stack )
4991 			YY_FATAL_ERROR( "out of dynamic memory in giac_yyensure_buffer_stack()" );
4992 
4993 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4994 
4995 		yyg->yy_buffer_stack_max = num_to_alloc;
4996 		yyg->yy_buffer_stack_top = 0;
4997 		return;
4998 	}
4999 
5000 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
5001 
5002 		/* Increase the buffer to prepare for a possible push. */
5003 		int grow_size = 8 /* arbitrary grow size */;
5004 
5005 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
5006 		yyg->yy_buffer_stack = (struct yy_buffer_state**)giac_yyrealloc
5007 								(yyg->yy_buffer_stack,
5008 								num_to_alloc * sizeof(struct yy_buffer_state*)
5009 								, yyscanner);
5010 		if ( ! yyg->yy_buffer_stack )
5011 			YY_FATAL_ERROR( "out of dynamic memory in giac_yyensure_buffer_stack()" );
5012 
5013 		/* zero only the new slots.*/
5014 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
5015 		yyg->yy_buffer_stack_max = num_to_alloc;
5016 	}
5017 }
5018 
5019 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5020  * @param base the character buffer
5021  * @param size the size in bytes of the character buffer
5022  * @param yyscanner The scanner object.
5023  * @return the newly allocated buffer state object.
5024  */
giac_yy_scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)5025 YY_BUFFER_STATE giac_yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
5026 {
5027 	YY_BUFFER_STATE b;
5028 
5029 	if ( size < 2 ||
5030 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
5031 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
5032 		/* They forgot to leave room for the EOB's. */
5033 		return 0;
5034 
5035 	b = (YY_BUFFER_STATE) giac_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
5036 	if ( ! b )
5037 		YY_FATAL_ERROR( "out of dynamic memory in giac_yy_scan_buffer()" );
5038 
5039 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
5040 	b->yy_buf_pos = b->yy_ch_buf = base;
5041 	b->yy_is_our_buffer = 0;
5042 	b->yy_input_file = 0;
5043 	b->yy_n_chars = b->yy_buf_size;
5044 	b->yy_is_interactive = 0;
5045 	b->yy_at_bol = 1;
5046 	b->yy_fill_buffer = 0;
5047 	b->yy_buffer_status = YY_BUFFER_NEW;
5048 
5049 	giac_yy_switch_to_buffer(b ,yyscanner );
5050 
5051 	return b;
5052 }
5053 
5054 /** Setup the input buffer state to scan a string. The next call to giac_yylex() will
5055  * scan from a @e copy of @a str.
5056  * @param yystr a NUL-terminated string to scan
5057  * @param yyscanner The scanner object.
5058  * @return the newly allocated buffer state object.
5059  * @note If you want to scan bytes that may contain NUL values, then use
5060  *       giac_yy_scan_bytes() instead.
5061  */
giac_yy_scan_string(yyconst char * yystr,yyscan_t yyscanner)5062 YY_BUFFER_STATE giac_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
5063 {
5064 
5065 	return giac_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
5066 }
5067 
5068 /** Setup the input buffer state to scan the given bytes. The next call to giac_yylex() will
5069  * scan from a @e copy of @a bytes.
5070  * @param yybytes the byte buffer to scan
5071  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5072  * @param yyscanner The scanner object.
5073  * @return the newly allocated buffer state object.
5074  */
giac_yy_scan_bytes(yyconst char * yybytes,int _yybytes_len,yyscan_t yyscanner)5075 YY_BUFFER_STATE giac_yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
5076 {
5077 	YY_BUFFER_STATE b;
5078 	char *buf;
5079 	yy_size_t n;
5080 	int i;
5081 
5082 	/* Get memory for full buffer, including space for trailing EOB's. */
5083 	n = _yybytes_len + 2;
5084 	buf = (char *) giac_yyalloc(n ,yyscanner );
5085 	if ( ! buf )
5086 		YY_FATAL_ERROR( "out of dynamic memory in giac_yy_scan_bytes()" );
5087 
5088 	for ( i = 0; i < _yybytes_len; ++i )
5089 		buf[i] = yybytes[i];
5090 
5091 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5092 
5093 	b = giac_yy_scan_buffer(buf,n ,yyscanner);
5094 	if ( ! b )
5095 		YY_FATAL_ERROR( "bad buffer in giac_yy_scan_bytes()" );
5096 
5097 	/* It's okay to grow etc. this buffer, and we should throw it
5098 	 * away when we're done.
5099 	 */
5100 	b->yy_is_our_buffer = 1;
5101 
5102 	return b;
5103 }
5104 
5105 #ifndef YY_EXIT_FAILURE
5106 #define YY_EXIT_FAILURE 2
5107 #endif
5108 
yy_fatal_error(yyconst char * msg,yyscan_t yyscanner)5109 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
5110 {
5111     	(void) fprintf( stderr, "%s\n", msg );
5112 	exit( YY_EXIT_FAILURE );
5113 }
5114 
5115 /* Redefine yyless() so it works in section 3 code. */
5116 
5117 #undef yyless
5118 #define yyless(n) \
5119 	do \
5120 		{ \
5121 		/* Undo effects of setting up yytext. */ \
5122         int yyless_macro_arg = (n); \
5123         YY_LESS_LINENO(yyless_macro_arg);\
5124 		yytext[yyleng] = yyg->yy_hold_char; \
5125 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
5126 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
5127 		*yyg->yy_c_buf_p = '\0'; \
5128 		yyleng = yyless_macro_arg; \
5129 		} \
5130 	while ( 0 )
5131 
5132 /* Accessor  methods (get/set functions) to struct members. */
5133 
5134 /** Get the user-defined data for this scanner.
5135  * @param yyscanner The scanner object.
5136  */
giac_yyget_extra(yyscan_t yyscanner)5137 YY_EXTRA_TYPE giac_yyget_extra  (yyscan_t yyscanner)
5138 {
5139     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5140     return yyextra;
5141 }
5142 
5143 /** Get the current line number.
5144  * @param yyscanner The scanner object.
5145  */
giac_yyget_lineno(yyscan_t yyscanner)5146 int giac_yyget_lineno  (yyscan_t yyscanner)
5147 {
5148     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5149 
5150         if (! YY_CURRENT_BUFFER)
5151             return 0;
5152 
5153     return yylineno;
5154 }
5155 
5156 /** Get the current column number.
5157  * @param yyscanner The scanner object.
5158  */
giac_yyget_column(yyscan_t yyscanner)5159 int giac_yyget_column  (yyscan_t yyscanner)
5160 {
5161     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5162 
5163         if (! YY_CURRENT_BUFFER)
5164             return 0;
5165 
5166     return yycolumn;
5167 }
5168 
5169 /** Get the input stream.
5170  * @param yyscanner The scanner object.
5171  */
giac_yyget_in(yyscan_t yyscanner)5172 FILE *giac_yyget_in  (yyscan_t yyscanner)
5173 {
5174     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5175     return yyin;
5176 }
5177 
5178 /** Get the output stream.
5179  * @param yyscanner The scanner object.
5180  */
giac_yyget_out(yyscan_t yyscanner)5181 FILE *giac_yyget_out  (yyscan_t yyscanner)
5182 {
5183     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5184     return yyout;
5185 }
5186 
5187 /** Get the length of the current token.
5188  * @param yyscanner The scanner object.
5189  */
giac_yyget_leng(yyscan_t yyscanner)5190 int giac_yyget_leng  (yyscan_t yyscanner)
5191 {
5192     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5193     return yyleng;
5194 }
5195 
5196 /** Get the current token.
5197  * @param yyscanner The scanner object.
5198  */
5199 
giac_yyget_text(yyscan_t yyscanner)5200 char *giac_yyget_text  (yyscan_t yyscanner)
5201 {
5202     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5203     return yytext;
5204 }
5205 
5206 /** Set the user-defined data. This data is never touched by the scanner.
5207  * @param user_defined The data to be associated with this scanner.
5208  * @param yyscanner The scanner object.
5209  */
giac_yyset_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)5210 void giac_yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
5211 {
5212     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5213     yyextra = user_defined ;
5214 }
5215 
5216 /** Set the current line number.
5217  * @param line_number
5218  * @param yyscanner The scanner object.
5219  */
giac_yyset_lineno(int line_number,yyscan_t yyscanner)5220 void giac_yyset_lineno (int  line_number , yyscan_t yyscanner)
5221 {
5222     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5223 
5224         /* lineno is only valid if an input buffer exists. */
5225         if (! YY_CURRENT_BUFFER )
5226            yy_fatal_error( "giac_yyset_lineno called with no buffer" , yyscanner);
5227 
5228     yylineno = line_number;
5229 }
5230 
5231 /** Set the current column.
5232  * @param line_number
5233  * @param yyscanner The scanner object.
5234  */
giac_yyset_column(int column_no,yyscan_t yyscanner)5235 void giac_yyset_column (int  column_no , yyscan_t yyscanner)
5236 {
5237     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5238 
5239         /* column is only valid if an input buffer exists. */
5240         if (! YY_CURRENT_BUFFER )
5241            yy_fatal_error( "giac_yyset_column called with no buffer" , yyscanner);
5242 
5243     yycolumn = column_no;
5244 }
5245 
5246 /** Set the input stream. This does not discard the current
5247  * input buffer.
5248  * @param in_str A readable stream.
5249  * @param yyscanner The scanner object.
5250  * @see giac_yy_switch_to_buffer
5251  */
giac_yyset_in(FILE * in_str,yyscan_t yyscanner)5252 void giac_yyset_in (FILE *  in_str , yyscan_t yyscanner)
5253 {
5254     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5255     yyin = in_str ;
5256 }
5257 
giac_yyset_out(FILE * out_str,yyscan_t yyscanner)5258 void giac_yyset_out (FILE *  out_str , yyscan_t yyscanner)
5259 {
5260     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5261     yyout = out_str ;
5262 }
5263 
giac_yyget_debug(yyscan_t yyscanner)5264 int giac_yyget_debug  (yyscan_t yyscanner)
5265 {
5266     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5267     return yy_flex_debug;
5268 }
5269 
giac_yyset_debug(int bdebug,yyscan_t yyscanner)5270 void giac_yyset_debug (int  bdebug , yyscan_t yyscanner)
5271 {
5272     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5273     yy_flex_debug = bdebug ;
5274 }
5275 
5276 /* Accessor methods for yylval and yylloc */
5277 
giac_yyget_lval(yyscan_t yyscanner)5278 YYSTYPE * giac_yyget_lval  (yyscan_t yyscanner)
5279 {
5280     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5281     return yylval;
5282 }
5283 
giac_yyset_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)5284 void giac_yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
5285 {
5286     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5287     yylval = yylval_param;
5288 }
5289 
5290 /* User-visible API */
5291 
5292 /* giac_yylex_init is special because it creates the scanner itself, so it is
5293  * the ONLY reentrant function that doesn't take the scanner as the last argument.
5294  * That's why we explicitly handle the declaration, instead of using our macros.
5295  */
5296 
giac_yylex_init(yyscan_t * ptr_yy_globals)5297 int giac_yylex_init(yyscan_t* ptr_yy_globals)
5298 
5299 {
5300     if (ptr_yy_globals == NULL){
5301         errno = EINVAL;
5302         return 1;
5303     }
5304 
5305     *ptr_yy_globals = (yyscan_t) giac_yyalloc ( sizeof( struct yyguts_t ), NULL );
5306 
5307     if (*ptr_yy_globals == NULL){
5308         errno = ENOMEM;
5309         return 1;
5310     }
5311 
5312     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5313     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5314 
5315     return yy_init_globals ( *ptr_yy_globals );
5316 }
5317 
5318 /* giac_yylex_init_extra has the same functionality as giac_yylex_init, but follows the
5319  * convention of taking the scanner as the last argument. Note however, that
5320  * this is a *pointer* to a scanner, as it will be allocated by this call (and
5321  * is the reason, too, why this function also must handle its own declaration).
5322  * The user defined value in the first argument will be available to giac_yyalloc in
5323  * the yyextra field.
5324  */
5325 
giac_yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)5326 int giac_yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
5327 
5328 {
5329     struct yyguts_t dummy_yyguts;
5330 
5331     giac_yyset_extra (yy_user_defined, &dummy_yyguts);
5332 
5333     if (ptr_yy_globals == NULL){
5334         errno = EINVAL;
5335         return 1;
5336     }
5337 
5338     *ptr_yy_globals = (yyscan_t) giac_yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
5339 
5340     if (*ptr_yy_globals == NULL){
5341         errno = ENOMEM;
5342         return 1;
5343     }
5344 
5345     /* By setting to 0xAA, we expose bugs in
5346     yy_init_globals. Leave at 0x00 for releases. */
5347     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5348 
5349     giac_yyset_extra (yy_user_defined, *ptr_yy_globals);
5350 
5351     return yy_init_globals ( *ptr_yy_globals );
5352 }
5353 
yy_init_globals(yyscan_t yyscanner)5354 static int yy_init_globals (yyscan_t yyscanner)
5355 {
5356     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5357     /* Initialization is the same as for the non-reentrant scanner.
5358      * This function is called from giac_yylex_destroy(), so don't allocate here.
5359      */
5360 
5361     yyg->yy_buffer_stack = 0;
5362     yyg->yy_buffer_stack_top = 0;
5363     yyg->yy_buffer_stack_max = 0;
5364     yyg->yy_c_buf_p = (char *) 0;
5365     yyg->yy_init = 0;
5366     yyg->yy_start = 0;
5367 
5368     yyg->yy_start_stack_ptr = 0;
5369     yyg->yy_start_stack_depth = 0;
5370     yyg->yy_start_stack =  NULL;
5371 
5372 /* Defined in main.c */
5373 #ifdef YY_STDINIT
5374     yyin = stdin;
5375     yyout = stdout;
5376 #else
5377     yyin = (FILE *) 0;
5378     yyout = (FILE *) 0;
5379 #endif
5380 
5381     /* For future reference: Set errno on error, since we are called by
5382      * giac_yylex_init()
5383      */
5384     return 0;
5385 }
5386 
5387 /* giac_yylex_destroy is for both reentrant and non-reentrant scanners. */
giac_yylex_destroy(yyscan_t yyscanner)5388 int giac_yylex_destroy  (yyscan_t yyscanner)
5389 {
5390     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5391 
5392     /* Pop the buffer stack, destroying each element. */
5393 	while(YY_CURRENT_BUFFER){
5394 		giac_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
5395 		YY_CURRENT_BUFFER_LVALUE = NULL;
5396 		giac_yypop_buffer_state(yyscanner);
5397 	}
5398 
5399 	/* Destroy the stack itself. */
5400 	giac_yyfree(yyg->yy_buffer_stack ,yyscanner);
5401 	yyg->yy_buffer_stack = NULL;
5402 
5403     /* Destroy the start condition stack. */
5404         giac_yyfree(yyg->yy_start_stack ,yyscanner );
5405         yyg->yy_start_stack = NULL;
5406 
5407     /* Reset the globals. This is important in a non-reentrant scanner so the next time
5408      * giac_yylex() is called, initialization will occur. */
5409     yy_init_globals( yyscanner);
5410 
5411     /* Destroy the main struct (reentrant only). */
5412     giac_yyfree ( yyscanner , yyscanner );
5413     yyscanner = NULL;
5414     return 0;
5415 }
5416 
5417 /*
5418  * Internal utility routines.
5419  */
5420 
5421 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n,yyscan_t yyscanner)5422 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
5423 {
5424 	register int i;
5425 	for ( i = 0; i < n; ++i )
5426 		s1[i] = s2[i];
5427 }
5428 #endif
5429 
5430 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s,yyscan_t yyscanner)5431 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
5432 {
5433 	register int n;
5434 	for ( n = 0; s[n]; ++n )
5435 		;
5436 
5437 	return n;
5438 }
5439 #endif
5440 
giac_yyalloc(yy_size_t size,yyscan_t yyscanner)5441 void *giac_yyalloc (yy_size_t  size , yyscan_t yyscanner)
5442 {
5443 	return (void *) malloc( size );
5444 }
5445 
giac_yyrealloc(void * ptr,yy_size_t size,yyscan_t yyscanner)5446 void *giac_yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
5447 {
5448 	/* The cast to (char *) in the following accommodates both
5449 	 * implementations that use char* generic pointers, and those
5450 	 * that use void* generic pointers.  It works with the latter
5451 	 * because both ANSI C and C++ allow castless assignment from
5452 	 * any pointer type to void*, and deal with argument conversions
5453 	 * as though doing an assignment.
5454 	 */
5455 	return (void *) realloc( (char *) ptr, size );
5456 }
5457 
giac_yyfree(void * ptr,yyscan_t yyscanner)5458 void giac_yyfree (void * ptr , yyscan_t yyscanner)
5459 {
5460 	free( (char *) ptr );	/* see giac_yyrealloc() for (char *) cast */
5461 }
5462 
5463 #define YYTABLES_NAME "yytables"
5464 
5465 #line 913 "input_lexer.ll"
5466 
5467 
5468 
5469 /*
5470  *  Routines
5471  */
5472 #ifndef NO_NAMESPACE_GIAC
5473   namespace giac {
5474 #endif // ndef NO_NAMESPACE_GIAC
5475 
5476     // Set the input string
5477     // export GIAC_DEBUG=-2 to renew static_lexer.h/static_extern.h
set_lexer_string(const std::string & s_orig,yyscan_t & scanner,GIAC_CONTEXT)5478     YY_BUFFER_STATE set_lexer_string(const std::string &s_orig,yyscan_t & scanner,GIAC_CONTEXT){
5479 #if 0
5480 #ifdef NSPIRE
5481       FILE * f= fopen("/documents/log.tns","w"); // ends up in My Documents
5482       fprintf(f,"%s",s_orig.c_str());
5483       fclose(f);
5484 #else
5485       ofstream of("log"); // ends up in fir/windows/log
5486       of << s_orig<< '\n';
5487 #endif
5488 #endif
5489       if (abs_calc_mode(contextptr)==38 && s_orig==string(s_orig.size(),' '))
5490 	giac_yyerror(scanner,"Void string");
5491 #if !defined RTOS_THREADX && !defined NSPIRE && !defined FXCG && !defined GIAC_HAS_STO_38 && !defined NSPIRE_NEWLIB && !defined NUMWORKS
5492       if (!builtin_lexer_functions_sorted){
5493 #ifndef STATIC_BUILTIN_LEXER_FUNCTIONS
5494 	sort(builtin_lexer_functions_begin(),builtin_lexer_functions_end(),tri);
5495 #endif
5496 	builtin_lexer_functions_sorted=true;
5497 	int nfunc=builtin_lexer_functions_number;
5498 	if (debug_infolevel==-2 || debug_infolevel==-4 || debug_infolevel==-5){
5499 	  CERR << "Writing " << nfunc << " in static_lexer.h and static_extern.h "<< '\n';
5500 	  CERR << "Check at_FP->at_FRAC, at_IP->at_INT, at_lgamma->at_lower_incomplete_gamma, at_is_inside->at_est_dans, at_regroup->at_regrouper, at_ugamma->at_upper_incomplete_gamma, at_∡ -> at_polar_complex, at_LINEAR? -> at_IS_LINEAR" << '\n';
5501 	  /*
5502 	  ofstream static_add_ll("static_add.ll");
5503 	  for (int i=0;i<nfunc;i++){
5504 	    static_add_ll << "\"" << builtin_lexer_functions_begin()[i].first << "\" " ;
5505 	    static_add_ll << "*yylval=gen(at_" << translate_at(builtin_lexer_functions_begin()[i].first) << ",0); index_status(yyextra)=0; ";
5506 	    static_add_ll << "return " << signed(builtin_lexer_functions_begin()[i].second.subtype)+256 << ";" ;
5507             static_add_ll << '\n';
5508 	  }
5509 	  static_add_ll.close();
5510 	  */
5511 	  ofstream static_lexer("static_lexer.h");
5512 	  for (int i=0;i<nfunc;i++){
5513 	    static_lexer << "{\"" << builtin_lexer_functions_begin()[i].first << "\",13," << signed(builtin_lexer_functions_begin()[i].second.subtype) ;
5514 	    if (debug_infolevel==-2)
5515 	      static_lexer << ",0,*((ulonglong *) at_" << translate_at(builtin_lexer_functions_begin()[i].first) << ")";
5516 	    else
5517 	      static_lexer << ",0,0";
5518 	    if (builtin_lexer_functions_begin()[i].second._FUNCptr->quoted())
5519 	      static_lexer << "| 1";
5520 	    static_lexer << "}" ;
5521 	    if (i!=nfunc-1)
5522 	      static_lexer << ",";
5523 	    static_lexer << '\n';
5524 	  }
5525 	  static_lexer.close();
5526 	  if (debug_infolevel==-4){
5527 	    ofstream static_lexer_("static_lexer_.h");
5528 	    for (int i=0;i<nfunc;i++){
5529 	      static_lexer_ << "*((size_t *) at_" << translate_at(builtin_lexer_functions_begin()[i].first) << ")";
5530 	      if (i!=nfunc-1)
5531 		static_lexer_ << ",";
5532 	      static_lexer_ << '\n';
5533 	    }
5534 	    static_lexer_.close();
5535 	  }
5536 	  if (debug_infolevel==-5){
5537 	    ofstream static_lexer_("static_lexer_at.h");
5538 	    for (int i=0;i<nfunc;i++){
5539 	      static_lexer_ << "res->push_back(*(size_t *)at_" << translate_at(builtin_lexer_functions_begin()[i].first) <<")";
5540 	      if (i!=nfunc-1)
5541 		static_lexer_ << ",";
5542 	      static_lexer_ << '\n';
5543 	    }
5544 	    static_lexer_.close();
5545 	  }
5546 	  ofstream static_extern("static_extern.h");
5547 	  static_extern << "#ifndef STATIC_EXTERN" << '\n';
5548 	  static_extern << "#define STATIC_EXTERN" << '\n';
5549 	  static_extern << "namespace giac{" << '\n';
5550 	  static_extern << "struct unary_function_ptr;" << '\n';
5551 	  for (int i=0;i<nfunc;i++){
5552 	    static_extern << "extern const unary_function_ptr * const  at_" << translate_at(builtin_lexer_functions_begin()[i].first) << ";" << '\n';
5553 	  }
5554 	  static_extern << "}" << '\n';
5555 	  static_extern << "#endif // STATIC_EXTERN" << '\n';
5556 	  static_extern.close();
5557 	}
5558       }
5559 #endif // RTOS_THREADX
5560 #ifdef NUMWORKS
5561       char lexer_string[4096];
5562 #else
5563       string lexer_string;
5564 #endif
5565       {
5566 	string s(s_orig);
5567 #ifdef NUMWORKS
5568 	if (s.size()>=sizeof(lexer_string)-100)
5569 	  s="Parse_string_too_large";
5570 #endif
5571 	// change for Numworks built-in calculation app replacement
5572 	for (size_t i=0;i<s_orig.size();++i){
5573 	  if (s[i]==18)
5574 	    s[i]='(';
5575 	  if (s[i]==19)
5576 	    s[i]=')';
5577 	  if (i<s.size()-2 && (unsigned char)s[i]==226 && (unsigned char)s[i+1]==134 && (unsigned char)s[i+2]==146){
5578 	    s[i]=' ';
5579 	    s[i+1]='=';
5580 	    s[i+2]='>';
5581 	  }
5582 	  if (i<s.size()-1){
5583 	    if ( ((unsigned char)s[i]==195) && ((unsigned char)s[i+1]==151) ){
5584 	      s[i]='*';
5585 	      s[i+1]=' ';
5586 	    }
5587 #if defined NUMWORKS || defined NSPIRE || defined FXCG
5588 	    if (s[i]==']' && s[i+1]=='[')
5589 	      s.insert(s.begin()+i+1,',');
5590 #endif
5591 	  }
5592 	}
5593 	bool instring=false;
5594 	// stupid match of bracket then parenthesis
5595 	int l=s.size(),nb=0,np=0;
5596 	int i=0;
5597 	if (lexer_close_parenthesis(contextptr)){
5598 	  for (;i<l;++i){
5599 	    if (!instring && i && s[i]=='/' && s[i-1]=='/'){
5600 	      // skip comment until end of line
5601 	      for (;i<l;++i){
5602 		if (s[i]==13)
5603 		  break;
5604 	      }
5605 	      continue;
5606 	    }
5607 	    if (!instring && i>=2 && ( (s[i-2]=='-' && s[i-1]=='-') || (s[i-2]=='+' && s[i-1]=='+') ) && (s[i]=='.'|| (s[i]>='0' && s[i]<='9')) ){
5608 	      s[i-2]='+';
5609 	      s[i-1]=' ';
5610 	    }
5611 	    if (!instring && i && s[i]=='*' && s[i-1]=='/'){
5612 	      // skip comment
5613 	      for (;i<l;++i){
5614 		if (s[i]=='/' && s[i-1]=='*')
5615 		  break;
5616 	      }
5617 	      if (i==l){
5618 		s = s.substr(0,l-1)+"*/"+s[l-1];
5619 		CERR << "unfinished comment, adding */" << '\n' << s << '\n';
5620 	      }
5621 	      continue;
5622 	    }
5623 	    if (!instring && s[i]==92){
5624 	      i += 2;
5625 	      if (i>=l)
5626 		break;
5627 	    }
5628 	    if (instring){
5629 	      if (s[i]=='"'&& (i==0 || s[i-1]!='\\'))
5630 		instring=false;
5631 	    }
5632 	    else {
5633 	      switch (s[i]){
5634 	      case '"':
5635 		instring=i==0 || s[i-1]!='\\';
5636 		break;
5637 	      case '(':
5638 		++np;
5639 		break;
5640 	      case ')':
5641 		--np;
5642 		break;
5643 	      case '[':
5644 		++nb;
5645 		break;
5646 	      case ']':
5647 		--nb;
5648 		break;
5649 	      }
5650 	    }
5651 	  }
5652 	  if (nb<0)
5653 	    *logptr(contextptr) << "Too many ]" << '\n';
5654 	  if (np<0)
5655 	    *logptr(contextptr) << "Too many )" << '\n';
5656 	  while (np<0 && i>=0 && s[i-1]==')'){
5657 	    --i;
5658 	    ++np;
5659 	  }
5660 	  while (nb<0 && i>=0 && s[i-1]==']'){
5661 	    --i;
5662 	    ++nb;
5663 	  }
5664 	  s=s.substr(0,i);
5665 	  if (nb>0){
5666 	    *logptr(contextptr) << "Warning adding " << nb << " ] at end of input" << '\n';
5667 	    s += string(nb,']');
5668 	  }
5669 	  if (np>0){
5670 	    *logptr(contextptr) << "Warning adding " << np << " ) at end of input" << '\n';
5671 	    s += string(np,')');
5672 	  }
5673 	}
5674 	index_status(contextptr)=0;
5675 	opened_quote(contextptr)=0;
5676 	in_rpn(contextptr)=0;
5677 	lexer_line_number(contextptr)=1;
5678 	first_error_line(contextptr)=0;
5679 	spread_formula(contextptr)=0;
5680 	l=s.size();
5681 	for (;l;l--){
5682 	  if (s[l-1]!=' ')
5683 	    break;
5684 	}
5685 	// strings ending with :;
5686 	while (l>=4 && s[l-1]==';' && s[l-2]==':'){
5687 	  // skip spaces before :;
5688 	  int m;
5689 	  for (m=l-3;m>0;--m){
5690 	    if (s[m]!=' ')
5691 	      break;
5692 	  }
5693 	  if (m<=1 || s[m]!=';')
5694 	    break;
5695 	  if (s[m-1]==':')
5696 	    l = m+1;
5697 	  else {
5698 	    s[m]=':';
5699 	    s[m+1]=';';
5700 	    l=m+2;
5701 	  }
5702 	}
5703 	s=s.substr(0,l);
5704 	/* if (l && ( (s[l-1]==';') || (s[l-1]==':')))
5705 	   l--; */
5706 	string ss;
5707 	ss.reserve(s.size()*1.1);
5708 	for (int i=0;i<l;++i){
5709 	  if (s[i]=='\\' && s[i+1]=='\n'){
5710 	    ++i;
5711 	    continue;
5712 	  }
5713 	  if (i && (unsigned char)s[i]==0xc2 && (unsigned char)s[i+1]!=0xb0)
5714 	    ss += ' ';
5715 	  if ( (unsigned char)s[i]==0xef && i<l-3 ){
5716 	    if ((unsigned char)s[i+1]==0x80 && (unsigned char)s[i+2]==0x80 ){
5717 	      ss+='e';
5718 	      i+=2;
5719 	      continue;
5720 	    }
5721 	  }
5722 	  if ( (unsigned char)s[i]==0xe2 && i<l-3 ){
5723 	    if ((unsigned char)s[i+1]==134 && (unsigned char)s[i+2]==146){
5724 	      // 0xe2 0x86 0x92
5725 	      ss += ' ';
5726 	      ss += s[i];
5727 	      ++i;
5728 	      ss += s[i];
5729 	      ++i;
5730 	      ss += s[i];
5731 	      ss += ' ';
5732 	      continue;
5733 	    }
5734 	    if ((unsigned char)s[i+1]==0x89){
5735 	      ss += ' ';
5736 	      ss += s[i];
5737 	      ++i;
5738 	      ss += s[i];
5739 	      ++i;
5740 	      ss += s[i];
5741 	      ss += ' ';
5742 	      continue;
5743 	    } // 0xe2 0x89
5744 	    if ((unsigned char)s[i+1]==0x88){
5745 	      // mathop, add blank before and after except following an e/E
5746 	      if ((unsigned char) s[i+2]==0x91){ // sigma
5747 		ss += " SIGMA";
5748 		i +=2;
5749 		continue;
5750 	      }
5751 	      if ((unsigned char) s[i+2]==0x86){ // delta
5752 		ss += " DELTA";
5753 		i +=2;
5754 		continue;
5755 	      }
5756 	      if ((unsigned char) s[i+2]==0x8f){ // pi
5757 		ss += " PI";
5758 		i +=2;
5759 		continue;
5760 	      }
5761 	      if ( i>1 && (s[i-1]=='e' || s[i-1]=='E')){
5762 		ss +='-';
5763 		i +=2;
5764 		continue;
5765 	      }
5766 	      if (i>2  && (s[i-1]==' ' && (s[i-2]=='e' || s[i-2]=='E')) ){
5767 		ss[ss.size()-1] = '-';
5768 		i += 3;
5769 		continue;
5770 	      }
5771 	      ss += ' ';
5772 	      ss += s[i];
5773 	      ++i;
5774 	      ss += s[i];
5775 	      ++i;
5776 	      ss += s[i];
5777 	      ss += ' ';
5778 	      continue;
5779 	    } // 0xe2 0x88
5780 	    if ((unsigned char)s[i+1]==0x96 && ((unsigned char)s[i+2]==0xba || (unsigned char)s[i+2]==182 )){
5781 	      // sto
5782 	      ss += s[i];
5783 	      ++i;
5784 	      ss += s[i];
5785 	      ++i;
5786 	      ss += s[i];
5787 	      ss += ' ';
5788 	      continue;
5789 	    } // 0xe2 0x96
5790 	    if ((unsigned char)s[i+1]==0x86 && (unsigned char)s[i+2]==0x92){
5791 	      // sto
5792 	      ss += s[i];
5793 	      ++i;
5794 	      ss += s[i];
5795 	      ++i;
5796 	      ss += s[i];
5797 	      ss += ' ';
5798 	      continue;
5799 	    } // 0xe2 0x96
5800 	  } //end if s[i]=0xe2
5801 	  if (s[i]=='.'){
5802 	    if ( i && (i<l-1) && (s[i-1]!=' ') && (s[i+1]=='.') ){
5803 	      ss+= " ..";
5804 	      ++i;
5805 	    }
5806 	    else
5807 	      ss+='.';
5808 	  }
5809 	  else {
5810 	    if (xcas_mode(contextptr) > 0 && xcas_mode(contextptr) !=3){
5811 	      if (s[i]=='#')
5812 		ss += "//";
5813 	      else
5814 		ss += s[i];
5815 	    }
5816 	    else
5817 	      ss+=s[i];
5818 	  }
5819 	}
5820 	// ofstream of("log"); of << s << '\n' << ss << '\n'; of.close();
5821 	if (debug_infolevel>2)
5822 	  CERR << "lexer " << ss << '\n';
5823 	s.clear();
5824 #ifdef NUMWORKS
5825 	ss += " \n ÿ";
5826 	if (ss.size()>sizeof(lexer_string)-1)
5827 	  ss = "Parse_string_too_large";
5828 	strcpy(lexer_string,ss.c_str());
5829 #else
5830 	lexer_string = ss;
5831 	lexer_string += " \n ÿ";
5832 #endif
5833       }
5834       giac_yylex_init(&scanner);
5835       giac_yyset_extra(contextptr,scanner);
5836 #ifdef NUMWORKS
5837       currently_scanned(contextptr)=lexer_string;
5838       YY_BUFFER_STATE state=giac_yy_scan_string(lexer_string,scanner);
5839 #else
5840       currently_scanned(contextptr)=lexer_string.c_str();
5841       YY_BUFFER_STATE state=giac_yy_scan_string(lexer_string.c_str(),scanner);
5842 #endif
5843       return state;
5844     }
5845 
delete_lexer_string(YY_BUFFER_STATE & state,yyscan_t & scanner)5846     int delete_lexer_string(YY_BUFFER_STATE & state,yyscan_t & scanner){
5847       giac_yy_delete_buffer(state,scanner);
5848       giac_yylex_destroy(scanner);
5849       return 1;
5850     }
5851 #ifdef STATIC_BUILTIN_LEXER_FUNCTIONS
CasIsBuildInFunction(char const * s,gen & g)5852     bool CasIsBuildInFunction(char const *s, gen &g){
5853       // binary search in builtin_lexer_functions
5854       int i=0, j=builtin_lexer_functions_number-1;
5855       int cmp;
5856       cmp= strcmp(s,builtin_lexer_functions[i].s);
5857       if (cmp==0) goto found; if (cmp<0) return false;
5858       cmp= strcmp(s,builtin_lexer_functions[j].s);
5859       if (cmp==0) { i=j; goto found; } if (cmp>0) return false;
5860       while (1){
5861         if (i+1>=j) return false;
5862         int mid= (i+j)/2;
5863         cmp= strcmp(s,builtin_lexer_functions[mid].s);
5864         if (cmp==0) { i=mid; goto found; }
5865         if (cmp>0) i= mid; else j=mid;
5866       }
5867     found:
5868 #if defined NSPIRE
5869       g= gen(int((*builtin_lexer_functions_())[i]+builtin_lexer_functions[i]._FUNC_));
5870 #else
5871       g= gen(int(builtin_lexer_functions_[i]+builtin_lexer_functions[i]._FUNC_));
5872 #endif
5873       g= gen(*g._FUNCptr);
5874       return true;
5875     }
5876 #endif
5877 
5878 #ifndef NO_NAMESPACE_GIAC
5879   } // namespace giac
5880 #endif // ndef NO_NAMESPACE_GIAC
5881 
5882 
5883