My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
scan_spice.cpp
Go to the documentation of this file.
1 #line 2 "scan_spice.cpp"
2 
3 #line 4 "scan_spice.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define yy_create_buffer spice__create_buffer
10 #define yy_delete_buffer spice__delete_buffer
11 #define yy_flex_debug spice__flex_debug
12 #define yy_init_buffer spice__init_buffer
13 #define yy_flush_buffer spice__flush_buffer
14 #define yy_load_buffer_state spice__load_buffer_state
15 #define yy_switch_to_buffer spice__switch_to_buffer
16 #define yyin spice_in
17 #define yyleng spice_leng
18 #define yylex spice_lex
19 #define yylineno spice_lineno
20 #define yyout spice_out
21 #define yyrestart spice_restart
22 #define yytext spice_text
23 #define yywrap spice_wrap
24 #define yyalloc spice_alloc
25 #define yyrealloc spice_realloc
26 #define yyfree spice_free
27 
28 #define FLEX_SCANNER
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 35
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 #ifdef __cplusplus
111 
112 /* The "const" storage-class-modifier is valid. */
113 #define YY_USE_CONST
114 
115 #else /* ! __cplusplus */
116 
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
119 
120 #define YY_USE_CONST
121 
122 #endif /* defined (__STDC__) */
123 #endif /* ! __cplusplus */
124 
125 #ifdef YY_USE_CONST
126 #define yyconst const
127 #else
128 #define yyconst
129 #endif
130 
131 /* Returned upon end-of-file. */
132 #define YY_NULL 0
133 
134 /* Promotes a possibly negative, possibly signed char to an unsigned
135  * integer for use as an array index. If the signed char is negative,
136  * we want to instead treat it as an 8-bit unsigned char, hence the
137  * double cast.
138  */
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 
141 /* Enter a start condition. This macro really ought to take a parameter,
142  * but we do it the disgusting crufty way forced on us by the ()-less
143  * definition of BEGIN.
144  */
145 #define BEGIN (yy_start) = 1 + 2 *
146 
147 /* Translate the current start state into a value that can be later handed
148  * to BEGIN to return to the state. The YYSTATE alias is for lex
149  * compatibility.
150  */
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
153 
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE spice_restart(spice_in )
159 
160 #define YY_END_OF_BUFFER_CHAR 0
161 
162 /* Size of default input buffer. */
163 #ifndef YY_BUF_SIZE
164 #ifdef __ia64__
165 /* On IA-64, the buffer size is 16k, not 8k.
166  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
167  * Ditto for the __ia64__ case accordingly.
168  */
169 #define YY_BUF_SIZE 32768
170 #else
171 #define YY_BUF_SIZE 16384
172 #endif /* __ia64__ */
173 #endif
174 
175 /* The state buf must be large enough to hold one state per character in the main buffer.
176  */
177 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
178 
179 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
180 #define YY_TYPEDEF_YY_BUFFER_STATE
182 #endif
183 
184 extern int spice_leng;
185 
186 extern FILE *spice_in, *spice_out;
187 
188 #define EOB_ACT_CONTINUE_SCAN 0
189 #define EOB_ACT_END_OF_FILE 1
190 #define EOB_ACT_LAST_MATCH 2
191 
192  /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
193  * access to the local variable yy_act. Since yyless() is a macro, it would break
194  * existing scanners that call yyless() from OUTSIDE spice_lex.
195  * One obvious solution it to make yy_act a global. I tried that, and saw
196  * a 5% performance hit in a non-spice_lineno scanner, because yy_act is
197  * normally declared as a register variable-- so it is not worth it.
198  */
199  #define YY_LESS_LINENO(n) \
200  do { \
201  int yyl;\
202  for ( yyl = n; yyl < spice_leng; ++yyl )\
203  if ( spice_text[yyl] == '\n' )\
204  --spice_lineno;\
205  }while(0)
206 
207 /* Return all but the first "n" matched characters back to the input stream. */
208 #define yyless(n) \
209  do \
210  { \
211  /* Undo effects of setting up spice_text. */ \
212  int yyless_macro_arg = (n); \
213  YY_LESS_LINENO(yyless_macro_arg);\
214  *yy_cp = (yy_hold_char); \
215  YY_RESTORE_YY_MORE_OFFSET \
216  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
217  YY_DO_BEFORE_ACTION; /* set up spice_text again */ \
218  } \
219  while ( 0 )
220 
221 #define unput(c) yyunput( c, (yytext_ptr) )
222 
223 #ifndef YY_TYPEDEF_YY_SIZE_T
224 #define YY_TYPEDEF_YY_SIZE_T
225 typedef size_t yy_size_t;
226 #endif
227 
228 #ifndef YY_STRUCT_YY_BUFFER_STATE
229 #define YY_STRUCT_YY_BUFFER_STATE
231  {
233 
234  char *yy_ch_buf; /* input buffer */
235  char *yy_buf_pos; /* current position in input buffer */
236 
237  /* Size of input buffer in bytes, not including room for EOB
238  * characters.
239  */
241 
242  /* Number of characters read into yy_ch_buf, not including EOB
243  * characters.
244  */
246 
247  /* Whether we "own" the buffer - i.e., we know we created it,
248  * and can realloc() it to grow it, and should free() it to
249  * delete it.
250  */
252 
253  /* Whether this is an "interactive" input source; if so, and
254  * if we're using stdio for input, then we want to use getc()
255  * instead of fread(), to make sure we stop fetching input after
256  * each newline.
257  */
259 
260  /* Whether we're considered to be at the beginning of a line.
261  * If so, '^' rules will be active on the next match, otherwise
262  * not.
263  */
265 
269  /* Whether to try to fill the input buffer when we reach the
270  * end of it.
271  */
273 
275 
276 #define YY_BUFFER_NEW 0
277 #define YY_BUFFER_NORMAL 1
278  /* When an EOF's been seen but there's still some text to process
279  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
280  * shouldn't try reading from the input source any more. We might
281  * still have a bunch of tokens to match, though, because of
282  * possible backing-up.
283  *
284  * When we actually see the EOF, we change the status to "new"
285  * (via spice_restart()), so that the user can continue scanning by
286  * just pointing spice_in at a new input file.
287  */
288 #define YY_BUFFER_EOF_PENDING 2
289 
290  };
291 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
292 
293 /* Stack of input buffers. */
294 static size_t yy_buffer_stack_top = 0;
295 static size_t yy_buffer_stack_max = 0;
296 static YY_BUFFER_STATE * yy_buffer_stack = 0;
298 /* We provide macros for accessing buffer states in case in the
299  * future we want to put the buffer states in a more general
300  * "scanner state".
301  *
302  * Returns the top of the stack, or NULL.
303  */
304 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
305  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
306  : NULL)
307 
308 /* Same as previous macro, but useful when we know that the buffer stack is not
309  * NULL or when we need an lvalue. For internal use only.
310  */
311 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
312 
313 /* yy_hold_char holds the character lost when spice_text is formed. */
314 static char yy_hold_char;
315 static int yy_n_chars; /* number of characters read into yy_ch_buf */
317 
318 /* Points to current character in buffer. */
319 static char *yy_c_buf_p = (char *) 0;
320 static int yy_init = 0; /* whether we need to initialize */
321 static int yy_start = 0; /* start state number */
322 
323 /* Flag which is used to allow spice_wrap()'s to do buffer switches
324  * instead of setting up a fresh spice_in. A bit of a hack ...
325  */
326 static int yy_did_buffer_switch_on_eof;
327 
328 void spice_restart (FILE *input_file );
329 void spice__switch_to_buffer (YY_BUFFER_STATE new_buffer );
330 YY_BUFFER_STATE spice__create_buffer (FILE *file,int size );
331 void spice__delete_buffer (YY_BUFFER_STATE b );
332 void spice__flush_buffer (YY_BUFFER_STATE b );
333 void spice_push_buffer_state (YY_BUFFER_STATE new_buffer );
334 void spice_pop_buffer_state (void );
335 
336 static void spice_ensure_buffer_stack (void );
337 static void spice__load_buffer_state (void );
338 static void spice__init_buffer (YY_BUFFER_STATE b,FILE *file );
339 
340 #define YY_FLUSH_BUFFER spice__flush_buffer(YY_CURRENT_BUFFER )
341 
342 YY_BUFFER_STATE spice__scan_buffer (char *base,yy_size_t size );
343 YY_BUFFER_STATE spice__scan_string (yyconst char *yy_str );
344 YY_BUFFER_STATE spice__scan_bytes (yyconst char *bytes,int len );
345 
346 void *spice_alloc (yy_size_t );
347 void *spice_realloc (void *,yy_size_t );
348 void spice_free (void * );
349 
350 #define yy_new_buffer spice__create_buffer
351 
352 #define yy_set_interactive(is_interactive) \
353  { \
354  if ( ! YY_CURRENT_BUFFER ){ \
355  spice_ensure_buffer_stack (); \
356  YY_CURRENT_BUFFER_LVALUE = \
357  spice__create_buffer(spice_in,YY_BUF_SIZE ); \
358  } \
359  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
360  }
361 
362 #define yy_set_bol(at_bol) \
363  { \
364  if ( ! YY_CURRENT_BUFFER ){\
365  spice_ensure_buffer_stack (); \
366  YY_CURRENT_BUFFER_LVALUE = \
367  spice__create_buffer(spice_in,YY_BUF_SIZE ); \
368  } \
369  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
370  }
371 
372 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
373 
374 /* Begin user sect3 */
375 
376 #define spice_wrap(n) 1
377 #define YY_SKIP_YYWRAP
378 
379 typedef unsigned char YY_CHAR;
380 
381 FILE *spice_in = (FILE *) 0, *spice_out = (FILE *) 0;
382 
383 typedef int yy_state_type;
384 
385 extern int spice_lineno;
386 
387 int spice_lineno = 1;
388 
389 extern char *spice_text;
390 #define yytext_ptr spice_text
391 
392 static yy_state_type yy_get_previous_state (void );
393 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
394 static int yy_get_next_buffer (void );
395 static void yy_fatal_error (yyconst char msg[] );
396 
397 /* Done after the current pattern has been matched and before the
398  * corresponding action - sets up spice_text.
399  */
400 #define YY_DO_BEFORE_ACTION \
401  (yytext_ptr) = yy_bp; \
402  spice_leng = (size_t) (yy_cp - yy_bp); \
403  (yy_hold_char) = *yy_cp; \
404  *yy_cp = '\0'; \
405  (yy_c_buf_p) = yy_cp;
406 
407 #define YY_NUM_RULES 92
408 #define YY_END_OF_BUFFER 93
409 /* This struct is not used in this scanner,
410  but its presence is necessary. */
412  {
415  };
416 static yyconst flex_int16_t yy_accept[637] =
417  { 0,
418  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
419  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
420  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422  0, 0, 0, 0, 93, 90, 84, 92, 90, 9,
423  4, 90, 2, 3, 90, 90, 17, 12, 15, 16,
424  14, 13, 19, 22, 20, 21, 23, 18, 86, 84,
425  85, 86, 83, 90, 82, 82, 90, 71, 90, 82,
426  82, 82, 61, 82, 82, 82, 82, 82, 82, 56,
427  77, 77, 77, 77, 55, 55, 77, 77, 77, 77,
428 
429  77, 90, 71, 64, 79, 77, 76, 76, 77, 77,
430  77, 76, 77, 77, 77, 87, 84, 87, 4, 82,
431  82, 82, 48, 82, 82, 62, 82, 90, 77, 77,
432  77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
433  77, 2, 3, 90, 17, 12, 65, 15, 16, 14,
434  67, 13, 12, 68, 19, 66, 12, 22, 20, 21,
435  14, 23, 18, 69, 57, 71, 77, 60, 6, 6,
436  7, 6, 4, 6, 82, 82, 82, 82, 82, 89,
437  84, 88, 89, 4, 78, 77, 77, 60, 0, 0,
438  84, 0, 2, 1, 0, 0, 0, 0, 0, 0,
439 
440  0, 0, 0, 0, 0, 0, 0, 0, 17, 17,
441  12, 12, 15, 15, 16, 16, 14, 14, 13, 13,
442  19, 19, 22, 22, 20, 20, 21, 21, 23, 23,
443  18, 18, 85, 0, 83, 0, 82, 0, 72, 72,
444  72, 71, 72, 82, 72, 72, 82, 0, 63, 82,
445  82, 82, 82, 61, 82, 82, 82, 82, 82, 63,
446  82, 82, 82, 60, 60, 56, 77, 77, 55, 77,
447  53, 77, 77, 77, 55, 77, 72, 71, 72, 0,
448  72, 72, 0, 64, 79, 77, 77, 77, 77, 77,
449  77, 77, 77, 77, 76, 77, 77, 75, 82, 48,
450 
451  63, 82, 77, 77, 77, 77, 77, 77, 77, 77,
452  47, 77, 77, 77, 77, 77, 2, 0, 17, 17,
453  12, 12, 65, 15, 16, 14, 67, 13, 13, 12,
454  68, 19, 19, 66, 66, 22, 22, 20, 20, 21,
455  14, 23, 18, 69, 69, 71, 52, 60, 7, 0,
456  0, 82, 82, 82, 82, 82, 88, 0, 78, 77,
457  50, 60, 60, 0, 27, 0, 31, 0, 0, 30,
458  0, 0, 0, 32, 0, 0, 41, 0, 0, 0,
459  0, 44, 0, 0, 0, 82, 72, 82, 82, 72,
460  82, 82, 0, 0, 49, 82, 75, 82, 82, 82,
461 
462  82, 77, 51, 77, 77, 0, 72, 0, 0, 72,
463  0, 0, 77, 76, 76, 77, 77, 76, 77, 82,
464  82, 77, 77, 46, 77, 77, 77, 77, 77, 77,
465  77, 77, 77, 77, 77, 77, 0, 17, 12, 13,
466  12, 19, 66, 22, 20, 20, 14, 47, 0, 82,
467  82, 82, 82, 82, 77, 60, 70, 0, 0, 0,
468  0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
469  0, 0, 0, 0, 72, 82, 0, 82, 82, 82,
470  82, 77, 77, 54, 0, 77, 82, 82, 58, 77,
471  77, 77, 58, 77, 77, 77, 58, 77, 77, 77,
472 
473  77, 70, 17, 13, 12, 19, 66, 22, 20, 20,
474  0, 74, 82, 73, 82, 82, 73, 60, 70, 70,
475  0, 0, 0, 45, 0, 0, 0, 0, 0, 26,
476  0, 42, 43, 0, 33, 25, 0, 0, 81, 63,
477  82, 77, 77, 82, 77, 77, 77, 77, 77, 77,
478  77, 77, 11, 17, 13, 66, 22, 20, 20, 8,
479  82, 60, 0, 28, 0, 24, 0, 39, 0, 34,
480  0, 38, 82, 82, 77, 77, 77, 77, 77, 77,
481  77, 77, 77, 17, 13, 66, 22, 20, 82, 0,
482  0, 0, 37, 10, 82, 58, 77, 77, 59, 77,
483 
484  77, 77, 17, 13, 66, 22, 20, 5, 40, 29,
485  35, 80, 77, 77, 77, 77, 77, 13, 66, 22,
486  20, 77, 77, 77, 13, 66, 22, 20, 77, 13,
487  59, 20, 77, 20, 20, 0
488  } ;
489 
490 static yyconst flex_int32_t yy_ec[256] =
491  { 0,
492  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
493  1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
494  1, 1, 1, 1, 1, 5, 1, 1, 1, 1,
495  1, 2, 1, 1, 6, 7, 1, 1, 1, 8,
496  8, 9, 10, 8, 11, 12, 13, 14, 15, 15,
497  16, 14, 14, 14, 14, 14, 14, 17, 18, 1,
498  8, 1, 1, 19, 20, 21, 22, 23, 24, 25,
499  26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
500  36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
501  46, 17, 47, 1, 48, 1, 20, 21, 22, 23,
502 
503  49, 25, 26, 27, 28, 29, 30, 31, 32, 33,
504  34, 35, 36, 37, 38, 50, 40, 41, 42, 43,
505  44, 45, 1, 1, 1, 1, 1, 1, 1, 1,
506  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
507  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
508  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
509  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
510  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
511  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
512  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
513 
514  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
515  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
516  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
517  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
518  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
519  1, 1, 1, 1, 1
520  } ;
521 
522 static yyconst flex_int32_t yy_meta[51] =
523  { 0,
524  1, 2, 2, 2, 1, 3, 1, 2, 2, 4,
525  5, 6, 7, 8, 8, 8, 6, 2, 1, 9,
526  9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
527  9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
528  9, 9, 9, 9, 9, 10, 11, 12, 9, 9
529  } ;
530 
531 static yyconst flex_int16_t yy_base[741] =
532  { 0,
533  0, 12, 61, 64, 72, 0, 122, 0, 171, 0,
534  202, 249, 296, 0, 186, 220, 328, 360, 410, 457,
535  485, 515, 560, 610, 642, 0, 683, 0, 1581, 1580,
536  228, 267, 327, 350, 236, 278, 733, 780, 818, 850,
537  882, 0, 399, 400, 1616, 3683, 3683, 188, 7, 3683,
538  3683, 152, 214, 67, 913, 193, 962, 1009, 1056, 1103,
539  1150, 1197, 1244, 1291, 1338, 1385, 1432, 1479, 3683, 3683,
540  274, 196, 350, 222, 0, 276, 249, 1522, 0, 211,
541  348, 1569, 283, 1583, 1572, 1576, 342, 1569, 1556, 1567,
542  472, 392, 473, 467, 438, 478, 488, 486, 518, 534,
543 
544  798, 392, 1593, 0, 0, 0, 1546, 0, 233, 458,
545  404, 325, 1541, 1539, 1536, 3683, 3683, 243, 3683, 1547,
546  478, 315, 0, 328, 343, 0, 1523, 554, 508, 542,
547  523, 658, 548, 695, 713, 760, 755, 800, 765, 743,
548  825, 1533, 3683, 672, 749, 831, 790, 806, 845, 857,
549  866, 875, 894, 900, 943, 976, 982, 990, 996, 1024,
550  1032, 1038, 1065, 1073, 0, 431, 1075, 1081, 3683, 3683,
551  563, 439, 3683, 483, 1488, 1504, 1488, 1497, 1490, 3683,
552  3683, 675, 449, 3683, 0, 971, 921, 908, 754, 451,
553  3683, 1470, 468, 3683, 571, 581, 1471, 1455, 364, 1450,
554 
555  493, 1445, 1444, 1441, 514, 833, 1093, 1443, 1642, 0,
556  1689, 0, 1736, 0, 1783, 0, 1830, 0, 1877, 0,
557  1924, 0, 1971, 0, 2018, 0, 2065, 0, 2112, 0,
558  2159, 0, 898, 583, 957, 603, 0, 716, 2202, 2239,
559  488, 809, 0, 1113, 1106, 970, 1442, 1421, 0, 1434,
560  1440, 1423, 1421, 598, 1422, 1420, 550, 1415, 1411, 0,
561  1406, 1417, 1411, 919, 1092, 1044, 877, 0, 1018, 1026,
562  1083, 1126, 1135, 1163, 1164, 1165, 1167, 943, 3683, 1174,
563  1193, 2270, 1399, 0, 0, 1379, 1378, 1389, 339, 1376,
564  1383, 369, 1366, 1361, 0, 1373, 1350, 0, 1352, 0,
565 
566  0, 1344, 1211, 1213, 1222, 1257, 1231, 1266, 1272, 1274,
567  1258, 1304, 1313, 1315, 1323, 1321, 1373, 1336, 1354, 1360,
568  1366, 1394, 1400, 1406, 1412, 1441, 1447, 1453, 1462, 1488,
569  1494, 1502, 1590, 1508, 1569, 1575, 1655, 1581, 1661, 1667,
570  1702, 1673, 1708, 1714, 1745, 1178, 1368, 1751, 1162, 686,
571  1335, 493, 1328, 1330, 1336, 1322, 1192, 706, 0, 1464,
572  1414, 1232, 1604, 1325, 3683, 1312, 3683, 1305, 1298, 3683,
573  1315, 1309, 644, 624, 1296, 1290, 3683, 1275, 1282, 1292,
574  1275, 3683, 1276, 1260, 1720, 1259, 1753, 1250, 1240, 1231,
575  1229, 1226, 1208, 0, 0, 663, 0, 1213, 1211, 1207,
576 
577  1202, 1753, 1496, 1716, 1768, 1414, 1756, 1203, 1203, 1188,
578  1176, 1172, 1137, 0, 0, 1108, 1105, 0, 1109, 724,
579  768, 1801, 1803, 1510, 1802, 1811, 1812, 1843, 1853, 1862,
580  1817, 1852, 1887, 1863, 1898, 1864, 1111, 1906, 1933, 1941,
581  1947, 1953, 1988, 1997, 2027, 2003, 2033, 2039, 1096, 1063,
582  1051, 1036, 1032, 1016, 2041, 1280, 1527, 770, 804, 1016,
583  1015, 723, 791, 1003, 995, 830, 971, 871, 961, 963,
584  941, 939, 876, 1525, 1622, 908, 893, 878, 920, 959,
585  889, 1955, 2049, 2051, 869, 900, 855, 841, 2074, 2083,
586  2085, 2093, 2084, 2099, 2121, 2122, 2094, 2127, 2133, 2135,
587 
588  2146, 1685, 2168, 2176, 2182, 2188, 2290, 2299, 2310, 2316,
589  826, 0, 825, 0, 1028, 1046, 2190, 2275, 1654, 724,
590  987, 777, 742, 3683, 727, 723, 674, 1086, 670, 3683,
591  975, 3683, 3683, 670, 3683, 3683, 657, 622, 3683, 554,
592  544, 2322, 549, 532, 2327, 2328, 2333, 2345, 2347, 2358,
593  2339, 2360, 3683, 2368, 2379, 2387, 2397, 2405, 2411, 3683,
594  459, 1374, 398, 3683, 403, 3683, 1101, 3683, 390, 3683,
595  1022, 3683, 394, 374, 2389, 363, 2413, 2421, 2422, 2430,
596  2431, 2432, 2440, 2441, 2450, 2462, 2473, 2479, 1131, 242,
597  1162, 1051, 203, 3683, 207, 2452, 2481, 2487, 2489, 2498,
598 
599  2497, 2510, 2518, 2524, 2530, 2538, 2549, 3683, 3683, 3683,
600  3683, 0, 2540, 2557, 2558, 2563, 2572, 2580, 2586, 2598,
601  2604, 2588, 2606, 2614, 2615, 2625, 2634, 2644, 2646, 2652,
602  2660, 2666, 2668, 2674, 2680, 3683, 2724, 2736, 2748, 2760,
603  2772, 2784, 2796, 2808, 2819, 2827, 2838, 2849, 2860, 2871,
604  2882, 2893, 2904, 2915, 2926, 2937, 2948, 2958, 175, 2968,
605  2978, 2988, 2993, 3001, 3009, 3016, 3026, 3036, 3046, 3056,
606  3066, 3076, 3086, 3096, 3106, 3116, 3126, 3136, 3146, 3156,
607  3166, 3176, 3186, 3196, 3204, 3214, 3225, 3233, 3238, 3249,
608  3254, 3265, 3270, 3281, 3286, 3297, 3302, 3313, 3318, 3329,
609 
610  3334, 3345, 3350, 3361, 3366, 3377, 3382, 3393, 3398, 3409,
611  3414, 3419, 3429, 3439, 3447, 3452, 3460, 3467, 3477, 3487,
612  3497, 3507, 3517, 3527, 3537, 3547, 3557, 3567, 3577, 3587,
613  3597, 3607, 3617, 3627, 3637, 3647, 3655, 3665, 168, 3670
614  } ;
615 
616 static yyconst flex_int16_t yy_def[741] =
617  { 0,
618  637, 636, 638, 638, 636, 5, 636, 7, 637, 9,
619  639, 639, 636, 13, 640, 640, 5, 5, 641, 641,
620  5, 5, 7, 636, 5, 25, 7, 27, 27, 27,
621  642, 642, 25, 25, 643, 643, 644, 644, 27, 27,
622  27, 41, 25, 25, 636, 636, 636, 636, 636, 636,
623  636, 636, 645, 645, 636, 645, 646, 647, 648, 649,
624  650, 651, 652, 653, 654, 655, 656, 657, 636, 636,
625  636, 636, 636, 636, 658, 658, 636, 636, 659, 658,
626  658, 658, 660, 658, 658, 658, 658, 658, 658, 661,
627  662, 662, 662, 662, 662, 662, 662, 662, 662, 662,
628 
629  662, 636, 636, 663, 664, 665, 665, 665, 665, 665,
630  665, 665, 665, 665, 665, 636, 636, 636, 636, 658,
631  658, 658, 666, 658, 658, 658, 658, 636, 662, 662,
632  662, 662, 662, 662, 662, 662, 662, 662, 662, 662,
633  662, 636, 636, 55, 667, 668, 669, 670, 671, 672,
634  673, 674, 668, 675, 676, 677, 668, 678, 679, 680,
635  672, 681, 682, 683, 658, 658, 662, 684, 636, 636,
636  636, 636, 636, 636, 658, 658, 658, 658, 658, 636,
637  636, 636, 636, 636, 685, 662, 662, 686, 636, 636,
638  636, 636, 687, 636, 636, 687, 636, 636, 636, 636,
639 
640  636, 636, 636, 636, 636, 636, 636, 636, 688, 689,
641  690, 691, 692, 693, 694, 695, 696, 697, 698, 699,
642  700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
643  710, 711, 636, 636, 636, 636, 658, 636, 636, 636,
644  240, 239, 658, 658, 658, 245, 658, 712, 658, 658,
645  658, 658, 658, 713, 658, 658, 658, 658, 658, 658,
646  658, 658, 658, 714, 714, 714, 662, 715, 662, 662,
647  662, 662, 662, 662, 662, 662, 240, 277, 636, 636,
648  636, 636, 636, 716, 717, 715, 715, 715, 715, 715,
649  715, 715, 715, 715, 715, 715, 715, 658, 658, 718,
650 
651  658, 658, 662, 662, 662, 662, 662, 662, 662, 662,
652  662, 662, 662, 662, 662, 662, 636, 636, 719, 719,
653  720, 720, 721, 722, 723, 724, 725, 726, 726, 720,
654  727, 728, 728, 729, 729, 730, 730, 731, 731, 732,
655  724, 733, 734, 735, 735, 658, 662, 736, 636, 636,
656  636, 658, 658, 658, 658, 658, 636, 636, 737, 662,
657  662, 738, 738, 636, 636, 636, 636, 636, 636, 636,
658  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
659  636, 636, 636, 636, 636, 658, 239, 658, 658, 658,
660  658, 658, 712, 739, 658, 658, 658, 658, 658, 658,
661 
662  658, 662, 662, 662, 662, 636, 240, 636, 636, 636,
663  636, 636, 715, 715, 715, 715, 715, 715, 715, 658,
664  658, 662, 662, 662, 662, 662, 662, 662, 662, 662,
665  662, 662, 662, 662, 662, 662, 636, 719, 720, 726,
666  720, 728, 729, 730, 731, 731, 724, 735, 636, 658,
667  658, 658, 658, 658, 662, 738, 636, 636, 636, 636,
668  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
669  636, 636, 636, 636, 407, 658, 740, 658, 658, 658,
670  658, 662, 662, 662, 636, 715, 658, 658, 662, 662,
671  662, 662, 662, 662, 662, 662, 662, 662, 662, 662,
672 
673  662, 636, 719, 726, 720, 728, 729, 730, 731, 731,
674  636, 658, 658, 658, 658, 658, 662, 738, 636, 636,
675  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
676  636, 636, 636, 636, 636, 636, 636, 740, 636, 658,
677  658, 662, 715, 658, 662, 662, 662, 662, 662, 662,
678  662, 662, 636, 719, 726, 729, 730, 731, 731, 636,
679  658, 738, 636, 636, 636, 636, 636, 636, 636, 636,
680  636, 636, 658, 658, 662, 715, 662, 662, 662, 662,
681  662, 662, 662, 719, 726, 729, 730, 731, 658, 636,
682  636, 636, 636, 636, 658, 662, 662, 662, 662, 662,
683 
684  662, 662, 719, 726, 729, 730, 731, 636, 636, 636,
685  636, 658, 662, 662, 662, 662, 662, 726, 729, 730,
686  731, 662, 662, 662, 726, 729, 730, 731, 662, 726,
687  729, 731, 662, 731, 731, 0, 636, 636, 636, 636,
688  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
689  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
690  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
691  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
692  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
693  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
694 
695  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
696  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
697  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
698  636, 636, 636, 636, 636, 636, 636, 636, 636, 636
699  } ;
700 
701 static yyconst flex_int16_t yy_nxt[3734] =
702  { 0,
703  636, 47, 48, 49, 50, 636, 51, 47, 51, 189,
704  190, 52, 46, 53, 48, 49, 50, 46, 51, 47,
705  54, 46, 46, 55, 46, 56, 56, 56, 46, 46,
706  46, 56, 57, 58, 56, 59, 60, 59, 60, 61,
707  56, 62, 58, 56, 56, 63, 56, 56, 58, 64,
708  65, 66, 61, 67, 68, 56, 56, 46, 46, 46,
709  59, 65, 70, 71, 72, 70, 71, 72, 70, 194,
710  195, 70, 46, 47, 73, 74, 46, 75, 51, 47,
711  51, 76, 76, 77, 46, 78, 78, 78, 46, 46,
712  79, 80, 75, 75, 81, 82, 75, 75, 75, 83,
713 
714  75, 75, 84, 75, 85, 86, 87, 75, 75, 88,
715  89, 75, 90, 75, 75, 75, 75, 46, 46, 75,
716  82, 89, 46, 47, 73, 74, 46, 75, 51, 47,
717  51, 76, 76, 77, 46, 78, 78, 78, 46, 46,
718  46, 91, 92, 92, 93, 92, 92, 92, 92, 94,
719  92, 92, 95, 96, 97, 98, 99, 92, 100, 92,
720  101, 92, 92, 95, 92, 92, 92, 46, 46, 92,
721  92, 101, 47, 73, 74, 192, 477, 51, 47, 51,
722  102, 102, 77, 248, 103, 103, 103, 117, 73, 118,
723  189, 190, 119, 117, 119, 194, 195, 191, 233, 234,
724 
725  192, 104, 46, 47, 48, 49, 46, 46, 51, 47,
726  51, 46, 46, 46, 46, 193, 194, 195, 46, 46,
727  46, 117, 73, 118, 235, 236, 119, 117, 119, 170,
728  171, 172, 249, 612, 173, 170, 173, 181, 182, 183,
729  611, 250, 184, 181, 184, 235, 236, 46, 46, 46,
730  47, 48, 49, 46, 46, 51, 47, 51, 46, 46,
731  46, 46, 240, 240, 240, 46, 46, 46, 170, 171,
732  172, 287, 608, 173, 170, 173, 189, 190, 174, 181,
733  182, 183, 287, 191, 184, 181, 184, 238, 237, 239,
734  239, 239, 237, 237, 46, 46, 46, 47, 48, 49,
735 
736  46, 46, 51, 47, 51, 46, 46, 46, 46, 46,
737  46, 46, 46, 46, 46, 106, 106, 107, 108, 106,
738  106, 106, 106, 106, 106, 106, 109, 106, 110, 106,
739  111, 106, 112, 113, 106, 114, 115, 106, 106, 106,
740  106, 46, 46, 106, 106, 106, 46, 120, 294, 301,
741  121, 175, 189, 190, 258, 75, 259, 176, 250, 191,
742  75, 177, 122, 415, 301, 178, 75, 179, 75, 249,
743  302, 251, 416, 294, 175, 252, 178, 75, 46, 120,
744  176, 258, 121, 259, 177, 367, 260, 75, 178, 418,
745  179, 368, 75, 415, 122, 595, 251, 237, 75, 178,
746 
747  75, 237, 417, 238, 268, 277, 277, 277, 298, 75,
748  46, 47, 73, 74, 46, 46, 51, 47, 51, 46,
749  46, 46, 593, 175, 175, 591, 46, 46, 46, 176,
750  176, 590, 291, 177, 177, 292, 293, 178, 178, 188,
751  188, 349, 350, 237, 346, 346, 346, 237, 178, 178,
752  268, 357, 358, 189, 190, 46, 46, 46, 47, 73,
753  74, 46, 46, 51, 47, 51, 46, 46, 46, 193,
754  194, 195, 237, 46, 46, 46, 237, 237, 237, 268,
755  589, 237, 237, 237, 268, 268, 288, 237, 271, 289,
756  268, 237, 290, 237, 269, 237, 270, 237, 268, 298,
757 
758  268, 251, 46, 46, 124, 299, 351, 125, 75, 269,
759  273, 636, 126, 237, 370, 75, 450, 237, 75, 127,
760  268, 270, 75, 237, 272, 371, 251, 237, 237, 303,
761  268, 351, 237, 75, 124, 268, 636, 125, 75, 237,
762  269, 450, 126, 237, 375, 75, 268, 237, 75, 127,
763  376, 237, 75, 237, 268, 269, 573, 237, 377, 274,
764  268, 304, 305, 75, 50, 189, 190, 240, 240, 240,
765  576, 128, 191, 194, 195, 307, 574, 192, 573, 129,
766  130, 131, 92, 194, 195, 233, 234, 92, 298, 132,
767  133, 92, 134, 135, 136, 137, 92, 138, 139, 298,
768 
769  140, 92, 192, 237, 141, 235, 236, 237, 237, 139,
770  46, 142, 73, 74, 50, 75, 51, 47, 143, 76,
771  76, 144, 46, 78, 78, 78, 46, 46, 46, 129,
772  145, 146, 147, 148, 149, 148, 149, 150, 151, 152,
773  153, 154, 134, 155, 136, 156, 157, 158, 159, 160,
774  161, 162, 163, 92, 164, 46, 46, 92, 148, 159,
775  46, 75, 465, 237, 75, 75, 463, 237, 539, 75,
776  268, 464, 75, 465, 75, 75, 75, 189, 190, 75,
777  75, 306, 165, 572, 191, 240, 240, 240, 349, 350,
778  75, 75, 75, 75, 46, 318, 166, 166, 166, 571,
779 
780  237, 478, 92, 569, 237, 92, 306, 268, 357, 358,
781  92, 567, 478, 92, 92, 92, 167, 92, 237, 92,
782  318, 92, 237, 168, 92, 268, 520, 521, 308, 240,
783  240, 240, 92, 46, 47, 73, 74, 46, 46, 51,
784  47, 51, 46, 46, 46, 46, 526, 309, 237, 46,
785  46, 46, 237, 566, 237, 268, 189, 190, 237, 267,
786  237, 268, 487, 191, 237, 237, 565, 268, 320, 237,
787  237, 526, 268, 487, 237, 564, 315, 268, 46, 46,
788  46, 47, 73, 74, 46, 46, 51, 47, 51, 46,
789  46, 46, 46, 310, 312, 237, 46, 46, 46, 237,
790 
791  267, 314, 268, 237, 311, 237, 488, 237, 522, 237,
792  268, 237, 268, 563, 527, 237, 267, 488, 268, 522,
793  275, 276, 242, 242, 242, 46, 46, 76, 76, 77,
794  237, 78, 78, 78, 237, 275, 237, 268, 313, 527,
795  237, 267, 523, 268, 561, 94, 276, 560, 316, 313,
796  237, 92, 378, 523, 237, 267, 379, 268, 92, 76,
797  76, 77, 237, 78, 78, 78, 237, 267, 530, 268,
798  322, 237, 380, 316, 260, 237, 267, 94, 268, 530,
799  237, 379, 237, 92, 237, 267, 237, 268, 544, 268,
800  92, 76, 76, 77, 532, 78, 78, 78, 329, 237,
801 
802  189, 190, 279, 237, 267, 237, 268, 191, 541, 237,
803  267, 540, 268, 237, 537, 92, 186, 237, 237, 532,
804  187, 330, 92, 329, 263, 537, 237, 363, 237, 237,
805  237, 187, 197, 268, 198, 199, 192, 200, 543, 539,
806  201, 243, 361, 301, 202, 203, 204, 205, 237, 543,
807  206, 207, 237, 267, 208, 268, 278, 278, 278, 189,
808  190, 192, 207, 196, 194, 195, 191, 196, 301, 196,
809  196, 536, 196, 196, 196, 535, 237, 333, 196, 196,
810  237, 237, 397, 268, 534, 237, 267, 237, 268, 520,
811  521, 237, 267, 389, 268, 237, 390, 391, 533, 237,
812 
813  267, 237, 268, 531, 360, 237, 267, 397, 268, 210,
814  196, 194, 195, 570, 196, 335, 196, 196, 389, 196,
815  196, 196, 529, 237, 570, 196, 196, 237, 337, 237,
816  268, 237, 339, 237, 267, 237, 268, 237, 268, 337,
817  528, 237, 267, 237, 268, 525, 402, 237, 267, 263,
818  268, 512, 524, 237, 237, 516, 212, 196, 194, 195,
819  594, 196, 515, 196, 196, 341, 196, 196, 196, 512,
820  237, 594, 196, 196, 237, 267, 512, 268, 237, 514,
821  237, 513, 237, 267, 237, 268, 237, 268, 237, 610,
822  237, 267, 237, 268, 512, 268, 345, 263, 512, 273,
823 
824  610, 237, 237, 214, 196, 194, 195, 347, 196, 568,
825  196, 196, 266, 196, 196, 196, 381, 382, 511, 196,
826  196, 345, 386, 386, 592, 243, 387, 387, 387, 383,
827  243, 237, 243, 502, 568, 237, 486, 388, 268, 247,
828  237, 381, 415, 243, 237, 415, 243, 268, 269, 592,
829  216, 196, 194, 195, 512, 196, 295, 196, 196, 403,
830  196, 196, 196, 269, 189, 190, 196, 196, 237, 237,
831  237, 191, 237, 237, 237, 268, 268, 268, 241, 512,
832  277, 277, 277, 406, 406, 609, 404, 407, 407, 407,
833  280, 346, 346, 346, 189, 190, 405, 218, 196, 194,
834 
835  195, 191, 196, 279, 196, 196, 281, 196, 196, 196,
836  609, 404, 279, 196, 196, 280, 237, 279, 237, 279,
837  237, 279, 237, 268, 408, 268, 283, 237, 281, 485,
838  279, 237, 422, 279, 268, 423, 237, 237, 481, 301,
839  237, 237, 237, 268, 220, 196, 194, 195, 480, 196,
840  479, 196, 196, 394, 196, 196, 196, 243, 424, 245,
841  196, 196, 237, 237, 243, 245, 237, 237, 426, 268,
842  268, 237, 387, 387, 387, 237, 476, 237, 268, 237,
843  425, 237, 473, 237, 268, 237, 268, 427, 428, 237,
844  237, 222, 196, 194, 195, 472, 196, 429, 196, 196,
845 
846  430, 196, 196, 196, 311, 425, 471, 196, 196, 237,
847  431, 432, 470, 237, 469, 468, 268, 467, 237, 518,
848  237, 431, 237, 433, 237, 268, 237, 268, 237, 466,
849  237, 462, 237, 268, 435, 268, 461, 460, 224, 196,
850  194, 195, 459, 196, 458, 196, 196, 457, 196, 196,
851  196, 434, 454, 424, 196, 196, 453, 311, 436, 237,
852  452, 434, 451, 237, 267, 237, 268, 449, 437, 237,
853  267, 237, 268, 237, 317, 237, 267, 237, 268, 237,
854  268, 421, 438, 237, 237, 226, 196, 194, 195, 420,
855  196, 419, 196, 196, 295, 196, 196, 196, 418, 237,
856 
857  414, 196, 196, 237, 267, 237, 268, 414, 414, 237,
858  267, 237, 268, 414, 413, 237, 267, 237, 268, 237,
859  295, 237, 267, 237, 268, 412, 268, 407, 407, 407,
860  439, 401, 228, 196, 194, 195, 400, 196, 397, 196,
861  196, 397, 196, 196, 196, 399, 237, 398, 196, 196,
862  237, 267, 237, 268, 298, 397, 237, 267, 237, 268,
863  396, 298, 237, 267, 395, 268, 394, 237, 392, 237,
864  384, 237, 267, 237, 268, 374, 268, 373, 372, 230,
865  196, 194, 195, 369, 196, 440, 196, 196, 366, 196,
866  196, 196, 365, 237, 455, 196, 196, 237, 267, 237,
867 
868  268, 237, 364, 237, 267, 237, 268, 237, 268, 356,
869  440, 237, 267, 237, 268, 237, 355, 237, 267, 237,
870  268, 354, 268, 353, 352, 441, 232, 237, 519, 520,
871  521, 237, 237, 241, 317, 242, 242, 242, 475, 475,
872  475, 243, 237, 237, 237, 244, 245, 245, 243, 237,
873  237, 245, 237, 246, 245, 247, 245, 237, 237, 243,
874  245, 245, 243, 237, 237, 237, 237, 260, 298, 237,
875  244, 245, 263, 297, 237, 296, 237, 237, 237, 267,
876  237, 268, 295, 286, 237, 267, 237, 268, 443, 265,
877  237, 267, 262, 268, 266, 237, 261, 257, 266, 237,
878 
879  267, 266, 268, 266, 241, 256, 278, 278, 278, 237,
880  255, 253, 279, 237, 237, 636, 280, 281, 281, 279,
881  92, 92, 281, 636, 282, 281, 283, 281, 442, 636,
882  279, 281, 281, 279, 456, 475, 475, 475, 636, 442,
883  636, 280, 281, 196, 194, 195, 636, 196, 636, 196,
884  196, 636, 196, 196, 196, 519, 520, 521, 196, 196,
885  237, 636, 636, 636, 237, 267, 237, 268, 636, 636,
886  237, 267, 237, 268, 636, 636, 237, 267, 237, 268,
887  445, 636, 237, 267, 636, 268, 519, 520, 521, 210,
888  196, 194, 195, 444, 196, 636, 196, 196, 636, 196,
889 
890  196, 196, 636, 444, 446, 196, 196, 237, 636, 636,
891  636, 237, 267, 237, 268, 636, 636, 237, 267, 237,
892  268, 237, 553, 237, 267, 237, 268, 636, 268, 474,
893  474, 636, 447, 475, 475, 475, 212, 196, 194, 195,
894  636, 196, 636, 196, 196, 636, 196, 196, 196, 483,
895  237, 636, 196, 196, 237, 267, 237, 268, 237, 636,
896  237, 267, 237, 268, 636, 268, 387, 387, 387, 407,
897  407, 407, 636, 237, 636, 636, 237, 237, 636, 636,
898  268, 448, 636, 214, 196, 194, 195, 636, 196, 636,
899  196, 196, 482, 196, 196, 196, 636, 636, 636, 196,
900 
901  196, 237, 484, 636, 636, 636, 237, 237, 237, 636,
902  237, 237, 237, 268, 268, 268, 237, 237, 636, 636,
903  237, 237, 237, 268, 268, 636, 237, 636, 636, 268,
904  216, 196, 194, 195, 490, 196, 491, 196, 196, 489,
905  196, 196, 196, 636, 636, 492, 196, 196, 237, 489,
906  489, 636, 237, 636, 493, 268, 636, 237, 237, 636,
907  489, 237, 237, 636, 268, 268, 493, 237, 237, 237,
908  636, 237, 237, 237, 268, 268, 268, 218, 196, 194,
909  195, 495, 196, 636, 196, 196, 494, 196, 196, 196,
910  497, 493, 237, 196, 196, 636, 237, 499, 496, 268,
911 
912  636, 497, 501, 237, 636, 636, 636, 237, 636, 498,
913  268, 237, 636, 501, 636, 237, 267, 636, 268, 636,
914  636, 636, 636, 636, 220, 196, 194, 195, 636, 196,
915  500, 196, 196, 636, 196, 196, 196, 503, 237, 636,
916  196, 196, 237, 267, 636, 268, 237, 636, 636, 636,
917  237, 267, 237, 268, 636, 636, 237, 267, 237, 268,
918  237, 636, 237, 267, 237, 268, 636, 268, 636, 636,
919  636, 222, 196, 194, 195, 504, 196, 636, 196, 196,
920  269, 196, 196, 196, 636, 505, 636, 196, 196, 636,
921  506, 636, 636, 237, 636, 636, 505, 237, 267, 636,
922 
923  268, 636, 237, 636, 636, 636, 237, 267, 237, 268,
924  507, 636, 237, 267, 636, 268, 636, 636, 224, 196,
925  194, 195, 636, 196, 636, 196, 196, 636, 196, 196,
926  196, 508, 237, 636, 196, 196, 237, 267, 237, 268,
927  636, 510, 237, 267, 237, 268, 237, 636, 237, 267,
928  237, 268, 510, 268, 237, 636, 237, 636, 237, 509,
929  237, 268, 636, 268, 636, 226, 196, 194, 195, 636,
930  196, 636, 196, 196, 636, 196, 196, 196, 636, 237,
931  542, 196, 196, 237, 517, 636, 268, 636, 237, 237,
932  237, 636, 237, 237, 237, 268, 268, 268, 237, 237,
933 
934  636, 636, 237, 237, 237, 268, 268, 636, 237, 636,
935  636, 268, 228, 196, 194, 195, 545, 196, 546, 196,
936  196, 489, 196, 196, 196, 547, 237, 237, 196, 196,
937  237, 237, 237, 268, 268, 636, 237, 636, 237, 268,
938  237, 636, 237, 636, 237, 268, 548, 268, 636, 549,
939  636, 237, 636, 636, 550, 237, 636, 636, 268, 230,
940  196, 194, 195, 551, 196, 636, 196, 196, 636, 196,
941  196, 196, 497, 237, 636, 196, 196, 237, 267, 552,
942  268, 237, 636, 636, 636, 237, 267, 237, 268, 636,
943  636, 237, 267, 237, 268, 237, 636, 237, 267, 237,
944 
945  268, 554, 268, 636, 636, 636, 232, 237, 636, 555,
946  636, 237, 237, 241, 636, 239, 239, 239, 636, 636,
947  636, 243, 237, 237, 237, 244, 245, 245, 243, 237,
948  237, 245, 237, 246, 245, 247, 245, 237, 237, 243,
949  245, 245, 243, 237, 237, 237, 237, 636, 636, 237,
950  244, 245, 240, 240, 240, 636, 636, 636, 279, 636,
951  636, 636, 385, 281, 281, 279, 636, 636, 281, 636,
952  282, 281, 283, 281, 636, 636, 279, 281, 281, 279,
953  237, 636, 636, 636, 237, 237, 636, 385, 281, 279,
954  636, 636, 636, 409, 279, 237, 410, 411, 562, 237,
955 
956  267, 408, 268, 283, 237, 636, 636, 279, 237, 267,
957  279, 268, 636, 636, 636, 237, 636, 556, 409, 237,
958  267, 237, 268, 562, 636, 237, 267, 237, 268, 557,
959  636, 237, 237, 237, 268, 636, 237, 237, 237, 268,
960  268, 636, 237, 636, 237, 268, 636, 558, 237, 559,
961  237, 268, 237, 636, 237, 575, 237, 268, 636, 268,
962  636, 636, 578, 237, 577, 237, 582, 237, 493, 237,
963  268, 579, 268, 237, 636, 636, 636, 237, 267, 580,
964  268, 583, 579, 636, 237, 636, 636, 636, 237, 267,
965  581, 268, 237, 493, 237, 636, 237, 267, 237, 268,
966 
967  636, 268, 237, 636, 636, 584, 237, 267, 636, 268,
968  237, 275, 636, 585, 237, 267, 237, 268, 237, 586,
969  237, 267, 237, 268, 587, 268, 237, 237, 596, 636,
970  237, 237, 588, 268, 268, 237, 237, 237, 636, 237,
971  237, 237, 268, 268, 268, 237, 237, 636, 597, 237,
972  237, 267, 268, 268, 636, 237, 603, 237, 598, 237,
973  267, 237, 268, 601, 268, 636, 636, 237, 599, 600,
974  636, 237, 267, 602, 268, 636, 636, 604, 237, 599,
975  600, 636, 237, 267, 237, 268, 237, 636, 237, 267,
976  237, 268, 237, 268, 237, 636, 237, 636, 237, 268,
977 
978  605, 268, 237, 237, 606, 636, 237, 237, 636, 268,
979  268, 605, 607, 613, 636, 237, 636, 636, 636, 237,
980  614, 615, 268, 237, 616, 636, 636, 237, 267, 237,
981  268, 636, 636, 237, 267, 237, 268, 636, 636, 237,
982  267, 617, 268, 237, 636, 237, 615, 237, 267, 237,
983  268, 636, 268, 619, 237, 636, 618, 636, 237, 267,
984  636, 268, 237, 237, 622, 620, 237, 237, 237, 268,
985  268, 636, 237, 636, 636, 268, 636, 237, 619, 636,
986  621, 237, 636, 636, 268, 237, 636, 599, 636, 237,
987  267, 237, 268, 237, 623, 237, 267, 237, 268, 636,
988 
989  268, 599, 636, 237, 625, 636, 624, 237, 267, 237,
990  268, 237, 599, 237, 267, 237, 268, 636, 268, 237,
991  237, 596, 626, 237, 237, 267, 268, 268, 636, 636,
992  237, 636, 636, 629, 237, 267, 627, 268, 628, 237,
993  599, 636, 636, 237, 267, 636, 268, 627, 630, 237,
994  636, 237, 636, 237, 267, 237, 268, 237, 268, 631,
995  636, 237, 267, 632, 268, 237, 636, 633, 636, 237,
996  267, 237, 268, 237, 636, 237, 267, 237, 268, 237,
997  268, 636, 636, 237, 267, 237, 268, 634, 636, 237,
998  267, 636, 268, 636, 636, 636, 636, 636, 636, 636,
999 
1000  636, 636, 636, 636, 636, 636, 489, 636, 636, 636,
1001  636, 636, 635, 636, 636, 636, 636, 489, 636, 636,
1002  636, 636, 636, 635, 46, 46, 46, 46, 46, 46,
1003  46, 46, 46, 46, 46, 46, 69, 69, 69, 69,
1004  69, 69, 69, 69, 69, 69, 69, 69, 105, 105,
1005  105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1006  116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
1007  116, 116, 123, 123, 123, 123, 123, 123, 123, 123,
1008  123, 123, 123, 123, 169, 169, 169, 169, 169, 169,
1009  169, 169, 169, 169, 169, 169, 180, 180, 180, 180,
1010 
1011  180, 180, 180, 180, 180, 180, 180, 180, 185, 185,
1012  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1013  196, 196, 636, 196, 196, 196, 196, 196, 209, 209,
1014  636, 209, 209, 209, 209, 209, 636, 636, 209, 211,
1015  211, 636, 211, 211, 211, 211, 211, 636, 636, 211,
1016  213, 213, 636, 213, 213, 213, 213, 213, 636, 636,
1017  213, 215, 215, 636, 215, 215, 215, 215, 215, 636,
1018  636, 215, 217, 217, 636, 217, 217, 217, 217, 217,
1019  636, 636, 217, 219, 219, 636, 219, 219, 219, 219,
1020  219, 636, 636, 219, 221, 221, 636, 221, 221, 221,
1021 
1022  221, 221, 636, 636, 221, 223, 223, 636, 223, 223,
1023  223, 223, 223, 636, 636, 223, 225, 225, 636, 225,
1024  225, 225, 225, 225, 636, 636, 225, 227, 227, 636,
1025  227, 227, 227, 227, 227, 636, 636, 227, 229, 229,
1026  636, 229, 229, 229, 229, 229, 636, 636, 229, 231,
1027  231, 636, 231, 231, 231, 231, 231, 636, 636, 231,
1028  237, 237, 237, 636, 636, 237, 237, 636, 636, 237,
1029  254, 254, 254, 636, 636, 254, 254, 636, 636, 254,
1030  264, 264, 264, 636, 636, 264, 264, 636, 636, 264,
1031  267, 267, 267, 636, 267, 267, 267, 636, 636, 267,
1032 
1033  284, 284, 636, 636, 284, 285, 636, 285, 285, 285,
1034  636, 636, 285, 268, 636, 268, 268, 268, 636, 636,
1035  268, 300, 300, 300, 300, 636, 636, 300, 319, 319,
1036  319, 636, 319, 319, 319, 636, 636, 319, 321, 321,
1037  321, 636, 321, 321, 321, 636, 636, 321, 323, 323,
1038  323, 636, 323, 323, 323, 636, 636, 323, 324, 324,
1039  324, 636, 324, 324, 324, 636, 636, 324, 325, 325,
1040  325, 636, 325, 325, 325, 636, 636, 325, 326, 326,
1041  326, 636, 326, 326, 326, 636, 636, 326, 327, 327,
1042  327, 636, 327, 327, 327, 636, 636, 327, 328, 328,
1043 
1044  328, 636, 328, 328, 328, 636, 636, 328, 331, 331,
1045  331, 636, 331, 331, 331, 636, 636, 331, 332, 332,
1046  332, 636, 332, 332, 332, 636, 636, 332, 334, 334,
1047  334, 636, 334, 334, 334, 636, 636, 334, 336, 336,
1048  336, 636, 336, 336, 336, 636, 636, 336, 338, 338,
1049  338, 636, 338, 338, 338, 636, 636, 338, 340, 340,
1050  340, 636, 340, 340, 340, 636, 636, 340, 342, 342,
1051  342, 636, 342, 342, 342, 636, 636, 342, 343, 343,
1052  343, 636, 343, 343, 343, 636, 636, 343, 344, 344,
1053  344, 636, 344, 344, 344, 636, 636, 344, 348, 348,
1054 
1055  348, 636, 348, 348, 348, 636, 636, 348, 359, 636,
1056  359, 359, 359, 636, 636, 359, 362, 362, 362, 636,
1057  636, 362, 362, 636, 636, 362, 196, 196, 636, 196,
1058  196, 196, 196, 196, 209, 209, 636, 209, 209, 209,
1059  209, 209, 636, 636, 209, 210, 210, 636, 636, 210,
1060  211, 211, 636, 211, 211, 211, 211, 211, 636, 636,
1061  211, 212, 212, 636, 636, 212, 213, 213, 636, 213,
1062  213, 213, 213, 213, 636, 636, 213, 214, 214, 636,
1063  636, 214, 215, 215, 636, 215, 215, 215, 215, 215,
1064  636, 636, 215, 216, 216, 636, 636, 216, 217, 217,
1065 
1066  636, 217, 217, 217, 217, 217, 636, 636, 217, 218,
1067  218, 636, 636, 218, 219, 219, 636, 219, 219, 219,
1068  219, 219, 636, 636, 219, 220, 220, 636, 636, 220,
1069  221, 221, 636, 221, 221, 221, 221, 221, 636, 636,
1070  221, 222, 222, 636, 636, 222, 223, 223, 636, 223,
1071  223, 223, 223, 223, 636, 636, 223, 224, 224, 636,
1072  636, 224, 225, 225, 636, 225, 225, 225, 225, 225,
1073  636, 636, 225, 226, 226, 636, 636, 226, 227, 227,
1074  636, 227, 227, 227, 227, 227, 636, 636, 227, 228,
1075  228, 636, 636, 228, 229, 229, 636, 229, 229, 229,
1076 
1077  229, 229, 636, 636, 229, 230, 230, 636, 636, 230,
1078  231, 231, 636, 231, 231, 231, 231, 231, 636, 636,
1079  231, 232, 232, 636, 636, 232, 393, 393, 393, 636,
1080  393, 254, 254, 254, 636, 636, 254, 254, 636, 636,
1081  254, 264, 264, 264, 636, 636, 264, 264, 636, 636,
1082  264, 268, 636, 268, 268, 268, 636, 636, 268, 284,
1083  284, 636, 636, 284, 285, 636, 285, 285, 285, 636,
1084  636, 285, 300, 300, 300, 300, 636, 636, 300, 319,
1085  319, 319, 636, 319, 319, 319, 636, 636, 319, 321,
1086  321, 321, 636, 321, 321, 321, 636, 636, 321, 323,
1087 
1088  323, 323, 636, 323, 323, 323, 636, 636, 323, 324,
1089  324, 324, 636, 324, 324, 324, 636, 636, 324, 325,
1090  325, 325, 636, 325, 325, 325, 636, 636, 325, 326,
1091  326, 326, 636, 326, 326, 326, 636, 636, 326, 327,
1092  327, 327, 636, 327, 327, 327, 636, 636, 327, 328,
1093  328, 328, 636, 328, 328, 328, 636, 636, 328, 331,
1094  331, 331, 636, 331, 331, 331, 636, 636, 331, 332,
1095  332, 332, 636, 332, 332, 332, 636, 636, 332, 334,
1096  334, 334, 636, 334, 334, 334, 636, 636, 334, 336,
1097  336, 336, 636, 336, 336, 336, 636, 636, 336, 338,
1098 
1099  338, 338, 636, 338, 338, 338, 636, 636, 338, 340,
1100  340, 340, 636, 340, 340, 340, 636, 636, 340, 342,
1101  342, 342, 636, 342, 342, 342, 636, 636, 342, 343,
1102  343, 343, 636, 343, 343, 343, 636, 636, 343, 344,
1103  344, 344, 636, 344, 344, 344, 636, 636, 344, 348,
1104  348, 348, 636, 348, 348, 348, 636, 636, 348, 359,
1105  636, 359, 359, 359, 636, 636, 359, 362, 362, 362,
1106  636, 636, 362, 362, 636, 636, 362, 538, 538, 636,
1107  538, 538, 45, 636, 636, 636, 636, 636, 636, 636,
1108  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1109 
1110  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1111  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1112  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1113  636, 636, 636
1114  } ;
1115 
1116 static yyconst flex_int16_t yy_chk[3734] =
1117  { 0,
1118  0, 1, 1, 1, 1, 0, 1, 1, 1, 49,
1119  49, 1, 2, 2, 2, 2, 2, 2, 2, 2,
1120  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1121  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1122  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1123  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1124  2, 2, 3, 3, 3, 4, 4, 4, 3, 54,
1125  54, 4, 5, 5, 5, 5, 5, 5, 5, 5,
1126  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1127  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1128 
1129  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1130  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1131  5, 5, 7, 7, 7, 7, 7, 7, 7, 7,
1132  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1133  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1134  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1135  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1136  7, 7, 9, 9, 9, 52, 739, 9, 9, 9,
1137  9, 9, 9, 659, 9, 9, 9, 15, 15, 15,
1138  48, 48, 15, 15, 15, 56, 56, 48, 72, 72,
1139 
1140  52, 9, 11, 11, 11, 11, 11, 11, 11, 11,
1141  11, 11, 11, 11, 11, 53, 53, 53, 11, 11,
1142  11, 16, 16, 16, 74, 74, 16, 16, 16, 31,
1143  31, 31, 80, 595, 31, 31, 31, 35, 35, 35,
1144  593, 80, 35, 35, 35, 118, 118, 11, 11, 12,
1145  12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
1146  12, 12, 77, 77, 77, 12, 12, 12, 32, 32,
1147  32, 109, 590, 32, 32, 32, 71, 71, 32, 36,
1148  36, 36, 109, 71, 36, 36, 36, 76, 83, 76,
1149  76, 76, 83, 83, 12, 12, 13, 13, 13, 13,
1150 
1151  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1152  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1153  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1154  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1155  13, 13, 13, 13, 13, 13, 17, 17, 112, 124,
1156  17, 33, 73, 73, 122, 17, 122, 33, 124, 73,
1157  17, 33, 17, 289, 125, 33, 17, 33, 17, 81,
1158  125, 81, 289, 112, 34, 81, 33, 17, 18, 18,
1159  34, 87, 18, 87, 34, 199, 87, 18, 34, 576,
1160  34, 199, 18, 292, 18, 574, 81, 92, 18, 34,
1161 
1162  18, 92, 292, 102, 92, 102, 102, 102, 573, 18,
1163  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1164  19, 19, 569, 43, 44, 565, 19, 19, 19, 43,
1165  44, 563, 111, 43, 44, 111, 111, 43, 44, 43,
1166  44, 172, 172, 95, 166, 166, 166, 95, 43, 44,
1167  95, 183, 183, 190, 190, 19, 19, 20, 20, 20,
1168  20, 20, 20, 20, 20, 20, 20, 20, 20, 193,
1169  193, 193, 94, 20, 20, 20, 94, 91, 93, 94,
1170  561, 91, 93, 96, 91, 93, 110, 96, 94, 110,
1171  96, 98, 110, 97, 91, 98, 93, 97, 98, 121,
1172 
1173  97, 121, 20, 20, 21, 121, 174, 21, 21, 91,
1174  98, 241, 21, 129, 201, 21, 352, 129, 21, 21,
1175  129, 93, 21, 99, 97, 201, 121, 99, 131, 129,
1176  99, 174, 131, 21, 22, 131, 241, 22, 22, 100,
1177  99, 352, 22, 100, 205, 22, 100, 130, 22, 22,
1178  205, 130, 22, 133, 130, 99, 544, 133, 205, 100,
1179  133, 130, 131, 22, 23, 171, 171, 128, 128, 128,
1180  543, 23, 171, 195, 195, 133, 541, 128, 540, 23,
1181  23, 23, 23, 196, 196, 234, 234, 23, 257, 23,
1182  23, 23, 23, 23, 23, 23, 23, 23, 23, 257,
1183 
1184  23, 23, 128, 254, 23, 236, 236, 254, 254, 23,
1185  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1186  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1187  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1188  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1189  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1190  25, 25, 374, 132, 25, 25, 373, 132, 538, 25,
1191  132, 373, 25, 374, 25, 25, 25, 182, 182, 25,
1192  25, 132, 25, 537, 182, 144, 144, 144, 350, 350,
1193  25, 25, 27, 27, 27, 144, 27, 27, 27, 534,
1194 
1195  134, 396, 27, 529, 134, 27, 132, 134, 358, 358,
1196  27, 527, 396, 27, 27, 27, 27, 27, 135, 27,
1197  144, 27, 135, 27, 27, 135, 520, 520, 134, 238,
1198  238, 238, 27, 37, 37, 37, 37, 37, 37, 37,
1199  37, 37, 37, 37, 37, 37, 462, 135, 140, 37,
1200  37, 37, 140, 526, 145, 140, 189, 189, 145, 145,
1201  137, 145, 420, 189, 137, 136, 525, 137, 145, 136,
1202  139, 462, 136, 420, 139, 523, 140, 139, 37, 37,
1203  38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
1204  38, 38, 38, 136, 137, 147, 38, 38, 38, 147,
1205 
1206  147, 139, 147, 101, 136, 138, 421, 101, 458, 138,
1207  101, 148, 138, 522, 463, 148, 148, 421, 148, 458,
1208  101, 101, 242, 242, 242, 38, 38, 39, 39, 39,
1209  141, 39, 39, 39, 141, 101, 146, 141, 138, 463,
1210  146, 146, 459, 146, 513, 39, 101, 511, 141, 138,
1211  149, 39, 206, 459, 149, 149, 206, 149, 39, 40,
1212  40, 40, 150, 40, 40, 40, 150, 150, 466, 150,
1213  146, 151, 206, 141, 488, 151, 151, 40, 151, 466,
1214  152, 206, 267, 40, 152, 152, 267, 152, 487, 267,
1215  40, 41, 41, 41, 468, 41, 41, 41, 152, 153,
1216 
1217  233, 233, 485, 153, 153, 154, 153, 233, 481, 154,
1218  154, 478, 154, 188, 473, 41, 41, 188, 188, 468,
1219  41, 153, 41, 152, 264, 473, 187, 188, 264, 264,
1220  187, 41, 55, 187, 55, 55, 55, 55, 486, 477,
1221  55, 476, 187, 479, 55, 55, 55, 55, 155, 486,
1222  55, 55, 155, 155, 55, 155, 278, 278, 278, 235,
1223  235, 55, 55, 57, 57, 57, 235, 57, 479, 57,
1224  57, 472, 57, 57, 57, 471, 186, 155, 57, 57,
1225  186, 156, 480, 186, 470, 156, 156, 157, 156, 521,
1226  521, 157, 157, 246, 157, 158, 246, 246, 469, 158,
1227 
1228  158, 159, 158, 467, 186, 159, 159, 480, 159, 57,
1229  58, 58, 58, 531, 58, 156, 58, 58, 246, 58,
1230  58, 58, 465, 269, 531, 58, 58, 269, 158, 160,
1231  269, 270, 159, 160, 160, 270, 160, 161, 270, 158,
1232  464, 161, 161, 162, 161, 461, 270, 162, 162, 266,
1233  162, 515, 460, 266, 266, 454, 58, 59, 59, 59,
1234  571, 59, 453, 59, 59, 161, 59, 59, 59, 516,
1235  163, 571, 59, 59, 163, 163, 515, 163, 164, 452,
1236  167, 451, 164, 164, 167, 164, 168, 167, 271, 592,
1237  168, 168, 271, 168, 516, 271, 164, 265, 450, 167,
1238 
1239  592, 265, 265, 59, 60, 60, 60, 167, 60, 528,
1240  60, 60, 265, 60, 60, 60, 207, 207, 449, 60,
1241  60, 164, 244, 244, 567, 245, 244, 244, 244, 207,
1242  245, 272, 245, 437, 528, 272, 419, 245, 272, 245,
1243  273, 207, 417, 245, 273, 416, 245, 273, 272, 567,
1244  60, 61, 61, 61, 589, 61, 413, 61, 61, 273,
1245  61, 61, 61, 272, 349, 349, 61, 61, 274, 275,
1246  276, 349, 274, 275, 276, 274, 275, 276, 277, 589,
1247  277, 277, 277, 280, 280, 591, 274, 280, 280, 280,
1248  277, 346, 346, 346, 357, 357, 276, 61, 62, 62,
1249 
1250  62, 357, 62, 412, 62, 62, 411, 62, 62, 62,
1251  591, 274, 281, 62, 62, 277, 303, 281, 304, 281,
1252  303, 410, 304, 303, 281, 304, 281, 305, 409, 408,
1253  281, 305, 303, 281, 305, 304, 307, 362, 401, 400,
1254  307, 362, 362, 307, 62, 63, 63, 63, 399, 63,
1255  398, 63, 63, 393, 63, 63, 63, 392, 305, 391,
1256  63, 63, 306, 311, 390, 389, 306, 311, 307, 306,
1257  311, 308, 386, 386, 386, 308, 388, 309, 308, 310,
1258  306, 309, 384, 310, 309, 456, 310, 308, 308, 456,
1259  456, 63, 64, 64, 64, 383, 64, 308, 64, 64,
1260 
1261  308, 64, 64, 64, 310, 306, 381, 64, 64, 312,
1262  309, 310, 380, 312, 379, 378, 312, 376, 313, 456,
1263  314, 309, 313, 312, 314, 313, 316, 314, 315, 375,
1264  316, 372, 315, 316, 314, 315, 371, 369, 64, 65,
1265  65, 65, 368, 65, 366, 65, 65, 364, 65, 65,
1266  65, 313, 356, 315, 65, 65, 355, 316, 314, 319,
1267  354, 313, 353, 319, 319, 320, 319, 351, 318, 320,
1268  320, 321, 320, 347, 317, 321, 321, 347, 321, 562,
1269  347, 302, 320, 562, 562, 65, 66, 66, 66, 299,
1270  66, 297, 66, 66, 296, 66, 66, 66, 294, 322,
1271 
1272  293, 66, 66, 322, 322, 323, 322, 291, 290, 323,
1273  323, 324, 323, 288, 287, 324, 324, 325, 324, 361,
1274  286, 325, 325, 361, 325, 283, 361, 406, 406, 406,
1275  322, 263, 66, 67, 67, 67, 262, 67, 261, 67,
1276  67, 259, 67, 67, 67, 258, 326, 256, 67, 67,
1277  326, 326, 327, 326, 255, 253, 327, 327, 328, 327,
1278  252, 251, 328, 328, 250, 328, 248, 329, 247, 360,
1279  208, 329, 329, 360, 329, 204, 360, 203, 202, 67,
1280  68, 68, 68, 200, 68, 329, 68, 68, 198, 68,
1281  68, 68, 197, 330, 360, 68, 68, 330, 330, 331,
1282 
1283  330, 403, 192, 331, 331, 403, 331, 332, 403, 179,
1284  329, 332, 332, 334, 332, 424, 178, 334, 334, 424,
1285  334, 177, 424, 176, 175, 330, 68, 78, 457, 457,
1286  457, 78, 78, 78, 142, 78, 78, 78, 474, 474,
1287  474, 78, 78, 78, 78, 78, 78, 78, 78, 78,
1288  78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
1289  78, 78, 78, 78, 78, 78, 78, 127, 120, 78,
1290  78, 78, 90, 115, 335, 114, 90, 90, 335, 335,
1291  336, 335, 113, 107, 336, 336, 338, 336, 335, 90,
1292  338, 338, 89, 338, 90, 333, 88, 86, 90, 333,
1293 
1294  333, 90, 333, 90, 103, 85, 103, 103, 103, 363,
1295  84, 82, 103, 363, 363, 45, 103, 103, 103, 103,
1296  30, 29, 103, 0, 103, 103, 103, 103, 333, 0,
1297  103, 103, 103, 103, 363, 475, 475, 475, 0, 333,
1298  0, 103, 103, 209, 209, 209, 0, 209, 0, 209,
1299  209, 0, 209, 209, 209, 519, 519, 519, 209, 209,
1300  337, 0, 0, 0, 337, 337, 339, 337, 0, 0,
1301  339, 339, 340, 339, 0, 0, 340, 340, 342, 340,
1302  339, 0, 342, 342, 0, 342, 502, 502, 502, 209,
1303  211, 211, 211, 337, 211, 0, 211, 211, 0, 211,
1304 
1305  211, 211, 0, 337, 339, 211, 211, 341, 0, 0,
1306  0, 341, 341, 343, 341, 0, 0, 343, 343, 344,
1307  343, 404, 502, 344, 344, 404, 344, 0, 404, 385,
1308  385, 0, 341, 385, 385, 385, 211, 213, 213, 213,
1309  0, 213, 0, 213, 213, 0, 213, 213, 213, 404,
1310  345, 0, 213, 213, 345, 345, 348, 345, 402, 0,
1311  348, 348, 402, 348, 387, 402, 387, 387, 387, 407,
1312  407, 407, 0, 405, 0, 0, 387, 405, 0, 407,
1313  405, 345, 0, 213, 215, 215, 215, 0, 215, 0,
1314  215, 215, 402, 215, 215, 215, 0, 0, 0, 215,
1315 
1316  215, 387, 405, 0, 407, 0, 422, 425, 423, 0,
1317  422, 425, 423, 422, 425, 423, 426, 427, 0, 0,
1318  426, 427, 431, 426, 427, 0, 431, 0, 0, 431,
1319  215, 217, 217, 217, 423, 217, 425, 217, 217, 422,
1320  217, 217, 217, 0, 0, 427, 217, 217, 428, 426,
1321  422, 0, 428, 0, 431, 428, 0, 432, 429, 0,
1322  426, 432, 429, 0, 432, 429, 428, 430, 434, 436,
1323  0, 430, 434, 436, 430, 434, 436, 217, 219, 219,
1324  219, 430, 219, 0, 219, 219, 429, 219, 219, 219,
1325  432, 428, 433, 219, 219, 0, 433, 434, 430, 433,
1326 
1327  0, 432, 436, 435, 0, 0, 0, 435, 0, 433,
1328  435, 438, 0, 436, 0, 438, 438, 0, 438, 0,
1329  0, 0, 0, 0, 219, 221, 221, 221, 0, 221,
1330  435, 221, 221, 0, 221, 221, 221, 438, 439, 0,
1331  221, 221, 439, 439, 0, 439, 440, 0, 0, 0,
1332  440, 440, 441, 440, 0, 0, 441, 441, 442, 441,
1333  482, 0, 442, 442, 482, 442, 0, 482, 0, 0,
1334  0, 221, 223, 223, 223, 440, 223, 0, 223, 223,
1335  482, 223, 223, 223, 0, 441, 0, 223, 223, 0,
1336  442, 0, 0, 443, 0, 0, 441, 443, 443, 0,
1337 
1338  443, 0, 444, 0, 0, 0, 444, 444, 446, 444,
1339  443, 0, 446, 446, 0, 446, 0, 0, 223, 225,
1340  225, 225, 0, 225, 0, 225, 225, 0, 225, 225,
1341  225, 444, 445, 0, 225, 225, 445, 445, 447, 445,
1342  0, 446, 447, 447, 448, 447, 455, 0, 448, 448,
1343  455, 448, 446, 455, 483, 0, 484, 0, 483, 445,
1344  484, 483, 0, 484, 0, 225, 227, 227, 227, 0,
1345  227, 0, 227, 227, 0, 227, 227, 227, 0, 489,
1346  483, 227, 227, 489, 455, 0, 489, 0, 490, 493,
1347  491, 0, 490, 493, 491, 490, 493, 491, 492, 497,
1348 
1349  0, 0, 492, 497, 494, 492, 497, 0, 494, 0,
1350  0, 494, 227, 229, 229, 229, 490, 229, 491, 229,
1351  229, 494, 229, 229, 229, 492, 495, 496, 229, 229,
1352  495, 496, 498, 495, 496, 0, 498, 0, 499, 498,
1353  500, 0, 499, 0, 500, 499, 495, 500, 0, 496,
1354  0, 501, 0, 0, 498, 501, 0, 0, 501, 229,
1355  231, 231, 231, 499, 231, 0, 231, 231, 0, 231,
1356  231, 231, 500, 503, 0, 231, 231, 503, 503, 501,
1357  503, 504, 0, 0, 0, 504, 504, 505, 504, 0,
1358  0, 505, 505, 506, 505, 517, 0, 506, 506, 517,
1359 
1360  506, 503, 517, 0, 0, 0, 231, 239, 0, 504,
1361  0, 239, 239, 239, 0, 239, 239, 239, 0, 0,
1362  0, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1363  239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1364  239, 239, 239, 239, 239, 239, 239, 0, 0, 239,
1365  239, 239, 240, 240, 240, 0, 0, 0, 240, 0,
1366  0, 0, 240, 240, 240, 240, 0, 0, 240, 0,
1367  240, 240, 240, 240, 0, 0, 240, 240, 240, 240,
1368  518, 0, 0, 0, 518, 518, 0, 240, 240, 282,
1369  0, 0, 0, 282, 282, 507, 282, 282, 518, 507,
1370 
1371  507, 282, 507, 282, 508, 0, 0, 282, 508, 508,
1372  282, 508, 0, 0, 0, 509, 0, 507, 282, 509,
1373  509, 510, 509, 518, 0, 510, 510, 542, 510, 508,
1374  0, 542, 545, 546, 542, 0, 545, 546, 547, 545,
1375  546, 0, 547, 0, 551, 547, 0, 509, 551, 510,
1376  548, 551, 549, 0, 548, 542, 549, 548, 0, 549,
1377  0, 0, 546, 550, 545, 552, 551, 550, 548, 552,
1378  550, 547, 552, 554, 0, 0, 0, 554, 554, 549,
1379  554, 552, 547, 0, 555, 0, 0, 0, 555, 555,
1380  550, 555, 556, 548, 575, 0, 556, 556, 575, 556,
1381 
1382  0, 575, 557, 0, 0, 554, 557, 557, 0, 557,
1383  558, 575, 0, 555, 558, 558, 559, 558, 577, 556,
1384  559, 559, 577, 559, 557, 577, 578, 579, 577, 0,
1385  578, 579, 559, 578, 579, 580, 581, 582, 0, 580,
1386  581, 582, 580, 581, 582, 583, 584, 0, 578, 583,
1387  584, 584, 583, 584, 0, 585, 584, 596, 579, 585,
1388  585, 596, 585, 582, 596, 0, 0, 586, 580, 581,
1389  0, 586, 586, 583, 586, 0, 0, 585, 587, 580,
1390  581, 0, 587, 587, 588, 587, 597, 0, 588, 588,
1391  597, 588, 598, 597, 599, 0, 598, 0, 599, 598,
1392 
1393  586, 599, 601, 600, 587, 0, 601, 600, 0, 601,
1394  600, 586, 588, 597, 0, 602, 0, 0, 0, 602,
1395  598, 600, 602, 603, 601, 0, 0, 603, 603, 604,
1396  603, 0, 0, 604, 604, 605, 604, 0, 0, 605,
1397  605, 602, 605, 606, 0, 613, 600, 606, 606, 613,
1398  606, 0, 613, 605, 607, 0, 604, 0, 607, 607,
1399  0, 607, 614, 615, 613, 606, 614, 615, 616, 614,
1400  615, 0, 616, 0, 0, 616, 0, 617, 605, 0,
1401  607, 617, 0, 0, 617, 618, 0, 614, 0, 618,
1402  618, 619, 618, 622, 615, 619, 619, 622, 619, 0,
1403 
1404  622, 616, 0, 620, 618, 0, 617, 620, 620, 621,
1405  620, 623, 616, 621, 621, 623, 621, 0, 623, 624,
1406  625, 622, 619, 624, 625, 625, 624, 625, 0, 0,
1407  626, 0, 0, 624, 626, 626, 620, 626, 621, 627,
1408  623, 0, 0, 627, 627, 0, 627, 620, 625, 628,
1409  0, 629, 0, 628, 628, 629, 628, 630, 629, 626,
1410  0, 630, 630, 628, 630, 631, 0, 629, 0, 631,
1411  631, 632, 631, 633, 0, 632, 632, 633, 632, 634,
1412  633, 0, 0, 634, 634, 635, 634, 632, 0, 635,
1413  635, 0, 635, 0, 0, 0, 0, 0, 0, 0,
1414 
1415  0, 0, 0, 0, 0, 0, 633, 0, 0, 0,
1416  0, 0, 634, 0, 0, 0, 0, 633, 0, 0,
1417  0, 0, 0, 634, 637, 637, 637, 637, 637, 637,
1418  637, 637, 637, 637, 637, 637, 638, 638, 638, 638,
1419  638, 638, 638, 638, 638, 638, 638, 638, 639, 639,
1420  639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
1421  640, 640, 640, 640, 640, 640, 640, 640, 640, 640,
1422  640, 640, 641, 641, 641, 641, 641, 641, 641, 641,
1423  641, 641, 641, 641, 642, 642, 642, 642, 642, 642,
1424  642, 642, 642, 642, 642, 642, 643, 643, 643, 643,
1425 
1426  643, 643, 643, 643, 643, 643, 643, 643, 644, 644,
1427  644, 644, 644, 644, 644, 644, 644, 644, 644, 644,
1428  645, 645, 0, 645, 645, 645, 645, 645, 646, 646,
1429  0, 646, 646, 646, 646, 646, 0, 0, 646, 647,
1430  647, 0, 647, 647, 647, 647, 647, 0, 0, 647,
1431  648, 648, 0, 648, 648, 648, 648, 648, 0, 0,
1432  648, 649, 649, 0, 649, 649, 649, 649, 649, 0,
1433  0, 649, 650, 650, 0, 650, 650, 650, 650, 650,
1434  0, 0, 650, 651, 651, 0, 651, 651, 651, 651,
1435  651, 0, 0, 651, 652, 652, 0, 652, 652, 652,
1436 
1437  652, 652, 0, 0, 652, 653, 653, 0, 653, 653,
1438  653, 653, 653, 0, 0, 653, 654, 654, 0, 654,
1439  654, 654, 654, 654, 0, 0, 654, 655, 655, 0,
1440  655, 655, 655, 655, 655, 0, 0, 655, 656, 656,
1441  0, 656, 656, 656, 656, 656, 0, 0, 656, 657,
1442  657, 0, 657, 657, 657, 657, 657, 0, 0, 657,
1443  658, 658, 658, 0, 0, 658, 658, 0, 0, 658,
1444  660, 660, 660, 0, 0, 660, 660, 0, 0, 660,
1445  661, 661, 661, 0, 0, 661, 661, 0, 0, 661,
1446  662, 662, 662, 0, 662, 662, 662, 0, 0, 662,
1447 
1448  663, 663, 0, 0, 663, 664, 0, 664, 664, 664,
1449  0, 0, 664, 665, 0, 665, 665, 665, 0, 0,
1450  665, 666, 666, 666, 666, 0, 0, 666, 667, 667,
1451  667, 0, 667, 667, 667, 0, 0, 667, 668, 668,
1452  668, 0, 668, 668, 668, 0, 0, 668, 669, 669,
1453  669, 0, 669, 669, 669, 0, 0, 669, 670, 670,
1454  670, 0, 670, 670, 670, 0, 0, 670, 671, 671,
1455  671, 0, 671, 671, 671, 0, 0, 671, 672, 672,
1456  672, 0, 672, 672, 672, 0, 0, 672, 673, 673,
1457  673, 0, 673, 673, 673, 0, 0, 673, 674, 674,
1458 
1459  674, 0, 674, 674, 674, 0, 0, 674, 675, 675,
1460  675, 0, 675, 675, 675, 0, 0, 675, 676, 676,
1461  676, 0, 676, 676, 676, 0, 0, 676, 677, 677,
1462  677, 0, 677, 677, 677, 0, 0, 677, 678, 678,
1463  678, 0, 678, 678, 678, 0, 0, 678, 679, 679,
1464  679, 0, 679, 679, 679, 0, 0, 679, 680, 680,
1465  680, 0, 680, 680, 680, 0, 0, 680, 681, 681,
1466  681, 0, 681, 681, 681, 0, 0, 681, 682, 682,
1467  682, 0, 682, 682, 682, 0, 0, 682, 683, 683,
1468  683, 0, 683, 683, 683, 0, 0, 683, 684, 684,
1469 
1470  684, 0, 684, 684, 684, 0, 0, 684, 685, 0,
1471  685, 685, 685, 0, 0, 685, 686, 686, 686, 0,
1472  0, 686, 686, 0, 0, 686, 687, 687, 0, 687,
1473  687, 687, 687, 687, 688, 688, 0, 688, 688, 688,
1474  688, 688, 0, 0, 688, 689, 689, 0, 0, 689,
1475  690, 690, 0, 690, 690, 690, 690, 690, 0, 0,
1476  690, 691, 691, 0, 0, 691, 692, 692, 0, 692,
1477  692, 692, 692, 692, 0, 0, 692, 693, 693, 0,
1478  0, 693, 694, 694, 0, 694, 694, 694, 694, 694,
1479  0, 0, 694, 695, 695, 0, 0, 695, 696, 696,
1480 
1481  0, 696, 696, 696, 696, 696, 0, 0, 696, 697,
1482  697, 0, 0, 697, 698, 698, 0, 698, 698, 698,
1483  698, 698, 0, 0, 698, 699, 699, 0, 0, 699,
1484  700, 700, 0, 700, 700, 700, 700, 700, 0, 0,
1485  700, 701, 701, 0, 0, 701, 702, 702, 0, 702,
1486  702, 702, 702, 702, 0, 0, 702, 703, 703, 0,
1487  0, 703, 704, 704, 0, 704, 704, 704, 704, 704,
1488  0, 0, 704, 705, 705, 0, 0, 705, 706, 706,
1489  0, 706, 706, 706, 706, 706, 0, 0, 706, 707,
1490  707, 0, 0, 707, 708, 708, 0, 708, 708, 708,
1491 
1492  708, 708, 0, 0, 708, 709, 709, 0, 0, 709,
1493  710, 710, 0, 710, 710, 710, 710, 710, 0, 0,
1494  710, 711, 711, 0, 0, 711, 712, 712, 712, 0,
1495  712, 713, 713, 713, 0, 0, 713, 713, 0, 0,
1496  713, 714, 714, 714, 0, 0, 714, 714, 0, 0,
1497  714, 715, 0, 715, 715, 715, 0, 0, 715, 716,
1498  716, 0, 0, 716, 717, 0, 717, 717, 717, 0,
1499  0, 717, 718, 718, 718, 718, 0, 0, 718, 719,
1500  719, 719, 0, 719, 719, 719, 0, 0, 719, 720,
1501  720, 720, 0, 720, 720, 720, 0, 0, 720, 721,
1502 
1503  721, 721, 0, 721, 721, 721, 0, 0, 721, 722,
1504  722, 722, 0, 722, 722, 722, 0, 0, 722, 723,
1505  723, 723, 0, 723, 723, 723, 0, 0, 723, 724,
1506  724, 724, 0, 724, 724, 724, 0, 0, 724, 725,
1507  725, 725, 0, 725, 725, 725, 0, 0, 725, 726,
1508  726, 726, 0, 726, 726, 726, 0, 0, 726, 727,
1509  727, 727, 0, 727, 727, 727, 0, 0, 727, 728,
1510  728, 728, 0, 728, 728, 728, 0, 0, 728, 729,
1511  729, 729, 0, 729, 729, 729, 0, 0, 729, 730,
1512  730, 730, 0, 730, 730, 730, 0, 0, 730, 731,
1513 
1514  731, 731, 0, 731, 731, 731, 0, 0, 731, 732,
1515  732, 732, 0, 732, 732, 732, 0, 0, 732, 733,
1516  733, 733, 0, 733, 733, 733, 0, 0, 733, 734,
1517  734, 734, 0, 734, 734, 734, 0, 0, 734, 735,
1518  735, 735, 0, 735, 735, 735, 0, 0, 735, 736,
1519  736, 736, 0, 736, 736, 736, 0, 0, 736, 737,
1520  0, 737, 737, 737, 0, 0, 737, 738, 738, 738,
1521  0, 0, 738, 738, 0, 0, 738, 740, 740, 0,
1522  740, 740, 636, 636, 636, 636, 636, 636, 636, 636,
1523  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1524 
1525  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1526  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1527  636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
1528  636, 636, 636
1529  } ;
1530 
1531 /* Table of booleans, true if rule could match eol. */
1532 static yyconst flex_int32_t yy_rule_can_match_eol[93] =
1533  { 0,
1534 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538  0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, };
1539 
1540 static yy_state_type yy_last_accepting_state;
1541 static char *yy_last_accepting_cpos;
1542 
1543 extern int spice__flex_debug;
1544 int spice__flex_debug = 0;
1545 
1546 /* The intent behind this definition is that it'll catch
1547  * any uses of REJECT which flex missed.
1548  */
1549 #define REJECT reject_used_but_not_detected
1550 #define yymore() yymore_used_but_not_detected
1551 #define YY_MORE_ADJ 0
1552 #define YY_RESTORE_YY_MORE_OFFSET
1554 #line 1 "scan_spice.l"
1555 /* -*-c-*- */
1556 #line 4 "scan_spice.l"
1557 /*
1558  * scan_spice.l - scanner for a Spice netlist
1559  *
1560  * Copyright (C) 2004-2009 Stefan Jahn <stefan@lkcc.org>
1561  *
1562  * This is free software; you can redistribute it and/or modify
1563  * it under the terms of the GNU General Public License as published by
1564  * the Free Software Foundation; either version 2, or (at your option)
1565  * any later version.
1566  *
1567  * This software is distributed in the hope that it will be useful,
1568  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1569  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1570  * GNU General Public License for more details.
1571  *
1572  * You should have received a copy of the GNU General Public License
1573  * along with this package; see the file COPYING. If not, write to
1574  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
1575  * Boston, MA 02110-1301, USA.
1576  *
1577  * $Id: scan_spice.l 1825 2011-03-11 20:42:14Z ela $
1578  *
1579  */
1580 
1581 #if HAVE_CONFIG_H
1582 # include <config.h>
1583 #endif
1584 
1585 #include <stdio.h>
1586 #include <stdlib.h>
1587 #include <string.h>
1588 #include <ctype.h>
1589 
1590 #ifdef __MINGW32__
1591 #include <io.h>
1592 #endif
1593 
1594 #ifdef HAVE_UNISTD_H
1595 #include <unistd.h>
1596 #endif
1597 
1598 #include "check_spice.h"
1599 #include "tokens_spice.h"
1600 
1601 #if !HAVE_STRCHR
1602 # define strchr index
1603 # define strrchr rindex
1604 #endif
1605 
1606 /* fixing invalid identifiers */
1607 static void spice_fix_identifier (char * ident) {
1608  char * p;
1609  for (p = ident; *p != '\0'; p++)
1610  switch (*p) {
1611  case '+': *p = 'P'; break;
1612  case '-': *p = 'N'; break;
1613  case '/': *p = '_'; break;
1614  }
1615 }
1616 
1617 /* Source functions */
1618 /* Device Models */
1619 /* Voltage derivatives */
1620 /* Options specials */
1621 /* Model specific properties */
1622 /* Plot/Print specific identifiers */
1623 /* MOS specific device properties */
1624 /* analog behavioural */
1625 
1626 
1627 
1628 #line 1629 "scan_spice.cpp"
1629 
1630 #define INITIAL 0
1631 #define COMMENT 1
1632 #define IVREF 2
1633 #define DEVPROP 3
1634 #define LREF 4
1635 #define MODREF1 5
1636 #define MODREF2 6
1637 #define IGNORE 7
1638 #define FUNREF 8
1639 #define FILEREF 9
1640 #define VREF 10
1641 #define STARTUP 11
1642 #define VSINGLE 12
1643 #define ISWITCH 13
1644 #define VSWITCH 14
1645 #define CONTROL 15
1646 #define GEVALS 16
1647 #define INLINE 17
1648 #define SUBCKT 18
1649 #define TLPROP 19
1650 #define RLCPROP 20
1651 #define FHVALS 21
1652 
1653 #ifndef YY_EXTRA_TYPE
1654 #define YY_EXTRA_TYPE void *
1655 #endif
1656 
1657 static int yy_init_globals (void );
1658 
1659 /* Accessor methods to globals.
1660  These are made visible to non-reentrant scanners for convenience. */
1661 
1662 int spice_lex_destroy (void );
1663 
1664 int spice_get_debug (void );
1665 
1666 void spice_set_debug (int debug_flag );
1667 
1669 
1670 void spice_set_extra (YY_EXTRA_TYPE user_defined );
1671 
1672 FILE *spice_get_in (void );
1673 
1674 void spice_set_in (FILE * in_str );
1675 
1676 FILE *spice_get_out (void );
1677 
1678 void spice_set_out (FILE * out_str );
1679 
1680 int spice_get_leng (void );
1681 
1682 char *spice_get_text (void );
1683 
1684 int spice_get_lineno (void );
1685 
1686 void spice_set_lineno (int line_number );
1687 
1688 /* Macros after this point can all be overridden by user definitions in
1689  * section 1.
1690  */
1691 
1692 #ifndef YY_SKIP_YYWRAP
1693 #ifdef __cplusplus
1694 extern "C" int spice_wrap (void );
1695 #else
1696 extern int spice_wrap (void );
1697 #endif
1698 #endif
1699 
1700 #ifndef yytext_ptr
1701 static void yy_flex_strncpy (char *,yyconst char *,int );
1702 #endif
1703 
1704 #ifdef YY_NEED_STRLEN
1705 static int yy_flex_strlen (yyconst char * );
1706 #endif
1707 
1708 #ifndef YY_NO_INPUT
1709 
1710 #ifdef __cplusplus
1711 static int yyinput (void );
1712 #else
1713 static int input (void );
1714 #endif
1715 
1716 #endif
1717 
1718 /* Amount of stuff to slurp up with each read. */
1719 #ifndef YY_READ_BUF_SIZE
1720 #ifdef __ia64__
1721 /* On IA-64, the buffer size is 16k, not 8k */
1722 #define YY_READ_BUF_SIZE 16384
1723 #else
1724 #define YY_READ_BUF_SIZE 8192
1725 #endif /* __ia64__ */
1726 #endif
1727 
1728 /* Copy whatever the last rule matched to the standard output. */
1729 #ifndef ECHO
1730 /* This used to be an fputs(), but since the string might contain NUL's,
1731  * we now use fwrite().
1732  */
1733 #define ECHO do { if (fwrite( spice_text, spice_leng, 1, spice_out )) {} } while (0)
1734 #endif
1735 
1736 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1737  * is returned in "result".
1738  */
1739 #ifndef YY_INPUT
1740 #define YY_INPUT(buf,result,max_size) \
1741  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1742  { \
1743  int c = '*'; \
1744  size_t n; \
1745  for ( n = 0; n < max_size && \
1746  (c = getc( spice_in )) != EOF && c != '\n'; ++n ) \
1747  buf[n] = (char) c; \
1748  if ( c == '\n' ) \
1749  buf[n++] = (char) c; \
1750  if ( c == EOF && ferror( spice_in ) ) \
1751  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1752  result = n; \
1753  } \
1754  else \
1755  { \
1756  errno=0; \
1757  while ( (result = fread(buf, 1, max_size, spice_in))==0 && ferror(spice_in)) \
1758  { \
1759  if( errno != EINTR) \
1760  { \
1761  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1762  break; \
1763  } \
1764  errno=0; \
1765  clearerr(spice_in); \
1766  } \
1767  }\
1768 \
1769 
1770 #endif
1771 
1772 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1773  * we don't want an extra ';' after the "return" because that will cause
1774  * some compilers to complain about unreachable statements.
1775  */
1776 #ifndef yyterminate
1777 #define yyterminate() return YY_NULL
1778 #endif
1779 
1780 /* Number of entries by which start-condition stack grows. */
1781 #ifndef YY_START_STACK_INCR
1782 #define YY_START_STACK_INCR 25
1783 #endif
1784 
1785 /* Report a fatal error. */
1786 #ifndef YY_FATAL_ERROR
1787 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1788 #endif
1789 
1790 /* end tables serialization structures and prototypes */
1791 
1792 /* Default declaration of generated scanner - a define so the user can
1793  * easily add parameters.
1794  */
1795 #ifndef YY_DECL
1796 #define YY_DECL_IS_OURS 1
1797 
1798 extern int spice_lex (void);
1799 
1800 #define YY_DECL int spice_lex (void)
1801 #endif /* !YY_DECL */
1802 
1803 /* Code executed at the beginning of each rule, after spice_text and spice_leng
1804  * have been set up.
1805  */
1806 #ifndef YY_USER_ACTION
1807 #define YY_USER_ACTION
1808 #endif
1809 
1810 /* Code executed at the end of each rule. */
1811 #ifndef YY_BREAK
1812 #define YY_BREAK break;
1813 #endif
1814 
1815 #define YY_RULE_SETUP \
1816  if ( spice_leng > 0 ) \
1817  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1818  (spice_text[spice_leng - 1] == '\n'); \
1819  YY_USER_ACTION
1820 
1823 YY_DECL
1825  register yy_state_type yy_current_state;
1826  register char *yy_cp, *yy_bp;
1827  register int yy_act;
1828 
1829 #line 139 "scan_spice.l"
1830 
1831 
1832 #line 1833 "scan_spice.cpp"
1833 
1834  if ( !(yy_init) )
1835  {
1836  (yy_init) = 1;
1837 
1838 #ifdef YY_USER_INIT
1839  YY_USER_INIT;
1840 #endif
1841 
1842  if ( ! (yy_start) )
1843  (yy_start) = 1; /* first start state */
1844 
1845  if ( ! spice_in )
1846  spice_in = stdin;
1847 
1848  if ( ! spice_out )
1849  spice_out = stdout;
1850 
1851  if ( ! YY_CURRENT_BUFFER ) {
1852  spice_ensure_buffer_stack ();
1855  }
1856 
1857  spice__load_buffer_state( );
1858  }
1859 
1860  while ( 1 ) /* loops until end-of-file is reached */
1861  {
1862  yy_cp = (yy_c_buf_p);
1863 
1864  /* Support of spice_text. */
1865  *yy_cp = (yy_hold_char);
1866 
1867  /* yy_bp points to the position in yy_ch_buf of the start of
1868  * the current run.
1869  */
1870  yy_bp = yy_cp;
1871 
1872  yy_current_state = (yy_start);
1873  yy_current_state += YY_AT_BOL();
1874 yy_match:
1875  do
1876  {
1877  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1878  if ( yy_accept[yy_current_state] )
1879  {
1880  (yy_last_accepting_state) = yy_current_state;
1881  (yy_last_accepting_cpos) = yy_cp;
1882  }
1883  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1884  {
1885  yy_current_state = (int) yy_def[yy_current_state];
1886  if ( yy_current_state >= 637 )
1887  yy_c = yy_meta[(unsigned int) yy_c];
1888  }
1889  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1890  ++yy_cp;
1891  }
1892  while ( yy_base[yy_current_state] != 3683 );
1893 
1894 yy_find_action:
1895  yy_act = yy_accept[yy_current_state];
1896  if ( yy_act == 0 )
1897  { /* have to back up */
1898  yy_cp = (yy_last_accepting_cpos);
1899  yy_current_state = (yy_last_accepting_state);
1900  yy_act = yy_accept[yy_current_state];
1901  }
1902 
1904 
1905  if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1906  {
1907  int yyl;
1908  for ( yyl = 0; yyl < spice_leng; ++yyl )
1909  if ( spice_text[yyl] == '\n' )
1910 
1911  spice_lineno++;
1912 ;
1913  }
1914 
1915 do_action: /* This label is used only to access EOF actions. */
1916 
1917  switch ( yy_act )
1918  { /* beginning of action switch */
1919  case 0: /* must back up */
1920  /* undo the effects of YY_DO_BEFORE_ACTION */
1921  *yy_cp = (yy_hold_char);
1922  yy_cp = (yy_last_accepting_cpos);
1923  yy_current_state = (yy_last_accepting_state);
1924  goto yy_find_action;
1925 
1926 case 1:
1927 /* rule 1 can match eol */
1929 #line 141 "scan_spice.l"
1930 { /* detect initial title lines */
1931  spice_lval.str = strdup (spice_text);
1932  BEGIN(STARTUP);
1933  return TitleLine;
1934 }
1935  YY_BREAK
1936 case 2:
1938 #line 147 "scan_spice.l"
1939 { /* Spice3 ignores any lines starting spaces */
1940  BEGIN(COMMENT);
1941  }
1942  YY_BREAK
1943 case 3:
1945 #line 151 "scan_spice.l"
1946 { /* ignored region begins here */
1947  BEGIN(COMMENT);
1948  }
1949  YY_BREAK
1950 case 4:
1952 #line 157 "scan_spice.l"
1953 {
1954  /* ignored inline region begins here (3f5, 2g6 and hspice) */
1955  BEGIN(INLINE);
1956  }
1957  YY_BREAK
1958 case 5:
1960 #line 162 "scan_spice.l"
1961 {
1962  /* control (interactive) region start */
1963  BEGIN(CONTROL);
1964 }
1965  YY_BREAK
1966 case 6:
1968 #line 167 "scan_spice.l"
1969 { /* skip any character in here */ }
1970  YY_BREAK
1971 case 7:
1972 /* rule 7 can match eol */
1974 #line 168 "scan_spice.l"
1975 { /* skip any character in here */ }
1976  YY_BREAK
1977 case 8:
1979 #line 170 "scan_spice.l"
1980 {
1981  BEGIN(STARTUP);
1982 }
1983  YY_BREAK
1984 case 9:
1986 #line 174 "scan_spice.l"
1987 {
1988  /* skip EOF character */
1989 }
1990  YY_BREAK
1991 case 10:
1993 #line 178 "scan_spice.l"
1994 {
1995  /* subcircuit definition start */
1996  spice_lval.ident = strdup (&spice_text[1]);
1997  BEGIN(SUBCKT);
1998  return SUBCKT_Action;
1999 }
2000  YY_BREAK
2001 case 11:
2003 #line 185 "scan_spice.l"
2004 { /* subcircuit definition end */
2005  BEGIN(SUBCKT);
2006  return ENDS_Action;
2007 }
2008  YY_BREAK
2009 case 12:
2011 #line 190 "scan_spice.l"
2012 { /* R, L and C instances */
2013  spice_lval.ident = strdup (spice_text);
2014  BEGIN(RLCPROP);
2015  return RLC_Device;
2016 }
2017  YY_BREAK
2018 case 13:
2020 #line 196 "scan_spice.l"
2021 { /* Mutual inductor instances */
2022  spice_lval.ident = strdup (spice_text);
2023  BEGIN(LREF);
2024  return K_Device;
2025 }
2026  YY_BREAK
2027 case 14:
2029 #line 202 "scan_spice.l"
2030 {
2031  /* voltage and current source instances */
2032  spice_lval.ident = strdup (spice_text);
2033  BEGIN(FUNREF);
2034  return IV_Source;
2035 }
2036  YY_BREAK
2037 case 15:
2039 #line 209 "scan_spice.l"
2040 {
2041  /* voltage controlled source instances */
2042  spice_lval.ident = strdup (spice_text);
2043  BEGIN(GEVALS);
2044  return GE_Source;
2045 }
2046  YY_BREAK
2047 case 16:
2049 #line 216 "scan_spice.l"
2050 {
2051  /* current controlled source instances */
2052  spice_lval.ident = strdup (spice_text);
2053  BEGIN(FHVALS);
2054  return FH_Source;
2055 }
2056  YY_BREAK
2057 case 17:
2059 #line 223 "scan_spice.l"
2060 {
2061  /* non-linear dependent source instances */
2062  spice_lval.ident = strdup (spice_text);
2063  BEGIN(IGNORE);
2064  return B_Source;
2065 }
2066  YY_BREAK
2067 case 18:
2069 #line 230 "scan_spice.l"
2070 { /* subcircuit instances */
2071  spice_lval.ident = strdup (spice_text);
2072  BEGIN(STARTUP);
2073  return X_Device;
2074 }
2075  YY_BREAK
2076 case 19:
2078 #line 236 "scan_spice.l"
2079 { /* lossy transline */
2080  spice_lval.ident = strdup (spice_text);
2081  BEGIN(STARTUP);
2082  return O_Device;
2083 }
2084  YY_BREAK
2085 case 20:
2087 #line 242 "scan_spice.l"
2088 { /* lossless transline */
2089  spice_lval.ident = strdup (spice_text);
2090  BEGIN(TLPROP);
2091  return T_Device;
2092 }
2093  YY_BREAK
2094 case 21:
2096 #line 248 "scan_spice.l"
2097 { /* distributed lossy transline */
2098  spice_lval.ident = strdup (spice_text);
2099  BEGIN(STARTUP);
2100  return U_Device;
2101 }
2102  YY_BREAK
2103 case 22:
2105 #line 254 "scan_spice.l"
2106 { /* voltage controlled switch */
2107  spice_lval.ident = strdup (spice_text);
2108  BEGIN(VSWITCH);
2109  return S_Device;
2110 }
2111  YY_BREAK
2112 case 23:
2114 #line 260 "scan_spice.l"
2115 { /* current controlled switch */
2116  spice_lval.ident = strdup (spice_text);
2117  BEGIN(ISWITCH);
2118  return W_Device;
2119 }
2120  YY_BREAK
2121 case 24:
2123 #line 266 "scan_spice.l"
2124 { /* device Model definitions */
2125  spice_lval.ident = strdup (&spice_text[1]);
2126  BEGIN(MODREF1);
2127  return MODEL_Action;
2128 }
2129  YY_BREAK
2130 case 25:
2132 #line 272 "scan_spice.l"
2133 { /* transient analysis */
2134  spice_lval.ident = strdup (&spice_text[1]);
2135  BEGIN(STARTUP);
2136  return TRAN_Action;
2137 }
2138  YY_BREAK
2139 case 26:
2141 #line 278 "scan_spice.l"
2142 { /* plotting action */
2143  spice_lval.ident = strdup (&spice_text[1]);
2144  BEGIN(IVREF);
2145  return PLOT_Action;
2146 }
2147  YY_BREAK
2148 case 27:
2150 #line 284 "scan_spice.l"
2151 { /* AC analysis */
2152  spice_lval.ident = strdup (&spice_text[1]);
2153  BEGIN(FUNREF);
2154  return AC_Action;
2155 }
2156  YY_BREAK
2157 case 28:
2159 #line 290 "scan_spice.l"
2160 { /* distortion analysis */
2161  spice_lval.ident = strdup (&spice_text[1]);
2162  BEGIN(FUNREF);
2163  return DISTO_Action;
2164 }
2165  YY_BREAK
2166 case 29:
2168 #line 296 "scan_spice.l"
2169 { /* nodeset functionality */
2170  spice_lval.ident = strdup (&spice_text[1]);
2171  BEGIN(VSINGLE);
2172  return NODESET_Action;
2173 }
2174  YY_BREAK
2175 case 30:
2177 #line 302 "scan_spice.l"
2178 { /* nodeset functionality */
2179  spice_lval.ident = strdup (&spice_text[1]);
2180  BEGIN(VSINGLE);
2181  return NODESET_Action;
2182 }
2183  YY_BREAK
2184 case 31:
2186 #line 308 "scan_spice.l"
2187 { /* DC analysis */
2188  spice_lval.ident = strdup (&spice_text[1]);
2189  BEGIN(IVREF);
2190  return DC_Action;
2191 }
2192  YY_BREAK
2193 case 32:
2195 #line 314 "scan_spice.l"
2196 { /* operating point analysis */
2197  spice_lval.ident = strdup (&spice_text[1]);
2198  BEGIN(STARTUP);
2199  return OP_Action;
2200 }
2201  YY_BREAK
2202 case 33:
2204 #line 320 "scan_spice.l"
2205 { /* temperature analysis (Spice 2g6) */
2206  spice_lval.ident = strdup (&spice_text[1]);
2207  BEGIN(STARTUP);
2208  return TEMP_Action;
2209 }
2210  YY_BREAK
2211 case 34:
2213 #line 326 "scan_spice.l"
2214 { /* printing action */
2215  spice_lval.ident = strdup (&spice_text[1]);
2216  BEGIN(VREF);
2217  return PRINT_Action;
2218 }
2219  YY_BREAK
2220 case 35:
2222 #line 332 "scan_spice.l"
2223 { /* general options */
2224  spice_lval.ident = strdup (&spice_text[1]);
2225  BEGIN(STARTUP);
2226  return OPTIONS_Action;
2227 }
2228  YY_BREAK
2229 case 36:
2231 #line 338 "scan_spice.l"
2232 { /* general options (abbrev.) */
2233  spice_lval.ident = strdup (&spice_text[1]);
2234  BEGIN(STARTUP);
2235  return OPTIONS_Action;
2236 }
2237  YY_BREAK
2238 case 37:
2240 #line 344 "scan_spice.l"
2241 { /* general options (abbrev.) */
2242  spice_lval.ident = strdup (&spice_text[1]);
2243  BEGIN(STARTUP);
2244  return OPTIONS_Action;
2245 }
2246  YY_BREAK
2247 case 38:
2249 #line 350 "scan_spice.l"
2250 { /* special width of ??? */
2251  spice_lval.ident = strdup (&spice_text[1]);
2252  BEGIN(STARTUP);
2253  return WIDTH_Action;
2254 }
2255  YY_BREAK
2256 case 39:
2258 #line 356 "scan_spice.l"
2259 { /* noise analysis */
2260  spice_lval.ident = strdup (&spice_text[1]);
2261  BEGIN(IVREF);
2262  return NOISE_Action;
2263 }
2264  YY_BREAK
2265 case 40:
2267 #line 362 "scan_spice.l"
2268 { /* file include */
2269  spice_lval.ident = strdup (&spice_text[1]);
2270  BEGIN(FILEREF);
2271  return INCLUDE_Action;
2272 }
2273  YY_BREAK
2274 case 41:
2276 #line 368 "scan_spice.l"
2277 { /* pole-zero analysis */
2278  spice_lval.ident = strdup (&spice_text[1]);
2279  BEGIN(STARTUP);
2280  return PZ_Action;
2281 }
2282  YY_BREAK
2283 case 42:
2285 #line 374 "scan_spice.l"
2286 { /* save line */
2287  spice_lval.ident = strdup (&spice_text[1]);
2288  BEGIN(IGNORE);
2289  return SAVE_Action;
2290 }
2291  YY_BREAK
2292 case 43:
2294 #line 380 "scan_spice.l"
2295 { /* sensitivity analysis */
2296  spice_lval.ident = strdup (&spice_text[1]);
2297  BEGIN(IGNORE);
2298  return SENS_Action;
2299 }
2300  YY_BREAK
2301 case 44:
2303 #line 386 "scan_spice.l"
2304 { /* transfer function analysis */
2305  spice_lval.ident = strdup (&spice_text[1]);
2306  BEGIN(IGNORE);
2307  return TF_Action;
2308 }
2309  YY_BREAK
2310 case 45:
2312 #line 392 "scan_spice.l"
2313 { /* fourier analysis */
2314  spice_lval.ident = strdup (&spice_text[1]);
2315  BEGIN(IGNORE);
2316  return FOUR_Action;
2317 }
2318  YY_BREAK
2319 case 46:
2321 #line 398 "scan_spice.l"
2322 { /* pole-zero specials */
2323  spice_lval.ident = strdup (spice_text);
2324  return CurVol;
2325 }
2326  YY_BREAK
2327 case 47:
2329 #line 403 "scan_spice.l"
2330 { /* other pole-zero specials */
2331  spice_lval.ident = strdup (spice_text);
2332  return PoleZero;
2333 }
2334  YY_BREAK
2335 case 48:
2337 #line 408 "scan_spice.l"
2338 { /* a file reference */
2339  spice_lval.ident = strdup (spice_text);
2340  return File;
2341 }
2342  YY_BREAK
2343 case 49:
2345 #line 413 "scan_spice.l"
2346 { /* a print special */
2347  spice_lval.ident = strdup (spice_text);
2348  return ALL_Special;
2349 }
2350  YY_BREAK
2351 case 50:
2353 #line 418 "scan_spice.l"
2354 { /* a TC special */
2355  spice_lval.ident = strdup (spice_text);
2356  return TC_Special;
2357 }
2358  YY_BREAK
2359 case 51:
2361 #line 423 "scan_spice.l"
2362 { /* a device special */
2363  spice_lval.ident = strdup (spice_text);
2364  return OFF_Special;
2365 }
2366  YY_BREAK
2367 case 52:
2369 #line 428 "scan_spice.l"
2370 { /* a device special */
2371  spice_lval.ident = strdup (spice_text);
2372  return ON_Special;
2373 }
2374  YY_BREAK
2375 case 53:
2377 #line 433 "scan_spice.l"
2378 { /* another device special */
2379  spice_lval.ident = strdup (spice_text);
2380  return IC_Special;
2381 }
2382  YY_BREAK
2383 case 54:
2385 #line 438 "scan_spice.l"
2386 { /* another device special */
2387  spice_lval.ident = strdup (spice_text);
2388  return TEMP_Special;
2389 }
2390  YY_BREAK
2391 case 55:
2393 #line 443 "scan_spice.l"
2394 { /* another device special */
2395  spice_lval.ident = strdup (spice_text);
2396  return MOS_Special;
2397 }
2398  YY_BREAK
2399 case 56:
2401 #line 448 "scan_spice.l"
2402 { /* voltage derivatives (plotting and printing) */
2403  spice_lval.ident = strdup (spice_text);
2404  return VoltFunc;
2405 }
2406  YY_BREAK
2407 case 57:
2409 #line 453 "scan_spice.l"
2410 { /* voltage derivatives (plotting and printing) */
2411  spice_lval.ident = strdup (spice_text);
2412  return VoltFunc;
2413 }
2414  YY_BREAK
2415 case 58:
2417 #line 458 "scan_spice.l"
2418 { /* option specials */
2419  spice_lval.ident = strdup (spice_text);
2420  return Options;
2421 }
2422  YY_BREAK
2423 case 59:
2425 #line 463 "scan_spice.l"
2426 { /* Model specials */
2427  spice_lval.ident = strdup (spice_text);
2428  return ModelProps;
2429 }
2430  YY_BREAK
2431 case 60:
2433 #line 468 "scan_spice.l"
2434 { /* voltage source references */
2435  spice_lval.ident = strdup (spice_text);
2436  return V_Source;
2437 }
2438  YY_BREAK
2439 case 61:
2441 #line 473 "scan_spice.l"
2442 { /* current source references */
2443  spice_lval.ident = strdup (spice_text);
2444  return I_Source;
2445 }
2446  YY_BREAK
2447 case 62:
2449 #line 478 "scan_spice.l"
2450 { /* I function (plotting and printing) */
2451  spice_lval.ident = strdup (spice_text);
2452  return CurrFunc;
2453 }
2454  YY_BREAK
2455 case 63:
2457 #line 483 "scan_spice.l"
2458 { /* print/plot specific identifiers */
2459  spice_lval.ident = strdup (spice_text);
2460  return SIM_Type;
2461 }
2462  YY_BREAK
2463 case 64:
2465 #line 488 "scan_spice.l"
2466 { /* inductor references */
2467  spice_lval.ident = strdup (spice_text);
2468  return L_Device;
2469 }
2470  YY_BREAK
2471 case 65:
2473 #line 493 "scan_spice.l"
2474 { /* diode instances */
2475  spice_lval.ident = strdup (spice_text);
2476  BEGIN(DEVPROP);
2477  return Diode_Device;
2478 }
2479  YY_BREAK
2480 case 66:
2482 #line 499 "scan_spice.l"
2483 { /* BJT instances */
2484  spice_lval.ident = strdup (spice_text);
2485  BEGIN(DEVPROP);
2486  return Bipolar_Device;
2487 }
2488  YY_BREAK
2489 case 67:
2491 #line 505 "scan_spice.l"
2492 { /* JFET instances */
2493  spice_lval.ident = strdup (spice_text);
2494  BEGIN(DEVPROP);
2495  return JFET_Device;
2496 }
2497  YY_BREAK
2498 case 68:
2500 #line 511 "scan_spice.l"
2501 { /* MOSFET instances */
2502  spice_lval.ident = strdup (spice_text);
2503  BEGIN(DEVPROP);
2504  return MOSFET_Device;
2505 }
2506  YY_BREAK
2507 case 69:
2509 #line 517 "scan_spice.l"
2510 { /* MESFET instances */
2511  spice_lval.ident = strdup (spice_text);
2512  BEGIN(DEVPROP);
2513  return MESFET_Device;
2514 }
2515  YY_BREAK
2516 case 70:
2517 /* rule 70 can match eol */
2519 #line 523 "scan_spice.l"
2520 { /* identify end of netlist */
2521  return End;
2522 }
2523  YY_BREAK
2524 case 71:
2526 #line 528 "scan_spice.l"
2527 {
2528  /* identify node (containing digits) */
2529  spice_lval.ident = strdup (spice_text);
2530  return Digits;
2531 }
2532  YY_BREAK
2533 case 72:
2535 #line 535 "scan_spice.l"
2536 {
2537  /* identify float (any kind) */
2538  spice_lval.ident = strdup (spice_text);
2539  return Floats;
2540 }
2541  YY_BREAK
2542 case 73:
2544 #line 541 "scan_spice.l"
2545 {
2546  /* identify analog behaviour */
2547  spice_lval.ident = strdup (spice_text);
2548  return Behave;
2549 }
2550  YY_BREAK
2551 case 74:
2553 #line 547 "scan_spice.l"
2554 {
2555  /* identify analog behaviour */
2556  spice_lval.ident = strdup (spice_text);
2557  BEGIN(IGNORE);
2558  return Behave;
2559 }
2560  YY_BREAK
2561 case 75:
2563 #line 554 "scan_spice.l"
2564 { /* function specials (e.g. in sources) */
2565  spice_lval.ident = strdup (spice_text);
2566  return Function;
2567 }
2568  YY_BREAK
2569 case 76:
2571 #line 559 "scan_spice.l"
2572 { /* Model specification specials */
2573  spice_lval.ident = strdup (spice_text);
2574  BEGIN(STARTUP);
2575  return MODEL_Spec;
2576 }
2577  YY_BREAK
2578 case 77:
2580 #line 566 "scan_spice.l"
2581 { /* arbitrary identifier */
2582  spice_lval.ident = strdup (spice_text);
2583  spice_fix_identifier (spice_lval.ident);
2584  return Identifier;
2585 }
2586  YY_BREAK
2587 case 78:
2589 #line 572 "scan_spice.l"
2590 { /* arbitrary identifier */
2591  spice_lval.ident = strdup (spice_text);
2592  spice_fix_identifier (spice_lval.ident);
2593  BEGIN(STARTUP);
2594  return Identifier;
2595 }
2596  YY_BREAK
2597 case 79:
2599 #line 579 "scan_spice.l"
2600 { /* arbitrary identifier */
2601  spice_lval.ident = strdup (spice_text);
2602  spice_fix_identifier (spice_lval.ident);
2603  BEGIN(MODREF2);
2604  return Identifier;
2605 }
2606  YY_BREAK
2607 case 80:
2609 #line 586 "scan_spice.l"
2610 {
2611  /* I function (plotting and printing) */
2612  spice_lval.ident = strdup (spice_text);
2613  return BranchFunc;
2614 }
2615  YY_BREAK
2616 case 81:
2618 #line 592 "scan_spice.l"
2619 {
2620  /* operating point (plotting and printing) */
2621  spice_lval.ident = strdup (spice_text);
2622  return OpFunc;
2623 }
2624  YY_BREAK
2625 case 82:
2627 #line 599 "scan_spice.l"
2628 {
2629  /* identify node */
2630  spice_lval.ident = strdup (spice_text);
2631  return Nodes;
2632 }
2633  YY_BREAK
2634 case 83:
2635 /* rule 83 can match eol */
2637 #line 606 "scan_spice.l"
2638 {
2639  /* detect end of line */
2640  BEGIN(STARTUP);
2641  return Eol;
2642 }
2643  YY_BREAK
2644 case 84:
2645 /* rule 84 can match eol */
2647 #line 612 "scan_spice.l"
2648 {
2649  /* skip spaces, '=', '(', ')', ',' and the leading '+' */
2650 }
2651  YY_BREAK
2652 case 85:
2653 /* rule 85 can match eol */
2655 #line 616 "scan_spice.l"
2656 { BEGIN(STARTUP); /* skipping ends here */ }
2657  YY_BREAK
2658 case 86:
2660 #line 617 "scan_spice.l"
2661 { /* skip any character in here */ }
2662  YY_BREAK
2663 case 87:
2665 #line 618 "scan_spice.l"
2666 { /* skip any character in here */ }
2667  YY_BREAK
2668 case 88:
2669 /* rule 88 can match eol */
2671 #line 620 "scan_spice.l"
2672 { BEGIN(STARTUP); return Eol; /* skipping ends here */ }
2673  YY_BREAK
2674 case 89:
2676 #line 621 "scan_spice.l"
2677 { /* skip any character in here */ }
2678  YY_BREAK
2679 case 90:
2681 #line 622 "scan_spice.l"
2682 { /* skip any character in here */ }
2683  YY_BREAK
2684 case 91:
2686 #line 624 "scan_spice.l"
2687 { /* any other character is invalid */
2688  fprintf (stderr,
2689  "line %d: syntax error, unrecognized character: `%s'\n",
2690  spice_lineno, spice_text);
2691  return InvalidCharacter;
2692 }
2693  YY_BREAK
2694 case 92:
2696 #line 631 "scan_spice.l"
2697 ECHO;
2698  YY_BREAK
2699 #line 2700 "scan_spice.cpp"
2700 case YY_STATE_EOF(INITIAL):
2701 case YY_STATE_EOF(COMMENT):
2702 case YY_STATE_EOF(IVREF):
2703 case YY_STATE_EOF(DEVPROP):
2704 case YY_STATE_EOF(LREF):
2705 case YY_STATE_EOF(MODREF1):
2706 case YY_STATE_EOF(MODREF2):
2707 case YY_STATE_EOF(IGNORE):
2708 case YY_STATE_EOF(FUNREF):
2709 case YY_STATE_EOF(FILEREF):
2710 case YY_STATE_EOF(VREF):
2711 case YY_STATE_EOF(STARTUP):
2712 case YY_STATE_EOF(VSINGLE):
2713 case YY_STATE_EOF(ISWITCH):
2714 case YY_STATE_EOF(VSWITCH):
2715 case YY_STATE_EOF(CONTROL):
2716 case YY_STATE_EOF(GEVALS):
2717 case YY_STATE_EOF(INLINE):
2718 case YY_STATE_EOF(SUBCKT):
2719 case YY_STATE_EOF(TLPROP):
2720 case YY_STATE_EOF(RLCPROP):
2721 case YY_STATE_EOF(FHVALS):
2722  yyterminate();
2723 
2724  case YY_END_OF_BUFFER:
2725  {
2726  /* Amount of text matched not including the EOB char. */
2727  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2728 
2729  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2730  *yy_cp = (yy_hold_char);
2732 
2733  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2734  {
2735  /* We're scanning a new file or input source. It's
2736  * possible that this happened because the user
2737  * just pointed spice_in at a new source and called
2738  * spice_lex(). If so, then we have to assure
2739  * consistency between YY_CURRENT_BUFFER and our
2740  * globals. Here is the right place to do so, because
2741  * this is the first action (other than possibly a
2742  * back-up) that will match for the new input source.
2743  */
2744  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2745  YY_CURRENT_BUFFER_LVALUE->yy_input_file = spice_in;
2746  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2747  }
2748 
2749  /* Note that here we test for yy_c_buf_p "<=" to the position
2750  * of the first EOB in the buffer, since yy_c_buf_p will
2751  * already have been incremented past the NUL character
2752  * (since all states make transitions on EOB to the
2753  * end-of-buffer state). Contrast this with the test
2754  * in input().
2755  */
2756  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2757  { /* This was really a NUL. */
2758  yy_state_type yy_next_state;
2759 
2760  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2761 
2762  yy_current_state = yy_get_previous_state( );
2763 
2764  /* Okay, we're now positioned to make the NUL
2765  * transition. We couldn't have
2766  * yy_get_previous_state() go ahead and do it
2767  * for us because it doesn't know how to deal
2768  * with the possibility of jamming (and we don't
2769  * want to build jamming into it because then it
2770  * will run more slowly).
2771  */
2772 
2773  yy_next_state = yy_try_NUL_trans( yy_current_state );
2774 
2775  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2776 
2777  if ( yy_next_state )
2778  {
2779  /* Consume the NUL. */
2780  yy_cp = ++(yy_c_buf_p);
2781  yy_current_state = yy_next_state;
2782  goto yy_match;
2783  }
2784 
2785  else
2786  {
2787  yy_cp = (yy_c_buf_p);
2788  goto yy_find_action;
2789  }
2790  }
2791 
2792  else switch ( yy_get_next_buffer( ) )
2793  {
2794  case EOB_ACT_END_OF_FILE:
2795  {
2796  (yy_did_buffer_switch_on_eof) = 0;
2797 
2798  if ( spice_wrap( ) )
2799  {
2800  /* Note: because we've taken care in
2801  * yy_get_next_buffer() to have set up
2802  * spice_text, we can now set up
2803  * yy_c_buf_p so that if some total
2804  * hoser (like flex itself) wants to
2805  * call the scanner after we return the
2806  * YY_NULL, it'll still work - another
2807  * YY_NULL will get returned.
2808  */
2809  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2810 
2811  yy_act = YY_STATE_EOF(YY_START);
2812  goto do_action;
2813  }
2814 
2815  else
2816  {
2817  if ( ! (yy_did_buffer_switch_on_eof) )
2818  YY_NEW_FILE;
2819  }
2820  break;
2821  }
2822 
2823  case EOB_ACT_CONTINUE_SCAN:
2824  (yy_c_buf_p) =
2825  (yytext_ptr) + yy_amount_of_matched_text;
2826 
2827  yy_current_state = yy_get_previous_state( );
2828 
2829  yy_cp = (yy_c_buf_p);
2830  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2831  goto yy_match;
2832 
2833  case EOB_ACT_LAST_MATCH:
2834  (yy_c_buf_p) =
2835  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2836 
2837  yy_current_state = yy_get_previous_state( );
2838 
2839  yy_cp = (yy_c_buf_p);
2840  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2841  goto yy_find_action;
2842  }
2843  break;
2844  }
2845 
2846  default:
2848  "fatal flex scanner internal error--no action found" );
2849  } /* end of action switch */
2850  } /* end of scanning one token */
2851 } /* end of spice_lex */
2852 
2853 /* yy_get_next_buffer - try to read in a new buffer
2854  *
2855  * Returns a code representing an action:
2856  * EOB_ACT_LAST_MATCH -
2857  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2858  * EOB_ACT_END_OF_FILE - end of file
2859  */
2860 static int yy_get_next_buffer (void)
2861 {
2862  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2863  register char *source = (yytext_ptr);
2864  register int number_to_move, i;
2865  int ret_val;
2866 
2867  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2869  "fatal flex scanner internal error--end of buffer missed" );
2870 
2871  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2872  { /* Don't try to fill the buffer, so this is an EOF. */
2873  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2874  {
2875  /* We matched a single character, the EOB, so
2876  * treat this as a final EOF.
2877  */
2878  return EOB_ACT_END_OF_FILE;
2879  }
2880 
2881  else
2882  {
2883  /* We matched some text prior to the EOB, first
2884  * process it.
2885  */
2886  return EOB_ACT_LAST_MATCH;
2887  }
2888  }
2889 
2890  /* Try to read more data. */
2891 
2892  /* First move last chars to start of buffer. */
2893  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2894 
2895  for ( i = 0; i < number_to_move; ++i )
2896  *(dest++) = *(source++);
2897 
2898  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2899  /* don't do the read, it's not guaranteed to return an EOF,
2900  * just force an EOF
2901  */
2902  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2903 
2904  else
2905  {
2906  int num_to_read =
2907  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2908 
2909  while ( num_to_read <= 0 )
2910  { /* Not enough room in the buffer - grow it. */
2911 
2912  /* just a shorter name for the current buffer */
2913  YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2914 
2915  int yy_c_buf_p_offset =
2916  (int) ((yy_c_buf_p) - b->yy_ch_buf);
2917 
2918  if ( b->yy_is_our_buffer )
2919  {
2920  int new_size = b->yy_buf_size * 2;
2921 
2922  if ( new_size <= 0 )
2923  b->yy_buf_size += b->yy_buf_size / 8;
2924  else
2925  b->yy_buf_size *= 2;
2926 
2927  b->yy_ch_buf = (char *)
2928  /* Include room in for 2 EOB chars. */
2929  spice_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2930  }
2931  else
2932  /* Can't grow it, we don't own it. */
2933  b->yy_ch_buf = 0;
2934 
2935  if ( ! b->yy_ch_buf )
2937  "fatal error - scanner input buffer overflow" );
2938 
2939  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2940 
2941  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2942  number_to_move - 1;
2943 
2944  }
2945 
2946  if ( num_to_read > YY_READ_BUF_SIZE )
2947  num_to_read = YY_READ_BUF_SIZE;
2948 
2949  /* Read in more data. */
2950  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2951  (yy_n_chars), (size_t) num_to_read );
2952 
2953  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2954  }
2955 
2956  if ( (yy_n_chars) == 0 )
2957  {
2958  if ( number_to_move == YY_MORE_ADJ )
2959  {
2960  ret_val = EOB_ACT_END_OF_FILE;
2962  }
2963 
2964  else
2965  {
2966  ret_val = EOB_ACT_LAST_MATCH;
2967  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2969  }
2970  }
2971 
2972  else
2973  ret_val = EOB_ACT_CONTINUE_SCAN;
2974 
2975  if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2976  /* Extend the array by 50%, plus the number we really need. */
2977  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2978  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) spice_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2979  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2980  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2981  }
2982 
2983  (yy_n_chars) += number_to_move;
2984  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2985  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2986 
2987  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2988 
2989  return ret_val;
2990 }
2991 
2992 /* yy_get_previous_state - get the state just before the EOB char was reached */
2993 
2994  static yy_state_type yy_get_previous_state (void)
2995 {
2996  register yy_state_type yy_current_state;
2997  register char *yy_cp;
2998 
2999  yy_current_state = (yy_start);
3000  yy_current_state += YY_AT_BOL();
3001 
3002  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3003  {
3004  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3005  if ( yy_accept[yy_current_state] )
3006  {
3007  (yy_last_accepting_state) = yy_current_state;
3008  (yy_last_accepting_cpos) = yy_cp;
3009  }
3010  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3011  {
3012  yy_current_state = (int) yy_def[yy_current_state];
3013  if ( yy_current_state >= 637 )
3014  yy_c = yy_meta[(unsigned int) yy_c];
3015  }
3016  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3017  }
3018 
3019  return yy_current_state;
3020 }
3021 
3022 /* yy_try_NUL_trans - try to make a transition on the NUL character
3023  *
3024  * synopsis
3025  * next_state = yy_try_NUL_trans( current_state );
3026  */
3027  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3028 {
3029  register int yy_is_jam;
3030  register char *yy_cp = (yy_c_buf_p);
3031 
3032  register YY_CHAR yy_c = 1;
3033  if ( yy_accept[yy_current_state] )
3034  {
3035  (yy_last_accepting_state) = yy_current_state;
3036  (yy_last_accepting_cpos) = yy_cp;
3037  }
3038  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3039  {
3040  yy_current_state = (int) yy_def[yy_current_state];
3041  if ( yy_current_state >= 637 )
3042  yy_c = yy_meta[(unsigned int) yy_c];
3043  }
3044  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3045  yy_is_jam = (yy_current_state == 636);
3046 
3047  return yy_is_jam ? 0 : yy_current_state;
3048 }
3049 
3050 #ifndef YY_NO_INPUT
3051 #ifdef __cplusplus
3052  static int yyinput (void)
3053 #else
3054  static int input (void)
3055 #endif
3056 
3057 {
3058  int c;
3059 
3060  *(yy_c_buf_p) = (yy_hold_char);
3061 
3062  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3063  {
3064  /* yy_c_buf_p now points to the character we want to return.
3065  * If this occurs *before* the EOB characters, then it's a
3066  * valid NUL; if not, then we've hit the end of the buffer.
3067  */
3068  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3069  /* This was really a NUL. */
3070  *(yy_c_buf_p) = '\0';
3071 
3072  else
3073  { /* need more input */
3074  int offset = (yy_c_buf_p) - (yytext_ptr);
3075  ++(yy_c_buf_p);
3076 
3077  switch ( yy_get_next_buffer( ) )
3078  {
3079  case EOB_ACT_LAST_MATCH:
3080  /* This happens because yy_g_n_b()
3081  * sees that we've accumulated a
3082  * token and flags that we need to
3083  * try matching the token before
3084  * proceeding. But for input(),
3085  * there's no matching to consider.
3086  * So convert the EOB_ACT_LAST_MATCH
3087  * to EOB_ACT_END_OF_FILE.
3088  */
3089 
3090  /* Reset buffer status. */
3092 
3093  /*FALLTHROUGH*/
3094 
3095  case EOB_ACT_END_OF_FILE:
3096  {
3097  if ( spice_wrap( ) )
3098  return EOF;
3099 
3100  if ( ! (yy_did_buffer_switch_on_eof) )
3101  YY_NEW_FILE;
3102 #ifdef __cplusplus
3103  return yyinput();
3104 #else
3105  return input();
3106 #endif
3107  }
3108 
3109  case EOB_ACT_CONTINUE_SCAN:
3110  (yy_c_buf_p) = (yytext_ptr) + offset;
3111  break;
3112  }
3113  }
3114  }
3115 
3116  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3117  *(yy_c_buf_p) = '\0'; /* preserve spice_text */
3118  (yy_hold_char) = *++(yy_c_buf_p);
3119 
3120  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3121  if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
3122 
3123  spice_lineno++;
3124 ;
3125 
3126  return c;
3127 }
3128 #endif /* ifndef YY_NO_INPUT */
3129 
3135  void spice_restart (FILE * input_file )
3136 {
3137 
3138  if ( ! YY_CURRENT_BUFFER ){
3139  spice_ensure_buffer_stack ();
3142  }
3143 
3144  spice__init_buffer(YY_CURRENT_BUFFER,input_file );
3145  spice__load_buffer_state( );
3146 }
3147 
3152  void spice__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3153 {
3154 
3155  /* TODO. We should be able to replace this entire function body
3156  * with
3157  * spice_pop_buffer_state();
3158  * spice_push_buffer_state(new_buffer);
3159  */
3160  spice_ensure_buffer_stack ();
3161  if ( YY_CURRENT_BUFFER == new_buffer )
3162  return;
3163 
3164  if ( YY_CURRENT_BUFFER )
3165  {
3166  /* Flush out information for old buffer. */
3167  *(yy_c_buf_p) = (yy_hold_char);
3168  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3169  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3170  }
3171 
3172  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3173  spice__load_buffer_state( );
3174 
3175  /* We don't actually know whether we did this switch during
3176  * EOF (spice_wrap()) processing, but the only time this flag
3177  * is looked at is after spice_wrap() is called, so it's safe
3178  * to go ahead and always set it.
3179  */
3180  (yy_did_buffer_switch_on_eof) = 1;
3181 }
3182 
3183 static void spice__load_buffer_state (void)
3184 {
3185  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3186  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3187  spice_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3188  (yy_hold_char) = *(yy_c_buf_p);
3189 }
3190 
3197  YY_BUFFER_STATE spice__create_buffer (FILE * file, int size )
3198 {
3199  YY_BUFFER_STATE b;
3200 
3201  b = (YY_BUFFER_STATE) spice_alloc(sizeof( struct yy_buffer_state ) );
3202  if ( ! b )
3203  YY_FATAL_ERROR( "out of dynamic memory in spice__create_buffer()" );
3204 
3205  b->yy_buf_size = size;
3206 
3207  /* yy_ch_buf has to be 2 characters longer than the size given because
3208  * we need to put in 2 end-of-buffer characters.
3209  */
3210  b->yy_ch_buf = (char *) spice_alloc(b->yy_buf_size + 2 );
3211  if ( ! b->yy_ch_buf )
3212  YY_FATAL_ERROR( "out of dynamic memory in spice__create_buffer()" );
3213 
3214  b->yy_is_our_buffer = 1;
3215 
3216  spice__init_buffer(b,file );
3217 
3218  return b;
3219 }
3220 
3225  void spice__delete_buffer (YY_BUFFER_STATE b )
3226 {
3227 
3228  if ( ! b )
3229  return;
3230 
3231  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3233 
3234  if ( b->yy_is_our_buffer )
3235  spice_free((void *) b->yy_ch_buf );
3236 
3237  spice_free((void *) b );
3238 }
3239 
3240 #ifndef __cplusplus
3241 extern int isatty (int );
3242 #endif /* __cplusplus */
3243 
3244 /* Initializes or reinitializes a buffer.
3245  * This function is sometimes called more than once on the same buffer,
3246  * such as during a spice_restart() or at EOF.
3247  */
3248  static void spice__init_buffer (YY_BUFFER_STATE b, FILE * file )
3249 
3250 {
3251  int oerrno = errno;
3252 
3253  spice__flush_buffer(b );
3254 
3255  b->yy_input_file = file;
3256  b->yy_fill_buffer = 1;
3257 
3258  /* If b is the current buffer, then spice__init_buffer was _probably_
3259  * called from spice_restart() or through yy_get_next_buffer.
3260  * In that case, we don't want to reset the lineno or column.
3261  */
3262  if (b != YY_CURRENT_BUFFER){
3263  b->yy_bs_lineno = 1;
3264  b->yy_bs_column = 0;
3265  }
3266 
3267  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3268 
3269  errno = oerrno;
3270 }
3271 
3276  void spice__flush_buffer (YY_BUFFER_STATE b )
3277 {
3278  if ( ! b )
3279  return;
3280 
3281  b->yy_n_chars = 0;
3282 
3283  /* We always need two end-of-buffer characters. The first causes
3284  * a transition to the end-of-buffer state. The second causes
3285  * a jam in that state.
3286  */
3289 
3290  b->yy_buf_pos = &b->yy_ch_buf[0];
3291 
3292  b->yy_at_bol = 1;
3294 
3295  if ( b == YY_CURRENT_BUFFER )
3296  spice__load_buffer_state( );
3297 }
3298 
3305 void spice_push_buffer_state (YY_BUFFER_STATE new_buffer )
3306 {
3307  if (new_buffer == NULL)
3308  return;
3309 
3310  spice_ensure_buffer_stack();
3311 
3312  /* This block is copied from spice__switch_to_buffer. */
3313  if ( YY_CURRENT_BUFFER )
3314  {
3315  /* Flush out information for old buffer. */
3316  *(yy_c_buf_p) = (yy_hold_char);
3317  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3318  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3319  }
3320 
3321  /* Only push if top exists. Otherwise, replace top. */
3322  if (YY_CURRENT_BUFFER)
3323  (yy_buffer_stack_top)++;
3324  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3325 
3326  /* copied from spice__switch_to_buffer. */
3327  spice__load_buffer_state( );
3328  (yy_did_buffer_switch_on_eof) = 1;
3329 }
3330 
3336 {
3337  if (!YY_CURRENT_BUFFER)
3338  return;
3339 
3341  YY_CURRENT_BUFFER_LVALUE = NULL;
3342  if ((yy_buffer_stack_top) > 0)
3343  --(yy_buffer_stack_top);
3344 
3345  if (YY_CURRENT_BUFFER) {
3346  spice__load_buffer_state( );
3347  (yy_did_buffer_switch_on_eof) = 1;
3348  }
3349 }
3350 
3351 /* Allocates the stack if it does not exist.
3352  * Guarantees space for at least one push.
3353  */
3354 static void spice_ensure_buffer_stack (void)
3355 {
3356  int num_to_alloc;
3357 
3358  if (!(yy_buffer_stack)) {
3359 
3360  /* First allocation is just for 2 elements, since we don't know if this
3361  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3362  * immediate realloc on the next call.
3363  */
3364  num_to_alloc = 1;
3365  (yy_buffer_stack) = (struct yy_buffer_state**)spice_alloc
3366  (num_to_alloc * sizeof(struct yy_buffer_state*)
3367  );
3368  if ( ! (yy_buffer_stack) )
3369  YY_FATAL_ERROR( "out of dynamic memory in spice_ensure_buffer_stack()" );
3370 
3371  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3372 
3373  (yy_buffer_stack_max) = num_to_alloc;
3374  (yy_buffer_stack_top) = 0;
3375  return;
3376  }
3377 
3378  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3379 
3380  /* Increase the buffer to prepare for a possible push. */
3381  int grow_size = 8 /* arbitrary grow size */;
3382 
3383  num_to_alloc = (yy_buffer_stack_max) + grow_size;
3384  (yy_buffer_stack) = (struct yy_buffer_state**)spice_realloc
3385  ((yy_buffer_stack),
3386  num_to_alloc * sizeof(struct yy_buffer_state*)
3387  );
3388  if ( ! (yy_buffer_stack) )
3389  YY_FATAL_ERROR( "out of dynamic memory in spice_ensure_buffer_stack()" );
3390 
3391  /* zero only the new slots.*/
3392  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3393  (yy_buffer_stack_max) = num_to_alloc;
3394  }
3395 }
3396 
3403 YY_BUFFER_STATE spice__scan_buffer (char * base, yy_size_t size )
3404 {
3405  YY_BUFFER_STATE b;
3406 
3407  if ( size < 2 ||
3408  base[size-2] != YY_END_OF_BUFFER_CHAR ||
3409  base[size-1] != YY_END_OF_BUFFER_CHAR )
3410  /* They forgot to leave room for the EOB's. */
3411  return 0;
3412 
3413  b = (YY_BUFFER_STATE) spice_alloc(sizeof( struct yy_buffer_state ) );
3414  if ( ! b )
3415  YY_FATAL_ERROR( "out of dynamic memory in spice__scan_buffer()" );
3416 
3417  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3418  b->yy_buf_pos = b->yy_ch_buf = base;
3419  b->yy_is_our_buffer = 0;
3420  b->yy_input_file = 0;
3421  b->yy_n_chars = b->yy_buf_size;
3422  b->yy_is_interactive = 0;
3423  b->yy_at_bol = 1;
3424  b->yy_fill_buffer = 0;
3426 
3428 
3429  return b;
3430 }
3431 
3440 YY_BUFFER_STATE spice__scan_string (yyconst char * yystr )
3441 {
3442 
3443  return spice__scan_bytes(yystr,strlen(yystr) );
3444 }
3445 
3453 YY_BUFFER_STATE spice__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3454 {
3455  YY_BUFFER_STATE b;
3456  char *buf;
3457  yy_size_t n;
3458  int i;
3459 
3460  /* Get memory for full buffer, including space for trailing EOB's. */
3461  n = _yybytes_len + 2;
3462  buf = (char *) spice_alloc(n );
3463  if ( ! buf )
3464  YY_FATAL_ERROR( "out of dynamic memory in spice__scan_bytes()" );
3465 
3466  for ( i = 0; i < _yybytes_len; ++i )
3467  buf[i] = yybytes[i];
3468 
3469  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3470 
3471  b = spice__scan_buffer(buf,n );
3472  if ( ! b )
3473  YY_FATAL_ERROR( "bad buffer in spice__scan_bytes()" );
3474 
3475  /* It's okay to grow etc. this buffer, and we should throw it
3476  * away when we're done.
3477  */
3478  b->yy_is_our_buffer = 1;
3479 
3480  return b;
3481 }
3482 
3483 #ifndef YY_EXIT_FAILURE
3484 #define YY_EXIT_FAILURE 2
3485 #endif
3486 
3487 static void yy_fatal_error (yyconst char* msg )
3488 {
3489  (void) fprintf( stderr, "%s\n", msg );
3490  exit( YY_EXIT_FAILURE );
3491 }
3492 
3493 /* Redefine yyless() so it works in section 3 code. */
3494 
3495 #undef yyless
3496 #define yyless(n) \
3497  do \
3498  { \
3499  /* Undo effects of setting up spice_text. */ \
3500  int yyless_macro_arg = (n); \
3501  YY_LESS_LINENO(yyless_macro_arg);\
3502  spice_text[spice_leng] = (yy_hold_char); \
3503  (yy_c_buf_p) = spice_text + yyless_macro_arg; \
3504  (yy_hold_char) = *(yy_c_buf_p); \
3505  *(yy_c_buf_p) = '\0'; \
3506  spice_leng = yyless_macro_arg; \
3507  } \
3508  while ( 0 )
3509 
3510 /* Accessor methods (get/set functions) to struct members. */
3511 
3516 {
3517 
3518  return spice_lineno;
3519 }
3520 
3524 FILE *spice_get_in (void)
3525 {
3526  return spice_in;
3527 }
3528 
3532 FILE *spice_get_out (void)
3533 {
3534  return spice_out;
3535 }
3536 
3540 int spice_get_leng (void)
3541 {
3542  return spice_leng;
3543 }
3544 
3549 char *spice_get_text (void)
3550 {
3551  return spice_text;
3552 }
3553 
3558 void spice_set_lineno (int line_number )
3559 {
3560 
3561  spice_lineno = line_number;
3562 }
3563 
3570 void spice_set_in (FILE * in_str )
3571 {
3572  spice_in = in_str ;
3573 }
3574 
3575 void spice_set_out (FILE * out_str )
3576 {
3577  spice_out = out_str ;
3578 }
3579 
3581 {
3582  return spice__flex_debug;
3583 }
3584 
3585 void spice_set_debug (int bdebug )
3586 {
3587  spice__flex_debug = bdebug ;
3588 }
3589 
3590 static int yy_init_globals (void)
3591 {
3592  /* Initialization is the same as for the non-reentrant scanner.
3593  * This function is called from spice_lex_destroy(), so don't allocate here.
3594  */
3595 
3596  /* We do not touch spice_lineno unless the option is enabled. */
3597  spice_lineno = 1;
3598 
3599  (yy_buffer_stack) = 0;
3600  (yy_buffer_stack_top) = 0;
3601  (yy_buffer_stack_max) = 0;
3602  (yy_c_buf_p) = (char *) 0;
3603  (yy_init) = 0;
3604  (yy_start) = 0;
3605 
3606 /* Defined in main.c */
3607 #ifdef YY_STDINIT
3608  spice_in = stdin;
3609  spice_out = stdout;
3610 #else
3611  spice_in = (FILE *) 0;
3612  spice_out = (FILE *) 0;
3613 #endif
3614 
3615  /* For future reference: Set errno on error, since we are called by
3616  * spice_lex_init()
3617  */
3618  return 0;
3619 }
3620 
3621 /* spice_lex_destroy is for both reentrant and non-reentrant scanners. */
3623 {
3624 
3625  /* Pop the buffer stack, destroying each element. */
3626  while(YY_CURRENT_BUFFER){
3628  YY_CURRENT_BUFFER_LVALUE = NULL;
3630  }
3631 
3632  /* Destroy the stack itself. */
3633  spice_free((yy_buffer_stack) );
3634  (yy_buffer_stack) = NULL;
3635 
3636  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3637  * spice_lex() is called, initialization will occur. */
3638  yy_init_globals( );
3639 
3640  return 0;
3641 }
3642 
3643 /*
3644  * Internal utility routines.
3645  */
3646 
3647 #ifndef yytext_ptr
3648 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3649 {
3650  register int i;
3651  for ( i = 0; i < n; ++i )
3652  s1[i] = s2[i];
3653 }
3654 #endif
3655 
3656 #ifdef YY_NEED_STRLEN
3657 static int yy_flex_strlen (yyconst char * s )
3658 {
3659  register int n;
3660  for ( n = 0; s[n]; ++n )
3661  ;
3662 
3663  return n;
3664 }
3665 #endif
3666 
3667 void *spice_alloc (yy_size_t size )
3668 {
3669  return (void *) malloc( size );
3670 }
3671 
3672 void *spice_realloc (void * ptr, yy_size_t size )
3673 {
3674  /* The cast to (char *) in the following accommodates both
3675  * implementations that use char* generic pointers, and those
3676  * that use void* generic pointers. It works with the latter
3677  * because both ANSI C and C++ allow castless assignment from
3678  * any pointer type to void*, and deal with argument conversions
3679  * as though doing an assignment.
3680  */
3681  return (void *) realloc( (char *) ptr, size );
3682 }
3683 
3684 void spice_free (void * ptr )
3685 {
3686  free( (char *) ptr ); /* see spice_realloc() for (char *) cast */
3687 }
3688 
3689 #define YYTABLES_NAME "yytables"
3690 
3691 #line 631 "scan_spice.l"
3692 
3693 
3694