cprover
jsil_lex.yy.cpp
Go to the documentation of this file.
1 #line 2 "jsil_lex.yy.cpp"
2 
3 #line 4 "jsil_lex.yy.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define yy_create_buffer yyjsil_create_buffer
10 #define yy_delete_buffer yyjsil_delete_buffer
11 #define yy_flex_debug yyjsil_flex_debug
12 #define yy_init_buffer yyjsil_init_buffer
13 #define yy_flush_buffer yyjsil_flush_buffer
14 #define yy_load_buffer_state yyjsil_load_buffer_state
15 #define yy_switch_to_buffer yyjsil_switch_to_buffer
16 #define yyin yyjsilin
17 #define yyleng yyjsilleng
18 #define yylex yyjsillex
19 #define yylineno yyjsillineno
20 #define yyout yyjsilout
21 #define yyrestart yyjsilrestart
22 #define yytext yyjsiltext
23 #define yywrap yyjsilwrap
24 #define yyalloc yyjsilalloc
25 #define yyrealloc yyjsilrealloc
26 #define yyfree yyjsilfree
27 
28 #define FLEX_SCANNER
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 6
31 #define YY_FLEX_SUBMINOR_VERSION 1
32 #if YY_FLEX_SUBMINOR_VERSION > 0
33 #define FLEX_BETA
34 #endif
35 
36 /* First, we deal with platform-specific or compiler-specific issues. */
37 
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43 
44 /* end standard C headers. */
45 
46 /* flex integer type definitions */
47 
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50 
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52 
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54 
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56  * if you want the limit (max/min) macros for int types.
57  */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61 
62 #include <inttypes.h>
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
76 
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX (4294967295U)
104 #endif
105 
106 #endif /* ! C99 */
107 
108 #endif /* ! FLEXINT_H */
109 
110 /* TODO: this is always defined, so inline it */
111 #define yyconst const
112 
113 #if defined(__GNUC__) && __GNUC__ >= 3
114 #define yynoreturn __attribute__((__noreturn__))
115 #else
116 #define yynoreturn
117 #endif
118 
119 /* Returned upon end-of-file. */
120 #define YY_NULL 0
121 
122 /* Promotes a possibly negative, possibly signed char to an unsigned
123  * integer for use as an array index. If the signed char is negative,
124  * we want to instead treat it as an 8-bit unsigned char, hence the
125  * double cast.
126  */
127 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
128 
129 /* Enter a start condition. This macro really ought to take a parameter,
130  * but we do it the disgusting crufty way forced on us by the ()-less
131  * definition of BEGIN.
132  */
133 #define BEGIN (yy_start) = 1 + 2 *
134 
135 /* Translate the current start state into a value that can be later handed
136  * to BEGIN to return to the state. The YYSTATE alias is for lex
137  * compatibility.
138  */
139 #define YY_START (((yy_start) - 1) / 2)
140 #define YYSTATE YY_START
141 
142 /* Action number for EOF rule of a given start state. */
143 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
144 
145 /* Special action meaning "start processing a new file". */
146 #define YY_NEW_FILE yyjsilrestart(yyjsilin )
147 
148 #define YY_END_OF_BUFFER_CHAR 0
149 
150 /* Size of default input buffer. */
151 #ifndef YY_BUF_SIZE
152 #ifdef __ia64__
153 /* On IA-64, the buffer size is 16k, not 8k.
154  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
155  * Ditto for the __ia64__ case accordingly.
156  */
157 #define YY_BUF_SIZE 32768
158 #else
159 #define YY_BUF_SIZE 16384
160 #endif /* __ia64__ */
161 #endif
162 
163 /* The state buf must be large enough to hold one state per character in the main buffer.
164  */
165 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
166 
167 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
168 #define YY_TYPEDEF_YY_BUFFER_STATE
170 #endif
171 
172 #ifndef YY_TYPEDEF_YY_SIZE_T
173 #define YY_TYPEDEF_YY_SIZE_T
174 typedef size_t yy_size_t;
175 #endif
176 
177 extern int yyjsilleng;
178 
179 extern FILE *yyjsilin, *yyjsilout;
180 
181 #define EOB_ACT_CONTINUE_SCAN 0
182 #define EOB_ACT_END_OF_FILE 1
183 #define EOB_ACT_LAST_MATCH 2
184 
185  #define YY_LESS_LINENO(n)
186  #define YY_LINENO_REWIND_TO(ptr)
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 yyjsiltext. */ \
193  yy_size_t yyless_macro_arg = (n); \
194  YY_LESS_LINENO(yyless_macro_arg);\
195  *yy_cp = (yy_hold_char); \
196  YY_RESTORE_YY_MORE_OFFSET \
197  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
198  YY_DO_BEFORE_ACTION; /* set up yyjsiltext again */ \
199  } \
200  while ( 0 )
201 
202 #define unput(c) yyunput( c, (yytext_ptr) )
203 
204 #ifndef YY_STRUCT_YY_BUFFER_STATE
205 #define YY_STRUCT_YY_BUFFER_STATE
206 struct yy_buffer_state
207  {
208  FILE *yy_input_file;
209 
210  char *yy_ch_buf; /* input buffer */
211  char *yy_buf_pos; /* current position in input buffer */
212 
213  /* Size of input buffer in bytes, not including room for EOB
214  * characters.
215  */
216  int yy_buf_size;
217 
218  /* Number of characters read into yy_ch_buf, not including EOB
219  * characters.
220  */
221  int yy_n_chars;
222 
223  /* Whether we "own" the buffer - i.e., we know we created it,
224  * and can realloc() it to grow it, and should free() it to
225  * delete it.
226  */
227  int yy_is_our_buffer;
228 
229  /* Whether this is an "interactive" input source; if so, and
230  * if we're using stdio for input, then we want to use getc()
231  * instead of fread(), to make sure we stop fetching input after
232  * each newline.
233  */
234  int yy_is_interactive;
235 
236  /* Whether we're considered to be at the beginning of a line.
237  * If so, '^' rules will be active on the next match, otherwise
238  * not.
239  */
240  int yy_at_bol;
241 
242  int yy_bs_lineno;
243  int yy_bs_column;
245  /* Whether to try to fill the input buffer when we reach the
246  * end of it.
247  */
248  int yy_fill_buffer;
249 
250  int yy_buffer_status;
251 
252 #define YY_BUFFER_NEW 0
253 #define YY_BUFFER_NORMAL 1
254  /* When an EOF's been seen but there's still some text to process
255  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
256  * shouldn't try reading from the input source any more. We might
257  * still have a bunch of tokens to match, though, because of
258  * possible backing-up.
259  *
260  * When we actually see the EOF, we change the status to "new"
261  * (via yyjsilrestart()), so that the user can continue scanning by
262  * just pointing yyjsilin at a new input file.
263  */
264 #define YY_BUFFER_EOF_PENDING 2
265 
266  };
267 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
268 
269 /* Stack of input buffers. */
270 static size_t yy_buffer_stack_top = 0;
271 static size_t yy_buffer_stack_max = 0;
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 ( (yy_buffer_stack) \
281  ? (yy_buffer_stack)[(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 (yy_buffer_stack)[(yy_buffer_stack_top)]
288 
289 /* yy_hold_char holds the character lost when yyjsiltext is formed. */
290 static char yy_hold_char;
291 static int yy_n_chars; /* number of characters read into yy_ch_buf */
293 
294 /* Points to current character in buffer. */
295 static char *yy_c_buf_p = NULL;
296 static int yy_init = 0; /* whether we need to initialize */
297 static int yy_start = 0; /* start state number */
298 
299 /* Flag which is used to allow yyjsilwrap()'s to do buffer switches
300  * instead of setting up a fresh yyjsilin. A bit of a hack ...
301  */
303 
304 void yyjsilrestart (FILE *input_file );
305 void yyjsil_switch_to_buffer (YY_BUFFER_STATE new_buffer );
306 YY_BUFFER_STATE yyjsil_create_buffer (FILE *file,int size );
309 void yyjsilpush_buffer_state (YY_BUFFER_STATE new_buffer );
310 void yyjsilpop_buffer_state (void );
311 
312 static void yyjsilensure_buffer_stack (void );
313 static void yyjsil_load_buffer_state (void );
314 static void yyjsil_init_buffer (YY_BUFFER_STATE b,FILE *file );
315 
316 #define YY_FLUSH_BUFFER yyjsil_flush_buffer(YY_CURRENT_BUFFER )
317 
318 YY_BUFFER_STATE yyjsil_scan_buffer (char *base,yy_size_t size );
320 YY_BUFFER_STATE yyjsil_scan_bytes (yyconst char *bytes,int len );
321 
322 void *yyjsilalloc (yy_size_t );
323 void *yyjsilrealloc (void *,yy_size_t );
324 void yyjsilfree (void * );
325 
326 #define yy_new_buffer yyjsil_create_buffer
327 
328 #define yy_set_interactive(is_interactive) \
329  { \
330  if ( ! YY_CURRENT_BUFFER ){ \
331  yyjsilensure_buffer_stack (); \
332  YY_CURRENT_BUFFER_LVALUE = \
333  yyjsil_create_buffer(yyjsilin,YY_BUF_SIZE ); \
334  } \
335  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
336  }
337 
338 #define yy_set_bol(at_bol) \
339  { \
340  if ( ! YY_CURRENT_BUFFER ){\
341  yyjsilensure_buffer_stack (); \
342  YY_CURRENT_BUFFER_LVALUE = \
343  yyjsil_create_buffer(yyjsilin,YY_BUF_SIZE ); \
344  } \
345  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
346  }
347 
348 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
349 
350 /* Begin user sect3 */
351 
352 typedef unsigned char YY_CHAR;
353 
354 FILE *yyjsilin = NULL, *yyjsilout = NULL;
355 
356 typedef int yy_state_type;
357 
358 extern int yyjsillineno;
359 
360 int yyjsillineno = 1;
361 
362 extern char *yyjsiltext;
363 #ifdef yytext_ptr
364 #undef yytext_ptr
365 #endif
366 #define yytext_ptr yyjsiltext
367 
368 static yy_state_type yy_get_previous_state (void );
369 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
370 static int yy_get_next_buffer (void );
371 static void yynoreturn yy_fatal_error (yyconst char* msg );
372 
373 /* Done after the current pattern has been matched and before the
374  * corresponding action - sets up yyjsiltext.
375  */
376 #define YY_DO_BEFORE_ACTION \
377  (yytext_ptr) = yy_bp; \
378  yyjsilleng = (int) (yy_cp - yy_bp); \
379  (yy_hold_char) = *yy_cp; \
380  *yy_cp = '\0'; \
381  (yy_c_buf_p) = yy_cp;
382 
383 #define YY_NUM_RULES 183
384 #define YY_END_OF_BUFFER 184
385 /* This struct is not used in this scanner,
386  but its presence is necessary. */
387 struct yy_trans_info
388  {
391  };
393  { 0,
394  0, 0, 0, 0, 5, 5, 0, 0, 10, 10,
395  0, 0, 184, 1, 84, 77, 76, 76, 84, 84,
396  82, 84, 82, 82, 82, 83, 5, 7, 6, 6,
397  17, 15, 17, 17, 17, 17, 10, 12, 11, 11,
398  182, 86, 85, 85, 182, 182, 182, 182, 138, 182,
399  182, 182, 137, 182, 137, 137, 137, 137, 137, 137,
400  137, 137, 137, 137, 137, 137, 137, 137, 137, 181,
401  77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403  2, 82, 76, 82, 82, 82, 80, 5, 3, 4,
404 
405  15, 0, 14, 0, 16, 17, 10, 8, 9, 86,
406  0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
407  0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
408  138, 138, 0, 128, 132, 133, 129, 134, 137, 85,
409  137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
410  137, 137, 131, 137, 137, 137, 137, 137, 137, 137,
411  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413  0, 0, 82, 82, 82, 0, 0, 0, 0, 0,
414  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415 
416  0, 0, 0, 139, 0, 0, 0, 0, 0, 0,
417  0, 0, 0, 0, 0, 0, 0, 138, 0, 0,
418  138, 135, 130, 137, 137, 137, 137, 137, 137, 137,
419  137, 92, 136, 137, 137, 137, 97, 137, 137, 137,
420  137, 137, 0, 0, 0, 0, 0, 0, 0, 0,
421  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423  0, 0, 82, 82, 82, 0, 0, 0, 0, 0,
424  0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
425  179, 0, 0, 166, 150, 0, 0, 147, 0, 0,
426 
427  0, 0, 170, 0, 0, 142, 0, 0, 0, 175,
428  0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
429  0, 138, 99, 137, 87, 137, 137, 89, 137, 137,
430  101, 137, 137, 90, 137, 104, 137, 91, 0, 0,
431  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
432  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433  0, 0, 0, 0, 0, 0, 0, 0, 82, 82,
434  82, 0, 0, 0, 119, 0, 0, 0, 0, 0,
435  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
436  0, 0, 0, 0, 0, 0, 0, 0, 0, 152,
437 
438  0, 156, 0, 0, 0, 154, 0, 0, 0, 0,
439  0, 0, 0, 137, 105, 98, 137, 88, 137, 137,
440  137, 137, 0, 0, 0, 0, 0, 0, 0, 0,
441  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
442  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443  0, 0, 82, 82, 81, 0, 0, 0, 0, 0,
444  0, 0, 0, 0, 0, 112, 0, 103, 0, 0,
445  0, 0, 0, 148, 0, 0, 180, 173, 0, 0,
446  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
447  0, 0, 0, 0, 106, 108, 0, 0, 94, 137,
448 
449  137, 137, 137, 137, 100, 0, 0, 0, 0, 0,
450  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
451  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
452  0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
453  79, 0, 0, 0, 123, 126, 0, 122, 0, 0,
454  0, 0, 178, 0, 0, 0, 149, 0, 0, 0,
455  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456  0, 0, 0, 0, 0, 0, 0, 0, 0, 137,
457  137, 137, 137, 137, 0, 0, 0, 0, 0, 0,
458  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
459 
460  0, 54, 0, 57, 0, 0, 0, 0, 0, 0,
461  0, 0, 0, 0, 0, 0, 0, 0, 82, 121,
462  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
463  0, 0, 0, 0, 0, 0, 169, 163, 0, 0,
464  0, 0, 151, 155, 0, 0, 174, 153, 0, 0,
465  0, 0, 93, 137, 137, 137, 137, 96, 137, 0,
466  0, 52, 0, 53, 0, 0, 65, 70, 0, 68,
467  67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469  0, 0, 0, 0, 0, 0, 78, 0, 0, 0,
470 
471  0, 0, 0, 0, 165, 0, 0, 0, 0, 0,
472  140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
473  0, 0, 0, 0, 137, 137, 137, 137, 137, 0,
474  0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
475  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
477  0, 0, 0, 0, 0, 0, 0, 0, 127, 120,
478  0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
479  0, 0, 0, 0, 0, 0, 0, 161, 110, 0,
480  102, 137, 137, 137, 95, 137, 0, 0, 72, 0,
481 
482  0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
483  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
484  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
485  0, 0, 0, 0, 0, 0, 125, 0, 0, 0,
486  0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
487  0, 0, 162, 0, 137, 137, 137, 137, 0, 0,
488  0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
489  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
490  0, 30, 0, 0, 24, 0, 0, 0, 0, 0,
491  0, 34, 0, 0, 0, 0, 0, 0, 0, 109,
492 
493  0, 168, 158, 141, 0, 172, 0, 0, 0, 144,
494  159, 0, 177, 0, 115, 137, 137, 137, 0, 0,
495  0, 66, 69, 0, 0, 0, 0, 0, 0, 0,
496  20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
497  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
498  0, 0, 0, 0, 0, 167, 171, 0, 0, 143,
499  160, 176, 0, 113, 116, 114, 0, 0, 0, 0,
500  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
501  45, 0, 0, 0, 18, 0, 0, 0, 0, 0,
502  0, 0, 0, 0, 0, 0, 0, 124, 0, 0,
503 
504  0, 0, 0, 0, 0, 74, 0, 0, 55, 0,
505  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507  0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
508  0, 0, 56, 0, 58, 49, 0, 0, 0, 0,
509  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510  0, 0, 0, 0, 0, 117, 0, 0, 0, 73,
511  0, 0, 59, 0, 0, 0, 0, 0, 0, 0,
512  0, 19, 31, 0, 25, 0, 0, 0, 0, 0,
513  35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
514 
515  0, 0, 21, 0, 0, 0, 0, 0, 0, 0,
516  0, 0, 0, 0, 0, 0, 0, 118, 0, 145,
517  0, 0, 0, 0, 0, 0, 0, 0, 46, 0,
518  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522  71, 0, 0, 0, 60, 0, 0, 0, 0, 38,
523  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 
526  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527  0, 0, 40, 41, 0, 0, 39, 0, 0, 75,
528  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530  0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
531  0, 0, 0, 0, 0, 0, 44, 0, 0, 0,
532  0, 51, 0, 0, 42, 47, 0, 0, 0, 0,
533  0, 0, 0, 0, 164, 62, 0, 50, 0, 0,
534  0, 33, 0, 0, 27, 43, 0, 37, 0, 0,
535  23, 32, 0, 26, 36, 61, 22, 0, 0, 0,
536 
537  0, 0, 28, 0
538  } ;
539 
540 static yyconst YY_CHAR yy_ec[256] =
541  { 0,
542  1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
543  4, 4, 2, 1, 1, 1, 1, 1, 1, 1,
544  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
545  1, 2, 1, 5, 6, 1, 1, 1, 1, 1,
546  1, 7, 8, 1, 8, 9, 10, 11, 11, 12,
547  13, 11, 11, 11, 11, 11, 11, 14, 1, 15,
548  16, 17, 1, 1, 18, 19, 20, 21, 22, 23,
549  24, 25, 26, 27, 27, 27, 28, 29, 30, 31,
550  27, 32, 33, 34, 35, 36, 27, 27, 27, 27,
551  37, 38, 39, 1, 40, 1, 41, 42, 43, 44,
552 
553  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
554  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
555  65, 64, 66, 1, 67, 1, 1, 1, 1, 1,
556  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
560  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 
564  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
566  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569  1, 1, 1, 1, 1
570  } ;
571 
572 static yyconst YY_CHAR yy_meta[68] =
573  { 0,
574  1, 1, 2, 1, 1, 1, 3, 1, 4, 3,
575  4, 4, 4, 1, 1, 1, 1, 4, 4, 4,
576  4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
577  4, 4, 4, 4, 4, 4, 1, 1, 1, 4,
578  4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
579  4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
580  4, 4, 4, 4, 4, 1, 1
581  } ;
582 
584  { 0,
585  0, 0, 0, 0, 65, 66, 75, 79, 83, 84,
586  117, 0, 1488, 1489, 1489, 1485, 1489, 1489, 167, 1479,
587  0, 1482, 1426, 1438, 23, 1489, 0, 1489, 1472, 1474,
588  1489, 1478, 1489, 65, 1472, 1475, 0, 1489, 1467, 1469,
589  1489, 1473, 1489, 1489, 69, 211, 84, 1467, 264, 1457,
590  84, 1455, 0, 1468, 1416, 1428, 1423, 1405, 60, 1411,
591  1424, 1423, 47, 1405, 1404, 1416, 54, 46, 1411, 1489,
592  1457, 1416, 1409, 1411, 1396, 1393, 1393, 1397, 1414, 1392,
593  1394, 48, 1387, 1395, 1385, 1403, 71, 143, 1399, 1385,
594  1489, 0, 1489, 1387, 1381, 1382, 0, 0, 1489, 1489,
595 
596  1437, 77, 1489, 0, 1489, 1489, 0, 1489, 1489, 1436,
597  181, 1489, 0, 134, 1392, 1375, 1393, 1389, 1373, 138,
598  1391, 144, 149, 145, 269, 1373, 172, 175, 180, 238,
599  267, 281, 287, 1489, 1489, 1489, 1489, 1413, 0, 1489,
600  1385, 1369, 1375, 1385, 1373, 1379, 1363, 1363, 1379, 1357,
601  1359, 171, 0, 1363, 1371, 1367, 1357, 1353, 1357, 1352,
602  1352, 1365, 1349, 1388, 1347, 1348, 302, 260, 1347, 1349,
603  1345, 1361, 1347, 1345, 1346, 1348, 1343, 1338, 1337, 1336,
604  1335, 1343, 1348, 1329, 1334, 1333, 1338, 1333, 209, 1335,
605  1338, 1325, 1338, 1336, 1322, 1338, 1324, 1321, 1332, 246,
606 
607  232, 278, 149, 1335, 1315, 1332, 203, 226, 256, 293,
608  1327, 1313, 258, 1315, 1311, 1324, 331, 334, 346, 339,
609  349, 1489, 0, 1322, 1321, 1313, 1305, 1311, 1307, 1338,
610  1315, 0, 0, 1307, 1318, 1297, 0, 1300, 1306, 1309,
611  1308, 1304, 1291, 1307, 1313, 1307, 1311, 1297, 1290, 1283,
612  1301, 1284, 1281, 1291, 1294, 1293, 1296, 1275, 1294, 1282,
613  1278, 1280, 1288, 1288, 1287, 1283, 1280, 1268, 1267, 1275,
614  1265, 1277, 1276, 1262, 1256, 1266, 1265, 1274, 1263, 1272,
615  1268, 1267, 1262, 1265, 1251, 1259, 1248, 1247, 1245, 1489,
616  1489, 1246, 1248, 1262, 1489, 1243, 1259, 1489, 1245, 1249,
617 
618  1242, 1236, 1255, 1241, 1243, 1252, 1237, 250, 262, 1250,
619  1231, 307, 1239, 1234, 1226, 1229, 1237, 1238, 355, 358,
620  361, 364, 0, 1222, 0, 1236, 1236, 0, 1230, 1226,
621  0, 1217, 1221, 0, 1221, 0, 1244, 0, 1215, 1221,
622  1230, 1218, 1228, 1225, 1212, 1213, 1215, 1215, 1205, 1208,
623  1215, 1200, 1200, 1198, 1192, 1211, 1197, 1209, 1193, 1211,
624  1206, 1207, 1204, 1193, 1192, 1192, 1190, 1186, 1199, 1188,
625  1182, 1195, 1179, 1193, 1489, 1192, 1193, 1177, 335, 1188,
626  1203, 1191, 1172, 1170, 1164, 1187, 1175, 320, 1171, 1173,
627  1181, 1164, 1168, 1173, 321, 1178, 1174, 335, 1171, 1489,
628 
629  1159, 1489, 1158, 325, 1166, 1489, 1156, 1168, 1150, 1156,
630  1165, 1164, 1162, 1162, 0, 0, 1161, 0, 1150, 318,
631  1157, 1157, 1161, 1171, 1148, 1147, 1146, 1137, 1144, 1153,
632  1149, 1140, 1143, 1131, 276, 369, 1159, 1150, 1148, 1146,
633  1146, 1127, 1135, 1131, 1124, 1121, 1135, 1121, 1120, 1130,
634  1118, 1117, 1113, 1114, 0, 1131, 1122, 1112, 1111, 1108,
635  1122, 1119, 1116, 1122, 1121, 1489, 1104, 1489, 1096, 1115,
636  1104, 1117, 1099, 1111, 1095, 365, 1489, 1489, 1099, 1112,
637  1107, 1108, 1091, 1094, 1107, 1102, 1091, 1090, 1089, 1102,
638  1088, 1086, 1082, 1098, 1489, 1489, 1078, 1088, 0, 1084,
639 
640  1095, 1085, 1091, 1092, 0, 1088, 1088, 1068, 1087, 1066,
641  1104, 1080, 1079, 1080, 1073, 1067, 1107, 1058, 1064, 1072,
642  1055, 1052, 1075, 1055, 1073, 1068, 1056, 1066, 1050, 1052,
643  1066, 1065, 1064, 1045, 1062, 1061, 1060, 1059, 1043, 1039,
644  0, 1042, 1041, 1062, 1489, 1489, 1039, 1489, 1038, 1041,
645  1038, 1028, 1489, 1047, 1054, 1034, 1489, 1027, 1035, 1034,
646  1041, 1048, 1028, 1021, 1018, 1046, 1043, 1023, 1029, 1015,
647  1014, 1038, 1018, 1022, 1010, 1009, 1014, 1019, 1010, 1019,
648  337, 1017, 1011, 1000, 999, 1008, 1012, 1014, 1010, 997,
649  1012, 994, 991, 990, 1002, 1036, 995, 1001, 999, 990,
650 
651  989, 1489, 987, 1489, 350, 1001, 999, 984, 984, 988,
652  350, 357, 978, 992, 991, 358, 990, 974, 986, 1489,
653  1000, 984, 985, 982, 981, 980, 981, 969, 962, 960,
654  962, 964, 964, 963, 956, 954, 1489, 974, 955, 952,
655  950, 952, 1489, 1489, 949, 947, 1489, 1489, 952, 945,
656  944, 959, 0, 949, 942, 952, 948, 0, 944, 966,
657  952, 1489, 944, 1489, 934, 938, 958, 1489, 939, 953,
658  1489, 921, 58, 149, 175, 202, 180, 203, 220, 359,
659  244, 247, 315, 305, 362, 349, 368, 365, 353, 357,
660  375, 377, 378, 362, 380, 382, 0, 382, 379, 381,
661 
662  383, 385, 397, 370, 1489, 373, 387, 379, 381, 387,
663  1489, 379, 393, 392, 385, 383, 397, 385, 386, 400,
664  388, 402, 394, 405, 390, 393, 398, 409, 414, 410,
665  413, 412, 417, 1489, 401, 398, 403, 426, 400, 403,
666  405, 408, 422, 416, 410, 429, 413, 420, 433, 431,
667  435, 424, 423, 423, 427, 426, 421, 427, 425, 433,
668  434, 436, 435, 435, 439, 449, 443, 449, 1489, 1489,
669  435, 451, 448, 449, 469, 442, 1489, 441, 453, 473,
670  459, 445, 457, 477, 453, 460, 480, 455, 1489, 469,
671  1489, 500, 465, 455, 0, 462, 465, 458, 1489, 467,
672 
673  471, 476, 473, 482, 470, 473, 477, 472, 470, 1489,
674  469, 478, 477, 477, 493, 491, 494, 478, 491, 486,
675  480, 480, 489, 483, 503, 484, 506, 495, 496, 498,
676  492, 492, 501, 513, 510, 498, 1489, 511, 514, 505,
677  514, 505, 517, 509, 518, 505, 511, 513, 522, 511,
678  516, 525, 1489, 512, 561, 520, 562, 515, 536, 558,
679  530, 527, 1489, 528, 530, 552, 524, 530, 530, 527,
680  530, 537, 531, 531, 549, 552, 542, 541, 541, 548,
681  557, 1489, 539, 545, 1489, 541, 546, 548, 561, 565,
682  566, 1489, 547, 553, 569, 558, 568, 567, 568, 1489,
683 
684  567, 1489, 1489, 1489, 568, 1489, 576, 557, 571, 1489,
685  563, 573, 1489, 572, 0, 575, 611, 571, 565, 571,
686  567, 1489, 1489, 567, 571, 591, 577, 587, 568, 573,
687  1489, 575, 581, 582, 586, 587, 581, 581, 588, 589,
688  586, 585, 588, 589, 588, 608, 607, 608, 594, 593,
689  611, 603, 596, 603, 600, 1489, 1489, 603, 595, 1489,
690  1489, 1489, 606, 0, 0, 0, 613, 618, 599, 620,
691  611, 628, 629, 611, 631, 628, 614, 613, 620, 623,
692  1489, 616, 622, 629, 1489, 618, 615, 620, 627, 618,
693  632, 630, 631, 626, 623, 634, 650, 1489, 648, 647,
694 
695  635, 638, 641, 641, 639, 665, 660, 644, 1489, 662,
696  642, 664, 644, 644, 641, 648, 668, 651, 650, 651,
697  669, 657, 671, 655, 660, 665, 664, 665, 677, 665,
698  668, 680, 679, 671, 671, 682, 1489, 674, 686, 689,
699  692, 687, 1489, 668, 1489, 1489, 691, 679, 676, 694,
700  677, 679, 695, 681, 697, 683, 689, 700, 706, 688,
701  689, 689, 705, 692, 697, 1489, 710, 694, 725, 1489,
702  707, 704, 1489, 700, 738, 700, 716, 704, 708, 721,
703  700, 1489, 1489, 726, 1489, 707, 728, 726, 710, 712,
704  1489, 733, 714, 721, 731, 722, 732, 737, 735, 716,
705 
706  737, 723, 1489, 744, 724, 732, 727, 732, 729, 725,
707  743, 738, 736, 737, 736, 739, 740, 1489, 740, 1489,
708  749, 768, 786, 760, 750, 749, 767, 753, 1489, 768,
709  759, 774, 760, 758, 763, 778, 766, 760, 761, 768,
710  783, 765, 767, 763, 784, 765, 773, 787, 794, 793,
711  786, 781, 796, 778, 779, 800, 801, 790, 798, 804,
712  805, 794, 788, 805, 806, 810, 799, 809, 795, 798,
713  1489, 799, 798, 811, 1489, 797, 805, 820, 809, 1489,
714  804, 820, 805, 804, 826, 811, 809, 808, 810, 811,
715  812, 814, 813, 815, 815, 832, 833, 838, 839, 829,
716 
717  835, 824, 823, 824, 845, 827, 843, 834, 832, 831,
718  847, 835, 1489, 1489, 834, 850, 1489, 853, 857, 1489,
719  833, 838, 840, 862, 842, 858, 861, 853, 848, 867,
720  862, 854, 852, 871, 851, 855, 874, 855, 861, 878,
721  866, 880, 881, 863, 882, 863, 872, 876, 871, 1489,
722  867, 879, 874, 887, 882, 877, 1489, 887, 895, 875,
723  897, 1489, 888, 883, 1489, 1489, 885, 894, 886, 888,
724  897, 884, 891, 900, 1489, 1489, 908, 1489, 894, 903,
725  903, 1489, 891, 905, 1489, 1489, 906, 1489, 915, 908,
726  1489, 1489, 891, 1489, 1489, 1489, 1489, 901, 913, 919,
727 
728  905, 915, 1489, 1489, 961, 965, 969, 973, 974, 978,
729  982, 986, 990, 976
730  } ;
731 
733  { 0,
734  1305, 1305, 1304, 3, 1306, 1306, 1307, 1307, 1308, 1308,
735  1304, 11, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
736  1309, 1304, 1309, 1309, 1309, 1304, 1310, 1304, 1304, 1304,
737  1304, 1304, 1304, 1311, 1304, 1304, 1312, 1304, 1304, 1304,
738  1304, 1304, 1304, 1304, 1313, 1304, 1304, 1304, 1304, 1304,
739  1304, 1304, 1314, 1304, 1314, 1314, 1314, 1314, 1314, 1314,
740  1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1304,
741  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
742  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
743  1304, 1309, 1304, 1309, 1309, 1309, 1309, 1310, 1304, 1304,
744 
745  1304, 1311, 1304, 1311, 1304, 1304, 1312, 1304, 1304, 1304,
746  1313, 1304, 1313, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
747  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
748  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1314, 1304,
749  1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
750  1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
751  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
752  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
753  1304, 1304, 1309, 1309, 1309, 1304, 1304, 1304, 1304, 1304,
754  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
755 
756  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
757  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
758  1304, 1304, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
759  1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
760  1314, 1314, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
761  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
762  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
763  1304, 1304, 1309, 1309, 1309, 1304, 1304, 1304, 1304, 1304,
764  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
765  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
766 
767  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
768  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
769  1304, 1304, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
770  1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1304, 1304,
771  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
772  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
773  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1309, 1309,
774  1309, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
775  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
776  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
777 
778  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
779  1304, 1304, 1304, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
780  1314, 1314, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
781  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
782  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
783  1304, 1304, 1309, 1309, 1309, 1304, 1304, 1304, 1304, 1304,
784  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
785  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
786  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
787  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1314, 1314,
788 
789  1314, 1314, 1314, 1314, 1314, 1304, 1304, 1304, 1304, 1304,
790  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
791  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
792  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1309,
793  1309, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
794  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
795  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
796  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1314,
797  1314, 1314, 1314, 1314, 1304, 1304, 1304, 1304, 1304, 1304,
798  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
799 
800  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
801  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1309, 1304,
802  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
803  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
804  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
805  1304, 1304, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1304,
806  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
807  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
808  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
809  1304, 1304, 1304, 1304, 1304, 1304, 1309, 1304, 1304, 1304,
810 
811  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
812  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
813  1304, 1304, 1304, 1304, 1314, 1314, 1314, 1314, 1314, 1304,
814  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
815  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
816  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
817  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
818  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
819  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
820  1304, 1314, 1314, 1314, 1314, 1314, 1304, 1304, 1304, 1304,
821 
822  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
823  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
824  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
825  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
826  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
827  1304, 1304, 1304, 1304, 1314, 1314, 1314, 1314, 1304, 1304,
828  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
829  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
830  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
831  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
832 
833  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
834  1304, 1304, 1304, 1304, 1314, 1314, 1314, 1314, 1304, 1304,
835  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
836  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
837  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
838  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
839  1304, 1304, 1304, 1314, 1314, 1314, 1304, 1304, 1304, 1304,
840  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
841  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
842  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
843 
844  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
845  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
846  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
847  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
848  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
849  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
850  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
851  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
852  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
853  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
854 
855  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
856  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
857  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
858  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
859  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
860  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
861  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
862  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
863  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
864  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
865 
866  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
867  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
868  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
869  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
870  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
871  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
872  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
873  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
874  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
875  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
876 
877  1304, 1304, 1304, 0, 1304, 1304, 1304, 1304, 1304, 1304,
878  1304, 1304, 1304, 1304
879  } ;
880 
882  { 0,
883  15, 16, 17, 18, 15, 19, 15, 15, 15, 20,
884  15, 15, 15, 15, 15, 15, 15, 21, 21, 21,
885  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
886  21, 21, 21, 21, 21, 21, 15, 22, 15, 21,
887  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
888  21, 21, 21, 21, 21, 23, 21, 24, 21, 25,
889  21, 21, 21, 21, 21, 26, 15, 28, 28, 103,
890  96, 29, 29, 112, 30, 30, 32, 97, 33, 34,
891  32, 103, 33, 34, 35, 38, 38, 739, 35, 39,
892  39, 150, 40, 40, 130, 130, 130, 135, 136, 137,
893 
894  145, 151, 104, 158, 156, 171, 113, 152, 146, 172,
895  159, 177, 36, 157, 104, 178, 36, 41, 42, 43,
896  44, 45, 46, 41, 41, 47, 48, 49, 49, 49,
897  50, 51, 41, 52, 53, 53, 53, 53, 53, 53,
898  53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
899  53, 53, 53, 41, 54, 41, 53, 55, 56, 53,
900  57, 58, 59, 60, 61, 53, 53, 53, 62, 53,
901  63, 64, 65, 53, 66, 67, 68, 53, 53, 69,
902  53, 53, 41, 70, 72, 112, 73, 179, 186, 740,
903  74, 193, 75, 199, 187, 196, 194, 76, 197, 77,
904 
905  78, 198, 180, 79, 298, 173, 171, 80, 81, 299,
906  172, 82, 83, 84, 214, 215, 179, 741, 113, 181,
907  85, 86, 234, 235, 87, 88, 89, 90, 72, 114,
908  73, 180, 742, 216, 74, 743, 75, 182, 115, 116,
909  117, 76, 118, 119, 78, 120, 121, 79, 130, 130,
910  130, 80, 81, 122, 744, 123, 124, 84, 303, 217,
911  279, 280, 125, 304, 85, 86, 126, 305, 87, 127,
912  128, 129, 131, 745, 132, 132, 132, 218, 218, 218,
913  255, 306, 217, 256, 257, 133, 293, 294, 219, 131,
914  258, 132, 132, 132, 220, 748, 307, 221, 221, 221,
915 
916  308, 291, 133, 292, 749, 400, 314, 401, 133, 200,
917  201, 219, 315, 202, 203, 204, 518, 402, 205, 403,
918  249, 206, 207, 208, 519, 133, 209, 210, 211, 212,
919  250, 251, 252, 295, 253, 296, 254, 309, 319, 297,
920  502, 320, 320, 320, 218, 218, 218, 503, 310, 221,
921  221, 221, 311, 321, 750, 219, 322, 322, 322, 221,
922  221, 221, 406, 751, 407, 320, 320, 320, 320, 320,
923  320, 322, 322, 322, 322, 322, 322, 428, 219, 471,
924  479, 472, 480, 483, 489, 654, 490, 560, 462, 520,
925  678, 521, 685, 561, 484, 655, 485, 656, 522, 687,
926 
927  693, 746, 752, 688, 679, 686, 754, 523, 755, 757,
928  758, 759, 689, 694, 747, 760, 753, 761, 762, 764,
929  765, 766, 756, 767, 768, 769, 770, 771, 772, 773,
930  774, 775, 763, 776, 777, 778, 779, 780, 781, 782,
931  783, 784, 785, 786, 787, 788, 789, 790, 791, 792,
932  793, 794, 795, 796, 797, 798, 799, 800, 801, 802,
933  803, 804, 805, 806, 807, 808, 809, 810, 811, 812,
934  814, 815, 816, 817, 819, 820, 821, 822, 823, 824,
935  825, 826, 827, 813, 828, 829, 818, 830, 831, 832,
936  833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
937 
938  843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
939  853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
940  863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
941  873, 874, 875, 876, 877, 879, 880, 882, 883, 884,
942  885, 886, 887, 888, 881, 889, 890, 891, 878, 892,
943  893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
944  903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
945  913, 914, 915, 916, 917, 918, 919, 920, 921, 922,
946  923, 924, 925, 926, 927, 928, 929, 930, 931, 932,
947  933, 934, 935, 936, 937, 938, 939, 940, 941, 942,
948 
949  943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
950  953, 954, 955, 956, 957, 958, 959, 960, 961, 962,
951  963, 964, 965, 966, 967, 968, 969, 970, 971, 972,
952  973, 974, 975, 976, 977, 978, 979, 980, 981, 982,
953  983, 984, 985, 986, 987, 988, 989, 990, 991, 992,
954  993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002,
955  1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
956  1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
957  1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
958  1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042,
959 
960  1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
961  1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062,
962  1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072,
963  1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
964  1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
965  1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1103,
966  1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
967  1102, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
968  1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1133,
969  1132, 1134, 1137, 1138, 1139, 1140, 1142, 1141, 1143, 1144,
970 
971  1145, 1146, 1135, 1147, 1136, 1150, 1148, 1151, 1152, 1154,
972  1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
973  1164, 1165, 1166, 1167, 1149, 1168, 1169, 1170, 1171, 1172,
974  1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
975  1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
976  1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202,
977  1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212,
978  1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
979  1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
980  1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
981 
982  1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
983  1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
984  1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
985  1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282,
986  1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
987  1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302,
988  1303, 14, 14, 14, 14, 27, 27, 27, 27, 31,
989  31, 31, 31, 37, 37, 37, 37, 92, 98, 139,
990  738, 98, 102, 737, 102, 102, 107, 736, 735, 107,
991  111, 734, 111, 111, 733, 732, 731, 730, 729, 728,
992 
993  727, 726, 725, 724, 723, 722, 721, 720, 719, 718,
994  717, 716, 715, 714, 713, 712, 711, 710, 709, 708,
995  707, 706, 705, 704, 703, 702, 701, 700, 699, 698,
996  697, 696, 695, 692, 691, 690, 684, 683, 682, 681,
997  680, 677, 676, 675, 674, 673, 672, 671, 670, 669,
998  668, 667, 666, 665, 664, 663, 662, 661, 660, 659,
999  658, 657, 653, 652, 651, 650, 649, 648, 647, 646,
1000  645, 644, 643, 642, 641, 640, 639, 638, 637, 636,
1001  635, 634, 633, 632, 631, 630, 629, 628, 627, 626,
1002  625, 624, 623, 622, 621, 620, 619, 618, 617, 616,
1003 
1004  615, 614, 613, 612, 611, 610, 609, 608, 607, 606,
1005  605, 604, 603, 602, 601, 600, 599, 598, 597, 596,
1006  595, 594, 593, 592, 591, 590, 589, 588, 587, 586,
1007  585, 584, 583, 582, 581, 580, 579, 578, 577, 576,
1008  575, 574, 573, 572, 571, 570, 569, 568, 567, 566,
1009  565, 564, 563, 562, 559, 558, 557, 556, 555, 554,
1010  553, 552, 551, 550, 549, 548, 547, 546, 545, 544,
1011  543, 542, 541, 540, 539, 538, 537, 536, 535, 534,
1012  533, 532, 531, 530, 529, 528, 527, 526, 525, 524,
1013  517, 516, 515, 514, 513, 512, 511, 510, 509, 508,
1014 
1015  507, 506, 505, 504, 501, 500, 499, 498, 497, 496,
1016  495, 494, 493, 492, 491, 488, 487, 486, 482, 481,
1017  478, 477, 476, 475, 474, 473, 470, 469, 468, 467,
1018  466, 465, 464, 463, 461, 460, 459, 458, 457, 456,
1019  455, 454, 453, 452, 451, 450, 449, 448, 447, 446,
1020  445, 444, 443, 442, 441, 440, 439, 438, 437, 436,
1021  435, 434, 433, 432, 431, 430, 429, 428, 427, 426,
1022  425, 424, 423, 422, 421, 420, 419, 418, 417, 416,
1023  415, 414, 413, 412, 411, 410, 409, 408, 405, 404,
1024  399, 398, 397, 396, 395, 394, 393, 392, 391, 390,
1025 
1026  389, 388, 387, 386, 385, 384, 383, 382, 381, 380,
1027  379, 378, 377, 376, 375, 374, 373, 372, 371, 370,
1028  369, 368, 367, 366, 365, 364, 363, 362, 361, 360,
1029  359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1030  349, 348, 347, 346, 345, 344, 343, 342, 341, 340,
1031  339, 338, 337, 336, 335, 334, 333, 332, 331, 330,
1032  329, 328, 327, 326, 325, 324, 323, 318, 317, 316,
1033  313, 312, 302, 301, 300, 290, 289, 288, 287, 286,
1034  285, 284, 283, 282, 281, 278, 277, 276, 275, 274,
1035  273, 272, 271, 270, 269, 268, 267, 266, 265, 264,
1036 
1037  263, 262, 261, 260, 259, 248, 247, 246, 245, 244,
1038  243, 242, 241, 240, 239, 238, 237, 236, 233, 232,
1039  231, 230, 229, 228, 227, 226, 225, 224, 223, 222,
1040  213, 195, 192, 191, 190, 189, 188, 110, 101, 185,
1041  184, 183, 182, 181, 176, 175, 174, 173, 170, 169,
1042  168, 167, 166, 165, 164, 163, 162, 161, 71, 160,
1043  155, 154, 153, 149, 148, 147, 144, 143, 142, 141,
1044  140, 138, 134, 91, 110, 109, 108, 106, 105, 101,
1045  100, 99, 95, 94, 93, 91, 71, 1304, 13, 1304,
1046  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1047 
1048  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1049  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1050  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1051  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1052  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1053  1304, 1304, 1304, 1304, 1304, 1304
1054  } ;
1055 
1057  { 0,
1058  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1059  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1060  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1061  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1062  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1063  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1064  3, 3, 3, 3, 3, 3, 3, 5, 6, 34,
1065  25, 5, 6, 45, 5, 6, 7, 25, 7, 7,
1066  8, 102, 8, 8, 7, 9, 10, 673, 8, 9,
1067  10, 63, 9, 10, 47, 47, 47, 51, 51, 51,
1068 
1069  59, 63, 34, 68, 67, 82, 45, 63, 59, 82,
1070  68, 87, 7, 67, 102, 87, 8, 11, 11, 11,
1071  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1072  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1073  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1074  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1075  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1076  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1077  11, 11, 11, 11, 19, 111, 19, 88, 114, 674,
1078  19, 120, 19, 124, 114, 122, 120, 19, 122, 19,
1079 
1080  19, 123, 88, 19, 203, 124, 123, 19, 19, 203,
1081  123, 19, 19, 19, 127, 128, 127, 675, 111, 128,
1082  19, 19, 152, 152, 19, 19, 19, 19, 46, 46,
1083  46, 127, 676, 129, 46, 677, 46, 129, 46, 46,
1084  46, 46, 46, 46, 46, 46, 46, 46, 130, 130,
1085  130, 46, 46, 46, 678, 46, 46, 46, 207, 130,
1086  189, 189, 46, 207, 46, 46, 46, 208, 46, 46,
1087  46, 46, 49, 679, 49, 49, 49, 131, 131, 131,
1088  168, 208, 130, 168, 168, 49, 201, 201, 131, 132,
1089  168, 132, 132, 132, 133, 681, 209, 133, 133, 133,
1090 
1091  209, 200, 132, 200, 682, 308, 213, 308, 49, 125,
1092  125, 131, 213, 125, 125, 125, 435, 309, 125, 309,
1093  167, 125, 125, 125, 435, 132, 125, 125, 125, 125,
1094  167, 167, 167, 202, 167, 202, 167, 210, 217, 202,
1095  420, 217, 217, 217, 218, 218, 218, 420, 210, 220,
1096  220, 220, 210, 219, 683, 218, 219, 219, 219, 221,
1097  221, 221, 312, 684, 312, 319, 319, 319, 320, 320,
1098  320, 321, 321, 321, 322, 322, 322, 379, 218, 388,
1099  395, 388, 395, 398, 404, 581, 404, 476, 379, 436,
1100  605, 436, 611, 476, 398, 581, 398, 581, 436, 612,
1101 
1102  616, 680, 685, 612, 605, 611, 686, 436, 687, 688,
1103  689, 690, 612, 616, 680, 691, 685, 692, 693, 694,
1104  695, 696, 687, 698, 699, 700, 701, 702, 703, 704,
1105  706, 707, 693, 708, 709, 710, 712, 713, 714, 715,
1106  716, 717, 718, 719, 720, 721, 722, 723, 724, 725,
1107  726, 727, 728, 729, 730, 731, 732, 733, 735, 736,
1108  737, 738, 739, 740, 741, 742, 743, 744, 745, 746,
1109  747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
1110  757, 758, 759, 746, 760, 761, 750, 762, 763, 764,
1111  765, 766, 767, 768, 771, 772, 773, 774, 775, 776,
1112 
1113  778, 779, 780, 781, 782, 783, 784, 785, 786, 787,
1114  788, 790, 792, 793, 794, 796, 797, 798, 800, 801,
1115  802, 803, 804, 805, 806, 807, 808, 809, 811, 812,
1116  813, 814, 815, 816, 817, 818, 819, 820, 821, 822,
1117  823, 824, 825, 826, 819, 827, 828, 829, 817, 830,
1118  831, 832, 833, 834, 835, 836, 838, 839, 840, 841,
1119  842, 843, 844, 845, 846, 847, 848, 849, 850, 851,
1120  852, 854, 855, 856, 857, 858, 859, 860, 861, 862,
1121  864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
1122  874, 875, 876, 877, 878, 879, 880, 881, 883, 884,
1123 
1124  886, 887, 888, 889, 890, 891, 893, 894, 895, 896,
1125  897, 898, 899, 901, 905, 907, 908, 909, 911, 912,
1126  914, 916, 917, 918, 919, 920, 921, 924, 925, 926,
1127  927, 928, 929, 930, 932, 933, 934, 935, 936, 937,
1128  938, 939, 940, 941, 942, 943, 944, 945, 946, 947,
1129  948, 949, 950, 951, 952, 953, 954, 955, 958, 959,
1130  963, 967, 968, 969, 970, 971, 972, 973, 974, 975,
1131  976, 977, 978, 979, 980, 982, 983, 984, 986, 987,
1132  988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
1133  999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
1134 
1135  1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
1136  1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
1137  1030, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, 1040,
1138  1041, 1042, 1044, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
1139  1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
1140  1064, 1065, 1067, 1068, 1069, 1071, 1072, 1074, 1075, 1076,
1141  1077, 1078, 1079, 1080, 1081, 1084, 1086, 1087, 1088, 1089,
1142  1075, 1090, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
1143  1100, 1101, 1102, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
1144  1109, 1111, 1112, 1113, 1114, 1115, 1116, 1115, 1117, 1119,
1145 
1146  1121, 1122, 1111, 1123, 1111, 1124, 1123, 1125, 1126, 1127,
1147  1126, 1128, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
1148  1138, 1139, 1140, 1141, 1123, 1142, 1143, 1144, 1145, 1146,
1149  1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
1150  1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
1151  1167, 1168, 1169, 1170, 1172, 1173, 1174, 1176, 1177, 1178,
1152  1179, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1153  1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
1154  1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1155  1210, 1211, 1212, 1215, 1216, 1218, 1219, 1221, 1222, 1223,
1156 
1157  1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
1158  1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
1159  1244, 1245, 1246, 1247, 1248, 1249, 1251, 1252, 1253, 1254,
1160  1255, 1256, 1258, 1259, 1260, 1261, 1263, 1264, 1267, 1268,
1161  1269, 1270, 1271, 1272, 1273, 1274, 1277, 1279, 1280, 1281,
1162  1283, 1284, 1287, 1289, 1290, 1293, 1298, 1299, 1300, 1301,
1163  1302, 1305, 1305, 1305, 1305, 1306, 1306, 1306, 1306, 1307,
1164  1307, 1307, 1307, 1308, 1308, 1308, 1308, 1309, 1310, 1314,
1165  672, 1310, 1311, 670, 1311, 1311, 1312, 669, 667, 1312,
1166  1313, 666, 1313, 1313, 665, 663, 661, 660, 659, 657,
1167 
1168  656, 655, 654, 652, 651, 650, 649, 646, 645, 642,
1169  641, 640, 639, 638, 636, 635, 634, 633, 632, 631,
1170  630, 629, 628, 627, 626, 625, 624, 623, 622, 621,
1171  619, 618, 617, 615, 614, 613, 610, 609, 608, 607,
1172  606, 603, 601, 600, 599, 598, 597, 596, 595, 594,
1173  593, 592, 591, 590, 589, 588, 587, 586, 585, 584,
1174  583, 582, 580, 579, 578, 577, 576, 575, 574, 573,
1175  572, 571, 570, 569, 568, 567, 566, 565, 564, 563,
1176  562, 561, 560, 559, 558, 556, 555, 554, 552, 551,
1177  550, 549, 547, 544, 543, 542, 540, 539, 538, 537,
1178 
1179  536, 535, 534, 533, 532, 531, 530, 529, 528, 527,
1180  526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
1181  516, 515, 514, 513, 512, 511, 510, 509, 508, 507,
1182  506, 504, 503, 502, 501, 500, 498, 497, 494, 493,
1183  492, 491, 490, 489, 488, 487, 486, 485, 484, 483,
1184  482, 481, 480, 479, 475, 474, 473, 472, 471, 470,
1185  469, 467, 465, 464, 463, 462, 461, 460, 459, 458,
1186  457, 456, 454, 453, 452, 451, 450, 449, 448, 447,
1187  446, 445, 444, 443, 442, 441, 440, 439, 438, 437,
1188  434, 433, 432, 431, 430, 429, 428, 427, 426, 425,
1189 
1190  424, 423, 422, 421, 419, 417, 414, 413, 412, 411,
1191  410, 409, 408, 407, 405, 403, 401, 399, 397, 396,
1192  394, 393, 392, 391, 390, 389, 387, 386, 385, 384,
1193  383, 382, 381, 380, 378, 377, 376, 374, 373, 372,
1194  371, 370, 369, 368, 367, 366, 365, 364, 363, 362,
1195  361, 360, 359, 358, 357, 356, 355, 354, 353, 352,
1196  351, 350, 349, 348, 347, 346, 345, 344, 343, 342,
1197  341, 340, 339, 337, 335, 333, 332, 330, 329, 327,
1198  326, 324, 318, 317, 316, 315, 314, 313, 311, 310,
1199  307, 306, 305, 304, 303, 302, 301, 300, 299, 297,
1200 
1201  296, 294, 293, 292, 289, 288, 287, 286, 285, 284,
1202  283, 282, 281, 280, 279, 278, 277, 276, 275, 274,
1203  273, 272, 271, 270, 269, 268, 267, 266, 265, 264,
1204  263, 262, 261, 260, 259, 258, 257, 256, 255, 254,
1205  253, 252, 251, 250, 249, 248, 247, 246, 245, 244,
1206  243, 242, 241, 240, 239, 238, 236, 235, 234, 231,
1207  230, 229, 228, 227, 226, 225, 224, 216, 215, 214,
1208  212, 211, 206, 205, 204, 199, 198, 197, 196, 195,
1209  194, 193, 192, 191, 190, 188, 187, 186, 185, 184,
1210  183, 182, 181, 180, 179, 178, 177, 176, 175, 174,
1211 
1212  173, 172, 171, 170, 169, 166, 165, 164, 163, 162,
1213  161, 160, 159, 158, 157, 156, 155, 154, 151, 150,
1214  149, 148, 147, 146, 145, 144, 143, 142, 141, 138,
1215  126, 121, 119, 118, 117, 116, 115, 110, 101, 96,
1216  95, 94, 90, 89, 86, 85, 84, 83, 81, 80,
1217  79, 78, 77, 76, 75, 74, 73, 72, 71, 69,
1218  66, 65, 64, 62, 61, 60, 58, 57, 56, 55,
1219  54, 52, 50, 48, 42, 40, 39, 36, 35, 32,
1220  30, 29, 24, 23, 22, 20, 16, 13, 1304, 1304,
1221  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1222 
1223  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1224  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1225  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1226  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1227  1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
1228  1304, 1304, 1304, 1304, 1304, 1304
1229  } ;
1230 
1233 
1234 extern int yyjsil_flex_debug;
1236 
1237 /* The intent behind this definition is that it'll catch
1238  * any uses of REJECT which flex missed.
1239  */
1240 #define REJECT reject_used_but_not_detected
1241 #define yymore() yymore_used_but_not_detected
1242 #define YY_MORE_ADJ 0
1243 #define YY_RESTORE_YY_MORE_OFFSET
1245 #line 1 "scanner.l"
1246 #define YY_NO_INPUT 1
1247 #define YY_NO_UNISTD_H 1
1248 #line 8 "scanner.l"
1249 
1250 #include <util/expr.h>
1251 
1254 
1255 #define PARSER jsil_parser
1256 #define YYSTYPE unsigned
1257 
1258 #include "jsil_parser.h"
1259 #include "jsil_y.tab.h"
1260 // extern int yyjsildebug;
1261 
1262 #define loc() \
1263  { newstack(yyjsillval); PARSER.set_source_location(stack(yyjsillval)); }
1264 
1265 static int make_identifier()
1266 {
1267  loc();
1268 
1269  // this hashes the identifier
1270  irep_idt base_name=yyjsiltext;
1271 
1272  stack(yyjsillval).id(ID_symbol);
1273  stack(yyjsillval).set(ID_C_base_name, base_name);
1274  stack(yyjsillval).set(ID_identifier, base_name);
1275  return TOK_IDENTIFIER;
1276 }
1277 
1278 #include <util/pragma_wsign_compare.def>
1279 #include <util/pragma_wnull_conversion.def>
1280 #include <util/pragma_wdeprecated_register.def>
1281 
1282 
1283 
1284 
1285 
1286 
1287 #line 69 "scanner.l"
1289 {
1290  // yyjsildebug=1;
1292  BEGIN(0);
1293 }
1294 /* %option debug */
1295 #line 1296 "jsil_lex.yy.cpp"
1296 
1297 #define INITIAL 0
1298 #define GRAMMAR 1
1299 #define COMMENT 2
1300 #define STRING_LITERAL 3
1301 #define STRING_LITERAL_COMMENT 4
1302 #define STATEMENTS 5
1303 
1304 #ifndef YY_NO_UNISTD_H
1305 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1306  * down here because we want the user's section 1 to have been scanned first.
1307  * The user has a chance to override it with an option.
1308  */
1309 #include <unistd.h>
1310 #endif
1311 
1312 #ifndef YY_EXTRA_TYPE
1313 #define YY_EXTRA_TYPE void *
1314 #endif
1315 
1316 static int yy_init_globals (void );
1317 
1318 /* Accessor methods to globals.
1319  These are made visible to non-reentrant scanners for convenience. */
1320 
1321 int yyjsillex_destroy (void );
1322 
1323 int yyjsilget_debug (void );
1324 
1325 void yyjsilset_debug (int debug_flag );
1326 
1328 
1329 void yyjsilset_extra (YY_EXTRA_TYPE user_defined );
1330 
1331 FILE *yyjsilget_in (void );
1332 
1333 void yyjsilset_in (FILE * _in_str );
1334 
1335 FILE *yyjsilget_out (void );
1336 
1337 void yyjsilset_out (FILE * _out_str );
1338 
1339  int yyjsilget_leng (void );
1340 
1341 char *yyjsilget_text (void );
1342 
1343 int yyjsilget_lineno (void );
1344 
1345 void yyjsilset_lineno (int _line_number );
1346 
1347 /* Macros after this point can all be overridden by user definitions in
1348  * section 1.
1349  */
1350 
1351 #ifndef YY_SKIP_YYWRAP
1352 #ifdef __cplusplus
1353 extern "C" int yyjsilwrap (void );
1354 #else
1355 extern int yyjsilwrap (void );
1356 #endif
1357 #endif
1358 
1359 #ifndef YY_NO_UNPUT
1360 
1361 #endif
1362 
1363 #ifndef yytext_ptr
1364 static void yy_flex_strncpy (char *,yyconst char *,int );
1365 #endif
1366 
1367 #ifdef YY_NEED_STRLEN
1368 static int yy_flex_strlen (yyconst char * );
1369 #endif
1370 
1371 #ifndef YY_NO_INPUT
1372 
1373 #ifdef __cplusplus
1374 static int yyinput (void );
1375 #else
1376 static int input (void );
1377 #endif
1378 
1379 #endif
1380 
1381  static int yy_start_stack_ptr = 0;
1382  static int yy_start_stack_depth = 0;
1383  static int *yy_start_stack = NULL;
1384 
1385  static void yy_push_state (int _new_state );
1386 
1387  static void yy_pop_state (void );
1388 
1389  static int yy_top_state (void );
1390 
1391 /* Amount of stuff to slurp up with each read. */
1392 #ifndef YY_READ_BUF_SIZE
1393 #ifdef __ia64__
1394 /* On IA-64, the buffer size is 16k, not 8k */
1395 #define YY_READ_BUF_SIZE 16384
1396 #else
1397 #define YY_READ_BUF_SIZE 8192
1398 #endif /* __ia64__ */
1399 #endif
1400 
1401 /* Copy whatever the last rule matched to the standard output. */
1402 #ifndef ECHO
1403 /* This used to be an fputs(), but since the string might contain NUL's,
1404  * we now use fwrite().
1405  */
1406 #define ECHO do { if (fwrite( yyjsiltext, (size_t) yyjsilleng, 1, yyjsilout )) {} } while (0)
1407 #endif
1408 
1409 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1410  * is returned in "result".
1411  */
1412 #ifndef YY_INPUT
1413 #define YY_INPUT(buf,result,max_size) \
1414  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1415  { \
1416  int c = '*'; \
1417  int n; \
1418  for ( n = 0; n < max_size && \
1419  (c = getc( yyjsilin )) != EOF && c != '\n'; ++n ) \
1420  buf[n] = (char) c; \
1421  if ( c == '\n' ) \
1422  buf[n++] = (char) c; \
1423  if ( c == EOF && ferror( yyjsilin ) ) \
1424  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1425  result = n; \
1426  } \
1427  else \
1428  { \
1429  errno=0; \
1430  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyjsilin)) == 0 && ferror(yyjsilin)) \
1431  { \
1432  if( errno != EINTR) \
1433  { \
1434  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1435  break; \
1436  } \
1437  errno=0; \
1438  clearerr(yyjsilin); \
1439  } \
1440  }\
1441 \
1442 
1443 #endif
1444 
1445 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1446  * we don't want an extra ';' after the "return" because that will cause
1447  * some compilers to complain about unreachable statements.
1448  */
1449 #ifndef yyterminate
1450 #define yyterminate() return YY_NULL
1451 #endif
1452 
1453 /* Number of entries by which start-condition stack grows. */
1454 #ifndef YY_START_STACK_INCR
1455 #define YY_START_STACK_INCR 25
1456 #endif
1457 
1458 /* Report a fatal error. */
1459 #ifndef YY_FATAL_ERROR
1460 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1461 #endif
1462 
1463 /* end tables serialization structures and prototypes */
1464 
1465 /* Default declaration of generated scanner - a define so the user can
1466  * easily add parameters.
1467  */
1468 #ifndef YY_DECL
1469 #define YY_DECL_IS_OURS 1
1470 
1471 extern int yyjsillex (void);
1472 
1473 #define YY_DECL int yyjsillex (void)
1474 #endif /* !YY_DECL */
1475 
1476 /* Code executed at the beginning of each rule, after yyjsiltext and yyjsilleng
1477  * have been set up.
1478  */
1479 #ifndef YY_USER_ACTION
1480 #define YY_USER_ACTION
1481 #endif
1482 
1483 /* Code executed at the end of each rule. */
1484 #ifndef YY_BREAK
1485 #define YY_BREAK /*LINTED*/break;
1486 #endif
1487 
1488 #define YY_RULE_SETUP \
1489  YY_USER_ACTION
1490 
1494 {
1495  yy_state_type yy_current_state;
1496  char *yy_cp, *yy_bp;
1497  int yy_act;
1498 
1499  if ( !(yy_init) )
1500  {
1501  (yy_init) = 1;
1502 
1503 #ifdef YY_USER_INIT
1504  YY_USER_INIT;
1505 #endif
1506 
1507  if ( ! (yy_start) )
1508  (yy_start) = 1; /* first start state */
1509 
1510  if ( ! yyjsilin )
1511  yyjsilin = stdin;
1512 
1513  if ( ! yyjsilout )
1514  yyjsilout = stdout;
1515 
1516  if ( ! YY_CURRENT_BUFFER ) {
1520  }
1521 
1523  }
1524 
1525  {
1526 #line 78 "scanner.l"
1527 
1528 
1529 #line 1530 "jsil_lex.yy.cpp"
1530 
1531  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1532  {
1533  yy_cp = (yy_c_buf_p);
1534 
1535  /* Support of yyjsiltext. */
1536  *yy_cp = (yy_hold_char);
1537 
1538  /* yy_bp points to the position in yy_ch_buf of the start of
1539  * the current run.
1540  */
1541  yy_bp = yy_cp;
1542 
1543  yy_current_state = (yy_start);
1544 yy_match:
1545  do
1546  {
1547  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1548  if ( yy_accept[yy_current_state] )
1549  {
1550  (yy_last_accepting_state) = yy_current_state;
1551  (yy_last_accepting_cpos) = yy_cp;
1552  }
1553  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1554  {
1555  yy_current_state = (int) yy_def[yy_current_state];
1556  if ( yy_current_state >= 1305 )
1557  yy_c = yy_meta[(unsigned int) yy_c];
1558  }
1559  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1560  ++yy_cp;
1561  }
1562  while ( yy_current_state != 1304 );
1563  yy_cp = (yy_last_accepting_cpos);
1564  yy_current_state = (yy_last_accepting_state);
1565 
1566 yy_find_action:
1567  yy_act = yy_accept[yy_current_state];
1568 
1570 
1571 do_action: /* This label is used only to access EOF actions. */
1572 
1573  switch ( yy_act )
1574  { /* beginning of action switch */
1575  case 0: /* must back up */
1576  /* undo the effects of YY_DO_BEFORE_ACTION */
1577  *yy_cp = (yy_hold_char);
1578  yy_cp = (yy_last_accepting_cpos);
1579  yy_current_state = (yy_last_accepting_state);
1580  goto yy_find_action;
1581 
1582 case 1:
1583 /* rule 1 can match eol */
1585 #line 80 "scanner.l"
1586 {
1587  BEGIN(GRAMMAR);
1588  yyless(0); /* start again with this character */
1589  }
1590  YY_BREAK
1591 
1592 case 2:
1594 #line 86 "scanner.l"
1595 {
1596  yy_push_state(COMMENT); /* begin comment state */
1597  // make the compiler happy
1598  (void)yy_top_state();
1599  }
1600  YY_BREAK
1601 
1602 
1603 case 3:
1605 #line 94 "scanner.l"
1606 { yy_pop_state(); } /* end comment state, back to GRAMMAR */
1607  YY_BREAK
1608 case 4:
1610 #line 95 "scanner.l"
1611 { yyjsilerror("Probably nested comments"); }
1612  YY_BREAK
1613 case YY_STATE_EOF(COMMENT):
1614 #line 96 "scanner.l"
1615 { yyjsilerror("Unterminated comment"); return TOK_SCANNER_ERROR; }
1616  YY_BREAK
1617 case 5:
1619 #line 97 "scanner.l"
1620 { } /* ignore every char except '*' and NL (performance!) */
1621  YY_BREAK
1622 case 6:
1624 #line 98 "scanner.l"
1625 { } /* all single characters within comments are ignored */
1626  YY_BREAK
1627 case 7:
1628 /* rule 7 can match eol */
1630 #line 99 "scanner.l"
1631 { }
1632  YY_BREAK
1633 
1634 
1635 case 8:
1637 #line 103 "scanner.l"
1638 { yy_pop_state(); } /* end comment state, back to STRING_LITERAL */
1639  YY_BREAK
1640 case 9:
1642 #line 104 "scanner.l"
1643 { yyjsilerror("Probably nested comments"); }
1644  YY_BREAK
1646 #line 105 "scanner.l"
1647 { yyjsilerror("Unterminated comment"); return TOK_SCANNER_ERROR; }
1648  YY_BREAK
1649 case 10:
1651 #line 106 "scanner.l"
1652 { } /* ignore every char except '*' and NL (performance!) */
1653  YY_BREAK
1654 case 11:
1656 #line 107 "scanner.l"
1657 { } /* all single characters within comments are ignored */
1658  YY_BREAK
1659 case 12:
1660 /* rule 12 can match eol */
1662 #line 108 "scanner.l"
1663 { }
1664  YY_BREAK
1665 
1666 
1667 case 13:
1669 #line 112 "scanner.l"
1670 {
1671  PARSER.string_literal.clear();
1672  PARSER.string_literal.append(yyjsiltext);
1674  PARSER.set_source_location(stack(yyjsillval));
1675  // String literals can be continued
1677  }
1678  YY_BREAK
1679 
1680 
1681 case 14:
1683 #line 123 "scanner.l"
1684 { PARSER.string_literal.append(yyjsiltext); }
1685  YY_BREAK
1686 case 15:
1688 #line 124 "scanner.l"
1689 { } /* ignore */
1690  YY_BREAK
1691 case 16:
1693 #line 125 "scanner.l"
1694 { yy_push_state(STRING_LITERAL_COMMENT); } /* C comment, ignore */
1695  YY_BREAK
1696 case 17:
1697 /* rule 17 can match eol */
1699 #line 126 "scanner.l"
1700 { // anything else: back to normal
1701  source_locationt l=stack(yyjsillval).source_location();
1702  stack(yyjsillval)=convert_string_literal(PARSER.string_literal);
1703  stack(yyjsillval).add_source_location().swap(l);
1704  yy_pop_state(); // back to normal
1705  yyless(0); // put back
1706  return TOK_STRING;
1707  }
1708  YY_BREAK
1709 
1710 
1711 case 18:
1713 #line 137 "scanner.l"
1715  YY_BREAK
1716 case 19:
1718 #line 138 "scanner.l"
1720  YY_BREAK
1721 case 20:
1723 #line 139 "scanner.l"
1725  YY_BREAK
1726 case 21:
1728 #line 140 "scanner.l"
1730  YY_BREAK
1731 case 22:
1733 #line 141 "scanner.l"
1735  YY_BREAK
1736 case 23:
1738 #line 142 "scanner.l"
1740  YY_BREAK
1741 case 24:
1743 #line 143 "scanner.l"
1745  YY_BREAK
1746 case 25:
1748 #line 144 "scanner.l"
1750  YY_BREAK
1751 case 26:
1753 #line 145 "scanner.l"
1755  YY_BREAK
1756 case 27:
1758 #line 146 "scanner.l"
1760  YY_BREAK
1761 case 28:
1763 #line 147 "scanner.l"
1765  YY_BREAK
1766 case 29:
1768 #line 148 "scanner.l"
1770  YY_BREAK
1771 case 30:
1773 #line 149 "scanner.l"
1775  YY_BREAK
1776 case 31:
1778 #line 150 "scanner.l"
1780  YY_BREAK
1781 case 32:
1783 #line 151 "scanner.l"
1785  YY_BREAK
1786 case 33:
1788 #line 152 "scanner.l"
1790  YY_BREAK
1791 case 34:
1793 #line 153 "scanner.l"
1795  YY_BREAK
1796 case 35:
1798 #line 154 "scanner.l"
1800  YY_BREAK
1801 case 36:
1803 #line 155 "scanner.l"
1805  YY_BREAK
1806 case 37:
1808 #line 156 "scanner.l"
1810  YY_BREAK
1811 case 38:
1813 #line 157 "scanner.l"
1815  YY_BREAK
1816 case 39:
1818 #line 158 "scanner.l"
1820  YY_BREAK
1821 case 40:
1823 #line 159 "scanner.l"
1825  YY_BREAK
1826 case 41:
1828 #line 160 "scanner.l"
1830  YY_BREAK
1831 case 42:
1833 #line 161 "scanner.l"
1835  YY_BREAK
1836 case 43:
1838 #line 162 "scanner.l"
1840  YY_BREAK
1841 case 44:
1843 #line 163 "scanner.l"
1845  YY_BREAK
1846 case 45:
1848 #line 164 "scanner.l"
1850  YY_BREAK
1851 case 46:
1853 #line 165 "scanner.l"
1855  YY_BREAK
1856 case 47:
1858 #line 166 "scanner.l"
1860  YY_BREAK
1861 case 48:
1863 #line 167 "scanner.l"
1865  YY_BREAK
1866 case 49:
1868 #line 168 "scanner.l"
1870  YY_BREAK
1871 case 50:
1873 #line 170 "scanner.l"
1874 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1875  YY_BREAK
1876 case 51:
1878 #line 171 "scanner.l"
1879 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1880  YY_BREAK
1881 case 52:
1883 #line 172 "scanner.l"
1884 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1885  YY_BREAK
1886 case 53:
1888 #line 173 "scanner.l"
1889 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1890  YY_BREAK
1891 case 54:
1893 #line 174 "scanner.l"
1894 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1895  YY_BREAK
1896 case 55:
1898 #line 175 "scanner.l"
1899 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1900  YY_BREAK
1901 case 56:
1903 #line 176 "scanner.l"
1904 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1905  YY_BREAK
1906 case 57:
1908 #line 177 "scanner.l"
1909 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1910  YY_BREAK
1911 case 58:
1913 #line 178 "scanner.l"
1914 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1915  YY_BREAK
1916 case 59:
1918 #line 179 "scanner.l"
1919 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1920  YY_BREAK
1921 case 60:
1923 #line 180 "scanner.l"
1924 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1925  YY_BREAK
1926 case 61:
1928 #line 181 "scanner.l"
1929 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1930  YY_BREAK
1931 case 62:
1933 #line 182 "scanner.l"
1934 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1935  YY_BREAK
1936 case 63:
1938 #line 183 "scanner.l"
1939 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1940  YY_BREAK
1941 case 64:
1943 #line 184 "scanner.l"
1944 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1945  YY_BREAK
1946 case 65:
1948 #line 185 "scanner.l"
1949 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1950  YY_BREAK
1951 case 66:
1953 #line 186 "scanner.l"
1954 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1955  YY_BREAK
1956 case 67:
1958 #line 187 "scanner.l"
1959 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1960  YY_BREAK
1961 case 68:
1963 #line 188 "scanner.l"
1964 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1965  YY_BREAK
1966 case 69:
1968 #line 189 "scanner.l"
1969 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1970  YY_BREAK
1971 case 70:
1973 #line 190 "scanner.l"
1974 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1975  YY_BREAK
1976 case 71:
1978 #line 191 "scanner.l"
1979 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1980  YY_BREAK
1981 case 72:
1983 #line 192 "scanner.l"
1984 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1985  YY_BREAK
1986 case 73:
1988 #line 193 "scanner.l"
1989 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1990  YY_BREAK
1991 case 74:
1993 #line 194 "scanner.l"
1994 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1995  YY_BREAK
1996 case 75:
1998 #line 195 "scanner.l"
1999 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
2000  YY_BREAK
2001 
2002 
2003 case 76:
2004 /* rule 76 can match eol */
2006 #line 199 "scanner.l"
2007 { } /* skipped */
2008  YY_BREAK
2009 case 77:
2011 #line 200 "scanner.l"
2012 { } /* skipped */
2013  YY_BREAK
2014 /*** keywords ***/
2015 case 78:
2017 #line 204 "scanner.l"
2018 { loc(); return TOK_PROCEDURE; }
2019  YY_BREAK
2020 case 79:
2022 #line 205 "scanner.l"
2023 { loc(); return TOK_RETURNS; }
2024  YY_BREAK
2025 case 80:
2027 #line 206 "scanner.l"
2028 { loc(); return TOK_TO; }
2029  YY_BREAK
2030 case 81:
2032 #line 207 "scanner.l"
2033 { loc(); return TOK_THROWS; }
2034  YY_BREAK
2035 /*** scanner parsed tokens (these have a value!) ***/
2036 case 82:
2038 #line 211 "scanner.l"
2039 { return make_identifier(); }
2040  YY_BREAK
2041 case 83:
2043 #line 213 "scanner.l"
2044 { loc(); BEGIN(STATEMENTS); return '{'; }
2045  YY_BREAK
2046 /* This catches all one-character operators */
2047 case 84:
2049 #line 215 "scanner.l"
2050 { loc(); return yyjsiltext[0]; }
2051  YY_BREAK
2052 
2053 
2054 case 85:
2055 /* rule 85 can match eol */
2057 #line 219 "scanner.l"
2058 { loc(); return TOK_NEWLINE; }
2059  YY_BREAK
2060 case 86:
2062 #line 220 "scanner.l"
2063 { } /* skipped */
2064  YY_BREAK
2065 case 87:
2067 #line 222 "scanner.l"
2068 { loc(); return TOK_EVAL; }
2069  YY_BREAK
2070 case 88:
2072 #line 223 "scanner.l"
2073 { loc(); return TOK_LABEL; }
2074  YY_BREAK
2075 case 89:
2077 #line 224 "scanner.l"
2078 { loc(); return TOK_GOTO; }
2079  YY_BREAK
2080 case 90:
2082 #line 225 "scanner.l"
2083 { loc(); return TOK_SKIP; }
2084  YY_BREAK
2085 case 91:
2087 #line 226 "scanner.l"
2088 { loc(); return TOK_WITH; }
2089  YY_BREAK
2090 case 92:
2092 #line 227 "scanner.l"
2093 { loc(); return TOK_NEW; }
2094  YY_BREAK
2095 case 93:
2097 #line 228 "scanner.l"
2098 { loc(); return TOK_HAS_FIELD; }
2099  YY_BREAK
2100 case 94:
2102 #line 229 "scanner.l"
2103 { loc(); return TOK_DELETE; }
2104  YY_BREAK
2105 case 95:
2107 #line 230 "scanner.l"
2108 { loc(); return TOK_PROTO_FIELD; }
2109  YY_BREAK
2110 case 96:
2112 #line 231 "scanner.l"
2113 { loc(); return TOK_PROTO_OBJ; }
2114  YY_BREAK
2115 case 97:
2117 #line 232 "scanner.l"
2118 { loc(); return TOK_REF; }
2119  YY_BREAK
2120 case 98:
2122 #line 233 "scanner.l"
2123 { loc(); return TOK_FIELD; }
2124  YY_BREAK
2125 case 99:
2127 #line 234 "scanner.l"
2128 { loc(); return TOK_BASE; }
2129  YY_BREAK
2130 case 100:
2132 #line 235 "scanner.l"
2133 { loc(); return TOK_TYPEOF; }
2134  YY_BREAK
2135 case 101:
2137 #line 236 "scanner.l"
2138 { loc(); return TOK_NULL; }
2139  YY_BREAK
2140 case 102:
2142 #line 237 "scanner.l"
2143 { loc(); return TOK_UNDEFINED; }
2144  YY_BREAK
2145 case 103:
2147 #line 238 "scanner.l"
2148 { loc(); return TOK_EMPTY; }
2149  YY_BREAK
2150 case 104:
2152 #line 239 "scanner.l"
2153 { loc(); return TOK_TRUE; }
2154  YY_BREAK
2155 case 105:
2157 #line 240 "scanner.l"
2158 { loc(); return TOK_FALSE; }
2159  YY_BREAK
2160 case 106:
2162 #line 241 "scanner.l"
2163 { loc(); return TOK_PROTO; }
2164  YY_BREAK
2165 case 107:
2167 #line 242 "scanner.l"
2168 { loc(); return TOK_FID; }
2169  YY_BREAK
2170 case 108:
2172 #line 243 "scanner.l"
2173 { loc(); return TOK_SCOPE; }
2174  YY_BREAK
2175 case 109:
2177 #line 244 "scanner.l"
2178 { loc(); return TOK_CONSTRUCTID; }
2179  YY_BREAK
2180 case 110:
2182 #line 245 "scanner.l"
2183 { loc(); return TOK_PRIMVALUE; }
2184  YY_BREAK
2185 case 111:
2187 #line 246 "scanner.l"
2188 { loc(); return TOK_TARGETFUNCTION; }
2189  YY_BREAK
2190 case 112:
2192 #line 247 "scanner.l"
2193 { loc(); return TOK_CLASS; }
2194  YY_BREAK
2195 case 113:
2197 #line 248 "scanner.l"
2198 { loc(); return TOK_NUM_TO_STRING; }
2199  YY_BREAK
2200 case 114:
2202 #line 249 "scanner.l"
2203 { loc(); return TOK_STRING_TO_NUM; }
2204  YY_BREAK
2205 case 115:
2207 #line 250 "scanner.l"
2208 { loc(); return TOK_NUM_TO_INT32; }
2209  YY_BREAK
2210 case 116:
2212 #line 251 "scanner.l"
2213 { loc(); return TOK_NUM_TO_UINT32; }
2214  YY_BREAK
2215 case 117:
2217 #line 252 "scanner.l"
2218 { loc(); return TOK_MEMBER_REFERENCE; }
2219  YY_BREAK
2220 case 118:
2222 #line 253 "scanner.l"
2223 { loc(); return TOK_VARIABLE_REFERENCE; }
2224  YY_BREAK
2225 /*** type classes ***/
2226 case 119:
2228 #line 257 "scanner.l"
2229 { loc(); return TOK_T_NULL; }
2230  YY_BREAK
2231 case 120:
2233 #line 258 "scanner.l"
2234 { loc(); return TOK_T_UNDEFINED; }
2235  YY_BREAK
2236 case 121:
2238 #line 259 "scanner.l"
2239 { loc(); return TOK_T_BOOLEAN; }
2240  YY_BREAK
2241 case 122:
2243 #line 260 "scanner.l"
2244 { loc(); return TOK_T_STRING; }
2245  YY_BREAK
2246 case 123:
2248 #line 261 "scanner.l"
2249 { loc(); return TOK_T_NUMBER; }
2250  YY_BREAK
2251 case 124:
2253 #line 262 "scanner.l"
2254 { loc(); return TOK_T_BUILTIN_OBJECT; }
2255  YY_BREAK
2256 case 125:
2258 #line 263 "scanner.l"
2259 { loc(); return TOK_T_USER_OBJECT; }
2260  YY_BREAK
2261 case 126:
2263 #line 264 "scanner.l"
2264 { loc(); return TOK_T_OBJECT; }
2265  YY_BREAK
2266 case 127:
2268 #line 265 "scanner.l"
2269 { loc(); return TOK_T_REFERENCE; }
2270  YY_BREAK
2271 /*** multi-character operators ***/
2272 case 128:
2274 #line 269 "scanner.l"
2275 { loc(); return TOK_DEFEQ; }
2276  YY_BREAK
2277 case 129:
2279 #line 270 "scanner.l"
2280 { loc(); return TOK_LEQ; }
2281  YY_BREAK
2282 case 130:
2284 #line 271 "scanner.l"
2285 { loc(); return TOK_AND; }
2286  YY_BREAK
2287 case 131:
2289 #line 272 "scanner.l"
2290 { loc(); return TOK_OR; }
2291  YY_BREAK
2292 case 132:
2294 #line 273 "scanner.l"
2295 { loc(); return TOK_SUBTYPE_OF; }
2296  YY_BREAK
2297 case 133:
2299 #line 274 "scanner.l"
2300 { loc(); return TOK_LEFT_SHIFT; }
2301  YY_BREAK
2302 case 134:
2304 #line 275 "scanner.l"
2305 { loc(); return TOK_SIGNED_RIGHT_SHIFT; }
2306  YY_BREAK
2307 case 135:
2309 #line 276 "scanner.l"
2310 { loc(); return TOK_UNSIGNED_RIGHT_SHIFT; }
2311  YY_BREAK
2312 case 136:
2314 #line 277 "scanner.l"
2315 { loc(); return TOK_NOT; }
2316  YY_BREAK
2317 /*** scanner parsed tokens (these have a value!) ***/
2318 case 137:
2320 #line 281 "scanner.l"
2321 { return make_identifier(); }
2322  YY_BREAK
2323 case 138:
2325 #line 283 "scanner.l"
2326 {
2327  newstack(yyjsillval);
2329  PARSER.set_source_location(stack(yyjsillval));
2330  return TOK_FLOATING;
2331  }
2332  YY_BREAK
2333 case 139:
2335 #line 290 "scanner.l"
2336 { make_identifier(); return TOK_BUILTIN_LOC; }
2337  YY_BREAK
2338 case 140:
2340 #line 291 "scanner.l"
2341 { make_identifier(); return TOK_BUILTIN_LOC; }
2342  YY_BREAK
2343 case 141:
2345 #line 292 "scanner.l"
2346 { make_identifier(); return TOK_BUILTIN_LOC; }
2347  YY_BREAK
2348 case 142:
2350 #line 293 "scanner.l"
2351 { make_identifier(); return TOK_BUILTIN_LOC; }
2352  YY_BREAK
2353 case 143:
2355 #line 294 "scanner.l"
2356 { make_identifier(); return TOK_BUILTIN_LOC; }
2357  YY_BREAK
2358 case 144:
2360 #line 295 "scanner.l"
2361 { make_identifier(); return TOK_BUILTIN_LOC; }
2362  YY_BREAK
2363 case 145:
2365 #line 296 "scanner.l"
2366 { make_identifier(); return TOK_BUILTIN_LOC; }
2367  YY_BREAK
2368 case 146:
2370 #line 297 "scanner.l"
2371 { make_identifier(); return TOK_BUILTIN_LOC; }
2372  YY_BREAK
2373 case 147:
2375 #line 298 "scanner.l"
2376 { make_identifier(); return TOK_BUILTIN_LOC; }
2377  YY_BREAK
2378 case 148:
2380 #line 299 "scanner.l"
2381 { make_identifier(); return TOK_BUILTIN_LOC; }
2382  YY_BREAK
2383 case 149:
2385 #line 300 "scanner.l"
2386 { make_identifier(); return TOK_BUILTIN_LOC; }
2387  YY_BREAK
2388 case 150:
2390 #line 301 "scanner.l"
2391 { make_identifier(); return TOK_BUILTIN_LOC; }
2392  YY_BREAK
2393 case 151:
2395 #line 302 "scanner.l"
2396 { make_identifier(); return TOK_BUILTIN_LOC; }
2397  YY_BREAK
2398 case 152:
2400 #line 303 "scanner.l"
2401 { make_identifier(); return TOK_BUILTIN_LOC; }
2402  YY_BREAK
2403 case 153:
2405 #line 304 "scanner.l"
2406 { make_identifier(); return TOK_BUILTIN_LOC; }
2407  YY_BREAK
2408 case 154:
2410 #line 305 "scanner.l"
2411 { make_identifier(); return TOK_BUILTIN_LOC; }
2412  YY_BREAK
2413 case 155:
2415 #line 306 "scanner.l"
2416 { make_identifier(); return TOK_BUILTIN_LOC; }
2417  YY_BREAK
2418 case 156:
2420 #line 307 "scanner.l"
2421 { make_identifier(); return TOK_BUILTIN_LOC; }
2422  YY_BREAK
2423 case 157:
2425 #line 308 "scanner.l"
2426 { make_identifier(); return TOK_BUILTIN_LOC; }
2427  YY_BREAK
2428 case 158:
2430 #line 309 "scanner.l"
2431 { make_identifier(); return TOK_BUILTIN_LOC; }
2432  YY_BREAK
2433 case 159:
2435 #line 310 "scanner.l"
2436 { make_identifier(); return TOK_BUILTIN_LOC; }
2437  YY_BREAK
2438 case 160:
2440 #line 311 "scanner.l"
2441 { make_identifier(); return TOK_BUILTIN_LOC; }
2442  YY_BREAK
2443 case 161:
2445 #line 312 "scanner.l"
2446 { make_identifier(); return TOK_BUILTIN_LOC; }
2447  YY_BREAK
2448 case 162:
2450 #line 313 "scanner.l"
2451 { make_identifier(); return TOK_BUILTIN_LOC; }
2452  YY_BREAK
2453 case 163:
2455 #line 314 "scanner.l"
2456 { make_identifier(); return TOK_BUILTIN_LOC; }
2457  YY_BREAK
2458 case 164:
2460 #line 315 "scanner.l"
2461 { make_identifier(); return TOK_BUILTIN_LOC; }
2462  YY_BREAK
2463 case 165:
2465 #line 316 "scanner.l"
2466 { make_identifier(); return TOK_BUILTIN_LOC; }
2467  YY_BREAK
2468 case 166:
2470 #line 317 "scanner.l"
2471 { make_identifier(); return TOK_BUILTIN_LOC; }
2472  YY_BREAK
2473 case 167:
2475 #line 318 "scanner.l"
2476 { make_identifier(); return TOK_BUILTIN_LOC; }
2477  YY_BREAK
2478 case 168:
2480 #line 319 "scanner.l"
2481 { make_identifier(); return TOK_BUILTIN_LOC; }
2482  YY_BREAK
2483 case 169:
2485 #line 320 "scanner.l"
2486 { make_identifier(); return TOK_BUILTIN_LOC; }
2487  YY_BREAK
2488 case 170:
2490 #line 321 "scanner.l"
2491 { make_identifier(); return TOK_BUILTIN_LOC; }
2492  YY_BREAK
2493 case 171:
2495 #line 322 "scanner.l"
2496 { make_identifier(); return TOK_BUILTIN_LOC; }
2497  YY_BREAK
2498 case 172:
2500 #line 323 "scanner.l"
2501 { make_identifier(); return TOK_BUILTIN_LOC; }
2502  YY_BREAK
2503 case 173:
2505 #line 324 "scanner.l"
2506 { make_identifier(); return TOK_BUILTIN_LOC; }
2507  YY_BREAK
2508 case 174:
2510 #line 325 "scanner.l"
2511 { make_identifier(); return TOK_BUILTIN_LOC; }
2512  YY_BREAK
2513 case 175:
2515 #line 326 "scanner.l"
2516 { make_identifier(); return TOK_BUILTIN_LOC; }
2517  YY_BREAK
2518 case 176:
2520 #line 327 "scanner.l"
2521 { make_identifier(); return TOK_BUILTIN_LOC; }
2522  YY_BREAK
2523 case 177:
2525 #line 328 "scanner.l"
2526 { make_identifier(); return TOK_BUILTIN_LOC; }
2527  YY_BREAK
2528 case 178:
2530 #line 329 "scanner.l"
2531 { make_identifier(); return TOK_BUILTIN_LOC; }
2532  YY_BREAK
2533 case 179:
2535 #line 330 "scanner.l"
2536 { make_identifier(); return TOK_BUILTIN_LOC; }
2537  YY_BREAK
2538 case 180:
2540 #line 331 "scanner.l"
2541 { make_identifier(); return TOK_BUILTIN_LOC; }
2542  YY_BREAK
2543 case 181:
2545 #line 333 "scanner.l"
2546 { loc(); BEGIN(GRAMMAR); return '}'; }
2547  YY_BREAK
2548 /* This catches all one-character operators */
2549 case 182:
2551 #line 335 "scanner.l"
2552 { loc(); return yyjsiltext[0]; }
2553  YY_BREAK
2554 
2555 case YY_STATE_EOF(INITIAL):
2556 case YY_STATE_EOF(GRAMMAR):
2558 case YY_STATE_EOF(STATEMENTS):
2559 #line 338 "scanner.l"
2560 { yyterminate(); /* done! */ }
2561  YY_BREAK
2562 case 183:
2564 #line 340 "scanner.l"
2565 ECHO;
2566  YY_BREAK
2567 #line 2568 "jsil_lex.yy.cpp"
2568 
2569  case YY_END_OF_BUFFER:
2570  {
2571  /* Amount of text matched not including the EOB char. */
2572  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2573 
2574  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2575  *yy_cp = (yy_hold_char);
2577 
2578  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2579  {
2580  /* We're scanning a new file or input source. It's
2581  * possible that this happened because the user
2582  * just pointed yyjsilin at a new source and called
2583  * yyjsillex(). If so, then we have to assure
2584  * consistency between YY_CURRENT_BUFFER and our
2585  * globals. Here is the right place to do so, because
2586  * this is the first action (other than possibly a
2587  * back-up) that will match for the new input source.
2588  */
2589  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2590  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyjsilin;
2591  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2592  }
2593 
2594  /* Note that here we test for yy_c_buf_p "<=" to the position
2595  * of the first EOB in the buffer, since yy_c_buf_p will
2596  * already have been incremented past the NUL character
2597  * (since all states make transitions on EOB to the
2598  * end-of-buffer state). Contrast this with the test
2599  * in input().
2600  */
2601  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2602  { /* This was really a NUL. */
2603  yy_state_type yy_next_state;
2604 
2605  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2606 
2607  yy_current_state = yy_get_previous_state( );
2608 
2609  /* Okay, we're now positioned to make the NUL
2610  * transition. We couldn't have
2611  * yy_get_previous_state() go ahead and do it
2612  * for us because it doesn't know how to deal
2613  * with the possibility of jamming (and we don't
2614  * want to build jamming into it because then it
2615  * will run more slowly).
2616  */
2617 
2618  yy_next_state = yy_try_NUL_trans( yy_current_state );
2619 
2620  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2621 
2622  if ( yy_next_state )
2623  {
2624  /* Consume the NUL. */
2625  yy_cp = ++(yy_c_buf_p);
2626  yy_current_state = yy_next_state;
2627  goto yy_match;
2628  }
2629 
2630  else
2631  {
2632  yy_cp = (yy_last_accepting_cpos);
2633  yy_current_state = (yy_last_accepting_state);
2634  goto yy_find_action;
2635  }
2636  }
2637 
2638  else switch ( yy_get_next_buffer( ) )
2639  {
2640  case EOB_ACT_END_OF_FILE:
2641  {
2643 
2644  if ( yyjsilwrap( ) )
2645  {
2646  /* Note: because we've taken care in
2647  * yy_get_next_buffer() to have set up
2648  * yyjsiltext, we can now set up
2649  * yy_c_buf_p so that if some total
2650  * hoser (like flex itself) wants to
2651  * call the scanner after we return the
2652  * YY_NULL, it'll still work - another
2653  * YY_NULL will get returned.
2654  */
2656 
2657  yy_act = YY_STATE_EOF(YY_START);
2658  goto do_action;
2659  }
2660 
2661  else
2662  {
2663  if ( ! (yy_did_buffer_switch_on_eof) )
2664  YY_NEW_FILE;
2665  }
2666  break;
2667  }
2668 
2669  case EOB_ACT_CONTINUE_SCAN:
2670  (yy_c_buf_p) =
2671  (yytext_ptr) + yy_amount_of_matched_text;
2672 
2673  yy_current_state = yy_get_previous_state( );
2674 
2675  yy_cp = (yy_c_buf_p);
2676  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2677  goto yy_match;
2678 
2679  case EOB_ACT_LAST_MATCH:
2680  (yy_c_buf_p) =
2681  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2682 
2683  yy_current_state = yy_get_previous_state( );
2684 
2685  yy_cp = (yy_c_buf_p);
2686  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2687  goto yy_find_action;
2688  }
2689  break;
2690  }
2691 
2692  default:
2694  "fatal flex scanner internal error--no action found" );
2695  } /* end of action switch */
2696  } /* end of scanning one token */
2697  } /* end of user's declarations */
2698 } /* end of yyjsillex */
2699 
2700 /* yy_get_next_buffer - try to read in a new buffer
2701  *
2702  * Returns a code representing an action:
2703  * EOB_ACT_LAST_MATCH -
2704  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2705  * EOB_ACT_END_OF_FILE - end of file
2706  */
2707 static int yy_get_next_buffer (void)
2708 {
2709  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2710  char *source = (yytext_ptr);
2711  yy_size_t number_to_move, i;
2712  int ret_val;
2713 
2714  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2716  "fatal flex scanner internal error--end of buffer missed" );
2717 
2718  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2719  { /* Don't try to fill the buffer, so this is an EOF. */
2720  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2721  {
2722  /* We matched a single character, the EOB, so
2723  * treat this as a final EOF.
2724  */
2725  return EOB_ACT_END_OF_FILE;
2726  }
2727 
2728  else
2729  {
2730  /* We matched some text prior to the EOB, first
2731  * process it.
2732  */
2733  return EOB_ACT_LAST_MATCH;
2734  }
2735  }
2736 
2737  /* Try to read more data. */
2738 
2739  /* First move last chars to start of buffer. */
2740  number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2741 
2742  for ( i = 0; i < number_to_move; ++i )
2743  *(dest++) = *(source++);
2744 
2745  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2746  /* don't do the read, it's not guaranteed to return an EOF,
2747  * just force an EOF
2748  */
2749  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2750 
2751  else
2752  {
2753  int num_to_read =
2754  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2755 
2756  while ( num_to_read <= 0 )
2757  { /* Not enough room in the buffer - grow it. */
2758 
2759  /* just a shorter name for the current buffer */
2761 
2762  int yy_c_buf_p_offset =
2763  (int) ((yy_c_buf_p) - b->yy_ch_buf);
2764 
2765  if ( b->yy_is_our_buffer )
2766  {
2767  int new_size = b->yy_buf_size * 2;
2768 
2769  if ( new_size <= 0 )
2770  b->yy_buf_size += b->yy_buf_size / 8;
2771  else
2772  b->yy_buf_size *= 2;
2773 
2774  b->yy_ch_buf = (char *)
2775  /* Include room in for 2 EOB chars. */
2776  yyjsilrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) );
2777  }
2778  else
2779  /* Can't grow it, we don't own it. */
2780  b->yy_ch_buf = NULL;
2781 
2782  if ( ! b->yy_ch_buf )
2784  "fatal error - scanner input buffer overflow" );
2785 
2786  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2787 
2788  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2789  number_to_move - 1;
2790 
2791  }
2792 
2793  if ( num_to_read > YY_READ_BUF_SIZE )
2794  num_to_read = YY_READ_BUF_SIZE;
2795 
2796  /* Read in more data. */
2797  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2798  (yy_n_chars), num_to_read );
2799 
2800  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2801  }
2802 
2803  if ( (yy_n_chars) == 0 )
2804  {
2805  if ( number_to_move == YY_MORE_ADJ )
2806  {
2807  ret_val = EOB_ACT_END_OF_FILE;
2809  }
2810 
2811  else
2812  {
2813  ret_val = EOB_ACT_LAST_MATCH;
2814  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2816  }
2817  }
2818 
2819  else
2820  ret_val = EOB_ACT_CONTINUE_SCAN;
2821 
2822  if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2823  /* Extend the array by 50%, plus the number we really need. */
2824  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2825  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyjsilrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size );
2826  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2827  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2828  }
2829 
2830  (yy_n_chars) += number_to_move;
2833 
2834  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2835 
2836  return ret_val;
2837 }
2838 
2839 /* yy_get_previous_state - get the state just before the EOB char was reached */
2840 
2842 {
2843  yy_state_type yy_current_state;
2844  char *yy_cp;
2845 
2846  yy_current_state = (yy_start);
2847 
2848  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2849  {
2850  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2851  if ( yy_accept[yy_current_state] )
2852  {
2853  (yy_last_accepting_state) = yy_current_state;
2854  (yy_last_accepting_cpos) = yy_cp;
2855  }
2856  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2857  {
2858  yy_current_state = (int) yy_def[yy_current_state];
2859  if ( yy_current_state >= 1305 )
2860  yy_c = yy_meta[(unsigned int) yy_c];
2861  }
2862  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2863  }
2864 
2865  return yy_current_state;
2866 }
2867 
2868 /* yy_try_NUL_trans - try to make a transition on the NUL character
2869  *
2870  * synopsis
2871  * next_state = yy_try_NUL_trans( current_state );
2872  */
2873  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2874 {
2875  int yy_is_jam;
2876  char *yy_cp = (yy_c_buf_p);
2877 
2878  YY_CHAR yy_c = 1;
2879  if ( yy_accept[yy_current_state] )
2880  {
2881  (yy_last_accepting_state) = yy_current_state;
2882  (yy_last_accepting_cpos) = yy_cp;
2883  }
2884  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2885  {
2886  yy_current_state = (int) yy_def[yy_current_state];
2887  if ( yy_current_state >= 1305 )
2888  yy_c = yy_meta[(unsigned int) yy_c];
2889  }
2890  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2891  yy_is_jam = (yy_current_state == 1304);
2892 
2893  return yy_is_jam ? 0 : yy_current_state;
2894 }
2895 
2896 #ifndef YY_NO_UNPUT
2897 
2898 #endif
2899 
2900 #ifndef YY_NO_INPUT
2901 #ifdef __cplusplus
2902  static int yyinput (void)
2903 #else
2904  static int input (void)
2905 #endif
2906 
2907 {
2908  int c;
2909 
2910  *(yy_c_buf_p) = (yy_hold_char);
2911 
2912  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2913  {
2914  /* yy_c_buf_p now points to the character we want to return.
2915  * If this occurs *before* the EOB characters, then it's a
2916  * valid NUL; if not, then we've hit the end of the buffer.
2917  */
2918  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2919  /* This was really a NUL. */
2920  *(yy_c_buf_p) = '\0';
2921 
2922  else
2923  { /* need more input */
2924  int offset = (yy_c_buf_p) - (yytext_ptr);
2925  ++(yy_c_buf_p);
2926 
2927  switch ( yy_get_next_buffer( ) )
2928  {
2929  case EOB_ACT_LAST_MATCH:
2930  /* This happens because yy_g_n_b()
2931  * sees that we've accumulated a
2932  * token and flags that we need to
2933  * try matching the token before
2934  * proceeding. But for input(),
2935  * there's no matching to consider.
2936  * So convert the EOB_ACT_LAST_MATCH
2937  * to EOB_ACT_END_OF_FILE.
2938  */
2939 
2940  /* Reset buffer status. */
2942 
2943  /*FALLTHROUGH*/
2944 
2945  case EOB_ACT_END_OF_FILE:
2946  {
2947  if ( yyjsilwrap( ) )
2948  return 0;
2949 
2950  if ( ! (yy_did_buffer_switch_on_eof) )
2951  YY_NEW_FILE;
2952 #ifdef __cplusplus
2953  return yyinput();
2954 #else
2955  return input();
2956 #endif
2957  }
2958 
2959  case EOB_ACT_CONTINUE_SCAN:
2960  (yy_c_buf_p) = (yytext_ptr) + offset;
2961  break;
2962  }
2963  }
2964  }
2965 
2966  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2967  *(yy_c_buf_p) = '\0'; /* preserve yyjsiltext */
2968  (yy_hold_char) = *++(yy_c_buf_p);
2969 
2970  return c;
2971 }
2972 #endif /* ifndef YY_NO_INPUT */
2973 
2979  void yyjsilrestart (FILE * input_file )
2980 {
2981 
2982  if ( ! YY_CURRENT_BUFFER ){
2986  }
2987 
2990 }
2991 
2997 {
2998 
2999  /* TODO. We should be able to replace this entire function body
3000  * with
3001  * yyjsilpop_buffer_state();
3002  * yyjsilpush_buffer_state(new_buffer);
3003  */
3005  if ( YY_CURRENT_BUFFER == new_buffer )
3006  return;
3007 
3008  if ( YY_CURRENT_BUFFER )
3009  {
3010  /* Flush out information for old buffer. */
3011  *(yy_c_buf_p) = (yy_hold_char);
3012  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3013  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3014  }
3015 
3016  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3018 
3019  /* We don't actually know whether we did this switch during
3020  * EOF (yyjsilwrap()) processing, but the only time this flag
3021  * is looked at is after yyjsilwrap() is called, so it's safe
3022  * to go ahead and always set it.
3023  */
3025 }
3026 
3027 static void yyjsil_load_buffer_state (void)
3028 {
3029  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3030  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3031  yyjsilin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3032  (yy_hold_char) = *(yy_c_buf_p);
3033 }
3034 
3042 {
3043  YY_BUFFER_STATE b;
3044 
3045  b = (YY_BUFFER_STATE) yyjsilalloc(sizeof( struct yy_buffer_state ) );
3046  if ( ! b )
3047  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_create_buffer()" );
3048 
3049  b->yy_buf_size = size;
3050 
3051  /* yy_ch_buf has to be 2 characters longer than the size given because
3052  * we need to put in 2 end-of-buffer characters.
3053  */
3054  b->yy_ch_buf = (char *) yyjsilalloc((yy_size_t) (b->yy_buf_size + 2) );
3055  if ( ! b->yy_ch_buf )
3056  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_create_buffer()" );
3057 
3058  b->yy_is_our_buffer = 1;
3059 
3061 
3062  return b;
3063 }
3064 
3070 {
3071 
3072  if ( ! b )
3073  return;
3074 
3075  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3077 
3078  if ( b->yy_is_our_buffer )
3079  yyjsilfree((void *) b->yy_ch_buf );
3080 
3081  yyjsilfree((void *) b );
3082 }
3083 
3084 /* Initializes or reinitializes a buffer.
3085  * This function is sometimes called more than once on the same buffer,
3086  * such as during a yyjsilrestart() or at EOF.
3087  */
3088  static void yyjsil_init_buffer (YY_BUFFER_STATE b, FILE * file )
3089 
3090 {
3091  int oerrno = errno;
3092 
3093  yyjsil_flush_buffer(b );
3094 
3095  b->yy_input_file = file;
3096  b->yy_fill_buffer = 1;
3097 
3098  /* If b is the current buffer, then yyjsil_init_buffer was _probably_
3099  * called from yyjsilrestart() or through yy_get_next_buffer.
3100  * In that case, we don't want to reset the lineno or column.
3101  */
3102  if (b != YY_CURRENT_BUFFER){
3103  b->yy_bs_lineno = 1;
3104  b->yy_bs_column = 0;
3105  }
3106 
3107  b->yy_is_interactive = 0;
3108 
3109  errno = oerrno;
3110 }
3111 
3117 {
3118  if ( ! b )
3119  return;
3120 
3121  b->yy_n_chars = 0;
3122 
3123  /* We always need two end-of-buffer characters. The first causes
3124  * a transition to the end-of-buffer state. The second causes
3125  * a jam in that state.
3126  */
3129 
3130  b->yy_buf_pos = &b->yy_ch_buf[0];
3131 
3132  b->yy_at_bol = 1;
3134 
3135  if ( b == YY_CURRENT_BUFFER )
3137 }
3138 
3146 {
3147  if (new_buffer == NULL)
3148  return;
3149 
3151 
3152  /* This block is copied from yyjsil_switch_to_buffer. */
3153  if ( YY_CURRENT_BUFFER )
3154  {
3155  /* Flush out information for old buffer. */
3156  *(yy_c_buf_p) = (yy_hold_char);
3157  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3158  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3159  }
3160 
3161  /* Only push if top exists. Otherwise, replace top. */
3162  if (YY_CURRENT_BUFFER)
3163  (yy_buffer_stack_top)++;
3164  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3165 
3166  /* copied from yyjsil_switch_to_buffer. */
3169 }
3170 
3176 {
3177  if (!YY_CURRENT_BUFFER)
3178  return;
3179 
3181  YY_CURRENT_BUFFER_LVALUE = NULL;
3182  if ((yy_buffer_stack_top) > 0)
3183  --(yy_buffer_stack_top);
3184 
3185  if (YY_CURRENT_BUFFER) {
3188  }
3189 }
3190 
3191 /* Allocates the stack if it does not exist.
3192  * Guarantees space for at least one push.
3193  */
3194 static void yyjsilensure_buffer_stack (void)
3195 {
3196  int num_to_alloc;
3197 
3198  if (!(yy_buffer_stack)) {
3199 
3200  /* First allocation is just for 2 elements, since we don't know if this
3201  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3202  * immediate realloc on the next call.
3203  */
3204  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
3206  (num_to_alloc * sizeof(struct yy_buffer_state*)
3207  );
3208  if ( ! (yy_buffer_stack) )
3209  YY_FATAL_ERROR( "out of dynamic memory in yyjsilensure_buffer_stack()" );
3210 
3211  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3212 
3213  (yy_buffer_stack_max) = num_to_alloc;
3214  (yy_buffer_stack_top) = 0;
3215  return;
3216  }
3217 
3218  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3219 
3220  /* Increase the buffer to prepare for a possible push. */
3221  yy_size_t grow_size = 8 /* arbitrary grow size */;
3222 
3223  num_to_alloc = (yy_buffer_stack_max) + grow_size;
3225  ((yy_buffer_stack),
3226  num_to_alloc * sizeof(struct yy_buffer_state*)
3227  );
3228  if ( ! (yy_buffer_stack) )
3229  YY_FATAL_ERROR( "out of dynamic memory in yyjsilensure_buffer_stack()" );
3230 
3231  /* zero only the new slots.*/
3232  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3233  (yy_buffer_stack_max) = num_to_alloc;
3234  }
3235 }
3236 
3244 {
3245  YY_BUFFER_STATE b;
3246 
3247  if ( size < 2 ||
3248  base[size-2] != YY_END_OF_BUFFER_CHAR ||
3249  base[size-1] != YY_END_OF_BUFFER_CHAR )
3250  /* They forgot to leave room for the EOB's. */
3251  return NULL;
3252 
3253  b = (YY_BUFFER_STATE) yyjsilalloc(sizeof( struct yy_buffer_state ) );
3254  if ( ! b )
3255  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_scan_buffer()" );
3256 
3257  b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
3258  b->yy_buf_pos = b->yy_ch_buf = base;
3259  b->yy_is_our_buffer = 0;
3260  b->yy_input_file = NULL;
3261  b->yy_n_chars = b->yy_buf_size;
3262  b->yy_is_interactive = 0;
3263  b->yy_at_bol = 1;
3264  b->yy_fill_buffer = 0;
3266 
3268 
3269  return b;
3270 }
3271 
3281 {
3282 
3283  return yyjsil_scan_bytes(yystr,(int) strlen(yystr) );
3284 }
3285 
3293 YY_BUFFER_STATE yyjsil_scan_bytes (yyconst char * yybytes, int _yybytes_len )
3294 {
3295  YY_BUFFER_STATE b;
3296  char *buf;
3297  yy_size_t n;
3298  yy_size_t i;
3299 
3300  /* Get memory for full buffer, including space for trailing EOB's. */
3301  n = (yy_size_t) _yybytes_len + 2;
3302  buf = (char *) yyjsilalloc(n );
3303  if ( ! buf )
3304  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_scan_bytes()" );
3305 
3306  for ( i = 0; i < _yybytes_len; ++i )
3307  buf[i] = yybytes[i];
3308 
3309  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3310 
3311  b = yyjsil_scan_buffer(buf,n );
3312  if ( ! b )
3313  YY_FATAL_ERROR( "bad buffer in yyjsil_scan_bytes()" );
3314 
3315  /* It's okay to grow etc. this buffer, and we should throw it
3316  * away when we're done.
3317  */
3318  b->yy_is_our_buffer = 1;
3319 
3320  return b;
3321 }
3322 
3323  static void yy_push_state (int _new_state )
3324 {
3326  {
3327  yy_size_t new_size;
3328 
3330  new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
3331 
3332  if ( ! (yy_start_stack) )
3333  (yy_start_stack) = (int *) yyjsilalloc(new_size );
3334 
3335  else
3336  (yy_start_stack) = (int *) yyjsilrealloc((void *) (yy_start_stack),new_size );
3337 
3338  if ( ! (yy_start_stack) )
3339  YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3340  }
3341 
3343 
3344  BEGIN(_new_state);
3345 }
3346 
3347  static void yy_pop_state (void)
3348 {
3349  if ( --(yy_start_stack_ptr) < 0 )
3350  YY_FATAL_ERROR( "start-condition stack underflow" );
3351 
3353 }
3354 
3355  static int yy_top_state (void)
3356 {
3357  return (yy_start_stack)[(yy_start_stack_ptr) - 1];
3358 }
3359 
3360 #ifndef YY_EXIT_FAILURE
3361 #define YY_EXIT_FAILURE 2
3362 #endif
3363 
3364 static void yynoreturn yy_fatal_error (yyconst char* msg )
3365 {
3366  (void) fprintf( stderr, "%s\n", msg );
3367  exit( YY_EXIT_FAILURE );
3368 }
3369 
3370 /* Redefine yyless() so it works in section 3 code. */
3371 
3372 #undef yyless
3373 #define yyless(n) \
3374  do \
3375  { \
3376  /* Undo effects of setting up yyjsiltext. */ \
3377  yy_size_t yyless_macro_arg = (n); \
3378  YY_LESS_LINENO(yyless_macro_arg);\
3379  yyjsiltext[yyjsilleng] = (yy_hold_char); \
3380  (yy_c_buf_p) = yyjsiltext + yyless_macro_arg; \
3381  (yy_hold_char) = *(yy_c_buf_p); \
3382  *(yy_c_buf_p) = '\0'; \
3383  yyjsilleng = yyless_macro_arg; \
3384  } \
3385  while ( 0 )
3386 
3387 /* Accessor methods (get/set functions) to struct members. */
3388 
3393 {
3394 
3395  return yyjsillineno;
3396 }
3397 
3401 FILE *yyjsilget_in (void)
3402 {
3403  return yyjsilin;
3404 }
3405 
3409 FILE *yyjsilget_out (void)
3410 {
3411  return yyjsilout;
3412 }
3413 
3417 int yyjsilget_leng (void)
3418 {
3419  return yyjsilleng;
3420 }
3421 
3426 char *yyjsilget_text (void)
3427 {
3428  return yyjsiltext;
3429 }
3430 
3435 void yyjsilset_lineno (int _line_number )
3436 {
3437 
3438  yyjsillineno = _line_number;
3439 }
3440 
3447 void yyjsilset_in (FILE * _in_str )
3448 {
3449  yyjsilin = _in_str ;
3450 }
3451 
3452 void yyjsilset_out (FILE * _out_str )
3453 {
3454  yyjsilout = _out_str ;
3455 }
3456 
3458 {
3459  return yyjsil_flex_debug;
3460 }
3461 
3462 void yyjsilset_debug (int _bdebug )
3463 {
3464  yyjsil_flex_debug = _bdebug ;
3465 }
3466 
3467 static int yy_init_globals (void)
3468 {
3469  /* Initialization is the same as for the non-reentrant scanner.
3470  * This function is called from yyjsillex_destroy(), so don't allocate here.
3471  */
3472 
3473  (yy_buffer_stack) = NULL;
3474  (yy_buffer_stack_top) = 0;
3475  (yy_buffer_stack_max) = 0;
3476  (yy_c_buf_p) = NULL;
3477  (yy_init) = 0;
3478  (yy_start) = 0;
3479 
3480  (yy_start_stack_ptr) = 0;
3481  (yy_start_stack_depth) = 0;
3482  (yy_start_stack) = NULL;
3483 
3484 /* Defined in main.c */
3485 #ifdef YY_STDINIT
3486  yyjsilin = stdin;
3487  yyjsilout = stdout;
3488 #else
3489  yyjsilin = NULL;
3490  yyjsilout = NULL;
3491 #endif
3492 
3493  /* For future reference: Set errno on error, since we are called by
3494  * yyjsillex_init()
3495  */
3496  return 0;
3497 }
3498 
3499 /* yyjsillex_destroy is for both reentrant and non-reentrant scanners. */
3501 {
3502 
3503  /* Pop the buffer stack, destroying each element. */
3504  while(YY_CURRENT_BUFFER){
3506  YY_CURRENT_BUFFER_LVALUE = NULL;
3508  }
3509 
3510  /* Destroy the stack itself. */
3512  (yy_buffer_stack) = NULL;
3513 
3514  /* Destroy the start condition stack. */
3516  (yy_start_stack) = NULL;
3517 
3518  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3519  * yyjsillex() is called, initialization will occur. */
3520  yy_init_globals( );
3521 
3522  return 0;
3523 }
3524 
3525 /*
3526  * Internal utility routines.
3527  */
3528 
3529 #ifndef yytext_ptr
3530 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3531 {
3532 
3533  int i;
3534  for ( i = 0; i < n; ++i )
3535  s1[i] = s2[i];
3536 }
3537 #endif
3538 
3539 #ifdef YY_NEED_STRLEN
3540 static int yy_flex_strlen (yyconst char * s )
3541 {
3542  int n;
3543  for ( n = 0; s[n]; ++n )
3544  ;
3545 
3546  return n;
3547 }
3548 #endif
3549 
3550 void *yyjsilalloc (yy_size_t size )
3551 {
3552  return malloc(size);
3553 }
3554 
3555 void *yyjsilrealloc (void * ptr, yy_size_t size )
3556 {
3557 
3558  /* The cast to (char *) in the following accommodates both
3559  * implementations that use char* generic pointers, and those
3560  * that use void* generic pointers. It works with the latter
3561  * because both ANSI C and C++ allow castless assignment from
3562  * any pointer type to void*, and deal with argument conversions
3563  * as though doing an assignment.
3564  */
3565  return realloc(ptr, size);
3566 }
3567 
3568 void yyjsilfree (void * ptr )
3569 {
3570  free( (char *) ptr ); /* see yyjsilrealloc() for (char *) cast */
3571 }
3572 
3573 #define YYTABLES_NAME "yytables"
3574 
3575 #line 340 "scanner.l"
3576 
3577 
3578 
3579 int yyjsilwrap() { return 1; }
3580 
3581 
void yyjsilpop_buffer_state(void)
Removes and deletes the top of the stack, if present.
char * yyjsiltext
YY_BUFFER_STATE yyjsil_scan_string(const char *yy_str)
Setup the input buffer state to scan a string.
#define ECHO
Jsil Language.
#define YY_DO_BEFORE_ACTION
int yy_state_type
static void yyjsil_load_buffer_state(void)
#define EOB_ACT_CONTINUE_SCAN
C/C++ Language Conversion.
int yyjsilerror(const std::string &error)
Definition: jsil_parser.cpp:18
char * yyjsilget_text(void)
Get the current token.
static int yy_get_next_buffer(void)
void yyjsilpush_buffer_state(YY_BUFFER_STATE new_buffer)
Pushes the new state onto the stack.
#define TOK_DELETE
void * yyjsilrealloc(void *, yy_size_t)
#define BEGIN
static int yy_top_state(void)
#define TOK_TRUE
#define YY_CURRENT_BUFFER
#define loc()
#define TOK_IDENTIFIER
static const flex_int16_t yy_accept[1305]
#define PARSER
size_t yy_size_t
static void yyjsilensure_buffer_stack(void)
#define EOB_ACT_LAST_MATCH
static int yy_n_chars
#define YY_END_OF_BUFFER_CHAR
#define YY_BUFFER_NORMAL
void yyjsil_flush_buffer(YY_BUFFER_STATE b)
Discard all buffered characters.
#define yytext_ptr
static void yy_pop_state(void)
#define YY_INPUT(buf, result, max_size)
void yyjsilset_extra(void *user_defined)
static YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
#define YY_SC_TO_UI(c)
static int yy_start_stack_depth
C Language Conversion.
#define STATEMENTS
#define YY_FLUSH_BUFFER
FILE * yyjsilout
static const flex_uint16_t yy_nxt[1557]
#define EOB_ACT_END_OF_FILE
int yy_bs_lineno
The line count.
int yyjsillex(void)
The main scanner function which does all the work.
#define INITIAL
#define TOK_NEW
unsigned int flex_uint32_t
Definition: jsil_lex.yy.cpp:75
void jsil_scanner_init()
int yyjsillineno
static int yy_start_stack_ptr
#define yyterminate()
#define YY_BUFFER_NEW
void yyjsilset_out(FILE *_out_str)
void * yyjsilget_extra(void)
YY_BUFFER_STATE yyjsil_scan_bytes(const char *bytes, int len)
Setup the input buffer state to scan the given bytes.
#define yyless(n)
size_t yy_size_t
int flex_int32_t
YY_BUFFER_STATE yyjsil_create_buffer(FILE *file, int size)
Allocate and initialize an input buffer state.
#define TOK_TYPEOF
#define YY_EXIT_FAILURE
unsigned short int flex_uint16_t
Definition: jsil_lex.yy.cpp:74
static int yy_start
#define YY_STATE_EOF(state)
unsigned char YY_CHAR
void free(void *)
static char * yy_c_buf_p
#define YY_MORE_ADJ
FILE * yyjsilget_in(void)
Get the input stream.
int yyjsilget_debug(void)
int yy_state_type
int yyjsilget_leng(void)
Get the length of the current token.
unsigned yyjsillval
short int flex_int16_t
int yy_bs_column
The column count.
struct yy_buffer_state * YY_BUFFER_STATE
static size_t yy_buffer_stack_max
capacity of stack.
int yyjsilwrap(void)
#define YY_RESTORE_YY_MORE_OFFSET
FILE * yyjsilget_out(void)
Get the output stream.
static int * yy_start_stack
int yyjsil_flex_debug
#define YY_DECL
static int yy_init
static const flex_int16_t yy_chk[1557]
void yyjsilset_lineno(int _line_number)
Set the current line number.
static int yy_did_buffer_switch_on_eof
#define YY_FATAL_ERROR(msg)
int flex_int32_t
Definition: jsil_lex.yy.cpp:72
#define TOK_GOTO
unsigned short int flex_uint16_t
#define TOK_NULL
Definition: jsil_y.tab.cpp:214
FILE * yyjsilin
unsigned char flex_uint8_t
Definition: jsil_lex.yy.cpp:73
YY_BUFFER_STATE yyjsil_scan_buffer(char *base, yy_size_t size)
Setup the input buffer state to scan directly from a user-specified character buffer.
void * yyjsilalloc(yy_size_t)
#define COMMENT
#define YY_NEW_FILE
#define YY_RULE_SETUP
static yy_state_type yy_last_accepting_state
#define YY_BUFFER_EOF_PENDING
static const YY_CHAR yy_ec[256]
static void yy_fatal_error(const char *msg)
void yyjsilfree(void *)
int yyjsilleng
#define YY_BUF_SIZE
int yyjsilget_lineno(void)
Get the current line number.
void yyjsilrestart(FILE *input_file)
Immediately switch to a different input stream.
signed char flex_int8_t
Definition: jsil_lex.yy.cpp:70
static void yyjsil_init_buffer(YY_BUFFER_STATE b, FILE *file)
void yyjsil_delete_buffer(YY_BUFFER_STATE b)
Destroy the buffer.
#define TOK_SCOPE
static char * yy_last_accepting_cpos
static void yy_push_state(int _new_state)
static size_t yy_buffer_stack_top
index of top of stack.
#define GRAMMAR
#define YY_EXTRA_TYPE
#define TOK_STRING
#define YY_READ_BUF_SIZE
#define TOK_FALSE
exprt convert_float_literal(const std::string &src)
flex_int32_t yy_verify
#define TOK_FLOATING
void yyjsilset_debug(int debug_flag)
static char yy_hold_char
void * malloc(size_t)
#define STRING_LITERAL
flex_int32_t yy_nxt
void yyjsil_switch_to_buffer(YY_BUFFER_STATE new_buffer)
Switch to a different input buffer.
exprt convert_string_literal(const std::string &src)
#define TOK_CLASS
#define newstack(x)
Definition: parser.h:142
static const flex_uint16_t yy_base[1315]
void yyjsilset_in(FILE *_in_str)
Set the input stream.
int8_t s1
Definition: bytecode_info.h:59
static const flex_int16_t yy_def[1315]
#define YY_CURRENT_BUFFER_LVALUE
#define STRING_LITERAL_COMMENT
int16_t s2
Definition: bytecode_info.h:60
unsigned char YY_CHAR
static const YY_CHAR yy_meta[68]
#define YY_START_STACK_INCR
static int yy_init_globals(void)
static yy_state_type yy_try_NUL_trans(yy_state_type current_state)
#define TOK_SCANNER_ERROR
#define yynoreturn
#define stack(x)
Definition: parser.h:144
#define yyconst
#define YY_BREAK
static int make_identifier()
static yy_state_type yy_get_previous_state(void)
int yyjsillex_destroy(void)
#define YY_START
short int flex_int16_t
Definition: jsil_lex.yy.cpp:71
#define YY_END_OF_BUFFER
Definition: kdev_t.h:19