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 #line 6 "scanner.l"
1248 #ifdef _WIN32
1249 #define YY_NO_UNISTD_H
1250 static int isatty(int) { return 0; }
1251 #endif
1252 
1253 #include <util/expr.h>
1254 
1257 
1258 #define PARSER jsil_parser
1259 #define YYSTYPE unsigned
1260 
1261 #include "jsil_parser.h"
1262 #include "jsil_y.tab.h"
1263 // extern int yyjsildebug;
1264 
1265 #define loc() \
1266  { newstack(yyjsillval); PARSER.set_source_location(stack(yyjsillval)); }
1267 
1268 static int make_identifier()
1269 {
1270  loc();
1271 
1272  // this hashes the identifier
1273  irep_idt base_name=yyjsiltext;
1274 
1275  stack(yyjsillval).id(ID_symbol);
1276  stack(yyjsillval).set(ID_C_base_name, base_name);
1277  stack(yyjsillval).set(ID_identifier, base_name);
1278  return TOK_IDENTIFIER;
1279 }
1280 
1281 #include <util/pragma_wsign_compare.def>
1282 #include <util/pragma_wnull_conversion.def>
1283 #include <util/pragma_wdeprecated_register.def>
1284 
1285 
1286 
1287 
1288 
1289 
1290 #line 71 "scanner.l"
1292 {
1293  // yyjsildebug=1;
1295  BEGIN(0);
1296 }
1297 /* %option debug */
1298 #line 1299 "jsil_lex.yy.cpp"
1299 
1300 #define INITIAL 0
1301 #define GRAMMAR 1
1302 #define COMMENT 2
1303 #define STRING_LITERAL 3
1304 #define STRING_LITERAL_COMMENT 4
1305 #define STATEMENTS 5
1306 
1307 #ifndef YY_NO_UNISTD_H
1308 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1309  * down here because we want the user's section 1 to have been scanned first.
1310  * The user has a chance to override it with an option.
1311  */
1312 #include <unistd.h>
1313 #endif
1314 
1315 #ifndef YY_EXTRA_TYPE
1316 #define YY_EXTRA_TYPE void *
1317 #endif
1318 
1319 static int yy_init_globals (void );
1320 
1321 /* Accessor methods to globals.
1322  These are made visible to non-reentrant scanners for convenience. */
1323 
1324 int yyjsillex_destroy (void );
1325 
1326 int yyjsilget_debug (void );
1327 
1328 void yyjsilset_debug (int debug_flag );
1329 
1331 
1332 void yyjsilset_extra (YY_EXTRA_TYPE user_defined );
1333 
1334 FILE *yyjsilget_in (void );
1335 
1336 void yyjsilset_in (FILE * _in_str );
1337 
1338 FILE *yyjsilget_out (void );
1339 
1340 void yyjsilset_out (FILE * _out_str );
1341 
1342  int yyjsilget_leng (void );
1343 
1344 char *yyjsilget_text (void );
1345 
1346 int yyjsilget_lineno (void );
1347 
1348 void yyjsilset_lineno (int _line_number );
1349 
1350 /* Macros after this point can all be overridden by user definitions in
1351  * section 1.
1352  */
1353 
1354 #ifndef YY_SKIP_YYWRAP
1355 #ifdef __cplusplus
1356 extern "C" int yyjsilwrap (void );
1357 #else
1358 extern int yyjsilwrap (void );
1359 #endif
1360 #endif
1361 
1362 #ifndef YY_NO_UNPUT
1363 
1364 #endif
1365 
1366 #ifndef yytext_ptr
1367 static void yy_flex_strncpy (char *,yyconst char *,int );
1368 #endif
1369 
1370 #ifdef YY_NEED_STRLEN
1371 static int yy_flex_strlen (yyconst char * );
1372 #endif
1373 
1374 #ifndef YY_NO_INPUT
1375 
1376 #ifdef __cplusplus
1377 static int yyinput (void );
1378 #else
1379 static int input (void );
1380 #endif
1381 
1382 #endif
1383 
1384  static int yy_start_stack_ptr = 0;
1385  static int yy_start_stack_depth = 0;
1386  static int *yy_start_stack = NULL;
1387 
1388  static void yy_push_state (int _new_state );
1389 
1390  static void yy_pop_state (void );
1391 
1392  static int yy_top_state (void );
1393 
1394 /* Amount of stuff to slurp up with each read. */
1395 #ifndef YY_READ_BUF_SIZE
1396 #ifdef __ia64__
1397 /* On IA-64, the buffer size is 16k, not 8k */
1398 #define YY_READ_BUF_SIZE 16384
1399 #else
1400 #define YY_READ_BUF_SIZE 8192
1401 #endif /* __ia64__ */
1402 #endif
1403 
1404 /* Copy whatever the last rule matched to the standard output. */
1405 #ifndef ECHO
1406 /* This used to be an fputs(), but since the string might contain NUL's,
1407  * we now use fwrite().
1408  */
1409 #define ECHO do { if (fwrite( yyjsiltext, (size_t) yyjsilleng, 1, yyjsilout )) {} } while (0)
1410 #endif
1411 
1412 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1413  * is returned in "result".
1414  */
1415 #ifndef YY_INPUT
1416 #define YY_INPUT(buf,result,max_size) \
1417  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1418  { \
1419  int c = '*'; \
1420  int n; \
1421  for ( n = 0; n < max_size && \
1422  (c = getc( yyjsilin )) != EOF && c != '\n'; ++n ) \
1423  buf[n] = (char) c; \
1424  if ( c == '\n' ) \
1425  buf[n++] = (char) c; \
1426  if ( c == EOF && ferror( yyjsilin ) ) \
1427  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1428  result = n; \
1429  } \
1430  else \
1431  { \
1432  errno=0; \
1433  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyjsilin)) == 0 && ferror(yyjsilin)) \
1434  { \
1435  if( errno != EINTR) \
1436  { \
1437  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1438  break; \
1439  } \
1440  errno=0; \
1441  clearerr(yyjsilin); \
1442  } \
1443  }\
1444 \
1445 
1446 #endif
1447 
1448 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1449  * we don't want an extra ';' after the "return" because that will cause
1450  * some compilers to complain about unreachable statements.
1451  */
1452 #ifndef yyterminate
1453 #define yyterminate() return YY_NULL
1454 #endif
1455 
1456 /* Number of entries by which start-condition stack grows. */
1457 #ifndef YY_START_STACK_INCR
1458 #define YY_START_STACK_INCR 25
1459 #endif
1460 
1461 /* Report a fatal error. */
1462 #ifndef YY_FATAL_ERROR
1463 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1464 #endif
1465 
1466 /* end tables serialization structures and prototypes */
1467 
1468 /* Default declaration of generated scanner - a define so the user can
1469  * easily add parameters.
1470  */
1471 #ifndef YY_DECL
1472 #define YY_DECL_IS_OURS 1
1473 
1474 extern int yyjsillex (void);
1475 
1476 #define YY_DECL int yyjsillex (void)
1477 #endif /* !YY_DECL */
1478 
1479 /* Code executed at the beginning of each rule, after yyjsiltext and yyjsilleng
1480  * have been set up.
1481  */
1482 #ifndef YY_USER_ACTION
1483 #define YY_USER_ACTION
1484 #endif
1485 
1486 /* Code executed at the end of each rule. */
1487 #ifndef YY_BREAK
1488 #define YY_BREAK /*LINTED*/break;
1489 #endif
1490 
1491 #define YY_RULE_SETUP \
1492  YY_USER_ACTION
1493 
1497 {
1498  yy_state_type yy_current_state;
1499  char *yy_cp, *yy_bp;
1500  int yy_act;
1501 
1502  if ( !(yy_init) )
1503  {
1504  (yy_init) = 1;
1505 
1506 #ifdef YY_USER_INIT
1507  YY_USER_INIT;
1508 #endif
1509 
1510  if ( ! (yy_start) )
1511  (yy_start) = 1; /* first start state */
1512 
1513  if ( ! yyjsilin )
1514  yyjsilin = stdin;
1515 
1516  if ( ! yyjsilout )
1517  yyjsilout = stdout;
1518 
1519  if ( ! YY_CURRENT_BUFFER ) {
1523  }
1524 
1526  }
1527 
1528  {
1529 #line 80 "scanner.l"
1530 
1531 
1532 #line 1533 "jsil_lex.yy.cpp"
1533 
1534  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1535  {
1536  yy_cp = (yy_c_buf_p);
1537 
1538  /* Support of yyjsiltext. */
1539  *yy_cp = (yy_hold_char);
1540 
1541  /* yy_bp points to the position in yy_ch_buf of the start of
1542  * the current run.
1543  */
1544  yy_bp = yy_cp;
1545 
1546  yy_current_state = (yy_start);
1547 yy_match:
1548  do
1549  {
1550  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1551  if ( yy_accept[yy_current_state] )
1552  {
1553  (yy_last_accepting_state) = yy_current_state;
1554  (yy_last_accepting_cpos) = yy_cp;
1555  }
1556  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1557  {
1558  yy_current_state = (int) yy_def[yy_current_state];
1559  if ( yy_current_state >= 1305 )
1560  yy_c = yy_meta[(unsigned int) yy_c];
1561  }
1562  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1563  ++yy_cp;
1564  }
1565  while ( yy_base[yy_current_state] != 1489 );
1566 
1567 yy_find_action:
1568  yy_act = yy_accept[yy_current_state];
1569  if ( yy_act == 0 )
1570  { /* have to back up */
1571  yy_cp = (yy_last_accepting_cpos);
1572  yy_current_state = (yy_last_accepting_state);
1573  yy_act = yy_accept[yy_current_state];
1574  }
1575 
1577 
1578 do_action: /* This label is used only to access EOF actions. */
1579 
1580  switch ( yy_act )
1581  { /* beginning of action switch */
1582  case 0: /* must back up */
1583  /* undo the effects of YY_DO_BEFORE_ACTION */
1584  *yy_cp = (yy_hold_char);
1585  yy_cp = (yy_last_accepting_cpos);
1586  yy_current_state = (yy_last_accepting_state);
1587  goto yy_find_action;
1588 
1589 case 1:
1590 /* rule 1 can match eol */
1592 #line 82 "scanner.l"
1593 {
1594  BEGIN(GRAMMAR);
1595  yyless(0); /* start again with this character */
1596  }
1597  YY_BREAK
1598 
1599 case 2:
1601 #line 88 "scanner.l"
1602 {
1603  yy_push_state(COMMENT); /* begin comment state */
1604  // make the compiler happy
1605  (void)yy_top_state();
1606  }
1607  YY_BREAK
1608 
1609 
1610 case 3:
1612 #line 96 "scanner.l"
1613 { yy_pop_state(); } /* end comment state, back to GRAMMAR */
1614  YY_BREAK
1615 case 4:
1617 #line 97 "scanner.l"
1618 { yyjsilerror("Probably nested comments"); }
1619  YY_BREAK
1620 case YY_STATE_EOF(COMMENT):
1621 #line 98 "scanner.l"
1622 { yyjsilerror("Unterminated comment"); return TOK_SCANNER_ERROR; }
1623  YY_BREAK
1624 case 5:
1626 #line 99 "scanner.l"
1627 { } /* ignore every char except '*' and NL (performance!) */
1628  YY_BREAK
1629 case 6:
1631 #line 100 "scanner.l"
1632 { } /* all single characters within comments are ignored */
1633  YY_BREAK
1634 case 7:
1635 /* rule 7 can match eol */
1637 #line 101 "scanner.l"
1638 { }
1639  YY_BREAK
1640 
1641 
1642 case 8:
1644 #line 105 "scanner.l"
1645 { yy_pop_state(); } /* end comment state, back to STRING_LITERAL */
1646  YY_BREAK
1647 case 9:
1649 #line 106 "scanner.l"
1650 { yyjsilerror("Probably nested comments"); }
1651  YY_BREAK
1653 #line 107 "scanner.l"
1654 { yyjsilerror("Unterminated comment"); return TOK_SCANNER_ERROR; }
1655  YY_BREAK
1656 case 10:
1658 #line 108 "scanner.l"
1659 { } /* ignore every char except '*' and NL (performance!) */
1660  YY_BREAK
1661 case 11:
1663 #line 109 "scanner.l"
1664 { } /* all single characters within comments are ignored */
1665  YY_BREAK
1666 case 12:
1667 /* rule 12 can match eol */
1669 #line 110 "scanner.l"
1670 { }
1671  YY_BREAK
1672 
1673 
1674 case 13:
1676 #line 114 "scanner.l"
1677 {
1678  PARSER.string_literal.clear();
1679  PARSER.string_literal.append(yyjsiltext);
1681  PARSER.set_source_location(stack(yyjsillval));
1682  // String literals can be continued
1684  }
1685  YY_BREAK
1686 
1687 
1688 case 14:
1690 #line 125 "scanner.l"
1691 { PARSER.string_literal.append(yyjsiltext); }
1692  YY_BREAK
1693 case 15:
1695 #line 126 "scanner.l"
1696 { } /* ignore */
1697  YY_BREAK
1698 case 16:
1700 #line 127 "scanner.l"
1701 { yy_push_state(STRING_LITERAL_COMMENT); } /* C comment, ignore */
1702  YY_BREAK
1703 case 17:
1704 /* rule 17 can match eol */
1706 #line 128 "scanner.l"
1707 { // anything else: back to normal
1708  source_locationt l=stack(yyjsillval).source_location();
1709  stack(yyjsillval)=convert_string_literal(PARSER.string_literal);
1710  stack(yyjsillval).add_source_location().swap(l);
1711  yy_pop_state(); // back to normal
1712  yyless(0); // put back
1713  return TOK_STRING;
1714  }
1715  YY_BREAK
1716 
1717 
1718 case 18:
1720 #line 139 "scanner.l"
1722  YY_BREAK
1723 case 19:
1725 #line 140 "scanner.l"
1727  YY_BREAK
1728 case 20:
1730 #line 141 "scanner.l"
1732  YY_BREAK
1733 case 21:
1735 #line 142 "scanner.l"
1737  YY_BREAK
1738 case 22:
1740 #line 143 "scanner.l"
1742  YY_BREAK
1743 case 23:
1745 #line 144 "scanner.l"
1747  YY_BREAK
1748 case 24:
1750 #line 145 "scanner.l"
1752  YY_BREAK
1753 case 25:
1755 #line 146 "scanner.l"
1757  YY_BREAK
1758 case 26:
1760 #line 147 "scanner.l"
1762  YY_BREAK
1763 case 27:
1765 #line 148 "scanner.l"
1767  YY_BREAK
1768 case 28:
1770 #line 149 "scanner.l"
1772  YY_BREAK
1773 case 29:
1775 #line 150 "scanner.l"
1777  YY_BREAK
1778 case 30:
1780 #line 151 "scanner.l"
1782  YY_BREAK
1783 case 31:
1785 #line 152 "scanner.l"
1787  YY_BREAK
1788 case 32:
1790 #line 153 "scanner.l"
1792  YY_BREAK
1793 case 33:
1795 #line 154 "scanner.l"
1797  YY_BREAK
1798 case 34:
1800 #line 155 "scanner.l"
1802  YY_BREAK
1803 case 35:
1805 #line 156 "scanner.l"
1807  YY_BREAK
1808 case 36:
1810 #line 157 "scanner.l"
1812  YY_BREAK
1813 case 37:
1815 #line 158 "scanner.l"
1817  YY_BREAK
1818 case 38:
1820 #line 159 "scanner.l"
1822  YY_BREAK
1823 case 39:
1825 #line 160 "scanner.l"
1827  YY_BREAK
1828 case 40:
1830 #line 161 "scanner.l"
1832  YY_BREAK
1833 case 41:
1835 #line 162 "scanner.l"
1837  YY_BREAK
1838 case 42:
1840 #line 163 "scanner.l"
1842  YY_BREAK
1843 case 43:
1845 #line 164 "scanner.l"
1847  YY_BREAK
1848 case 44:
1850 #line 165 "scanner.l"
1852  YY_BREAK
1853 case 45:
1855 #line 166 "scanner.l"
1857  YY_BREAK
1858 case 46:
1860 #line 167 "scanner.l"
1862  YY_BREAK
1863 case 47:
1865 #line 168 "scanner.l"
1867  YY_BREAK
1868 case 48:
1870 #line 169 "scanner.l"
1872  YY_BREAK
1873 case 49:
1875 #line 170 "scanner.l"
1877  YY_BREAK
1878 case 50:
1880 #line 172 "scanner.l"
1881 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1882  YY_BREAK
1883 case 51:
1885 #line 173 "scanner.l"
1886 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1887  YY_BREAK
1888 case 52:
1890 #line 174 "scanner.l"
1891 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1892  YY_BREAK
1893 case 53:
1895 #line 175 "scanner.l"
1896 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1897  YY_BREAK
1898 case 54:
1900 #line 176 "scanner.l"
1901 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1902  YY_BREAK
1903 case 55:
1905 #line 177 "scanner.l"
1906 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1907  YY_BREAK
1908 case 56:
1910 #line 178 "scanner.l"
1911 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1912  YY_BREAK
1913 case 57:
1915 #line 179 "scanner.l"
1916 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1917  YY_BREAK
1918 case 58:
1920 #line 180 "scanner.l"
1921 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1922  YY_BREAK
1923 case 59:
1925 #line 181 "scanner.l"
1926 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1927  YY_BREAK
1928 case 60:
1930 #line 182 "scanner.l"
1931 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1932  YY_BREAK
1933 case 61:
1935 #line 183 "scanner.l"
1936 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1937  YY_BREAK
1938 case 62:
1940 #line 184 "scanner.l"
1941 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1942  YY_BREAK
1943 case 63:
1945 #line 185 "scanner.l"
1946 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1947  YY_BREAK
1948 case 64:
1950 #line 186 "scanner.l"
1951 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1952  YY_BREAK
1953 case 65:
1955 #line 187 "scanner.l"
1956 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1957  YY_BREAK
1958 case 66:
1960 #line 188 "scanner.l"
1961 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1962  YY_BREAK
1963 case 67:
1965 #line 189 "scanner.l"
1966 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1967  YY_BREAK
1968 case 68:
1970 #line 190 "scanner.l"
1971 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1972  YY_BREAK
1973 case 69:
1975 #line 191 "scanner.l"
1976 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1977  YY_BREAK
1978 case 70:
1980 #line 192 "scanner.l"
1981 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1982  YY_BREAK
1983 case 71:
1985 #line 193 "scanner.l"
1986 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1987  YY_BREAK
1988 case 72:
1990 #line 194 "scanner.l"
1991 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1992  YY_BREAK
1993 case 73:
1995 #line 195 "scanner.l"
1996 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
1997  YY_BREAK
1998 case 74:
2000 #line 196 "scanner.l"
2001 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
2002  YY_BREAK
2003 case 75:
2005 #line 197 "scanner.l"
2006 { make_identifier(); return TOK_SPEC_IDENTIFIER; }
2007  YY_BREAK
2008 
2009 
2010 case 76:
2011 /* rule 76 can match eol */
2013 #line 201 "scanner.l"
2014 { } /* skipped */
2015  YY_BREAK
2016 case 77:
2018 #line 202 "scanner.l"
2019 { } /* skipped */
2020  YY_BREAK
2021 /*** keywords ***/
2022 case 78:
2024 #line 206 "scanner.l"
2025 { loc(); return TOK_PROCEDURE; }
2026  YY_BREAK
2027 case 79:
2029 #line 207 "scanner.l"
2030 { loc(); return TOK_RETURNS; }
2031  YY_BREAK
2032 case 80:
2034 #line 208 "scanner.l"
2035 { loc(); return TOK_TO; }
2036  YY_BREAK
2037 case 81:
2039 #line 209 "scanner.l"
2040 { loc(); return TOK_THROWS; }
2041  YY_BREAK
2042 /*** scanner parsed tokens (these have a value!) ***/
2043 case 82:
2045 #line 213 "scanner.l"
2046 { return make_identifier(); }
2047  YY_BREAK
2048 case 83:
2050 #line 215 "scanner.l"
2051 { loc(); BEGIN(STATEMENTS); return '{'; }
2052  YY_BREAK
2053 /* This catches all one-character operators */
2054 case 84:
2056 #line 217 "scanner.l"
2057 { loc(); return yyjsiltext[0]; }
2058  YY_BREAK
2059 
2060 
2061 case 85:
2062 /* rule 85 can match eol */
2064 #line 221 "scanner.l"
2065 { loc(); return TOK_NEWLINE; }
2066  YY_BREAK
2067 case 86:
2069 #line 222 "scanner.l"
2070 { } /* skipped */
2071  YY_BREAK
2072 case 87:
2074 #line 224 "scanner.l"
2075 { loc(); return TOK_EVAL; }
2076  YY_BREAK
2077 case 88:
2079 #line 225 "scanner.l"
2080 { loc(); return TOK_LABEL; }
2081  YY_BREAK
2082 case 89:
2084 #line 226 "scanner.l"
2085 { loc(); return TOK_GOTO; }
2086  YY_BREAK
2087 case 90:
2089 #line 227 "scanner.l"
2090 { loc(); return TOK_SKIP; }
2091  YY_BREAK
2092 case 91:
2094 #line 228 "scanner.l"
2095 { loc(); return TOK_WITH; }
2096  YY_BREAK
2097 case 92:
2099 #line 229 "scanner.l"
2100 { loc(); return TOK_NEW; }
2101  YY_BREAK
2102 case 93:
2104 #line 230 "scanner.l"
2105 { loc(); return TOK_HAS_FIELD; }
2106  YY_BREAK
2107 case 94:
2109 #line 231 "scanner.l"
2110 { loc(); return TOK_DELETE; }
2111  YY_BREAK
2112 case 95:
2114 #line 232 "scanner.l"
2115 { loc(); return TOK_PROTO_FIELD; }
2116  YY_BREAK
2117 case 96:
2119 #line 233 "scanner.l"
2120 { loc(); return TOK_PROTO_OBJ; }
2121  YY_BREAK
2122 case 97:
2124 #line 234 "scanner.l"
2125 { loc(); return TOK_REF; }
2126  YY_BREAK
2127 case 98:
2129 #line 235 "scanner.l"
2130 { loc(); return TOK_FIELD; }
2131  YY_BREAK
2132 case 99:
2134 #line 236 "scanner.l"
2135 { loc(); return TOK_BASE; }
2136  YY_BREAK
2137 case 100:
2139 #line 237 "scanner.l"
2140 { loc(); return TOK_TYPEOF; }
2141  YY_BREAK
2142 case 101:
2144 #line 238 "scanner.l"
2145 { loc(); return TOK_NULL; }
2146  YY_BREAK
2147 case 102:
2149 #line 239 "scanner.l"
2150 { loc(); return TOK_UNDEFINED; }
2151  YY_BREAK
2152 case 103:
2154 #line 240 "scanner.l"
2155 { loc(); return TOK_EMPTY; }
2156  YY_BREAK
2157 case 104:
2159 #line 241 "scanner.l"
2160 { loc(); return TOK_TRUE; }
2161  YY_BREAK
2162 case 105:
2164 #line 242 "scanner.l"
2165 { loc(); return TOK_FALSE; }
2166  YY_BREAK
2167 case 106:
2169 #line 243 "scanner.l"
2170 { loc(); return TOK_PROTO; }
2171  YY_BREAK
2172 case 107:
2174 #line 244 "scanner.l"
2175 { loc(); return TOK_FID; }
2176  YY_BREAK
2177 case 108:
2179 #line 245 "scanner.l"
2180 { loc(); return TOK_SCOPE; }
2181  YY_BREAK
2182 case 109:
2184 #line 246 "scanner.l"
2185 { loc(); return TOK_CONSTRUCTID; }
2186  YY_BREAK
2187 case 110:
2189 #line 247 "scanner.l"
2190 { loc(); return TOK_PRIMVALUE; }
2191  YY_BREAK
2192 case 111:
2194 #line 248 "scanner.l"
2195 { loc(); return TOK_TARGETFUNCTION; }
2196  YY_BREAK
2197 case 112:
2199 #line 249 "scanner.l"
2200 { loc(); return TOK_CLASS; }
2201  YY_BREAK
2202 case 113:
2204 #line 250 "scanner.l"
2205 { loc(); return TOK_NUM_TO_STRING; }
2206  YY_BREAK
2207 case 114:
2209 #line 251 "scanner.l"
2210 { loc(); return TOK_STRING_TO_NUM; }
2211  YY_BREAK
2212 case 115:
2214 #line 252 "scanner.l"
2215 { loc(); return TOK_NUM_TO_INT32; }
2216  YY_BREAK
2217 case 116:
2219 #line 253 "scanner.l"
2220 { loc(); return TOK_NUM_TO_UINT32; }
2221  YY_BREAK
2222 case 117:
2224 #line 254 "scanner.l"
2225 { loc(); return TOK_MEMBER_REFERENCE; }
2226  YY_BREAK
2227 case 118:
2229 #line 255 "scanner.l"
2230 { loc(); return TOK_VARIABLE_REFERENCE; }
2231  YY_BREAK
2232 /*** type classes ***/
2233 case 119:
2235 #line 259 "scanner.l"
2236 { loc(); return TOK_T_NULL; }
2237  YY_BREAK
2238 case 120:
2240 #line 260 "scanner.l"
2241 { loc(); return TOK_T_UNDEFINED; }
2242  YY_BREAK
2243 case 121:
2245 #line 261 "scanner.l"
2246 { loc(); return TOK_T_BOOLEAN; }
2247  YY_BREAK
2248 case 122:
2250 #line 262 "scanner.l"
2251 { loc(); return TOK_T_STRING; }
2252  YY_BREAK
2253 case 123:
2255 #line 263 "scanner.l"
2256 { loc(); return TOK_T_NUMBER; }
2257  YY_BREAK
2258 case 124:
2260 #line 264 "scanner.l"
2261 { loc(); return TOK_T_BUILTIN_OBJECT; }
2262  YY_BREAK
2263 case 125:
2265 #line 265 "scanner.l"
2266 { loc(); return TOK_T_USER_OBJECT; }
2267  YY_BREAK
2268 case 126:
2270 #line 266 "scanner.l"
2271 { loc(); return TOK_T_OBJECT; }
2272  YY_BREAK
2273 case 127:
2275 #line 267 "scanner.l"
2276 { loc(); return TOK_T_REFERENCE; }
2277  YY_BREAK
2278 /*** multi-character operators ***/
2279 case 128:
2281 #line 271 "scanner.l"
2282 { loc(); return TOK_DEFEQ; }
2283  YY_BREAK
2284 case 129:
2286 #line 272 "scanner.l"
2287 { loc(); return TOK_LEQ; }
2288  YY_BREAK
2289 case 130:
2291 #line 273 "scanner.l"
2292 { loc(); return TOK_AND; }
2293  YY_BREAK
2294 case 131:
2296 #line 274 "scanner.l"
2297 { loc(); return TOK_OR; }
2298  YY_BREAK
2299 case 132:
2301 #line 275 "scanner.l"
2302 { loc(); return TOK_SUBTYPE_OF; }
2303  YY_BREAK
2304 case 133:
2306 #line 276 "scanner.l"
2307 { loc(); return TOK_LEFT_SHIFT; }
2308  YY_BREAK
2309 case 134:
2311 #line 277 "scanner.l"
2312 { loc(); return TOK_SIGNED_RIGHT_SHIFT; }
2313  YY_BREAK
2314 case 135:
2316 #line 278 "scanner.l"
2317 { loc(); return TOK_UNSIGNED_RIGHT_SHIFT; }
2318  YY_BREAK
2319 case 136:
2321 #line 279 "scanner.l"
2322 { loc(); return TOK_NOT; }
2323  YY_BREAK
2324 /*** scanner parsed tokens (these have a value!) ***/
2325 case 137:
2327 #line 283 "scanner.l"
2328 { return make_identifier(); }
2329  YY_BREAK
2330 case 138:
2332 #line 285 "scanner.l"
2333 {
2334  newstack(yyjsillval);
2336  PARSER.set_source_location(stack(yyjsillval));
2337  return TOK_FLOATING;
2338  }
2339  YY_BREAK
2340 case 139:
2342 #line 292 "scanner.l"
2343 { make_identifier(); return TOK_BUILTIN_LOC; }
2344  YY_BREAK
2345 case 140:
2347 #line 293 "scanner.l"
2348 { make_identifier(); return TOK_BUILTIN_LOC; }
2349  YY_BREAK
2350 case 141:
2352 #line 294 "scanner.l"
2353 { make_identifier(); return TOK_BUILTIN_LOC; }
2354  YY_BREAK
2355 case 142:
2357 #line 295 "scanner.l"
2358 { make_identifier(); return TOK_BUILTIN_LOC; }
2359  YY_BREAK
2360 case 143:
2362 #line 296 "scanner.l"
2363 { make_identifier(); return TOK_BUILTIN_LOC; }
2364  YY_BREAK
2365 case 144:
2367 #line 297 "scanner.l"
2368 { make_identifier(); return TOK_BUILTIN_LOC; }
2369  YY_BREAK
2370 case 145:
2372 #line 298 "scanner.l"
2373 { make_identifier(); return TOK_BUILTIN_LOC; }
2374  YY_BREAK
2375 case 146:
2377 #line 299 "scanner.l"
2378 { make_identifier(); return TOK_BUILTIN_LOC; }
2379  YY_BREAK
2380 case 147:
2382 #line 300 "scanner.l"
2383 { make_identifier(); return TOK_BUILTIN_LOC; }
2384  YY_BREAK
2385 case 148:
2387 #line 301 "scanner.l"
2388 { make_identifier(); return TOK_BUILTIN_LOC; }
2389  YY_BREAK
2390 case 149:
2392 #line 302 "scanner.l"
2393 { make_identifier(); return TOK_BUILTIN_LOC; }
2394  YY_BREAK
2395 case 150:
2397 #line 303 "scanner.l"
2398 { make_identifier(); return TOK_BUILTIN_LOC; }
2399  YY_BREAK
2400 case 151:
2402 #line 304 "scanner.l"
2403 { make_identifier(); return TOK_BUILTIN_LOC; }
2404  YY_BREAK
2405 case 152:
2407 #line 305 "scanner.l"
2408 { make_identifier(); return TOK_BUILTIN_LOC; }
2409  YY_BREAK
2410 case 153:
2412 #line 306 "scanner.l"
2413 { make_identifier(); return TOK_BUILTIN_LOC; }
2414  YY_BREAK
2415 case 154:
2417 #line 307 "scanner.l"
2418 { make_identifier(); return TOK_BUILTIN_LOC; }
2419  YY_BREAK
2420 case 155:
2422 #line 308 "scanner.l"
2423 { make_identifier(); return TOK_BUILTIN_LOC; }
2424  YY_BREAK
2425 case 156:
2427 #line 309 "scanner.l"
2428 { make_identifier(); return TOK_BUILTIN_LOC; }
2429  YY_BREAK
2430 case 157:
2432 #line 310 "scanner.l"
2433 { make_identifier(); return TOK_BUILTIN_LOC; }
2434  YY_BREAK
2435 case 158:
2437 #line 311 "scanner.l"
2438 { make_identifier(); return TOK_BUILTIN_LOC; }
2439  YY_BREAK
2440 case 159:
2442 #line 312 "scanner.l"
2443 { make_identifier(); return TOK_BUILTIN_LOC; }
2444  YY_BREAK
2445 case 160:
2447 #line 313 "scanner.l"
2448 { make_identifier(); return TOK_BUILTIN_LOC; }
2449  YY_BREAK
2450 case 161:
2452 #line 314 "scanner.l"
2453 { make_identifier(); return TOK_BUILTIN_LOC; }
2454  YY_BREAK
2455 case 162:
2457 #line 315 "scanner.l"
2458 { make_identifier(); return TOK_BUILTIN_LOC; }
2459  YY_BREAK
2460 case 163:
2462 #line 316 "scanner.l"
2463 { make_identifier(); return TOK_BUILTIN_LOC; }
2464  YY_BREAK
2465 case 164:
2467 #line 317 "scanner.l"
2468 { make_identifier(); return TOK_BUILTIN_LOC; }
2469  YY_BREAK
2470 case 165:
2472 #line 318 "scanner.l"
2473 { make_identifier(); return TOK_BUILTIN_LOC; }
2474  YY_BREAK
2475 case 166:
2477 #line 319 "scanner.l"
2478 { make_identifier(); return TOK_BUILTIN_LOC; }
2479  YY_BREAK
2480 case 167:
2482 #line 320 "scanner.l"
2483 { make_identifier(); return TOK_BUILTIN_LOC; }
2484  YY_BREAK
2485 case 168:
2487 #line 321 "scanner.l"
2488 { make_identifier(); return TOK_BUILTIN_LOC; }
2489  YY_BREAK
2490 case 169:
2492 #line 322 "scanner.l"
2493 { make_identifier(); return TOK_BUILTIN_LOC; }
2494  YY_BREAK
2495 case 170:
2497 #line 323 "scanner.l"
2498 { make_identifier(); return TOK_BUILTIN_LOC; }
2499  YY_BREAK
2500 case 171:
2502 #line 324 "scanner.l"
2503 { make_identifier(); return TOK_BUILTIN_LOC; }
2504  YY_BREAK
2505 case 172:
2507 #line 325 "scanner.l"
2508 { make_identifier(); return TOK_BUILTIN_LOC; }
2509  YY_BREAK
2510 case 173:
2512 #line 326 "scanner.l"
2513 { make_identifier(); return TOK_BUILTIN_LOC; }
2514  YY_BREAK
2515 case 174:
2517 #line 327 "scanner.l"
2518 { make_identifier(); return TOK_BUILTIN_LOC; }
2519  YY_BREAK
2520 case 175:
2522 #line 328 "scanner.l"
2523 { make_identifier(); return TOK_BUILTIN_LOC; }
2524  YY_BREAK
2525 case 176:
2527 #line 329 "scanner.l"
2528 { make_identifier(); return TOK_BUILTIN_LOC; }
2529  YY_BREAK
2530 case 177:
2532 #line 330 "scanner.l"
2533 { make_identifier(); return TOK_BUILTIN_LOC; }
2534  YY_BREAK
2535 case 178:
2537 #line 331 "scanner.l"
2538 { make_identifier(); return TOK_BUILTIN_LOC; }
2539  YY_BREAK
2540 case 179:
2542 #line 332 "scanner.l"
2543 { make_identifier(); return TOK_BUILTIN_LOC; }
2544  YY_BREAK
2545 case 180:
2547 #line 333 "scanner.l"
2548 { make_identifier(); return TOK_BUILTIN_LOC; }
2549  YY_BREAK
2550 case 181:
2552 #line 335 "scanner.l"
2553 { loc(); BEGIN(GRAMMAR); return '}'; }
2554  YY_BREAK
2555 /* This catches all one-character operators */
2556 case 182:
2558 #line 337 "scanner.l"
2559 { loc(); return yyjsiltext[0]; }
2560  YY_BREAK
2561 
2562 case YY_STATE_EOF(INITIAL):
2563 case YY_STATE_EOF(GRAMMAR):
2565 case YY_STATE_EOF(STATEMENTS):
2566 #line 340 "scanner.l"
2567 { yyterminate(); /* done! */ }
2568  YY_BREAK
2569 case 183:
2571 #line 342 "scanner.l"
2572 ECHO;
2573  YY_BREAK
2574 #line 2575 "jsil_lex.yy.cpp"
2575 
2576  case YY_END_OF_BUFFER:
2577  {
2578  /* Amount of text matched not including the EOB char. */
2579  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2580 
2581  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2582  *yy_cp = (yy_hold_char);
2584 
2585  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2586  {
2587  /* We're scanning a new file or input source. It's
2588  * possible that this happened because the user
2589  * just pointed yyjsilin at a new source and called
2590  * yyjsillex(). If so, then we have to assure
2591  * consistency between YY_CURRENT_BUFFER and our
2592  * globals. Here is the right place to do so, because
2593  * this is the first action (other than possibly a
2594  * back-up) that will match for the new input source.
2595  */
2596  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2597  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyjsilin;
2598  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2599  }
2600 
2601  /* Note that here we test for yy_c_buf_p "<=" to the position
2602  * of the first EOB in the buffer, since yy_c_buf_p will
2603  * already have been incremented past the NUL character
2604  * (since all states make transitions on EOB to the
2605  * end-of-buffer state). Contrast this with the test
2606  * in input().
2607  */
2608  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2609  { /* This was really a NUL. */
2610  yy_state_type yy_next_state;
2611 
2612  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2613 
2614  yy_current_state = yy_get_previous_state( );
2615 
2616  /* Okay, we're now positioned to make the NUL
2617  * transition. We couldn't have
2618  * yy_get_previous_state() go ahead and do it
2619  * for us because it doesn't know how to deal
2620  * with the possibility of jamming (and we don't
2621  * want to build jamming into it because then it
2622  * will run more slowly).
2623  */
2624 
2625  yy_next_state = yy_try_NUL_trans( yy_current_state );
2626 
2627  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2628 
2629  if ( yy_next_state )
2630  {
2631  /* Consume the NUL. */
2632  yy_cp = ++(yy_c_buf_p);
2633  yy_current_state = yy_next_state;
2634  goto yy_match;
2635  }
2636 
2637  else
2638  {
2639  yy_cp = (yy_c_buf_p);
2640  goto yy_find_action;
2641  }
2642  }
2643 
2644  else switch ( yy_get_next_buffer( ) )
2645  {
2646  case EOB_ACT_END_OF_FILE:
2647  {
2649 
2650  if ( yyjsilwrap( ) )
2651  {
2652  /* Note: because we've taken care in
2653  * yy_get_next_buffer() to have set up
2654  * yyjsiltext, we can now set up
2655  * yy_c_buf_p so that if some total
2656  * hoser (like flex itself) wants to
2657  * call the scanner after we return the
2658  * YY_NULL, it'll still work - another
2659  * YY_NULL will get returned.
2660  */
2662 
2663  yy_act = YY_STATE_EOF(YY_START);
2664  goto do_action;
2665  }
2666 
2667  else
2668  {
2669  if ( ! (yy_did_buffer_switch_on_eof) )
2670  YY_NEW_FILE;
2671  }
2672  break;
2673  }
2674 
2675  case EOB_ACT_CONTINUE_SCAN:
2676  (yy_c_buf_p) =
2677  (yytext_ptr) + yy_amount_of_matched_text;
2678 
2679  yy_current_state = yy_get_previous_state( );
2680 
2681  yy_cp = (yy_c_buf_p);
2682  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2683  goto yy_match;
2684 
2685  case EOB_ACT_LAST_MATCH:
2686  (yy_c_buf_p) =
2687  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2688 
2689  yy_current_state = yy_get_previous_state( );
2690 
2691  yy_cp = (yy_c_buf_p);
2692  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2693  goto yy_find_action;
2694  }
2695  break;
2696  }
2697 
2698  default:
2700  "fatal flex scanner internal error--no action found" );
2701  } /* end of action switch */
2702  } /* end of scanning one token */
2703  } /* end of user's declarations */
2704 } /* end of yyjsillex */
2705 
2706 /* yy_get_next_buffer - try to read in a new buffer
2707  *
2708  * Returns a code representing an action:
2709  * EOB_ACT_LAST_MATCH -
2710  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2711  * EOB_ACT_END_OF_FILE - end of file
2712  */
2713 static int yy_get_next_buffer (void)
2714 {
2715  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2716  char *source = (yytext_ptr);
2717  yy_size_t number_to_move, i;
2718  int ret_val;
2719 
2720  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2722  "fatal flex scanner internal error--end of buffer missed" );
2723 
2724  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2725  { /* Don't try to fill the buffer, so this is an EOF. */
2726  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2727  {
2728  /* We matched a single character, the EOB, so
2729  * treat this as a final EOF.
2730  */
2731  return EOB_ACT_END_OF_FILE;
2732  }
2733 
2734  else
2735  {
2736  /* We matched some text prior to the EOB, first
2737  * process it.
2738  */
2739  return EOB_ACT_LAST_MATCH;
2740  }
2741  }
2742 
2743  /* Try to read more data. */
2744 
2745  /* First move last chars to start of buffer. */
2746  number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2747 
2748  for ( i = 0; i < number_to_move; ++i )
2749  *(dest++) = *(source++);
2750 
2751  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2752  /* don't do the read, it's not guaranteed to return an EOF,
2753  * just force an EOF
2754  */
2755  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2756 
2757  else
2758  {
2759  int num_to_read =
2760  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2761 
2762  while ( num_to_read <= 0 )
2763  { /* Not enough room in the buffer - grow it. */
2764 
2765  /* just a shorter name for the current buffer */
2767 
2768  int yy_c_buf_p_offset =
2769  (int) ((yy_c_buf_p) - b->yy_ch_buf);
2770 
2771  if ( b->yy_is_our_buffer )
2772  {
2773  int new_size = b->yy_buf_size * 2;
2774 
2775  if ( new_size <= 0 )
2776  b->yy_buf_size += b->yy_buf_size / 8;
2777  else
2778  b->yy_buf_size *= 2;
2779 
2780  b->yy_ch_buf = (char *)
2781  /* Include room in for 2 EOB chars. */
2782  yyjsilrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) );
2783  }
2784  else
2785  /* Can't grow it, we don't own it. */
2786  b->yy_ch_buf = NULL;
2787 
2788  if ( ! b->yy_ch_buf )
2790  "fatal error - scanner input buffer overflow" );
2791 
2792  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2793 
2794  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2795  number_to_move - 1;
2796 
2797  }
2798 
2799  if ( num_to_read > YY_READ_BUF_SIZE )
2800  num_to_read = YY_READ_BUF_SIZE;
2801 
2802  /* Read in more data. */
2803  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2804  (yy_n_chars), num_to_read );
2805 
2806  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2807  }
2808 
2809  if ( (yy_n_chars) == 0 )
2810  {
2811  if ( number_to_move == YY_MORE_ADJ )
2812  {
2813  ret_val = EOB_ACT_END_OF_FILE;
2815  }
2816 
2817  else
2818  {
2819  ret_val = EOB_ACT_LAST_MATCH;
2820  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2822  }
2823  }
2824 
2825  else
2826  ret_val = EOB_ACT_CONTINUE_SCAN;
2827 
2828  if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2829  /* Extend the array by 50%, plus the number we really need. */
2830  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2831  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyjsilrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size );
2832  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2833  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2834  }
2835 
2836  (yy_n_chars) += number_to_move;
2839 
2840  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2841 
2842  return ret_val;
2843 }
2844 
2845 /* yy_get_previous_state - get the state just before the EOB char was reached */
2846 
2848 {
2849  yy_state_type yy_current_state;
2850  char *yy_cp;
2851 
2852  yy_current_state = (yy_start);
2853 
2854  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2855  {
2856  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2857  if ( yy_accept[yy_current_state] )
2858  {
2859  (yy_last_accepting_state) = yy_current_state;
2860  (yy_last_accepting_cpos) = yy_cp;
2861  }
2862  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2863  {
2864  yy_current_state = (int) yy_def[yy_current_state];
2865  if ( yy_current_state >= 1305 )
2866  yy_c = yy_meta[(unsigned int) yy_c];
2867  }
2868  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2869  }
2870 
2871  return yy_current_state;
2872 }
2873 
2874 /* yy_try_NUL_trans - try to make a transition on the NUL character
2875  *
2876  * synopsis
2877  * next_state = yy_try_NUL_trans( current_state );
2878  */
2879  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2880 {
2881  int yy_is_jam;
2882  char *yy_cp = (yy_c_buf_p);
2883 
2884  YY_CHAR yy_c = 1;
2885  if ( yy_accept[yy_current_state] )
2886  {
2887  (yy_last_accepting_state) = yy_current_state;
2888  (yy_last_accepting_cpos) = yy_cp;
2889  }
2890  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2891  {
2892  yy_current_state = (int) yy_def[yy_current_state];
2893  if ( yy_current_state >= 1305 )
2894  yy_c = yy_meta[(unsigned int) yy_c];
2895  }
2896  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2897  yy_is_jam = (yy_current_state == 1304);
2898 
2899  return yy_is_jam ? 0 : yy_current_state;
2900 }
2901 
2902 #ifndef YY_NO_UNPUT
2903 
2904 #endif
2905 
2906 #ifndef YY_NO_INPUT
2907 #ifdef __cplusplus
2908  static int yyinput (void)
2909 #else
2910  static int input (void)
2911 #endif
2912 
2913 {
2914  int c;
2915 
2916  *(yy_c_buf_p) = (yy_hold_char);
2917 
2918  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2919  {
2920  /* yy_c_buf_p now points to the character we want to return.
2921  * If this occurs *before* the EOB characters, then it's a
2922  * valid NUL; if not, then we've hit the end of the buffer.
2923  */
2924  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2925  /* This was really a NUL. */
2926  *(yy_c_buf_p) = '\0';
2927 
2928  else
2929  { /* need more input */
2930  int offset = (yy_c_buf_p) - (yytext_ptr);
2931  ++(yy_c_buf_p);
2932 
2933  switch ( yy_get_next_buffer( ) )
2934  {
2935  case EOB_ACT_LAST_MATCH:
2936  /* This happens because yy_g_n_b()
2937  * sees that we've accumulated a
2938  * token and flags that we need to
2939  * try matching the token before
2940  * proceeding. But for input(),
2941  * there's no matching to consider.
2942  * So convert the EOB_ACT_LAST_MATCH
2943  * to EOB_ACT_END_OF_FILE.
2944  */
2945 
2946  /* Reset buffer status. */
2948 
2949  /*FALLTHROUGH*/
2950 
2951  case EOB_ACT_END_OF_FILE:
2952  {
2953  if ( yyjsilwrap( ) )
2954  return 0;
2955 
2956  if ( ! (yy_did_buffer_switch_on_eof) )
2957  YY_NEW_FILE;
2958 #ifdef __cplusplus
2959  return yyinput();
2960 #else
2961  return input();
2962 #endif
2963  }
2964 
2965  case EOB_ACT_CONTINUE_SCAN:
2966  (yy_c_buf_p) = (yytext_ptr) + offset;
2967  break;
2968  }
2969  }
2970  }
2971 
2972  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2973  *(yy_c_buf_p) = '\0'; /* preserve yyjsiltext */
2974  (yy_hold_char) = *++(yy_c_buf_p);
2975 
2976  return c;
2977 }
2978 #endif /* ifndef YY_NO_INPUT */
2979 
2985  void yyjsilrestart (FILE * input_file )
2986 {
2987 
2988  if ( ! YY_CURRENT_BUFFER ){
2992  }
2993 
2996 }
2997 
3003 {
3004 
3005  /* TODO. We should be able to replace this entire function body
3006  * with
3007  * yyjsilpop_buffer_state();
3008  * yyjsilpush_buffer_state(new_buffer);
3009  */
3011  if ( YY_CURRENT_BUFFER == new_buffer )
3012  return;
3013 
3014  if ( YY_CURRENT_BUFFER )
3015  {
3016  /* Flush out information for old buffer. */
3017  *(yy_c_buf_p) = (yy_hold_char);
3018  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3019  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3020  }
3021 
3022  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3024 
3025  /* We don't actually know whether we did this switch during
3026  * EOF (yyjsilwrap()) processing, but the only time this flag
3027  * is looked at is after yyjsilwrap() is called, so it's safe
3028  * to go ahead and always set it.
3029  */
3031 }
3032 
3033 static void yyjsil_load_buffer_state (void)
3034 {
3035  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3036  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3037  yyjsilin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3038  (yy_hold_char) = *(yy_c_buf_p);
3039 }
3040 
3048 {
3049  YY_BUFFER_STATE b;
3050 
3051  b = (YY_BUFFER_STATE) yyjsilalloc(sizeof( struct yy_buffer_state ) );
3052  if ( ! b )
3053  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_create_buffer()" );
3054 
3055  b->yy_buf_size = size;
3056 
3057  /* yy_ch_buf has to be 2 characters longer than the size given because
3058  * we need to put in 2 end-of-buffer characters.
3059  */
3060  b->yy_ch_buf = (char *) yyjsilalloc((yy_size_t) (b->yy_buf_size + 2) );
3061  if ( ! b->yy_ch_buf )
3062  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_create_buffer()" );
3063 
3064  b->yy_is_our_buffer = 1;
3065 
3067 
3068  return b;
3069 }
3070 
3076 {
3077 
3078  if ( ! b )
3079  return;
3080 
3081  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3083 
3084  if ( b->yy_is_our_buffer )
3085  yyjsilfree((void *) b->yy_ch_buf );
3086 
3087  yyjsilfree((void *) b );
3088 }
3089 
3090 /* Initializes or reinitializes a buffer.
3091  * This function is sometimes called more than once on the same buffer,
3092  * such as during a yyjsilrestart() or at EOF.
3093  */
3094  static void yyjsil_init_buffer (YY_BUFFER_STATE b, FILE * file )
3095 
3096 {
3097  int oerrno = errno;
3098 
3099  yyjsil_flush_buffer(b );
3100 
3101  b->yy_input_file = file;
3102  b->yy_fill_buffer = 1;
3103 
3104  /* If b is the current buffer, then yyjsil_init_buffer was _probably_
3105  * called from yyjsilrestart() or through yy_get_next_buffer.
3106  * In that case, we don't want to reset the lineno or column.
3107  */
3108  if (b != YY_CURRENT_BUFFER){
3109  b->yy_bs_lineno = 1;
3110  b->yy_bs_column = 0;
3111  }
3112 
3113  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3114 
3115  errno = oerrno;
3116 }
3117 
3123 {
3124  if ( ! b )
3125  return;
3126 
3127  b->yy_n_chars = 0;
3128 
3129  /* We always need two end-of-buffer characters. The first causes
3130  * a transition to the end-of-buffer state. The second causes
3131  * a jam in that state.
3132  */
3135 
3136  b->yy_buf_pos = &b->yy_ch_buf[0];
3137 
3138  b->yy_at_bol = 1;
3140 
3141  if ( b == YY_CURRENT_BUFFER )
3143 }
3144 
3152 {
3153  if (new_buffer == NULL)
3154  return;
3155 
3157 
3158  /* This block is copied from yyjsil_switch_to_buffer. */
3159  if ( YY_CURRENT_BUFFER )
3160  {
3161  /* Flush out information for old buffer. */
3162  *(yy_c_buf_p) = (yy_hold_char);
3163  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3164  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3165  }
3166 
3167  /* Only push if top exists. Otherwise, replace top. */
3168  if (YY_CURRENT_BUFFER)
3169  (yy_buffer_stack_top)++;
3170  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3171 
3172  /* copied from yyjsil_switch_to_buffer. */
3175 }
3176 
3182 {
3183  if (!YY_CURRENT_BUFFER)
3184  return;
3185 
3187  YY_CURRENT_BUFFER_LVALUE = NULL;
3188  if ((yy_buffer_stack_top) > 0)
3189  --(yy_buffer_stack_top);
3190 
3191  if (YY_CURRENT_BUFFER) {
3194  }
3195 }
3196 
3197 /* Allocates the stack if it does not exist.
3198  * Guarantees space for at least one push.
3199  */
3200 static void yyjsilensure_buffer_stack (void)
3201 {
3202  int num_to_alloc;
3203 
3204  if (!(yy_buffer_stack)) {
3205 
3206  /* First allocation is just for 2 elements, since we don't know if this
3207  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3208  * immediate realloc on the next call.
3209  */
3210  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
3212  (num_to_alloc * sizeof(struct yy_buffer_state*)
3213  );
3214  if ( ! (yy_buffer_stack) )
3215  YY_FATAL_ERROR( "out of dynamic memory in yyjsilensure_buffer_stack()" );
3216 
3217  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3218 
3219  (yy_buffer_stack_max) = num_to_alloc;
3220  (yy_buffer_stack_top) = 0;
3221  return;
3222  }
3223 
3224  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3225 
3226  /* Increase the buffer to prepare for a possible push. */
3227  yy_size_t grow_size = 8 /* arbitrary grow size */;
3228 
3229  num_to_alloc = (yy_buffer_stack_max) + grow_size;
3231  ((yy_buffer_stack),
3232  num_to_alloc * sizeof(struct yy_buffer_state*)
3233  );
3234  if ( ! (yy_buffer_stack) )
3235  YY_FATAL_ERROR( "out of dynamic memory in yyjsilensure_buffer_stack()" );
3236 
3237  /* zero only the new slots.*/
3238  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3239  (yy_buffer_stack_max) = num_to_alloc;
3240  }
3241 }
3242 
3250 {
3251  YY_BUFFER_STATE b;
3252 
3253  if ( size < 2 ||
3254  base[size-2] != YY_END_OF_BUFFER_CHAR ||
3255  base[size-1] != YY_END_OF_BUFFER_CHAR )
3256  /* They forgot to leave room for the EOB's. */
3257  return NULL;
3258 
3259  b = (YY_BUFFER_STATE) yyjsilalloc(sizeof( struct yy_buffer_state ) );
3260  if ( ! b )
3261  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_scan_buffer()" );
3262 
3263  b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
3264  b->yy_buf_pos = b->yy_ch_buf = base;
3265  b->yy_is_our_buffer = 0;
3266  b->yy_input_file = NULL;
3267  b->yy_n_chars = b->yy_buf_size;
3268  b->yy_is_interactive = 0;
3269  b->yy_at_bol = 1;
3270  b->yy_fill_buffer = 0;
3272 
3274 
3275  return b;
3276 }
3277 
3287 {
3288 
3289  return yyjsil_scan_bytes(yystr,(int) strlen(yystr) );
3290 }
3291 
3299 YY_BUFFER_STATE yyjsil_scan_bytes (yyconst char * yybytes, int _yybytes_len )
3300 {
3301  YY_BUFFER_STATE b;
3302  char *buf;
3303  yy_size_t n;
3304  yy_size_t i;
3305 
3306  /* Get memory for full buffer, including space for trailing EOB's. */
3307  n = (yy_size_t) _yybytes_len + 2;
3308  buf = (char *) yyjsilalloc(n );
3309  if ( ! buf )
3310  YY_FATAL_ERROR( "out of dynamic memory in yyjsil_scan_bytes()" );
3311 
3312  for ( i = 0; i < _yybytes_len; ++i )
3313  buf[i] = yybytes[i];
3314 
3315  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3316 
3317  b = yyjsil_scan_buffer(buf,n );
3318  if ( ! b )
3319  YY_FATAL_ERROR( "bad buffer in yyjsil_scan_bytes()" );
3320 
3321  /* It's okay to grow etc. this buffer, and we should throw it
3322  * away when we're done.
3323  */
3324  b->yy_is_our_buffer = 1;
3325 
3326  return b;
3327 }
3328 
3329  static void yy_push_state (int _new_state )
3330 {
3332  {
3333  yy_size_t new_size;
3334 
3336  new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
3337 
3338  if ( ! (yy_start_stack) )
3339  (yy_start_stack) = (int *) yyjsilalloc(new_size );
3340 
3341  else
3342  (yy_start_stack) = (int *) yyjsilrealloc((void *) (yy_start_stack),new_size );
3343 
3344  if ( ! (yy_start_stack) )
3345  YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3346  }
3347 
3349 
3350  BEGIN(_new_state);
3351 }
3352 
3353  static void yy_pop_state (void)
3354 {
3355  if ( --(yy_start_stack_ptr) < 0 )
3356  YY_FATAL_ERROR( "start-condition stack underflow" );
3357 
3359 }
3360 
3361  static int yy_top_state (void)
3362 {
3363  return (yy_start_stack)[(yy_start_stack_ptr) - 1];
3364 }
3365 
3366 #ifndef YY_EXIT_FAILURE
3367 #define YY_EXIT_FAILURE 2
3368 #endif
3369 
3370 static void yynoreturn yy_fatal_error (yyconst char* msg )
3371 {
3372  (void) fprintf( stderr, "%s\n", msg );
3373  exit( YY_EXIT_FAILURE );
3374 }
3375 
3376 /* Redefine yyless() so it works in section 3 code. */
3377 
3378 #undef yyless
3379 #define yyless(n) \
3380  do \
3381  { \
3382  /* Undo effects of setting up yyjsiltext. */ \
3383  yy_size_t yyless_macro_arg = (n); \
3384  YY_LESS_LINENO(yyless_macro_arg);\
3385  yyjsiltext[yyjsilleng] = (yy_hold_char); \
3386  (yy_c_buf_p) = yyjsiltext + yyless_macro_arg; \
3387  (yy_hold_char) = *(yy_c_buf_p); \
3388  *(yy_c_buf_p) = '\0'; \
3389  yyjsilleng = yyless_macro_arg; \
3390  } \
3391  while ( 0 )
3392 
3393 /* Accessor methods (get/set functions) to struct members. */
3394 
3399 {
3400 
3401  return yyjsillineno;
3402 }
3403 
3407 FILE *yyjsilget_in (void)
3408 {
3409  return yyjsilin;
3410 }
3411 
3415 FILE *yyjsilget_out (void)
3416 {
3417  return yyjsilout;
3418 }
3419 
3423 int yyjsilget_leng (void)
3424 {
3425  return yyjsilleng;
3426 }
3427 
3432 char *yyjsilget_text (void)
3433 {
3434  return yyjsiltext;
3435 }
3436 
3441 void yyjsilset_lineno (int _line_number )
3442 {
3443 
3444  yyjsillineno = _line_number;
3445 }
3446 
3453 void yyjsilset_in (FILE * _in_str )
3454 {
3455  yyjsilin = _in_str ;
3456 }
3457 
3458 void yyjsilset_out (FILE * _out_str )
3459 {
3460  yyjsilout = _out_str ;
3461 }
3462 
3464 {
3465  return yyjsil_flex_debug;
3466 }
3467 
3468 void yyjsilset_debug (int _bdebug )
3469 {
3470  yyjsil_flex_debug = _bdebug ;
3471 }
3472 
3473 static int yy_init_globals (void)
3474 {
3475  /* Initialization is the same as for the non-reentrant scanner.
3476  * This function is called from yyjsillex_destroy(), so don't allocate here.
3477  */
3478 
3479  (yy_buffer_stack) = NULL;
3480  (yy_buffer_stack_top) = 0;
3481  (yy_buffer_stack_max) = 0;
3482  (yy_c_buf_p) = NULL;
3483  (yy_init) = 0;
3484  (yy_start) = 0;
3485 
3486  (yy_start_stack_ptr) = 0;
3487  (yy_start_stack_depth) = 0;
3488  (yy_start_stack) = NULL;
3489 
3490 /* Defined in main.c */
3491 #ifdef YY_STDINIT
3492  yyjsilin = stdin;
3493  yyjsilout = stdout;
3494 #else
3495  yyjsilin = NULL;
3496  yyjsilout = NULL;
3497 #endif
3498 
3499  /* For future reference: Set errno on error, since we are called by
3500  * yyjsillex_init()
3501  */
3502  return 0;
3503 }
3504 
3505 /* yyjsillex_destroy is for both reentrant and non-reentrant scanners. */
3507 {
3508 
3509  /* Pop the buffer stack, destroying each element. */
3510  while(YY_CURRENT_BUFFER){
3512  YY_CURRENT_BUFFER_LVALUE = NULL;
3514  }
3515 
3516  /* Destroy the stack itself. */
3518  (yy_buffer_stack) = NULL;
3519 
3520  /* Destroy the start condition stack. */
3522  (yy_start_stack) = NULL;
3523 
3524  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3525  * yyjsillex() is called, initialization will occur. */
3526  yy_init_globals( );
3527 
3528  return 0;
3529 }
3530 
3531 /*
3532  * Internal utility routines.
3533  */
3534 
3535 #ifndef yytext_ptr
3536 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3537 {
3538 
3539  int i;
3540  for ( i = 0; i < n; ++i )
3541  s1[i] = s2[i];
3542 }
3543 #endif
3544 
3545 #ifdef YY_NEED_STRLEN
3546 static int yy_flex_strlen (yyconst char * s )
3547 {
3548  int n;
3549  for ( n = 0; s[n]; ++n )
3550  ;
3551 
3552  return n;
3553 }
3554 #endif
3555 
3556 void *yyjsilalloc (yy_size_t size )
3557 {
3558  return malloc(size);
3559 }
3560 
3561 void *yyjsilrealloc (void * ptr, yy_size_t size )
3562 {
3563 
3564  /* The cast to (char *) in the following accommodates both
3565  * implementations that use char* generic pointers, and those
3566  * that use void* generic pointers. It works with the latter
3567  * because both ANSI C and C++ allow castless assignment from
3568  * any pointer type to void*, and deal with argument conversions
3569  * as though doing an assignment.
3570  */
3571  return realloc(ptr, size);
3572 }
3573 
3574 void yyjsilfree (void * ptr )
3575 {
3576  free( (char *) ptr ); /* see yyjsilrealloc() for (char *) cast */
3577 }
3578 
3579 #define YYTABLES_NAME "yytables"
3580 
3581 #line 342 "scanner.l"
3582 
3583 
3584 
3585 int yyjsilwrap() { return 1; }
3586 
3587 
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:215
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